งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 3 การจัดเวลาซีพียู CPU Scheduling.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 3 การจัดเวลาซีพียู CPU Scheduling."— ใบสำเนางานนำเสนอ:

1 บทที่ 3 การจัดเวลาซีพียู 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) : การใช้ประโยชน์จากซีพียูอย่างสูงสุด โดยทำให้ซีพียูมีงานทำมากที่สุดเท่าที่จะทำได้ ซีพียูควรจะถูกใช้อยู่ระหว่าง %

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 การจัดคิวแบบลำดับความสำคัญ การจัดคิวแบบ SJN การจัดคิวแบบ SRT การจัดคิวแบบหลายระดับ

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

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

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

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

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

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

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

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

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

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

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

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

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

34 การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ
A B C

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

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

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

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

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

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

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

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

43 การจัดคิวแบบหลายระดับ … ต่อ
CPU An Bn Cn คิวที่ n RR Queue A2 B2 C2 คิวที่ 2 FCFS Queue A1 B1 C1 คิวที่ 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 คำสั่งเดี่ยวและข้อมูลเดี่ยว ( Single Instruction Single Data : SISD )
ระบบคอมพิวเตอร์ประเภทนี้มีโปรเซสเซอร์อยู่เพียงตัวเดียว การทำงานของโปรเซสเซอร์ในระบบนี้จะทำงานได้ทีละ 1 คำสั่งและรับข้อมูลได้ 1 ชุด P (Processor) แทนโปรเซสเซอร์ I (Instruction) แทนคำสั่ง D (Data) แทนข้อมูล และ O (Output) แทนผลลัพธ์ P D I O

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

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

51 คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) … ต่อ
เช่น X1 X2 X3 X4 X5 Y1 Y2 Y3 Y4 Y5 + X1+Y1 x2+Y2 x3+Y3 x4+Y4 x5+Y5 =

52 หลายชุดคำสั่งและข้อมูลเดี่ยว (Multiple Instruction Single Data : MISD )
การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน หรือที่เรียกว่าทำงานขนานกัน (parallel processing) โดยโปรเซสเซอร์ทุกตัวจะมีคำสั่งของตนเอง แต่ทุกตัวจะใช้ข้อมูลชุดเดียวกัน P1 D O1 P2 O2 P3 I1 O3 Pn On I2 I3 In

53 หลายชุดคำสั่งและข้อมูลเดี่ยว (Multiple Instruction Single Data : MISD) … ต่อ
เมื่อโปรเซสเซอร์ตัวแรกทำงานเสร็จ ผลลัพธ์ที่ได้จะเป็นข้อมูลของโปรเซสเซอร์ตัวต่อไป เช่นถ้าในระบบ MISD หาค่าจากสมการนี้ y = 2*X2+4 โดยที่ x มีค่าระหว่าง 1 ถึง 5 จากตัวอย่างพบว่ามี 3 คำสั่ง หาค่า X ยกกำลัง 2 คูณผลลัพธ์จากข้อแรก ด้วย 2 เพิ่มค่าผลลัพธ์ที่ได้จากข้อ 2 ด้วย 4

54 หลายชุดคำสั่งและหลายชุดข้อมูล (Multiple Instruction Multiple Data : MIMD )
การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกันและโปรเซสเซอร์แต่ละตัวจะมีคำสั่งและข้อมูลเป็นของตนเอง ดังนั้นในการทำงานแต่ละโปรเซสเซอร์จะเป็นอิสระจากกัน ตัวอย่างระบบคอมพิวเตอร์ประเภท MIMD ที่เห็นได้ชัดเจนคือระบบเครือข่ายคอมพิวเตอร์ (Computer Network)

55 หลายชุดคำสั่งและหลายชุดข้อมูล (Multiple Instruction Multiple Data : MIMD) … ต่อ
Pn D1 D2 D3 Dn O1 O2 O3 On

56 Question & Answer

57 การบ้าน ชุด 1 จงหาค่าเฉลี่ยในการรอและและทำงานเสร็จทั้ง 3 วิธี คือ FCFS, ตามลำดับความสำคัญ, SJF และ RR เวลาควอนตัม = 2 process เวลาใช้ CPU ลำดับความสำคัญ R 2 3 W 7 5 X 18 1 Y 14 Z 10 4

58 เวลาเฉลี่ยในการทำงานเสร็จ = 33.2
เฉลยคำตอบแบบ RR เวลาเฉลี่ยในการรอ = 23 เวลาเฉลี่ยในการทำงานเสร็จ = 33.2

59 การบ้าน ชุด 2 1.จงอธิบายข้อดีของรูปแบบการทำงานแบบ SJF
2. จงอธิบายข้อดีข้อเสียของรูปแบบการทำงานแบบ RR 3. จงอธิบายข้อเสียของรูปแบบการทำงานแบบลำดับความสำคัญ 4. การจัดคิวรูปแบบใดมีการใช้เวลาควันตัม 5. Short-term Scheduler ทำหน้าที่อย่างไร 6. ตัวจัดคิวระยะสั้นกับระยะยาวแตกต่างกันอย่างไร 7. การบวกเมตริกซ์ ใช้รูปแบบ processor แบบใด 8. ลักษณะการจัดคิวแบบใดมีค่าเฉลี่ยในการรอน้อยที่สุด 9. ระยะเวลาที่โปรเซสทำงานเสร็จมีหลักการคำนวณอย่างไร 10. ตัวส่ง Dispatcher ทำหน้าที่อย่างไร


ดาวน์โหลด ppt บทที่ 3 การจัดเวลาซีพียู CPU Scheduling.

งานนำเสนอที่คล้ายกัน


Ads by Google