1 / 41

บทที่ 5 การจัดตารางการทำงานของ CPU CPU Scheduling

บทที่ 5 การจัดตารางการทำงานของ CPU CPU Scheduling. CPU SCHEDULING. วิธีการจัดตารางการทำงาน. แนวความคิดพื้นฐาน. แบบมาก่อนได้ก่อน. ช่วงประมวลผล/ช่วงรับส่งข้อมูล. แบบงานสั้นที่สุดได้ก่อน. ตัวจัดตารางการทำงาน. แบบศักดิ์สูงได้ก่อน. การจัดตารางแบบให้แทรกกลางคัน. แบบเวียนเทียน. ตัวส่งต่อ.

Télécharger la présentation

บทที่ 5 การจัดตารางการทำงานของ CPU CPU Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 5การจัดตารางการทำงานของ CPUCPU Scheduling

  2. CPU SCHEDULING วิธีการจัดตารางการทำงาน แนวความคิดพื้นฐาน แบบมาก่อนได้ก่อน ช่วงประมวลผล/ช่วงรับส่งข้อมูล แบบงานสั้นที่สุดได้ก่อน ตัวจัดตารางการทำงาน แบบศักดิ์สูงได้ก่อน การจัดตารางแบบให้แทรกกลางคัน แบบเวียนเทียน ตัวส่งต่อ แบบแถวคอยหลายระดับ จัดลำดับหลายระดับแบบเลื่อนชั้นได้ เกณฑ์ในการจัดตาราง Concept Mapping

  3. การจัดการเวลา CPU (CPU Scheduling) • 1. หลักความต้องการพื้นฐาน (Basic Concepts) • 2. ข้อพิจารณาในการจัดเวลา (Scheduling Criteria) • 3. อัลกอริทึมของการจัดเวลา (Scheduling Algorithms) • 4. การจัดเวลาของ Multiple-Processor (Multiple-Processsor Scheduling) • 5. การจัดเวลาแบบ Real-Time (Real-Time Scheduling)

  4. 1.หลักความต้องการพื้นฐาน (Basic Concepts) การจัดการ CPU เป็นหลักการทำงานหนึ่งของระบบปฎิบัติการที่ทำให้คอมพิวเตอร์มีความสามารถในการ RUN โปรแกรมหลายๆ โปรแกรมในเวลาเดียวกัน จุดประสงค์ของการ RUN โปรแกรมหลายๆโปรแกรม คือความต้องการที่จะให้ CPU มีการทำงานตลอดเวลา เพื่อให้มีการใช้ CPU อย่างเต็มที่และเต็มประสิทธิภาพ แนวความคิดและหลักการของการทำงานกับหลายโปรแกรม แต่ละโปรแกรมจะถูก Run จนกระทั่งถึงจุดที่มันต้องคอยอะไรซักอย่างเพื่อใช้สำหรับการทำงานช่วงต่อไป (ส่วนมากเป็นการคอยการทำงานที่เกี่ยวข้องกับ I/O Device)

  5. 1.หลักความต้องการพื้นฐาน (Basic Concepts) • ระบบคอมพิวเตอร์ที่มีความสามารถ Run โปรแกรมได้ที่ละโปรแกรม CPU จะหยุดการทำงานในระหว่างที่คอย I/O ซึ่งเป็นการเสียเวลาโดยเปล่าประโยชน์ เพราะ CPU ไม่ได้ทำงานเลย • หลักการในการ Run หลายโปรแกรม จะพยายามใช้เวลาที่ CPU คอยการทำงาน I/O ไปทำงานอย่างอื่นต่อไป ดังนั้นเมื่อใดก็ตามที่ CPU ต้องคอย และยังมีโปรแกรมในหน่วยความจำหลายโปรแกรมที่คอยการใช้ CPU อยู่ จะจัดให้ CPU ทำงานโปรแกรมเหล่านั้นทันที

  6. 1.1 ช่วงเวลา I/O และช่วงเวลาใช้ CPU (I/O and CPU Burst Cycle) • ความสำคัญของการจัดเวลาของ CPU จะขึ้นอยู่กับคุณลักษณะของโปรเซส โดยทั่วไปแล้วการ Execute โปรเซสจะประกอบด้วย • เวลาที่ใช้ CPU (CPU Burst Cycle) • เวลาที่ต้องคอย I/O (I/O Burst Cycle)

  7. ความเข้าใจพื้นฐาน • การทำงานของ CPU • ความต้องการของเราก็คือให้ CPU ทำงานตลอด • ระหว่างที่ทำงานมีบางโปรเซสเกิดการรอคอยบางโปรเซสทำงาน • CPU-I/O Burst Cycle • เป็นลักษณะของโปรเซส มี 2 ประเภท • CPU Burst คือการเข้าไปใช้ CPU เป็นเวลานาน • I/O Burst คือการเข้าไปใช้ I/O เป็นเวลานาน • หากเราเข้าใจลักษณะของโปรเซสเราก็สามารถจัดการทำงานให้ CPU ได้

  8. แสดงการสลับลำดับของช่วงประมวลผล/ช่วงรับส่งข้อมูลแสดงการสลับลำดับของช่วงประมวลผล/ช่วงรับส่งข้อมูล load store add store CPU burst read from file wait for I/O I/O burst store increment Index CPU burst Write to file wait for I/O I/O burst load store Add store CPU burst Read from file wait for I/O I/O burst กลับหน้าแรก

  9. ช่วงเวลาที่ใช้ CPU (CPU Burst Cycle) การใช้ CPU ของโปรเซสใดๆ นั้น มักจะมีความถี่มากสำหรับเวลา CPU ช่วงเวลาสั้นๆ ส่วนเวลา CPU ระยะเวลานานๆ นั้นจะมีความถี่น้อยกว่า

  10. ช่วงเวลาที่ใช้ CPU (CPU Burst Cycle) และยังมีแนวโน้มว่าโปรเซสที่มีการติดต่อแลกเปลี่ยนข้อมูลกับอุปกรณ์ภายนอกมากๆ ก็มักจะมีช่วงเวลาของการติดต่อกับ CPU ค่อยข้างสั้นแต่บ่อยครั้ง และมีช่วงเวลาการใช้ CPU นานๆ เพียงเล็กน้อย

  11. ลักษณะการทำงานของการจัดตารางการทำงานลักษณะการทำงานของการจัดตารางการทำงาน • แบบ Non-Preemptive • ขึ้นอยู่กับโปรเซสเองว่าจะคืนการใช้ CPU เมื่อไร • Win3.1 • ข้อดีคือออกแบบ OS ง่าย • ข้อเสียคืออาจเกิดการยึดครองการใช้ CPU ได้ • แบบ Preemptive • มีกำหนดเวลาที่แน่นอน • Win 95 ขึ้นไป ข้อดีคือ ไม่เกิดการยึดครอง CPU • มีข้อเสียคือออกแบบยากต้องออกแบบในระดับ Kernel

  12. 1.2 ตัวจัดการเวลา CPU (CPU Scheduler) เมื่อใดก็ตามที่ CPU ว่าง ระบบปฎิบัติการจะต้องเข้ามาเลือกโปรเซสตัวใดตัวหนึ่งที่คอยอยู่ในคิวเข้ามาใช้งานโดยใช้ ตัวจัดการเวลาช่วงสั้น (Short-Term Scheduler) หรือ ตัวจัดการเวลา CPU (CPU Scheduler) คิวของโปรเซสในหน่วยความจำนั้นไม่จำเป็นที่ต้องเป็นแบบ FIFO เสมอไป อาจจะเป็นไปตาม Priority,Tree หรือ Linked List อย่างไรก็ตามโปรเซสทุกโปรเซสใน Ready Queue จะต้องมีโอกาศได้เข้าครอบครองเวลา CPU ไม่เวลาใดก็เวลาหนึ่ง

  13. 1.3 การให้สิทธิการจัดเวลา (Preemptive Scheduling) การตัดสินใจของ CPU ในการเลือก Execute โปรเซสใดๆ ขึ้นอยู่กับสถานการณ์ดังนี้ 1. เมื่อมีการเปลี่ยนสถานะของโปรเซสจาก Running ไปเป็น Wait 2. เมื่อมีการเปลี่ยนสถานะของโปรเซสจาก Running ไปเป็น Ready 3. เมื่อมีการเปลี่ยนสถานะของโปรเซสจาก Wait ไปเป็น Ready 4. เมื่อ Terminate โปรเซส

  14. 1.3 การให้สิทธิการจัดเวลา (Preemptive Scheduling) สถานการณ์ที่ 1 และ 4 นั้นเป็นสถานการณ์ที่จะต้องมีการตัดสินใจทำอย่างใดอย่างหนึ่งโดยไม่สามารถหลีกเลี่ยงได้ ซึ่งการจัดเวลา CPU จะเป็นแบบไม่ให้สิทธิก่อน (Nonpreemptive) สถานการณ์ณ์ที่ 2 และ 3 นั้น การตัดสินใจต้องอยู่บนพื้นฐานหรือกฎเกณฑ์ของแต่ละอัลกอริทึ่มที่ใช้ ซึ่งการจัดเวลา CPU จะเป็นแบบให้สิทธิ์ก่อน (Preemptive)

  15. 1.3 การให้สิทธิการจัดเวลา (Preemptive Scheduling) ภายใต้การทำงานแบบ Nonpreemptive โปรเซสจะครอบครองเวลา CPU ไปจนกว่าจะ Terminate หรือเปลี่ยนสถานะไปเป็น Wait ซึ่งใช้ในระบบปฎิบัติการ Microsoft Windows 3.11 และ Apple Macintosh ซึ่งไม่เหมาะกับระบบ Multiuser แต่ภายใต้การทำงานแบบ Preemptive ต้องใช้ทรัพยากรพิเศษเข้าช่วยเป็นจำนวนมากเพื่อแก้ปัญหาต่างๆ ทำให้ระบบมีราคาแพง เช่นระบบปฎิบัติการ Unix

  16. 1.4 Dispatcher เป็น Module ที่ทำหน้าที่ควบคุมการครอบครองเวลา CPU ของโปรเซส ซึ่งเป็นคอมโพแนนต์ที่สำคัญตัวหนึ่งที่เกี่ยวข้องกับฟังก์ชันในการจัดเวลา CPU ซึ่งฟังก์ชันประกอบด้วย • 1. การย้าย Context • 2. การย้ายไป User Mode • 3. การกระโดยไปยังตำแหน่งที่เหมาะสมของโปรแกรม เพื่อที่จะเริ่ม Run โปรแกรมนั้นใหม่อีกครั้ง

  17. 2. ข้อพิจารณาในการจัดเวลา (Scheduling Criteria) อัลกอริทึมของการจัดการเวลา CPU มีหลายอัลกอริทึม ซึ่งมีคุณสมบัติแตกต่างกัน ข้อพิจารณาในการเลือกอัลกอริทึมที่ดีที่สุดจะมีดังนี้ 1. อรรถประโยชน์ของ CPU (CPU Utilization) คำนึงถึงการใช้ประโยชน์ของ CPU อย่างสูงสุด โดยให้ CPU ทำงานมากมี่สุดเท่าที่จะทำได้ (ควรอยู่ระหว่าง 40 – 90%) 2 Throughput จำนวนงานที่เสร็จต่อหน่วยเวลาที่สามารถวัดออกมาได้ 3. เวลาทั้งหมด (Turnaround time) ช่วยเวลาทั้งหมดที่ใช้ในการทำงานใดงานหนึ่งตั้งแต่เริ่มต้นเข้าไปในระบบจนกระทั่งงานถูกทำเสร็จเรียบร้อย Tt = เวลาที่รอจะเข้าสู่ RAM + เวลาที่อยู่ในคิว + เวลาที่ใช้ CPU + เวลาของ I/O

  18. 2. ข้อพิจารณาในการจัดเวลา (Scheduling Criteria) 4. เวลารอคอย (Waiting Time) ช่วงเวลาที่งานใดงานหนึงต้องรอการทำงานของตัวจัดเวลาโดยไม่รวมเวลาของการใช้ CPU และเวลาของการติดต่อ I/O (ส่วนใหญ่เป็นเวลาที่คอยอยู่ใน Ready Queue) 5. เวลาตอบสนอง (Response time) เวลาที่วัดระหว่างเวลาที่มีการร้องขอการกระทำใดๆ ต่อระบบแล้วมีการตอบรับกลับออกมา

  19. 3. อัลกอริทึมของการจัดเวลา (Scheduling Algorithms) 1) การจัดเวลาแบบมาก่อนได้ก่อน (FCFSL:First-Come First-Served) 2) การจัดเวลาแบบงานสั้นทำก่อน (SJF: Short-Job-First Scheduling) 3) การจัดเวลาตามลำดับความสำคัญ (Priority Scheduling) 4) การจัดเวลาแบบวนรอบ (RR: Round-Robin Scheduling) 5) การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)

  20. 3.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS) โปรเซสใดที่ร้องขอการใช้ CPU ก่อนก็จะได้รับการจัดสรรให้ครอบเวลา CPU ก่อน โดยใช้หลักการของ FIFO Queue ข้อเสีย • ค่าเฉลี่ยของการคอยในคิวค่อยข้างสูง

  21. 3.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS)

  22. 3.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS)

  23. 3.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF) โปรเซสที่ต้องการคาบเวลาของ CPU ในเวลาถัดไปสั้นที่สุดจะได้รับการคัดเลือกให้เข้ามาครอบครอง CPU ก่อน และถ้ามีโปรเซสหลายตัวที่มีคาบเวลาของเวลา CPU ของช่วงต่อไปเท่าๆกันก็จะใช้หลักการ FCFS ในการคัดเลือก

  24. 3.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF)

  25. 3.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF) SJF จะให้ค่าเฉลี่ยในการคอยต่ำสุด แต่ยังมีปัญหาในการนำมาใช้ในการจัดเวลาช่วงสั้น (Short-term Scheduling) เพราะไม่มีโอกาสรู้ได้ว่าความยาวของคาบเวลาการใช้ CPU ในช่วงต่อไปของแต่ละโปรเซสเป็นเท่าใด ที่ใช้กันมักจะเป็นแค่การประมาณจากระยะเวลาของเวลา CPU ในคาบเวลาที่ผ่านมาด้วยการหาค่าเฉลี่ยเท่านั้น • การทำงานของ SJF จะเป็นทั้งแบบ Nonpreemptive และ Preemptive การตัดสินจจะเกิดขึ้นทุกครั้งเมื่อมีโปรเซสใหม่เข้ามาในคิดขณะที่ยังมีโปรเซสอื่นใช้งาน CPU อยู่โปรเซสใหม่อาจมีคาบเลาของ เวลา CPU สั้นกว่าเวลาที่เหลืออยู่ของเวลา CPU ของโปรเซสที่กำลังใช้ CPU บางครั้งอาจเรียกว่า Shortest-Remaining-Time-First

  26. 3.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF)

  27. 3.3 การจัดเวลาตามลำดับความสำคัญ เป็นวิธีการนำโปรเซสในคิวที่ลำดับความสำคัญสูงสุดมาครอบครอง CPU ซึ่งลำดับความสำคัญของแต่ละโปรเซสจะถูกกำหนดได้ด้วยวิธีใดวิธีหนึ่ง แต่ถ้ามีงานที่มีลำดับความสำคัญเท่ากันก็จะนำแบบ FCFS มาใช้ วิธีการ SJF จะเป็นวิธีการจัดเวลาตามลำดับความสำคัญของโปรเซสด้วีคาบระยะเวลาของความต้องการใช้ CPU หรือเวลา CPU ของแต่ละโปรเซส

  28. 3.3 การจัดเวลาตามลำดับความสำคัญ

  29. 3.3 การจัดเวลาตามลำดับความสำคัญ • การกำหนดลำดับความสำคัญของแต่ละโปรเซสสามารถกำหนดได้ทั้งภายในและภายนอก • การกำหนดภายใน หมายถึงการกำหนดลำดับความสำคัญด้วยวิธีใดวิธีการหนึ่งจากการวัดและคำนวณคุณสมบัติบางอย่างของแต่ละโปรเซสที่สามารถวัดค่าได้ เช่น - เวลาของการจำกัดการใช้ CPU - ความต้องการขนาดของหน่วยความจำ - จำนวนไฟล์ที่ต้องเกี่ยวข้อง - อัตราส่วนของจำนวนเวลา I/O ต่อเวลา CPU

  30. 3.3 การจัดเวลาตามลำดับความสำคัญ • การกำหนดจากภายนอก หมายถึงการกำหนดลำดับความสำคัญของโปรเซสใดๆ จากวีการอื่นๆ นอกเหนือจากระบบปฎิบัติการ • เช่น • ราคาค่าเช่าเวลา CPU • แหล่งที่มาของโปรเซส • ความเร่งด่วนของโปรเซส • การจัดเวลาแบบมีลำดับความสำคัญสามารถเป็นไปได้ทั้งแบบให้สิทธิก่อนหรือไม่ให้สิทธิ์ก่อนก็ได้

  31. 3.3 การจัดเวลาตามลำดับความสำคัญ ปัญหา โปรเซสที่ลำดับความสำคัญต่ำอาจจะไม่มีโอกาสได้เข้าไปใช้ CPU เลย ถ้าหากว่ามีโปรเซสที่มีลำดับความสำคัญสูงกว่าอยู่เป็นจำนวนมาก การแก้ปัญหา การเพิ่มลำดับความสำคัญให้กับโปรเซสที่ยังไม่เสร็จ ตามระยะเวลที่คอยอยู่ในคิว

  32. 3.4 การจัดเวลาแบบวนรอบ (RR) เป็นวิธีการที่คิดขึ้นเพื่อใช้กับระบบคอมพิวเตอร์แบบแบ่งเวลาโดยเฉพาะ โดยมีลักษณะการทำงานแบบ FCFS แต่ให้มีกรรมวิธีของสิทธิ์ก่อนรวมอยู่ด้วย แต่ละโปรเซสที่เข้ามาในระบบจะถูกจำกัดเวลาการเข้าไปใช้ CPU เท่าๆ กัน เรียกว่า Quantum time หรือ Time Slice ซึ่งเป็นช่วงเวลาอยู่ระหว่าง 10-100 มิลลิวินาที และคิวที่ใช้จะเป็นแบบวงกลม (Circular queue)

  33. 3.4 การจัดเวลาแบบวนรอบ (RR)

  34. 3.4 การจัดเวลาแบบวนรอบ (RR) ประสิทธิภายของการวนรอบขึ้นอยู่กับการกำหนด Wuantum time ถ้ากำหนดนานเกินไปประสิทธิภาพของการวนรอบก็จะใกล้เคียงกับแบบ FCFS แต่ถ้ากำหนด Quantum time สั้นมาก Throughput ของระบบก็จะช้าลง

  35. 3.4 การจัดเวลาแบบวนรอบ (RR)

  36. 3.5 การจัดเวลาแบบคิวหลายระดับ จะแบ่งคิวออกเป็นหลายๆ ระดับ โดยแต่ละระดับหมายถึงระดับโปรเซสที่มีความสำคัญต่างกัน ซึ่งอาจจะแบ่งตามขนาดของโปรเซส จำนวนหน่วยความจำที่ใช้ หรือจำนวน I/O ที่ใช้ โดยแต่ละคิวสามารถใช้หลักการของการจัดเวลาที่แตกต่างกันได้ด้วย เช่น -งาน Foreground หรือ Interactive จะจัดตารางแบบ RR - งาน Background หรือ Batch จะจัดตารางแบบ FCFS คิวที่อยู่ด้านบนจะมีความสำคัญเหนือกว่าคิวที่อยู่ด้านล่างถัดลงไปเสมออาจจะมีการจัดเวลาระหว่างคิวแบบ Fixed-priority preemptive scheduling หรือ Variable-priority preemptive scheduling

  37. 3.5 การจัดเวลาแบบคิวหลายระดับ

  38. 3.5 การจัดเวลาแบบคิวหลายระดับ

  39. 3.5 การจัดเวลาแบบคิวหลายระดับ สิ่งสำคัญที่ต้องคำนึงถึงในการออกแบบ Multilevel Feedback Queues • จำนวนคิว • วิธีของการจัดเวลาของแต่ละคิว • หลักเกณฑ์ในการตัดสินใจเพิ่มความสำคัญของโปรเซส • หลักเกณฑ์ในการตัดสินใจลดความสำคัญของโปรเซส • หลักเกณฑ์ในการตัดสินใจนำเอาโปรเซสที่ต้องการครอบครอง CPU มาเข้าในคิว

  40. การจัดเวลาของ Multiple-Processor (Multiple-Processor Scheduling • การออกแบบ CPU Scheduling จะซับซ้อนมากขึ้น • Processor จะต้องมีลักษณะเดียวกัน • จะต้องจัด Load ให้กับ CPU แต่ละตัวเท่าๆ กัน • การออกแบบระบบจัดการ CPU จะต้องทำอย่างระมัดระวัง

  41. 5. การจัดเวลาแบบ Real-Time (Real-Time Scheduling) • Hard real-time systems คือระบบที่สามารถทำงานใดงานหนึ่งให้เสร็จตามเวลาที่กำหนดได้ • Soft real-time computing คือระบบที่มีข้อจำกัดต่างๆ ไม่เข้มงวดเหมือน Hard real-time

More Related