1 / 70

CPU Scheduling

Advanced Operating System Operating System Technology. การจัดลำดับงานของหน่วยประมวลผลกลาง. CPU Scheduling. CPU Scheduling. เนื้อหา. - แนวคิดพื้นฐาน (Basic Concepts) - เกณฑ์การจัดตารางเวลาการทำงาน (Scheduling Criteria) วิธีการจัดตารางเวลาการทำงาน (Scheduling Algorithms)

leo-pace
Download Presentation

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. Advanced Operating System Operating System Technology การจัดลำดับงานของหน่วยประมวลผลกลาง CPU Scheduling

  2. CPU Scheduling เนื้อหา • - แนวคิดพื้นฐาน(Basic Concepts) • - เกณฑ์การจัดตารางเวลาการทำงาน(Scheduling Criteria) • วิธีการจัดตารางเวลาการทำงาน(Scheduling Algorithms) • การจัดตารางการทำงานแบบคิว (Queue Scheduling) • - การจัดตารางงานของมัลติโปรเซสเซอร์ หรือหน่วยประมวลผลแบบหลายตัว(Multiple-Processor Scheduling) • - การจัดตารางงานแบบเรียลไทม์(Real-Time CPU Scheduling) • - การประเมินวิธีการ(Algorithm Evaluation)

  3. Basic Concepts • - เป็นหลักการพื้นฐานสำหรับระบบปฏิบัติการแบบ Multiprogrammed • จุดประสงค์ของการรันโปรแกรมหลายโปรแกรมคือ ความต้องการที่จะให้ซีพียูมีการทำงานตลอดเวลาเพื่อให้มีการใช้ซีพียูอย่างเต็มที่และเต็มประสิทธิภาพ • ใช้เวลาให้คุ้มค่า กระบวนการหลายๆ กระบวนการถูกเก็บในหน่วยความจำครั้งเดียว • เมื่อมีกระบวนการรอ ระบบจะสับเปลี่ยนหน่วยประมวลผลกลางให้อีกกระบวนการหนึ่งแทน

  4. Basic Concepts ช่วงประมวลผล/ช่วงรับส่งข้อมูล • การจัดตารางการทำงานที่ดี ต้องทราบลักษณะการทำงานของกระบวนการ • กระบวนการทั่วไปจะทำงานเป็นวงจรคือ ทำงานในหน่วยประมวลผลและรอคอย การรับ-ส่งข้อมูลจากอุปกรณ์สลับกันไป • โดยเริ่มต้นที่ทำงานในหน่วยประมวลผลก่อนเรียกว่า ช่วงประมวลผล (CPU-burst) แล้วก็จะหยุดเพื่อทำงานในอุปกรณ์รับ-ส่งข้อมูลเรียกว่า ช่วงรับส่งข้อมูล (I/O burst) แล้วตามด้วยช่วงประมวลผลอีกสลับกันไปจนสิ้นสุดกระบวนการ • ควรกระจายการดำเนินการหน่วยประมวลผลให้เท่าเทียมกัน

  5. Alternating Sequence of CPU And I/O Bursts

  6. Histogram of CPU-burst Times

  7. ตัวจัดตารางการทำงานของหน่วยประมวลผลกลางตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง (CPU Scheduler ) • ผู้เลือกกระบวนการในแถวพร้อม (ready queue) เพื่อเข้าไปใช้งานหน่วยประมวลผลกลาง • ใช้ตัวจัดตารางระยะสั้นหรือตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง

  8. ตัวจัดตารางการทำงานของหน่วยประมวลผลกลางตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง (CPU Scheduler ) • ตัวจัดตารางการทำงานระยะสั้น (short–term scheduler)จะเลือกโปรเซสที่อยู่ในคิวที่พร้อมในการประมวลผล เพื่อให้ครอบครองเวลาซีพียูและทรัพยากรที่เกี่ยวข้องกับโปรเซสนั้น • อย่างไรก็ตามโปรเซสทุกโปรเซสที่พร้อมใช้ซีพียู จะต้องมีโอกาสได้เข้าครอบครองเวลาซีพียูไม่เวลาใดก็เวลาหนึ่ง • การเข้าและออกจากการครอบครองเวลาซีพียูแต่ละครั้ง จำเป็นต้องมีการเก็บข้อมูลไว้เสมอว่าเข้ามาทำอะไร ต่อไปจะทำอะไร

  9. การจัดตารางการทำงานของหน่วยประมวลผลกลางการจัดตารางการทำงานของหน่วยประมวลผลกลาง • การตัดสินใจในการจัดตารางการทำงานหน่วยประมวลผลกลางก่อนหลัง เกิดขึ้นเมื่อโปรเซสมีเหตุการณ์ดังต่อไปนี้ • 1) เมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงาน (running)ไปเป็นสถานะการรอคอย (waiting) • 2) เมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงาน (running) ไปเป็นสถานะพร้อมที่จะเข้าทำงาน (ready) • 3) เมื่อเกิดการเปลี่ยนแปลงสถานะจากรอคอย(waiting)ไปเป็นสถานะพร้อม (ready) • 4) เมื่อโปรเซสสิ้นสุดการทำงาน

  10. การจัดลำดับการทำงานของหน่วยประมวลผลกลางการจัดลำดับการทำงานของหน่วยประมวลผลกลาง • การจัดลำดับการทำงานเหตุการณ์แบบ 1)และแบบ 4) เรียกว่า แบบไม่ให้แทรกกลางคัน(non-preemptive) ระบบจะต้องเลือกกระบวนการเข้ามาทำงานไม่คำนึงถึงลำดับความสำคัญของกระบวนการ • การจัดลำดับการทำงานแบบอื่นๆ เป็นแบบให้แทรกกลางคัน(preemptive) หรือคำนึงถึงความสำคัญของกระบวนการ • ก่อให้เกิดค่าใช้จ่ายกรณีมีการแชร์ข้อมูลกันระหว่างสองกระบวนการ ต้องมีกลไกประสานการทำงาน

  11. การจัดตารางแบบให้แทรกกลางคัน (Preemptive Scheduling) • การจัดเวลาแบบให้สิทธิ์ก่อนนั้นมีผลกระทบต่อการออกแบบ Kernel ของระบบปฏิบัติการเป็นอย่างมาก • ในระหว่างการเกิด system call นั้น Kernel อาจจะยังไม่ว่าง อาจจะกำลังทำงานในการจัดคิวโปรเซสอยู่ • UNIX และบางระบบปฏิบัติการมีการแก้ปัญหานี้ • ให้ System call สิ้นสุดเอง หรือไม่ก็คอยจนกว่าจะมีการบล็อกการทำงานของอินพุต/เอาต์พุตเกิดขึ้น แล้วจึงมีการทำสลับการทำงาน

  12. การจัดตารางแบบไม่ให้แทรกกลางคันการจัดตารางแบบไม่ให้แทรกกลางคัน (Non-Preemptive Scheduling) • เมื่อกระบวนการได้ใช้หน่วยประมวลผลกลางแล้ว กระบวนการสามารถใช้จนกระทั่งกระบวนการสิ้นสุดหรือเปลี่ยนเป็นสถานะรอคอย จึงจะคืนหน่วยประมวลผลกลางกลับให้แก่ระบบ • วิธีนี้ใช้ใน Window 3.1 และ Macintosh

  13. ตัวจัดการการทำงานของระบบ (Dispatcher) • - ให้การควบคุมการทำงานของหน่วยประมวลผลกลาง กับโปรเซสที่ถูกเลือกจากตัวจัดตารางระยะสั้นเกี่ยวกับ • - สลับสภาวะการทำงาน (context switch) • - สลับการทำงานไปสู่โหมดผู้ใช้งาน (user mode) • - ย้ายไปยังพื้นที่ในการทำงานของโปรแกรมผู้ใช้งานนั้นๆ • Dispatch latency หมายถึง เวลาที่ตัวจัดการการทำงานหยุดกระบวนการหนึ่งและเริ่มต้นการทำงานอีกกระบวนการหนึ่ง

  14. เกณฑ์การจัดตารางเวลาการทำงาน (Scheduling Criteria) • - การใช้งานหน่วยประมวลผลกลางให้เกิดประโยชน์สูงสุด (CPU utilization) หมายถึงการทำให้หน่วยประผลกลางถูกทำงานหรือใช้งานได้เต็มประสิทธิภาพมากสุด • - ผลสัมฤทธิ์ (Throughput) หมายถึง จำนวนโปรเซสที่สามารถทำงานเสร็จสิ้นหรือประมวลผลเสร็จสิ้นต่อหนึ่งหน่วยเวลา • - เวลารอบงาน (Turnaround time) หมายถึงเวลาที่แต่ละโปรเซสใช้ในการประมวลผล • - เวลารอคอย (Waiting time) หมายถึงเวลาที่โปรเซสต้องรอคอยอยู่ในคิวที่พร้อมจะเข้าทำงาน • เวลาในการตอบสนอง (Response time) หมายถึงเวลาทั้งสิ้นที่ใช้ไปนับตั้งแต่คำสั่งร้องขอเกิดขึ้นจนกระทั่งเกิดการตอบสนองต่อคำสั่งร้องขอนั้น

  15. เกณฑ์ในการทำให้เกิดประสิทธิภาพสูงสุด (Optimization Criteria) • - การใช้งานหน่วยประมวลผลให้เต็มประสิทธิภาพมากที่สุด Max CPU utilization • - ทำให้เกิดผลสัมฤทธิ์ในการทำงานสูงสุด Max throughput • - ลดระยะรอบเวลาการทำงานให้น้อยที่สุด Min turnaround time • - ลดระยะเวลาการรอคอยให้น้อยที่สุด Min waiting time • - ลดระยะเวลาในการตอบสนองให้น้อยที่สุด Min response time

  16. เกณฑ์ในการทำให้เกิดประสิทธิภาพสูงสุด (Optimization Criteria) • สิ่งที่ผู้ออกแบบระบบการจัดตารางเวลาต้องการคือ การทำให้เวลาการทำงานสั้นที่สุดนั่นเอง • ในความเป็นจริง • เราไม่สามารถที่จะได้ระบบที่สามารถทำให้มีการใช้ซีพียูได้สูงสุด โดยที่มีทรูพุตมากที่สุด มีเวลารวมเร็วที่สุด และได้เวลาตอบสนองเร็วที่สุดได้พร้อมๆ กัน • ดังนั้นการหาจุดพอดีจากค่าเฉลี่ยของคุณสมบัติแต่ละชนิดจึงมีความจำเป็น ซึ่งบางครั้งอาจจะต้องมีการกำหนดจุดที่ยอมรับได้ไว้ที่จุดใดจุดหนึ่ง ถ้าหากว่าไม่สามารถหาค่าเฉลี่ยได้

  17. วิธีการจัดตารางเวลาการทำงาน (Scheduling Algorithms) • การจัดตารางการทำงานแบบมาก่อนให้บริการก่อน (First-Come, First-Served Scheduling; FCFS) • การจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อน(Shortest-Job-First Scheduling; SJF) • การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ (Priority Scheduling) • การจัดตารางการทำงานแบบวนรอบ (Round Robin Scheduling; RR)

  18. การจัดตารางการทำงานแบบมาก่อนให้บริการก่อนการจัดตารางการทำงานแบบมาก่อนให้บริการก่อน First-Come, First-Served Scheduling (FCFS) • โปรเซสใดที่ร้องขอใช้ซีพียูก่อนก็จะได้รับการจัดสรรให้ครอบครองเวลาซีพียูก่อน • ผลเสียของอัลกอริทึมนี้คือค่าเฉลี่ยของการคอยในคิวแบบมาก่อนได้ก่อนนี้ค่อนข้างจะสูง

  19. First- Come, First-Served (FCFS) Scheduling ProcessBurst Time P1 24 P2 3 P3 3 • Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is: • Waiting time for P1 = 0; P2 = 24; P3 = 27 • Average waiting time: (0 + 24 + 27)/3 = 17

  20. First- Come, First-Served (FCFS) Scheduling Suppose that the processes arrive in the order: P2 , P3 , P1 • The Gantt chart for the schedule is: • Waiting time for P1 = 6;P2 = 0; P3 = 3 • Average waiting time: (6 + 0 + 3)/3 = 3 • Much better than previous case

  21. First- Come, First-Served (FCFS) Scheduling • เกิดปัญหา Convoy effect หมายถึง ต้องรอกระบวนการใหญ่เพียงกระบวนการเดียวใช้งานเสร็จแล้วจึงปล่อยหน่วยประมวลผลคืนสู่ระบบ • ประสิทธิผลในการทำงานของหน่วยประมวลผลและอุปกรณ์ต่ำลง • เป็นการทำงานที่ไม่สามารถแทรกกลางคันได้

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

  23. การจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อนการจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อน Shortest-Job-First Scheduling (SJF) • - การทำงานด้วยวิธีนี้สามารถช่วยลดระยะเวลาในการรอคอยของแต่ละโปรเซสโดยรวมเฉลี่ยลดลง • ความยากคือ จะต้องทราบเวลาของการร้องขอใช้งาน CPU โปรเซสต่อไป

  24. Example of SJF ProcessBurst Time P16 P2 8 P37 P43 • SJF scheduling chart • Average waiting time = (3 + 16 + 9 + 0) / 4 = 7

  25. Example of Shortest-remaining-time-first • Now we add the concepts of varying arrival times and preemption to the analysis ProcessArrival TimeBurst Time P10 8 P2 1 4 P32 9 P43 5 • Preemptive SJF Gantt Chart • Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec

  26. การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญการจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling • จำนวนของระดับความสำคัญ เป็นจำนวนเต็ม (integer) จะสัมพันธ์กับแต่ละโปรเซส โปรเซสที่เข้าใช้งานหน่วยประมวลผลจะต้องมีระดับความสำคัญสูงสุด คือ ค่า Integer น้อยสุด • ถ้ามีงานที่มีลำดับความสำคัญเท่ากัน ก็จะมีการนำเอามาก่อนได้ก่อน FCFSมาใช้ • Preemptive จะแทรกได้ต่อเมื่อ กระบวนการที่เข้ามาใหม่มีความสำคัญสูงกว่ากระบวนการเดิม • Non-preemptive จะนำกระบวนการใหม่ไปไว้ที่หัวแถวของ ready queue แทน

  27. การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญการจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling • ปัญหาคือ โปรเซสที่ระดับความสำคัญต่ำสุดอาจไม่ได้รับการประมวลผลหรือไม่ถูกเอ็กซ์ซีคิวท์เลยเรียก ปัญหาการแช่เย็น(Starvation) หรือรอคอยชั่วนิรันดร์ • กระบวนการที่ความสำคัญสูงเข้ามาเรื่อยๆ จนความสำคัญต่ำไม่ได้ทำงานเลย • อาจจะได้ทำงานเมื่องานในระบบน้อยลง • ระบบทำงานไปจนเสียและงานนั้นๆ ก็จะสาบสูญไป เช่น ระบบ Rumor บนเครื่อง IBM 9074 ที่ MIT ปี 1973 • - แก้ปัญหาโดยการกำหนดให้เวลาที่สูญเสียในการรอคอยจะไปเพิ่มระดับความสำคัญของโปรเซสนั้นให้มากขึ้น(Aging)

  28. การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญการจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling • เช่น สมมติว่าเรามีการออกแบบให้มีลำดับความสำคัญจาก 0-127 ขั้น เราอาจจะเพิ่มอัลกอริทึมพิเศษลงไปว่า • ถ้าโปรเซสใดคอยครบ 15 นาที ก็ให้ลดตัวเลขลำดับขั้นลงทีละขั้น และจะลดลงไปเรื่อย ๆ ทุก ๆ 15 นาที • แม้โปรเซสที่เข้ามาในระบบมีลำดับความสำคัญต่ำสุดที่ 127 ก็จะมีโอกาสเข้าไปใช้ซีพียูภายในเวลาไม่เกิน 32 ชั่วโมง เพราะในที่สุดโปรเซสนี้ก็จะมีลำดับความสำคัญเท่ากับ 0

  29. Example of Priority Scheduling ProcessBurst TimePriority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 • Priority scheduling Gantt Chart • Average waiting time = (0 + 1 + 6 + 16 + 18) / 5 = 8.2 msec

  30. การจัดตารางการทำงานแบบวนรอบ (Round RobinScheduling; RR) • กำหนดให้แต่ละโปรเซสได้รับเวลาในการประมวลผลหรือเวลาที่สามารถเข้าใช้หน่วยประมวลผลระยะสั้นๆ เท่าๆ กัน เรียกว่าส่วนแบ่งเวลา (time quantum, q) • ประมาณ 10 – 100 มิลลิวินาที • เมื่อแต่ละโปรเซสใช้เวลาที่ตนเองได้รับหมดไป โปรเซสนั้นก็จะต้องหยุดทำงานและถูกย้ายกลับเข้าไปอยู่ยังลำดับสุดท้ายของคิวพร้อมทำงานเพื่อการรอคอยเข้าทำงานอีกครั้ง วนรอบเช่นนี้จนจบการทำงาน • ไม่มีกระบวนการใดได้รับช่วงเวลาทำงานมากกว่า 1 ส่วนแบ่งเวลา

  31. การจัดตารางการทำงานแบบวนรอบ (Round Robin; RR) • ถ้ามี • จำนวนโปรเซส (n) อยู่ในคิวพร้อมทำงาน • ส่วนแบ่งเวลา (q) • แต่ละโปรเซสจะได้เวลาเพื่อการเข้าใช้งานหน่วยประมวลผลเป็น 1/n ของเวลาที่หน่วยประมวลผลสามารถประมวลผลในหนึ่งช่วงเวลา • ดังนั้นจึงไม่มีโปรเซสใดที่จะต้องรอนานเกินกว่า(n-1)q หน่วยเวลา • เช่น ถ้ามีโปรเซส 5 โปรเซส และระยะเวลาควันตัมคือ 20 วินาที แต่ละโปรเซสจะต้องคอยในคิวโดยเฉลี่ยประมาณไม่เกิน 80 วินาที เพราะว่าการคอยอาจจะน้อยกว่านี้ ถ้าหากว่ามีโปรเซสใด ๆ สามารถทำงานเสร็จโดยใช้เวลาน้อยกว่าเวลาควันตัมนั่นเอง

  32. Example of RR with Time Quantum = 4 ProcessBurst Time P1 24 P2 3 P3 3 • The Gantt chart is: [(10-4)+4+7] / 3 = 17/3 = 5.67 วินาที

  33. การจัดตารางการทำงานแบบวนรอบ ( Round Robin; RR ) • - ประสิทธิผลขึ้นอยู่กับ • - q มีขนาดใหญ่  FCFS • q ที่มีขนาดเล็ก เป็นการแบ่งปันการประมวลผลซึ่งมี Overhead สูง

  34. เวลาควอนตัม กับเวลาในการสลับสภาพแวดล้อม Time Quantum and Context Switch Time

  35. การจัดตารางการทำงานแบบวนรอบ (RR : Round-Robin Scheduling) • ประสิทธิภาพของการวนรอบขึ้นอยู่กับการกำหนดขนาดของควันตัม • ถ้าขนาดของควันตัมใหญ่หรือนานเกินไป ประสิทธิภาพของการวนรอบก็จะใกล้เคียงกับแบบมาก่อนได้ก่อน • ถ้าขนาดของควันตัมเล็กมากเกินไป ทรูพุต (throughput) ของระบบก็จะช้าลง เนื่องจากการสลับโปรเซสเข้าและออกจากการครอบครองซีพียู จะต้องเสียเวลาบางส่วนในการทำ Dispatcher • ถ้าขนาดของควันตัมเล็กใกล้เคียงกับเวลาของ Dispatcher เวลาของระบบรวมก็จะหมดไปกับการสลับโปรเซส(Context Switch) นั่นเอง

  36. การจัดตารางการทำงานแบบคิว (Queue Scheduling) • การจัดตารางการทำงานของคิวแบบหลายระดับ (Multilevel Queue Scheduling) • การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ (Multilevel Feedback Queue Scheduling)

  37. การจัดลำดับการทำงานของคิวแบบหลายระดับการจัดลำดับการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling • เป็นการจัดเวลาของซีพียูอีกแบบหนึ่งสำหรับระบบที่สามารถแบ่งระดับชั้นของงานได้อย่างชัดเจน • งานในคิวพร้อมทำงานแบ่งได้เป็น • งานที่เป็น Foregroundหรืองานโต้ตอบ(Interactive) กับงานที่เป็นBackgroundหรือแบบกลุ่ม (Batch) • งานทั้งสองแบบนี้ต้องการเวลาตอบสนอง (Response time)ที่แตกต่างกัน ซึ่งสามารถใช้ระบบการจัดเวลาที่แตกต่างกันได้

  38. การจัดตารางการทำงานของคิวแบบหลายระดับการจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling • ใช้วิธีแบ่งคิวออกเป็นหลาย ๆ ระดับโดยที่แต่ละระดับหมายถึงระดับโปรเซสที่มีความสำคัญแตกต่างกัน • การแบ่งระดับความสำคัญของโปรเซสนั้น สามารถแบ่งได้หลายลักษณะ เช่นแบ่งตามขนาดโปรเซส, จำนวนหน่วยความจำที่ต้องใช้ หรือจำนวนอินพุต/เอาต์พุตเป็นต้น • แต่ละคิวยังสามารถใช้หลักการจัดเวลาที่แตกต่างกันได้ด้วย เช่น งานที่Foreground ก็อาจใช้การจัดตารางแบบวนรอบ ส่วนงานที่เป็นแบบBackground ก็อาจใช้แบบมาก่อนได้ก่อน ก็ได้

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

  40. การจัดตารางการทำงานของคิวแบบหลายระดับการจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling • เพื่อป้องกันไม่ให้โปรเซสที่อยู่ในคิวต่ำต้องคอยอยู่นานเกินไป หรืออาจจะไม่มีโอกาสได้เข้าไปใช้ซีพียูเลย เพราะว่าในคิวบน ๆ ไม่เคยว่างเลย • ต้องมีการกำหนดสัดส่วนเวลาให้กับแต่ละคิวในการทำงานเข้าไปใช้ซีพียู เช่น การกำหนดให้เวลา 80 เปอร์เซ็นต์เป็นของโปรเซสที่เป็น Foreground และอีก 20 เปอร์เซ็นต์เป็นของงานBackground เป็นต้น

  41. การจัดตารางการทำงานของคิวแบบหลายระดับการจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling

  42. การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling • - โปรเซสสามารถเคลื่อนย้ายระหว่างคิวต่าง ๆ กัน(สามารถใช้ได้ในการทำ Aging) • - ตัวจัดตารางการทำงานของคิวผลตอบกลับหลายระดับถูกกำหนดโดยพารามิเตอร์ต่าง ๆ ดังต่อไปนี้ • - จำนวนของคิว • - อัลกอริธึมในการจัดตารางการทำงานของแต่ละคิว • - เกณฑ์ในการตัดสินเมื่อมีการปรับระดับกระบวนการ • - เกณฑ์ในการตัดสินเมื่อมีการลดระดับกระบวนการ • - เกณฑ์ในการตัดสินเลือกกระบวนการที่ต้องการครอบครองซีพียูเข้าสู่คิว

  43. การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling • โปรเซสในแต่ละคิว สามารถมีการเลื่อนชั้นระดับความสำคัญขึ้นหรือลงได้ • อาจจะต้องเสียเวลาเพิ่ม ในการคำนวณหาระดับความสำคัญใหม่ให้กับโปรเซส

  44. การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling • ส่วนมากจะแบ่งระดับความสำคัญตามระยะเวลาของเวลาซีพียู • เช่นเมื่อซีพียูทำงานนานขึ้นก็อาจจะถูกลดชั้นลงมาสู่คิวที่มีลำดับความสำคัญต่ำได้ ซึ่งจะทำให้โปรเซสที่มีการใช้ซีพียูน้อยแต่มีอินพุต/เอาต์พุตหรืออินเทอร์แอ็กทีฟมาก ๆ มีโอกาสเข้าไปอยู่ในคิวที่มีความสำคัญมากได้ • วิธีนี้ยังเป็นการป้องกันไม่ให้มีโปรเซสที่มีความสำคัญน้อยถูกดองอยู่ในคิว เพราะโปรเซสที่อยู่ในคิวที่ต่ำก็สามารถเลื่อนขึ้นไปสู่คิวที่สูงขึ้นถ้าคอยอยู่นานเกินไป

  45. ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue Scheduling

  46. ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue • ระบบมี 3 คิว: • - Q 0 – time quantum 8 milliseconds • - Q 1 – time quantum 16 milliseconds • - Q 2 – FCFS • การจัดลำดับการทำงาน • เมื่อเกิดงานใหม่ขึ้นเข้าไปอยู่ในคิว q0 • เมื่อสามารถเข้าใช้งานหน่วยประมวลผล งานนั้นจะได้รับเวลาในการทำงาน 8 มิลลิวินาที • หากงานนั้นไม่สามารถดำเนินการให้เสร็จสิ้นภายในระยะเวลา 8 มิลลิวินาที งานนั้นจะถูกเคลื่อนย้ายไปยัง q1

  47. ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue Scheduling • ใน q1 งานนั้นจะได้รับเวลาในการทำงานเพิ่มขึ้นเป็น 16 มิลลิวินาที • หากยังคงไม่สามารถดำเนินการให้เสร็จสิ้นอีก ก็จะถูกทำการเพิ่มระดับและเคลื่อนย้ายเข้าสู่ คิว q2 ต่อไป • ใน q2 กระบวนการจะได้ทำงานก็ต่อเมื่อ q0 และ q1 ว่าง

  48. Thread Scheduling • Distinction between user-level and kernel-level threads • When threads supported, threads scheduled, not processes • Many-to-one and many-to-many models, thread library schedules user-level threads to run on LWP • Known as process-contention scope (PCS) since scheduling competition is within the process • Typically done via priority set by programmer • Kernel thread scheduled onto available CPU is system-contention scope (SCS) – competition among all threads in system

  49. Pthread Scheduling • API allows specifying either PCS or SCS during thread creation • PTHREAD_SCOPE_PROCESS schedules threads using PCS scheduling • PTHREAD_SCOPE_SYSTEM schedules threads using SCS scheduling • Can be limited by OS – Linux and Mac OS X only allow PTHREAD_SCOPE_SYSTEM

  50. การจัดตารางการทำงานแบบหน่วยประมวลผลหลายหน่วยการจัดตารางการทำงานแบบหน่วยประมวลผลหลายหน่วย Multiple-Processor Scheduling • CPU scheduling more complex when multiple CPUs are available • Homogeneousprocessorswithin a multiprocessor • Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing • Symmetric multiprocessing (SMP) – each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes • Currently, most common

More Related