chapter 3 : cpu schedule

34
อ.อออออออ อออออออออ Chapter 3 : CPU Schedule Chapter 3 : CPU Schedule Computer Operating System ออออออออออออออ อออออออออออ

Upload: phoebe

Post on 05-Jan-2016

35 views

Category:

Documents


1 download

DESCRIPTION

Chapter 3 : CPU Schedule. Computer Operating System ระบบปฏิบัติการคอมพิวเตอร์. วัตถุประสงค์. 2. 1. หลักความต้องการพื้นฐาน 2. ข้อพิจารณาในการจัดเวลา 3. อัลกอริธึมในการจัดเวลา ( Scheduling algorithm) 4. การจัดคิวแบบมัลติเพิลโปรเซสเซอร์ ( Multiple – Scheduling Processor) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 3 : CPU Schedule

อ.คเชนทร์� ซ่�อนกลิ่��น

Chapter 3 : CPU ScheduleChapter 3 : CPU Schedule

Computer Operating System ร์ะบบปฏิ�บ�ติ�การ์คอมพิ�วเติอร์�

Page 2: Chapter 3 : CPU Schedule

วั�ตถุ�ประสงค์�วั�ตถุ�ประสงค์�

1. หลิ่�กความติ�องการ์พิ��นฐาน 2 . ข้�อพิ�จาร์ณาในการ์จ�ดเวลิ่า 3 . อ�ลิ่กอร์�ธึ&มในการ์จ�ดเวลิ่า (Scheduling

algorithm)4. การ์จ�ดค�วแบบม�ลิ่ติ�เพิ�ลิ่โปร์เซ่สเซ่อร์� (Multiple – Scheduling Processor)5. การ์จ�ดเวลิ่าแบบเร์*ยลิ่ไทม� (Real – Time Scheduling)6. การ์เลิ่�อกอ�ลิ่กอร์�ธึ&มส-าหร์�บการ์จ�ดเวลิ่าซ่*พิ*ย.

2

Page 3: Chapter 3 : CPU Schedule

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

เป�าหมาย - ใช�งานซ่*พิ*ย.ได�อย�างเติ0มปร์ะส�ทธึ�ภาพิส��งที่ �ต�องค์!าน"ง - ในร์ะบบโปร์เซ่สเซ่อร์�เด*ยวซ่*พิ*ย.จะท-างานได�คร์��งลิ่ะ 1งาน - ถ้�าม*หลิ่ายๆ งานจะติ�องเก�ดการ์ร์อ

ระบบโปรแกรมเดี ยวั - ไม�ซ่�บซ่�อน - ท-างานท*ลิ่ะโปร์แกร์มจนเสร์0จกร์ะบวนการ์ - ท-างานติ�วเองจนเสร์0จ หร์�อจนกร์ะท��งม*การ์ร์ออะไร์บางอย�าง เช�น I/O - การ์ร์อน*�ท-าให�ซ่*พิ*ย.เก�ดการ์ว�างงาน อย.�เฉย (idle)

3

Page 4: Chapter 3 : CPU Schedule

ระบบหลัายโปรแกรม - เสม�อนก�บหลิ่ายโปร์แกร์มด-าเน�นไปพิร์�อมก�น - จะไม�ยอมให�ซ่*พิ*ย.เก�ดการ์ร์อ - โปร์เซ่สใดม*การ์ร์อ เช�น ซ่*พิ*ย.หย5ดการ์ท-างานในร์ะหว�างท*�คอยอ�นพิ5ติ/เอาติ�พิ5ติ จะม*การ์น-าออกไปจากซ่*พิ*ย. แลิ่ะน-าโปร์เซ่สใหม�เข้�าไปใช�งานซ่*พิ*ย.แทน

4

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 5: Chapter 3 : CPU Schedule

5

http://elearning.krukat.com/wp-content/uploads/2013/05/system.jpg

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 6: Chapter 3 : CPU Schedule

1. ช่(วังเวัลัาอ�นพื้�ต/เอาที่�พื้�ต แลัะช่(วังเวัลัาใช่�ซี พื้ ย+ (I/O and CPU Burst Cycle)การเอ,กซี ค์�วัโปรเซีส ความส-าค�ญข้องการ์จ�ดเวลิ่าข้องซ่*พิ*ย. ข้&�นอย.�ก�บค5ณลิ่�กษณะข้องโปร์เซ่ส การ์เอ0กซ่�ค�วติ�โปร์เซ่ส จะปร์ะกอบด�วย - เวลิ่าท*ใช�ซ่*พิ*ย. (CPU Burst Cycle) - เวลิ่าท*�ร์อ I/O (I/O Burst Cycle)ในข้ณะท*�ม*การ์เอ0กซ่�ค�วติ�โปร์เซ่ส จะม*การ์สลิ่�บการ์ท-างานร์ะหว�าง 2 ช�วงเวลิ่าน*�เท�าน��น จะไม�เก�ดพิร์�อมก�น

6

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 7: Chapter 3 : CPU Schedule

กระบวันการเอ,กซี�ค์�วัต�ม ลั�กษณะการที่!างานดี�งน �- เร์��มใช�ซ่*พิ*ย.- คอยอ�นพิ5ติ/เอาติ�พิ5ติสลิ่�บจนกว�าจะจบกร์ะบวนการ์เอ0กซ่�ค�วติ�

7

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 8: Chapter 3 : CPU Schedule

กระบวันการเอ,กซี�ค์�วัต�8

Load storeAdd storeRead from file

ร์ออ�นพิ5ติ/เอาติ�พิ5ติ

Load storeAdd storeRead from file

ร์ออ�นพิ5ติ/เอาติ�พิ5ติ

Load storeAdd storeRead from file

ร์ออ�นพิ5ติ/เอาติ�พิ5ติ

เวลิ่าซ่*พิ*ย.

เวลิ่าอ�นพิ5ติ/เอาติ�พิ5ติ

เวลิ่าซ่*พิ*ย.

เวลิ่าอ�นพิ5ติ/เอาติ�พิ5ติ

เวลิ่าซ่*พิ*ย.

เวลิ่าอ�นพิ5ติ/เอาติ�พิ5ติ

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 9: Chapter 3 : CPU Schedule

9

ขั้��นตอนการประมวัลัผลัขั้อง CPU • การ์เฟติช�(Fetch) เป9นกร์ะบวนการ์ท*�หน�วยควบค5ม (CU) ไปน-าค-าส��งท*�ติ�องการ์ใช�จากหน�วยความจ-ามาเพิ��อการ์ปร์ะมวลิ่ผลิ่มาเก0บไว�ท*� Register • การ์แปลิ่ความหมาย(Decode) เป9นกร์ะบวนการ์ถ้อดร์ห�สหร์�อแปลิ่ความหมายค-าส��งติ�างๆ เพิ��อส�งไปย�งหน�วยค-านวณแลิ่ะติร์ร์กะเพิ��อด-าเน�นการ์ติ�อไป

• การ์เอ0กซ่�ค�วติ�(Execute) เป9นกร์ะบวนปร์ะมวลิ่ผลิ่ค-าส��งโดยหน�วยค-านวณแลิ่ะติร์ร์กะ ซ่&�งการ์ปร์ะมวลิ่ผลิ่จะปร์ะมวลิ่ผลิ่ท*ลิ่ะค-าส��ง

• การ์จ�ดเก0บ(Store) เป9นกร์ะบวนการ์จ�ดเก0บผลิ่ลิ่�พิธึ�ท*�ได�จากการ์ปร์ะมวลิ่ผลิ่แลิ่ะจ�ดเก0บไว�ในหน�วยความจ-าหร์�อร์*จ�สเติอร์�

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 10: Chapter 3 : CPU Schedule

10

ขั้��นตอนการประมวัลัผลัขั้อง CPU

http://202.28.94.55/members/513020890-6/K2.htm

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 11: Chapter 3 : CPU Schedule

11

8 16 24 32 40

20

40

60

80

100

120

140

160

ช�วงเวลิ่า (ม�ลิ่ลิ่�ว�นาท*)

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 12: Chapter 3 : CPU Schedule

12

2 . ต�วัจั�ดีการเวัลัาซี พื้ ย+(CPU Scheduler)เลิ่�อกโปร์เซ่สท*�อย.�ในค�วเข้�ามาใช�งานซ่*พิ*ย.โปร์เซ่สท*�ถ้.กเลิ่�อกจะม*ค5ณสมบ�ติ�เหมาะสมท*�ส5ด แลิ่ะพิร์�อมท*�ส5ดว�ธึ*การ์เลิ่�อกอาจเป9น มาก�อนได�ก�อน (FIFO) แบบให�ความส-าค�ญ (priority) มาท*หลิ่�งได�ก�อน (FILO) แบบติ�นไม� (Tree) เป9นติ�นแติ�ลิ่ะโปร์เซ่สจะม*พิ��นท*�หน�วยความจ-าในการ์เก0บข้�อม.ลิ่ไว� เร์*ยกว�า บลิ่0อกควบค5มโปร์เซ่ส “ (PCB : Process Control Block)”

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 13: Chapter 3 : CPU Schedule

13

3 . การให�ส�ที่ธิ์�3การจั�ดีเวัลัา (Preemptive Scheduling)การ์ติ�ดส�นใจข้องซ่*พิ*ย.ในการ์เลิ่�อกเอ0กซ่*ค�วโปร์เซ่สใดๆ ข้&�นอย.�ก�บเม��อม*การ์เปลิ่*�ยนสถ้านะข้องโปร์เซ่สจากสถ้านะร์�น (run) เป9นสถ้านะคอย (wait) หร์�อสถ้านะ Block เช�น ในสภาวะท*�ม*การ์ร์อ I/Oเม��อม*การ์เปลิ่*�ยนสถ้านะข้องโปร์เซ่สจากสถ้านะร์�น (run) เป9นสถ้านะพิร์�อม (ready) เช�น เก�ดอ�นเทอร์�ร์�พิท� หมดเวลิ่าควอนติ�ม เม��อม*การ์เปลิ่*�ยนสถ้านะข้องโปร์เซ่สจากสถ้านะคอย (wait) หร์�อ สถ้านะ Block เป9นสถ้านะพิร์�อม เช�น เม��อได�ร์�บ I/O เป9นท*�เร์*ยบร์�อยแลิ่�วเม��อส��นส5ดโปร์แกร์ม

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 14: Chapter 3 : CPU Schedule

14

4 . DispatcherDispatcher เป9นโมด.ลิ่ท*�ท*�ท-าหน�าท*�ในการ์คร์อบคร์องซ่*พิ*ย.ข้องโปร์เซ่ส ซ่&�งปร์ะกอบด�วย - การ์ย�าย Context - การ์ย�าย User mode - การ์กร์ะโดดไปย�งติ-าแหน�งท*�เหมาะสมข้องโปร์แกร์ม เพิ��อจะเร์��มร์�นโปร์แกร์มน��นอ*กคร์��งDispatcher ควร์ม*การ์ท-างานท*�เร์0วท*�ส5ดเท�าท*�จะท-าได� เพิร์าะติ�องท-างานท5กคร์��งท*�ม*การ์ย�ายโปร์เซ่ส เวลิ่าท*�ถ้.กใช�ในกร์ะบวนการ์น*�จะเร์*ยกว�า “Dispatch Latency”

1. 1. หลั�กค์วัามต�องการพื้��นฐานหลั�กค์วัามต�องการพื้��นฐาน

Page 15: Chapter 3 : CPU Schedule

2. 2. ขั้�อพื้�จัารณาในการจั�ดีเวัลัาขั้�อพื้�จัารณาในการจั�ดีเวัลัา15

หลั�กในการพื้�จัารณาอ�ลักอร�ธิ์"มการจั�ดีเวัลัาขั้องซี พื้ ย+อร์ร์ถ้ปร์ะโยชน�ข้องซ่*พิ*ย.(CPU utilization) ค�อค-าน&งถ้&งการ์ใช�งานซ่*พิ*ย. จร์�งๆ แลิ่�วควร์อย.�ในร์ะหว�าง - 40 90

%ทร์.พิ5ติ(throughput) เป9นการ์ว�ดจ-านวนงานท*�ท-าเสร์0จติ�อหน�วยเวลิ่าเวลิ่าท��งหมด(turnaround time) เป9นเวลิ่าท*�ค�ดจากเร์��มติ�นจนกร์ะท��งจบงานน��นๆเวลิ่าคอย(wait) เป9นเวลิ่าท*�คอยอย.�ในค�วเท�าน��นเวลิ่าติอบสนอง(response time) เป9นเวลิ่าท*�ม*การ์ร์�องข้อการ์กร์ะท-าใดๆ จนได�ร์�บการ์ติอบกลิ่�บมา

จากการ์พิ�จาร์ณาในการ์จ�ดเวลิ่าข้องซ่*พิ*ย. ส��งท*�ผ.�ออกแบบร์ะบบการ์จ�ดเวลิ่าติ�องการ์ก0ค�อ การ์ท-าให�เวลิ่าการ์ท-างานส��นท*�ส5ดน��นเอง

Page 16: Chapter 3 : CPU Schedule

16

การจั�ดีเวัลัาแบบมาก(อนไดี�ก(อน (First-Come First-Served)

โปร์เซ่สใดท*�ร์ �องข้อการ์ใช�งานซ่*พิ*ย.ก�อน ก0จะได�ร์�บจ�ดสร์ร์ให�คร์อบคร์องเวลิ่าซ่*พิ*ย.ก�อน

ขั้�อดี จ�ดการ์ง�ายขั้�อเส ย ค�าเฉลิ่*�ยข้องการ์คอยในค�วค�อนข้�างส.ง

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

โปรเซีส ระเวัลัาค์วัามต�องการซี พื้ ย+ (วั�นาที่ )

ABCD

245103

A B C D0 24 29 39 42

Page 17: Chapter 3 : CPU Schedule

17

การจั�ดีเวัลัาแบบมาก(อนไดี�ก(อน (First-Come First-Served)ค�าเฉลิ่*�ยข้องการ์คอยข้องสถ้านการ์ณ�น*� หาได�จาก

0 24 29 39 4( + + + ) / = 23 ว�นาท*

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

โปรเซีส ระเวัลัาค์วัามต�องการซี พื้ ย+

(วั�นาที่ )ABCD

245

103

A B C D0 24 29 39 42

Page 18: Chapter 3 : CPU Schedule

18

การจั�ดีเวัลัาแบบงานส��นที่!าก(อน (SJF : Short Job First Scheduling)

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

ค์(าเฉลั �ยในการรอ ขั้อง SJF = 0 3 9 16 4( + + + ) / = 7 msค์(าเฉลั �ยในการรอ ขั้อง FIFO = (0 + 6 +14 +21) / 4 = 10.25 ms

โปรเซีส ระเวัลัาค์วัามต�องการซี พื้ ย+ (วั�นาที่ )

ABCD

6873

D A C B0 3 9 16 24

A B C D0 6 14 21 24

Page 19: Chapter 3 : CPU Schedule

19

- การที่!า FCFS ติ�วอย�างท*�

จัากโจัที่ย� จงหา 1. เวลิ่าท��งหมดท*�ใช� 2 . ค�าเฉลิ่*�ยในการ์ร์อ

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

Page 20: Chapter 3 : CPU Schedule

20

ติ�วอย�างท*�

อ�ลิ่กอร์�ท&ม FCFSว�ธึ*ท-า

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

ส+ตร ค�าเฉลิ่*�ยในการ์ร์อ = (เวลิ่าเร์��ม เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (เวลิ่าส��นส5ด เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส

ค�าเฉลิ่*�ยในการ์ร์อ = (4+0+9+10)/4 = 5.75 ms

ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (11+5+13+18)/4 = 11.75 ms

P1 P2 P3 P4

Burst Time

Page 21: Chapter 3 : CPU Schedule

21

การจั�ดีเวัลัาแบบงานส��นที่!าก(อน (SJF : Short Job First Scheduling)

จากติ�วอย�างจะเห0นว�า SJF จะให�ค�าเฉลิ่*�ยข้องการ์คอยท*�ติ-�าท*�ส5ด เพิร์าะการ์เลิ่��อนโปร์เซ่สท*�ม*เวลิ่าซ่*พิ*ย.น�อยส5ดมาไว�หน�าค�ว จะม*การ์ลิ่ดเวลิ่าการ์คอยในโปร์เซ่สท*�ส�นมากกว�าการ์เพิ��มเวลิ่าข้องโปร์เซ่สท*�ยาวเสมอ

- การ์จ�ดเวลิ่าแบบ SJF น��นเหมาะส-าหร์�บร์ะบบแบ0ติซ่� หร์�อการ์จ�ดเวลิ่าช�วงยาว (Long-term Scheduling)

- การ์จ�ดเวลิ่าแบบ SJF ไม�เหมาะก�บการ์ท-างานแบบจ�ดเวลิ่าในช�วงส��น (Short-term Scheduling ) เพิร์าะไม�ร์. �ว�าความยาวข้องคาบเวลิ่าการ์ใช�ซ่*พิ*ย.ช�วงติ�อไปข้องโปร์เซ่สเป9นเท�าไหร์�

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

Page 22: Chapter 3 : CPU Schedule

22

การจั�ดีเวัลัาแบบงานส��นที่!าก(อน (SJF : Short Job First Scheduling)

การ์ท-างานแบบอ�ลิ่กอร์�ท&ม SJF สามาร์ถ้เป9นแบบท��งให�ส�ทธึ�;ก�อน หร์�อไม�ให�ส�ทธึ�;ก�อนก0ได� การ์ติ�ดส�นใจว�าจะให�ส�ทธึ�;ก�อนหร์�อไม�ให�ส�ทธึ�;จะเก�ดข้&�นติอนท*�ม*โปร์เซ่สเข้�ามาในค�วในข้ณะท*�ย�งม*โปร์เซ่สอ��นใช�งานซ่*พิ*ย.อย.�

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

Queued Processes

Scheduler Dispatcher CPU

Page 23: Chapter 3 : CPU Schedule

23

การจั�ดีเวัลัาแบบงานส��นที่!าก(อน (SJF : Short Job First Scheduling)

การ์ให�ส�ทธึ�;โปร์เซ่สเข้�ามาใช�งานในซ่*พิ*ย. ม* 2 กร์ณ* 1. อ�ลักอร�ที่"มที่ �เป7นแบบให�ส�ที่ธิ์�3ก(อนจัะที่!าการหย�ดีงานที่ �

ก!าลั�งใช่�ซี พื้ ย+อย+( 2. อ�ลักอร�ที่"มแบบไม(ให�ส�ที่ธิ์�3 อ�ลักอร�ที่"มก,จัะปลั(อยให�งาน

ที่ �ที่!าอย+(น��นใช่�ซี พื้ ย+จันเสร,จัส��นเวัลัาซี พื้ ย+ขั้องช่(วังเวัลัน��นการ์ท-า SJF แบบให�ส�ทธึ�;ก�อน อาจเร์*ยกว�า “Shortest-

Remaining-Time-First”

*** วั�ธิ์ การ เลิ่�อกโปร์เซ่สท*�ท-างานส��นท*�ส5ดก�อน แติ�ถ้�าม*หลิ่ายโปร์เซ่สท*�ใช�เวลิ่า

เท�าก�นให�ติ�ดส�นโดยใช�ว�ธึ* FCFS

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

Page 24: Chapter 3 : CPU Schedule

24

- การที่!า SJF แบบให�แที่รกกลัางค์�น “Shortest-Remaining-Time-First” with Preemptiveติ�วอย�างท*�

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

A B D A C0 1 5 10 17 26

ค์(าเฉลั �ยในการรอ ขั้อง SJF = (9 + 0 + 15 + 2) / 4 = 6.5 ms

ส+ตร ค์(าเฉลั �ยในการรอ = เวัลัาเร��มงาน - เวัลัาเก�ดี

Arrival Time(เวัลัาเก�ดี)

8495

ABCD

Burst Time(เวัลัาใช่� CPU)

Process

0123

1.ให� A เข้�าร์ะบบก�อนท*� Time=0 ด�งน��น Aจะได�ใช� cpu ก�อน

2 . ติ�อมา time= 1 B เข้�าส.� ready queue เน��องจาก B ม* cpu burst time=4แลิ่ะน�อยกว�าเวลิ่าท*�เหลิ่�อข้อง A ด�งน��น B จ&งเข้�าใช�งานแทน A แลิ่ะ A ติ�องได�ร์�บการ์จ�ดสร์ร์เข้�าส.� cpu ใหม�ในร์อบติ�อไป

Page 25: Chapter 3 : CPU Schedule

25

- การที่!า SJF แบบให�แที่รกกลัางค์�น “Shortest-Remaining-Time-First”

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

ค์(าเฉลั �ยในการรอ ขั้อง SJF = (9 + 0 + 15 + 2) / 4 = 6.5 msส+ตร ค์(าเฉลั �ยในการรอ = เวัลัาเร��มงาน - เวัลัาเก�ดี

Page 26: Chapter 3 : CPU Schedule

26

- การที่!า SJF แบบให�แที่รกกลัางค์�น “Shortest-Remaining-Time-First” with Preemptiveติ�วอย�างท*�

จัากโจัที่ย� จงหา 1. เวลิ่าท��งหมดท*�ใช� 2 . ค�าเฉลิ่*�ยในการ์ร์อ

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

Page 27: Chapter 3 : CPU Schedule

27

ติ�วอย�างท*�

อ�ลิ่กอร์�ท&ม SJF แบบ Preemptive

ว�ธึ*ท-า

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

ส+ตร ค�าเฉลิ่*�ยในการ์ร์อ = (เวลิ่าเร์��ม เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (เวลิ่าส��นส5ด เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส

ค�าเฉลิ่*�ยในการ์ร์อ = (8+0+2+10)/4 = 5 ms

ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (15 +5 +6 +1 8 )/4 = 11 ms

P1 P2 P3 P4

แบบให�แที่รกกลัางค์�น

Burst Time

Page 28: Chapter 3 : CPU Schedule

28

- การที่!า SJF แบบไม(ให�แที่รกกลัางค์�น “Shortest-Remaining-Time-First” with Non-Preemptiveติ�วอย�างท*�

จัากโจัที่ย� จงหา 1. เวลิ่าท��งหมดท*�ใช� 2 . ค�าเฉลิ่*�ยในการ์ร์อ

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

Page 29: Chapter 3 : CPU Schedule

29

ติ�วอย�างท*�

อ�ลิ่กอร์�ท&ม SJF Non-Preemptive

ว�ธึ*ท-า

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

เวัลัาใช่� CPU เวัลัาเก�ดี

ส+ตร ค�าเฉลิ่*�ยในการ์ร์อ = (เวลิ่าเร์��ม เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (เวลิ่าส��นส5ด เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส

ค�าเฉลิ่*�ยในการ์ร์อ = (8+0+2+10)/4 = 5 ms

ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (11+5+13+18)/4 = 11.75 ms

P1 P2 P3 P4

แบบไม(ให�แที่รกกลัางค์�น

Job ส��นที่!าก(อน

Burst Time

Page 30: Chapter 3 : CPU Schedule

30

การจั�ดีเวัลัาตามลั!าดี�บค์วัามส!าค์�ญ (Priority Scheduling)

วั�ธิ์ การก-าหนดลิ่-าด�บความส-าค�ญให�ก�บโปร์เซ่สแลิ่�วเลิ่�อกโปร์เซ่สท*�ม*

ลิ่-าด�บความส-าค�ญส.งท*�ส5ดแติ�ถ้�าม*หลิ่ายโปร์เซ่สท*�ม*ลิ่-าด�บความส-าค�ญเท�าก�นให�ติ�ดส�น

โดยใช�ว�ธึ* FCFS• แทร์กกลิ่างค�นได� = โปร์เซ่สใหม�ท*�ม*ศั�กด�;ส.งกว�าสามาร์ถ้

แทร์กเข้�าไปท-างานแทนโปร์เซ่สท*�ม*ลิ่-าด�บความส-าค�ญติ-�ากว�าท*�ก-าลิ่�ง

ท-างานอย.�ได� • ห�ามแทร์กกลิ่างค�น = โปร์เซ่สใหม�ท*�ม*ลิ่-าด�บความส-าค�ญส.ง

จะถ้.กน-าไปติ�อท*�ห�วแถ้ว

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

Page 31: Chapter 3 : CPU Schedule

31

การจั�ดีเวัลัาตามลั!าดี�บค์วัามส!าค์�ญ (Priority Scheduling)

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

Process

Burst Time

Priority

ABCDE

101215

31342

B E C DA

0 1 6 16 18 19

ค�าเฉลิ่*�ยในการ์ร์อ = (6+0+16+18+1)/5 = 8 ms

A B C D E

Page 32: Chapter 3 : CPU Schedule

32

การจั�ดีเวัลัาตามลั!าดี�บค์วัามส!าค์�ญ (Priority Scheduling)

3. 3. อ�ลักอร�ธิ์"มในการจั�ดีเวัลัาอ�ลักอร�ธิ์"มในการจั�ดีเวัลัา

ส+ตร ค�าเฉลิ่*�ยในการ์ร์อ = (เวลิ่าเร์��ม เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส ค�าเฉลิ่*�ยเวลิ่าท*�ใช� = (เวลิ่าส��นส5ด เวลิ่าเก�ด– ) / จ-านวนโปร์เซ่ส

ค�าเฉลิ่*�ยในการ์ร์อ = (16 + 0 + 2+ 3 )/4 = 5.25 ms

P1 P2 P3 P4

ว�ธึ*การ์ 1. ด. Priority ส-าค�ญก�อนท-าก�อน

จนจบกร์ะบวนการ์ 2. พิ�จาร์ณาร์�วมก�บเวลิ่าเก�ด แลิ่�ว

ค�อยด. Priority

Page 33: Chapter 3 : CPU Schedule

แบบฝึ:กห�ดีแบบฝึ:กห�ดี33

จากโจทย� กร์ณ*ก-าหนด ค�า Arrival Time, Process Arrival and Time Burst Time จงจงหา ค�าเฉลิ่*�ยเวลิ่าในการ์คอยโดยใช� อ�ลิ่กอร์�ท&มแบบ Non Preemptive SJF แลิ่ะ Preemptive จากติาร์างด�งติ�อไปน*�Proce

ssBurst Time

Arrival Time

P1P2P3P4

7414

0245

Page 34: Chapter 3 : CPU Schedule

แบบฝึ:กห�ดีแบบฝึ:กห�ดี34

จากโจทย� กร์ณ*ก-าหนด ค�า Arrival Time, Process Arrival and Time Burst Time จงหา ค�าเฉลิ่*�ยเวลิ่าในการ์คอยโดยใช� อ�ลิ่กอร์�ท&มแบบ Non Preemptive SJF แลิ่ะ Preemptive จากติาร์างด�งติ�อไปน*�Proce

ssBurst Time

Arrival Time

P1P2P3P4

8495

01

23