1 / 55

การจัดเวลาซีพียู

บทที่ 7 (ต่อ). การจัดเวลาซีพียู. CPU Scheduling. เนื้อหา. การจัดเวลาซีพียู การจัดคิวในระยะสั้น การจัดคิวในระยะยาว ระบบหลายโปรเซสเซอร์ การทำงานของระบบหลายโปรเซสเซอร์. การจัดเวลาซีพียู (CPU Scheduling).

janet
Download Presentation

การจัดเวลาซีพียู

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. บทที่ 7 (ต่อ) การจัดเวลาซีพียู CPU Scheduling

  2. เนื้อหา • การจัดเวลาซีพียู • การจัดคิวในระยะสั้น • การจัดคิวในระยะยาว • ระบบหลายโปรเซสเซอร์ • การทำงานของระบบหลายโปรเซสเซอร์

  3. การจัดเวลาซีพียู (CPU Scheduling) • การจัดเวลา CPU เป็นหลักการทำงานหนึ่งของ OS ที่ทำให้คอมพิวเตอร์มีความสามารถในการรันโปรแกรมได้หลาย ๆ โปรแกรมในเวลาเดียวกัน • เหตุการณ์ที่ซีพียูเปลี่ยนจากการทำงานหนึ่งไปยังอีกงานหนึ่งเรียกว่าการเปลี่ยนสถานะ (context switching)

  4. การจัดเวลาซีพียู (CPU Scheduling)… ต่อ เป้าหมาย • ใช้งานซีพียูได้อย่างเต็มประสิทธิภาพ สิ่งที่ต้องคำนึง • ในระบบโปรเซสเซอร์เดียวซีพียูจะทำงานได้ครั้งละ 1 งาน • ถ้ามีหลาย ๆ งานจะต้องเกิดการรอ

  5. การจัดเวลาซีพียู (CPU Scheduling) … ต่อ • ระบบโปรแกรมเดียว • ไม่ซับซ้อน • ทำงานทีละโปรแกรมจนเสร็จกระบวนการ • ทำงานตัวเองจนเสร็จ หรือจนกระทั่งมีการรออะไรบางอย่าง เช่น I/O • การรอนี้ทำให้ซีพียูเกิดการว่างงาน อยู่เฉย (idle) ระบบหลายโปรแกรม • เสมือนกับหลายโปรแกรมดำเนินไปพร้อมกัน • จะไม่ยอมให้ซีพียูเกิดการรอ • โปรเซสใดมีการรอการใช้ อุปกรณ์ I/O จะมีการนำออกไปจากซีพียู และนำโปรเซสใหม่เข้าไปใช้งานซีพียูแทน

  6. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • การใช้สอยซีพียู (CPU Utilization) • ทรูพุต (Throughput) • เวลาทั้งหมด (Turnaround Time) • เวลารอคอย (Waiting Time) • เวลาตอบสนอง (Response Time)

  7. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • การใช้สอยซีพียู(CPU Utilization) : การใช้ประโยชน์จากซีพียูอย่างสูงสุด โดยทำให้ซีพียูมีงานทำมากที่สุดเท่าที่จะทำได้ ซีพียูควรจะถูกใช้อยู่ระหว่าง 40-90 %

  8. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • ทรูพุต (Throughput) จำนวนงานที่เสร็จต่อหน่วยเวลา

  9. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • เวลาทั้งหมด (Turnaround Time) : คือช่วงเวลาทั้งหมดที่ใช้ในการทำงานใดงานหนึ่งตั้งแต่เริ่มต้นเข้าไปในระบบ จนงานถูกทำจนเสร็จเรียบร้อย (รวมเวลาที่รอเข้าหน่วยความจำ เวลาที่คอยอยู่ในคิว เวลาที่ใช้ซีพียู และเวลาของอินพุต/เอาต์พุต)

  10. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • เวลารอคอย (Waiting Time): ช่วงเวลาที่งานใดงานหนึ่งต้องรอการทำงานของตัวจัดเวลา โดยไม่รวมเวลาของการใช้ซีพียู และเวลาของการติดต่ออินพุต/เอาต์พุตส่วนใหญ่ก็คือเวลาที่งานต้องคอยอยู่ในคิว (Ready Queue)

  11. ข้อพิจารณาในการจัดเวลาข้อพิจารณาในการจัดเวลา • เวลาตอบสนอง (Response Time) คือเวลาที่วัดระหว่างเวลาที่มีการร้องขอการกระทำใด ๆ ต่อระบบแล้วมีการตอบรับกลับออกมา (ความเร็วของเวลาตอบสนองจึงมักจะขึ้นอยู่กับอุปกรณ์อินพุต/เอาต์พุต)

  12. การจัดคิวระยะสั้น(Short-term scheduling) • ขั้นตอนนี้เป็นการคัดเลือกโปรเซสซึ่งรออยู่ในสถานะพร้อมที่เหมาะสมที่สุดให้เข้าไปอยู่ในสถานะรัน (ครอบครอง CPU) • การจัดคิวให้กับโปรเซสนั้นถือว่าเป็นหน้าที่ ของหน่วยจัดคิวในระยะสั้น (Short-term Scheduler) ซึ่งเป็นส่วนหนึ่งใน OS • สำหรับการส่งโปรเซสที่ถูกเลือกแล้วให้เข้าไปอยู่ในสถานะรัน เป็นหน้าที่ของตัวส่ง (Dispatcher) ซึ่งเป็นส่วนหนึ่งใน OS

  13. การจัดคิวระยะสั้น (Short-term scheduling) … ต่อ • การจัดคิวระยะสั้นมีดังนี้ • การจัดคิวแบบ FCFS • การจัดคิวแบบ RR • การจัดคิวแบบลำดับความสำคัญ (Priority) • การจัดคิวแบบ SJF (Short Job First) • การจัดคิวแบบ SRJ (Shortest-remaining-first) • การจัดคิวแบบหลายระดับ

  14. การจัดคิวแบบมาก่อนได้ก่อน(First-come-first-served : FCFS) … ต่อ • เป็นวิธีการที่ง่ายที่สุด • โปรเซสใดเข้ามารอในคิวก่อนจะมีสิทธิครอบครอง CPU ก่อน • โปรเซสที่ได้ครอบครอง CPU จะทำงานไปจนเสร็จ ไม่มีระยะเวลาควอนตัม • ถ้าโปรเซสมีการเรียกใช้งานอุปกรณ์อินพุต/เอาท์พุต หรือรอเหตุการณ์บางอย่าง โปรเซสนั้นต้องปลดปล่อยซีพียู และออกจากสถานะรันไปอยู่ในสถานะบล็อค • เมื่อการเรียกใช้อุปกรณ์อินพุต/เอาท์พุตเสร็จสิ้นลง หรือเกิดเหตุการณ์ที่กำลังรออยู่ โปรเซสนั้นจะกลับไปอยู่ต่อท้ายคิวของสถานะพร้อม

  15. โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 0 0+15=15 B 2 1 15 15+1=16 C 3 10 16 16+10=26 การจัดคิวแบบมาก่อนได้ก่อน(First-come-first-served : FCFS) … ต่อ ข้อดีคือการจัดคิวทำได้ง่ายไม่ยุ่งยากซับซ้อน ตัวอย่างการจัดคิวเมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU

  16. การจัดคิวแบบมาก่อนได้ก่อน(First-come-first-served : FCFS) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C แต่การใช้หลักการของการจัดลำดับความสำคัญ จะจัดคิวออกมาในลักษณะดังนี้ A B C 26 15 16 โปรเซส A ต้องรอเวลาในการประมวลผล = 0 วินาที โปรเซส B ต้องรอเวลาในการประมวลผล = 15 วินาที โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที เวลาเฉลี่ยในการรอ = (0+15+16)/3 =10.33 วินาที

  17. การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS) … ต่อ จากตัวอย่างจะพบว่าการจัดคิวแบบ FCFS เป็นผลเสียอย่างมากกับโปรเซส B คือ โปรเซส B ต้องการเวลาในการทำงานเพียง 1 วินาที แต่ต้องรอให้โปรเซส A ซึ่งเข้ามาก่อนทำงานเสร็จ เวลาเฉลี่ยในการรอ =(15+16)/3 = 10.33 วินาที ทำให้การทำงานของโปรเซส B นั้นใช้เวลา 16 วินาทีจึงจะเสร็จสิ้น เทียบเวลาในการทำงานคือ (1/16)*100 = 6 % สำหรับเวลาในการรอคือ 100-6 = 94 % ซึ่งจะเห็นว่าโปรเซส B ต้องเสียเวลารอนานมาก

  18. การจัดคิวแบบงานสั้นทำก่อน(Short-Job-first : SJF) จากปัญหาของการจัดคิวแบบมาก่อนได้ก่อน จึงทำให้เกิดแนวคิดที่จะคัดเลือกโปรเซสที่ต้องการเวลาในการทำงานน้อยที่สุดเข้ามาใช้ CPU ก่อนเพื่อทำให้ โปรเซสที่ต้องการเวลาในการทำงานน้อยจบออกไปได้เร็วขึ้น และจำนวนโปรเซสที่รออยู่ในคิวก็จะมีจำนวนลดลง แต่ถ้ามีโปรเซสหลายตัวที่มีความต้องการเวลาในการทำงานเท่ากัน ก็จะใช้หลักการแบบมาก่อนได้ก่อนมาใช้ในการคัดเลือก

  19. โปรเซส ระยะเวลาความต้องการ CPU (วินาที) A B C D 6 8 7 3 การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D

  20. D A C B การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C,D แต่การใช้หลักการของ SJF จะจัดคิวออกมาในลักษณะดังนี้ 0 3 9 16 24 เวลาเฉลี่ยในการรอ 0+3+9+16 =28/4=7 เวลาเฉลี่ยในการทำงานเสร็จ 3+9+16+24=52/4=13

  21. การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ • จากการทดลองพบว่า SJF จะให้ค่าเฉลี่ยของการคอยได้ต่ำที่สุด เพราะมีการเลื่อนโปรเซสที่มีเวลาใช้ CPU น้อยสุดมาไว้หน้าคิว • ปัญหาสำหรับการจัดคิวแบบ SJF คือตัวจัดคิวระยะสั้นไม่ทราบว่าแต่ละโปรเซสต้องการใช้เวลาเท่าใด • วิธีแก้คือ • ให้แต่ละโปรเซสกำหนดเวลาที่ต้องการในการใช้ CPU มาด้วยให้ OS สร้างโปรเซสเพื่อคำนวณเวลาโดยประมาณของแต่ละโปรเซสที่ต้องการใช้ CPU

  22. การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) วิธีนี้จะมีการจัดลำดับความสำคัญให้กับแต่ละโปรเซสที่ต้องการใช้ CPU โปรเซสที่อยู่ ณ. ต้นคิวก็จะเป็นโปรเซสที่มีความ สำคัญมากที่สุด และลดลงเรื่อย ๆ โปรเซสที่อยู่ท้ายคิวคือโปรเซสที่มีความสำคัญต่ำสุด ถ้ามีโปรเซสใหม่เข้ามาในคิว ก็จะมีการแซงคิวได้ถ้าโปรเซสที่เข้ามาใหม่มีลำดับความสำคัญสูงกว่าโปรเซสที่กำลังบรรจุอยู่ในคิว

  23. โปรเซส เวลาความต้องการ CPU (วินาที) ลำดับความสำคัญ A B C D 10 1 2 5 3 2 4 1 การจัดคิวแบบตามลำดับความสำคัญ(Priority Queue) … ต่อ ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D

  24. D B A C การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C,D แต่การใช้หลักการของการจัดลำดับความสำคัญ จะจัดคิวออกมาในลักษณะดังนี้ 0 5 6 16 18 โปรเซส B ต้องรอเวลาในการประมวลผล = 5 วินาที โปรเซส A ต้องรอเวลาในการประมวลผล = 6 วินาที โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที เวลาเฉลี่ยในการรอ = (0+5+6+16)/4 = 6.75 วินาที เวลาเฉลี่ยในการทำงานเสร็จ =(5+6+16+18)/4=11.25

  25. การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ • คำถาม • ถ้าเป็นการจัดคิวแบบ FCFS เวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จเท่ากับเท่าใด • ถ้าเป็นการจัดคิวแบบ SJFเวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จเท่ากับเท่าใด

  26. การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ • คำตอบ เวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จในการทำงานและแบบ • Priority • เวลาเฉลี่ยในการรอ =6.75 • เวลาเฉลี่ยในการทำงานเสร็จ =11.25 • FCFS • เวลาเฉลี่ยในการรอ =8.5 • เวลาเฉลี่ยในการทำงานเสร็จ =13 • SJF • เวลาเฉลี่ยในการรอ =3 • เวลาเฉลี่ยในการทำงานเสร็จ =7.5

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

  28. การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ • วิธีการพิจารณากำหนดลำดับความสำคัญของโปรเซสต่าง ๆ อาจพิจารณาได้จากองค์ประกอบต่าง ๆ เช่น • เจ้าของโปรเซส : โปรเซสที่มาจากผู้ใช้ทั่ว ๆ ไป จะมีลำดับความสำคัญต่ำกว่า โปรเซสที่มาจากผู้ควบคุมระบบ • ประเภทของโปรเซส : โปรเซสของงานในระบบแบตซ์ (Batch mode) มักมีลำดับความสำคัญต่ำกว่าโปรเซสของงานแบบตอบโต้ (Interactive mode) • ผู้ใช้ที่ยินยอมจ่ายเงินเพิ่ม • ระยะเวลาที่โปรเซสเข้ามาอยู่ในระบบ

  29. การจัดคิวแบบงานที่เหลือเวลาน้อยทำก่อน (Shortest-remaining-first : SRJ) วิธีการนี้จะคล้ายกับแบบ SJF แต่ SRJ จะนำเอาโปรเซสที่เหลือเวลาในการใช้ CPU น้อยที่สุดมาอยู่ที่ต้นคิวเพื่อเข้าไปใช้งาน CPU ก่อน วิธีการนี้จะทำให้ทั้งโปรเซสที่ต้องการเวลาในการใช้ CPU น้อย และโปรเซสที่ต้องการเวลาในการใช้ CPU มากแต่ใกล้จะจบสามารถออกจากระบบได้เร็วขึ้น วิธีการนี้นอกจากจะต้องทราบเวลาที่ต้องการใช้ CPU แล้วยังต้องมีการบันทึกเวลาที่โปรเซสทำงานไปแล้วด้วย

  30. การจัดคิวแบบวนรอบ (Round-Robin : RR) ใช้กับระบบงานคอมพิวเตอร์แบบแบ่งเวลา โดยมีลักษณะการจัดคิวเป็นแบบ FCFS แต่ให้มีกรรมวิธีของการให้สิทธิในการครอบครอง CPU ของแต่ละโปรเซส คือ “แต่ละโปรเซสที่เข้ามาในระบบจะถูกจำกัดเวลาการเข้าไปใช้ CPU เท่า ๆ กัน ”ซึ่งเรียกช่วงเวลานี้ว่า เวลาควันตัม (Quantum Time) ตัวจัดเวลาระยะสั้นจะมีการให้ CPU กับโปรเซสที่อยู่ในคิวแบบวนรอบ โดยมีกฏเกณฑ์ว่า ถ้าโปรเซสใดไม่สามารถกระทำได้สำเร็จภายใน 1 ควันตัม โปรเซสจะต้องถูกนำกลับไปไว้ในคิวเช่นเดิม สถานภาพต่าง ๆ ของโปรเซสที่ยังทำไม่เสร็จจะถูกบันทึกไว้ เมื่อถึงโอกาสได้ครอบรอง CPU อีก ก็จะได้เริ่มต้นรันต่อจากครั้งที่แล้วโดยไม่ต้องเริ่มใหม่ทั้งหมด

  31. เริ่ม สิ้นสุด รัน พร้อม บล็อก การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ

  32. การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 0 0+15=15 B 2 1 15 1+15=16 C 3 10 16 10+16=26 ตัวอย่างการจัดคิวแบบ FCFS เมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU เวลาเฉลี่ยในการรอ =(15+16)/3 = 10.33 วินาที

  33. โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 11 15+11=26 B 2 1 1 1+1=2 C 3 10 11 10+11=21 การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ ตัวอย่างการจัดคิวแบบ RR เมื่อมี 3 โปรเซส (A,B,C) ต้องการใช้ CPU โดยมีเวลาควันตัมเป็น 1 วินาที เวลาเฉลี่ยในการรอ =(11+1+11)/3 = 7.67 วินาที

  34. การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

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

  36. โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) A 1 15 B 2 1 C 3 10 การจัดคิวแบบวนรอบ(Round-Robin : RR) • คำถาม เมื่อมี 3 โปรเซส (A,B,C) ต้องการใช้ CPU แบบ RR • ถ้าเวลาควันตัมเป็น 3 วินาที เวลาเฉลี่ยในการคอย เวลาเฉลี่ยในการทำงานเสร็จ เป็นเท่าใดเวลาควันตัมเป็น 6 วินาที เวลาเฉลี่ยในการคอย และเวลาเฉลี่ยในการทำงานเสร็จ เป็นเท่าใด

  37. โปรเซส เวลา A B C D E 10 29 3 7 12 ตัวอย่าง จงหาค่าเฉลี่ยทั้ง 3 วิธี คือ FCFS, SJF และ RR เวลาควอนตัม = 10

  38. เฉลย A B C D E 0 10 39 42 49 61 FCFS เวลาในการรอ (0+10+39+42+49) / 5 = 28 เวลาเฉลี่ยในการทำงานเสร็จ (10+39+42+49+61) / 5 =40.2

  39. เฉลย SJF เวลาในการรอ (0+3+10+20+32) / 5 = 13 เวลาเฉลี่ยในการทำงานเสร็จ (3+10+20+32+61)/5 =25.5 C D A E B 0 3 10 20 32 61

  40. เฉลย RR เวลาในการรอ A=0 B=10+20+2=32 C=20 D=10+10+3 E=30+10 (0+32+20+23+40) / 5 = 23 เวลาเฉลี่ยในการทำงานเสร็จ A=0+10=10 B=32+29=61 C=20+3=23 D=23+7=30 E=40+12=52 (10+61+23+30+52)/5=35.2 A B C D E B E B 0 10 20 23 30 40 50 52 61

  41. CPU A B C การจัดคิวแบบหลายระดับ การจัดคิวดังที่กล่าวมาแล้วทั้งสิ้นเป็นการจัดคิวภายในคิวเพียง 1 คิว เรียกว่าการจัดคิวแบบ 1 ระดับดังรูป เพื่อให้การจัดคิวเป็นไปอย่างมีประสิทธิภาพมากขึ้น เราจึงจัดให้มีคิวหลาย ๆ คิวแทนที่จะมีเพียงคิวเดียว เรียกว่าเป็นการจัดคิวแบบหลายระดับ

  42. การจัดคิวแบบหลายระดับ … ต่อ • การจัดคิวแบบหลายระดับนั้น แต่ละคิวไม่จำเป็นเป็นต้องเป็นประเภทเดียวกัน • การคัดเลือกโปรเซสนั้นจะคัดเลือกจากคิวที่ 1 ก่อนจนกระทั่งโปรเซสภายในคิวที่ 1 ทำงานเสร็จทั้งหมด แล้วจึงคัดเลือกโปรเซสในคิวลำดับถัดไป • โปรเซสที่มีความสำคัญมาก มักจะอยู่ในคิวระดับแรก โปรเซสที่มีลำดับความสำคัญน้อยลงไปก็จะอยู่ในคิวระดับหลัง • โปรเซสประเภทเดียวกันมักอยู่ในคิวระดับเดียวกัน

  43. An A2 A1 Bn B2 B1 Cn C2 C1 การจัดคิวแบบหลายระดับ … ต่อ CPU คิวที่n RR Queue คิวที่ 2 FCFS Queue คิวที่ 1 Priority Queue

  44. การจัดคิวแบบหลายระดับ … ต่อ System processes queue Interactive processes queue Interactive processes queue Batch 14 processes queue Student processes queue

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

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

  47. ระบบหลายโปรเซสเซอร์ (Multi-processor System) • หมายถึงระบบที่มี CPU หลายตัวช่วยกันทำงานดังนั้นโปรเซสเซอร์ในที่นี้หมายถึง CPU นั่นเอง • การจัดระบบคอมพิวเตอร์ตามการทำงานของโปรเซสเซอร์ เราสามารถแบ่งได้ 4 ประเภทดังนี้ • คำสั่งเดี่ยวและข้อมูลเดี่ยว ( Single Instruction Single Data : SISD ) • คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) • หลายชุดคำสั่งและข้อมูลเดี่ยว ( Multiple Instruction Single Data : MISD ) • หลายชุดคำสั่งและหลายชุดข้อมูล ( Multiple Instruction Multiple Data : MIMD )

  48. I P D O คำสั่งเดี่ยวและข้อมูลเดี่ยว( Single Instruction Single Data : SISD ) คอมพิวเตอร์ที่ใช้งานทั่วไปในปัจจุบันจะเป็นประเภท SISD ระบบคอมพิวเตอร์ประเภทนี้มีโปรเซสเซอร์อยู่เพียงตัวเดียว การทำงานของโปรเซสเซอร์ในระบบนี้จะทำงานได้ทีละ 1 คำสั่งและรับข้อมูลได้ 1 ชุด P (Processor) แทนโปรเซสเซอร์ I (Instruction) แทนคำสั่ง D (Data) แทนข้อมูล และ O (Output) แทนผลลัพธ์

  49. คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน หรือที่เรียกว่าทำงานขนานกัน (parallel processing)โปรเซสเซอร์ทุกตัวทำคำสั่งเดียวกันหมด แต่มีข้อมูลเป็นของตนเอง ดังนั้นผลลัพธ์ที่ได้จึงมีหลายชุด

  50. คำสั่งเดี่ยวและหลายชุดข้อมูล( Single Instruction Multiple Data : SIMD) … ต่อ I P1 P2 P3 Pn D1 D2 D3 Dn O1 O2 O3 On

More Related