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

55
กกกกกกกกกก กกกกกกกกกก กกกกกก กกกกกก CPU CPU Scheduling Scheduling กกกกก 7 (กกก)

Upload: janet

Post on 05-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

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

TRANSCRIPT

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

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

SchedulingScheduling

บทท�� 7 (ต่�อ)

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

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

โปรเซีสั้เซีอร�

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

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)

• การจั�ดเวลา CPU เป!นหล�กการ ทำ�างานหน"#งของ OS ทำ�#ทำ�าให$

คิอมพี�วเตอร�ม�คิวามสั้ามารถในการร�น โปรแกรมได$หลายู ๆ โปรแกรมในเวลา

เด�ยูวก�น•เหต+การณ์�ทำ�#ซี�พี�ยู�เปล�#ยูนจัากการทำ�างานหน"#งไปยู�งอ�กงานหน"#งเร�ยูกว-า

การเปล��ยูนื้สถานื้ะ (context switching)

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

เป�าหมายู ใช้$งานซี�พี�ยู�ได$อยู-างเต/มประสั้�ทำธิ�ภาพีส �งท��ต่"องคำ$านื้%ง ในระบบโปรเซีสั้เซีอร�เด�ยูวซี�พี�ยู�จัะทำ�างานได$

คิร��งละ 1 งาน ถ$าม�หลายู ๆ งานจัะต$องเก�ดการรอ

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)… ต่�อ

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

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling) … ต่�อ

ระบบหลายูโปรแกรม เสั้ม2อนก�บหลายูโปรแกรม

ด�าเน�นไปพีร$อมก�น จัะไม-ยูอมให$ซี�พี�ยู�เก�ดการ

รอ โปรเซีสั้ใดม�การรอการใช้$

อ+ปกรณ์� I/O จัะม�การน�าออกไปจัากซี�พี�ยู� และน�าโปรเซีสั้ใหม-เข$าไปใช้$งานซี�พี�ยู�แทำน

ระบบโปรแกรมเด�ยูวระบบโปรแกรมเด�ยูว ไม-ซี�บซี$อน ทำ�างานทำ�ละโปรแกรมจัน

เสั้ร/จักระบวนการ ทำ�างานต�วเองจันเสั้ร/จั หร2อ

จันกระทำ�#งม�การรออะไรบางอยู-าง เช้-น I/O

การรอน��ทำ�าให$ซี�พี�ยู�เก�ดการว-างงาน อยู�-เฉยู (idle)

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

ข้"อพี จัารณาในื้การจั�ดเวลา การใช้"สอยูซี�พี�ยู� (CPU Utilization) ทร�พี,ต่ (Throughput) เวลาท��งหมด (Turnaround Time) เวลารอคำอยู (Waiting Time) เวลาต่อบสนื้อง (Response Time)

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

ข้"อพี จัารณาในื้การจั�ดเวลา การใช้"สอยูซี�พี�ยู�(CPU Utilization) : การใช้$ประโยูช้น�จัากซี�พี�ยู�อยู-างสั้�งสั้+ด โดยูทำ�าให$ซี�พี�ยู�ม�งานทำ�ามากทำ�#สั้+ดเทำ-าทำ�#จัะทำ�าได$ ซี�พี�ยู�คิวรจัะถ�กใช้$อยู�-ระหว-าง - 4090%

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

ข้"อพี จัารณาในื้การจั�ดเวลา ทร�พี,ต่ (Throughput) จั�านวนงานทำ�#เสั้ร/จัต-อหน-วยูเวลา

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

ข้"อพี จัารณาในื้การจั�ดเวลา เวลาท��งหมด (Turnaround Time) :

คิ2อช้-วงเวลาทำ��งหมดทำ�#ใช้$ในการทำ�างานใดงานหน"#งต��งแต-เร�#มต$นเข$าไปในระบบ จันงานถ�กทำ�าจันเสั้ร/จัเร�ยูบร$อยู (รวมเวลาทำ�#รอเข$าหน-วยูคิวามจั�า เวลาทำ�#คิอยูอยู�-ในคิ�ว เวลาทำ�#ใช้$ซี�พี�ยู� และเวลาของอ�นพี+ต/เอาต�พี+ต)

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

ข้"อพี จัารณาในื้การจั�ดเวลา เวลารอคำอยู (Waiting Time)

: ช้-วงเวลาทำ�#งานใดงานหน"#งต$องรอการทำ�างานของต�วจั�ดเวลา โดยูไม-รวมเวลาของการใช้$ซี�พี�ยู� และเวลาของการต�ดต-ออ�นพี+ต/เอาต�พี+ต สั้-วนใหญ่-ก/คิ2อเวลาทำ�#งานต$องคิอยูอยู�-ในคิ�ว (Ready Queue)

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

ข้"อพี จัารณาในื้การจั�ดเวลา เวลาต่อบสนื้อง (Response Time) คิ2อเวลาทำ�#ว�ดระหว-างเวลาทำ�#ม�การร$องขอการกระทำ�าใด ๆ ต-อระบบแล$วม�การตอบร�บกล�บออกมา (คิวามเร/วของเวลาตอบสั้นองจั"งม�กจัะข"�นอยู�-ก�บอ+ปกรณ์�อ�นพี+ต/เอาต�พี+ต)

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

การจั�ดคำ วระยูะส��นื้ (Short-term scheduling)

• ข� �นตอนน��เป!นการคิ�ดเล2อกโปรเซีสั้ซี"#งรออยู�-ในสั้ถานะพีร$อมทำ�#เหมาะสั้มทำ�#สั้+ดให$เข$าไป

อยู�-ในสั้ถานะร�น ( คิรอบคิรอง CPU)• การจั�ดคิ�วให$ก�บโปรเซีสั้น��นถ2อว-าเป!นหน$าทำ�#

ของหน-วยูจั�ดคิ�วในระยูะสั้��น (Short-term Scheduler) ซี"#งเป!นสั้-วนหน"#งใน OS• สั้�าหร�บการสั้-งโปรเซีสั้ทำ�#ถ�กเล2อกแล$วให$เข$าไปอยู�-ในสั้ถานะร�น เป!นหน$าทำ�#ของต�วสั้-ง(Dispatcher) ซี"#งเป!นสั้-วนหน"#งใน OS

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

การจั�ดคิ�วระยูะสั้��นม�ด�งน�� การจั�ดคิ�วแบบ FCFS การจั�ดคิ�วแบบ RR การจั�ดคิ�วแบบล�าด�บคิวามสั้�าคิ�ญ่ (Priority) การจั�ดคิ�วแบบ SJF (Short Job First) การจั�ดคิ�วแบบ SRJ (Shortest-remaining-first)

การจั�ดคิ�วแบบหลายูระด�บ

การจั�ดคำ วระยูะส��นื้(Short-term scheduling)

… ต่�อ

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

การจั�ดคำ วแบบมาก�อนื้ได"ก�อนื้ (First-come-first-served

: FCFS) … ต่�อ• เป!นว�ธิ�การทำ�#ง-ายูทำ�#สั้+ด• โปรเซีสั้ใดเข$ามารอในคิ�วก-อนจัะม�สั้�ทำธิ�คิรอบคิรองCPU ก-อน• โปรเซีสั้ทำ�#ได$คิรอบคิรอง CPU จัะทำ�างานไปจันเสั้ร/จัไม-ม�ระยูะเวลาคิวอนต�ม• ถ$าโปรเซีสั้ม�การเร�ยูกใช้$งานอ+ปกรณ์�อ�นพี+ต/ เอาทำ�พี+ต

หร2อรอเหต+การณ์�บางอยู-าง โปรเซีสั้น��นต$องปลด ปล-อยูซี�พี�ยู� และออกจัากสั้ถานะร�นไปอยู�-ในสั้ถานะ

บล/อคิ• เม2#อการเร�ยูกใช้$อ+ปกรณ์�อ�นพี+ต/ เอาทำ�พี+ตเสั้ร/จัสั้��นลง

หร2อเก�ดเหต+การณ์�ทำ�#ก�าล�งรออยู�- โปรเซีสั้น��นจัะกล�บไปอยู�-ต-อทำ$ายูคิ�วของสั้ถานะพีร$อม

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

ข$อด�คิ2อการจั�ดคิ�วทำ�าได$ง-ายูไม-ยู+-งยูากซี�บซี$อน ต�วอยู-างการจั�ดคิ�วเม2#อม� 3 โปรเซีสั้ ( A,B,C) ต$องการใช้$ CPU

โปรเซีสั้ล�าด�บการเข$าคิ�ว เวลาทำ�#ต$องการใช้$CPU (ว�นาทำ�)

เวลาทำ�#รอ อยู�-ในคิ�ว (ว�นาทำ�)

เวลาทำ�#โปรเซีสั้ ทำ�างานเสั้ร/จั (ว�นาทำ�)

A 1 15 0 01515

B 2 1 15 15116

C 3 10 1616 10 26+ =

การจั�ดคำ วแบบมาก�อนื้ได"ก�อนื้ (First-come-first-served :

FCFS) … ต่�อ

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

ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!น A,B,C แต-การใช้$หล�กการของการจั�ดล�าด�บคิวามสั้�าคิ�ญ่

จัะจั�ดคิ�วออกมาในล�กษณ์ะด�งน��

การจั�ดคำ วแบบมาก�อนื้ได"ก�อนื้ (First-come-first-served :

FCFS) … ต่�อ

โปรเซีสั้ A ต$องรอเวลาในการประมวลผล = 0 ว�นาทำ�โปรเซีสั้ B ต$องรอเวลาในการประมวลผล = 15 ว�นาทำ�โปรเซีสั้ C ต$องรอเวลาในการประมวลผล = 16 ว�นาทำ�เวลาเฉล��ยูในื้การรอ = (0+15+16)/3 =10.33 ว นื้าท�

1

5

1

6

2

6

A B C

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

จัากต�วอยู-างจัะพีบว-าการจั�ดคิ�วแบบFCFS เป!นผลเสั้�ยูอยู-างมากก�บโปรเซีสั้ B คิ2อ

โปรเซีสั้ B ต$องการเวลาในการทำ�างานเพี�ยูง 1 ว�นาทำ� แต-ต$องรอให$โปรเซีสั้ A ซี"#งเข$ามาก-อน

ทำ�างานเสั้ร/จั เวลาเฉล�#ยูในการรอ = (15+16)/3 =

10.33 ว�นาทำ� ทำ�าให$การทำ�างานของโปรเซีสั้ B น��นใช้$เวลา

16 ว�นาทำ�จั"งจัะเสั้ร/จัสั้��น เทำ�ยูบเวลาในการทำ�างานคิ2อ

(116) *100 = 6 % สั้�าหร�บเวลาในการรอคิ2อ - 1006 = 94

% ซี"#งจัะเห/นว-าโปรเซีสั้ B ต$องเสั้�ยูเวลารอนานมาก

การจั�ดคำ วแบบมาก�อนื้ได"ก�อนื้(First-come-first-served :

FCFS) … ต่�อ

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

จัากป8ญ่หาของการจั�ดคิ�วแบบมาก-อน ได$ก-อน จั"งทำ�าให$เก�ดแนวคิ�ดทำ�#จัะคิ�ดเล2อก

โปรเซีสั้ทำ�#ต$องการเวลาในการทำ�างานน$อยู ทำ�#สั้+ดเข$ามาใช้$ CPU ก-อน เพี2#อทำ�าให$ โปรเซีส

ท��ต่"องการเวลาในื้การท$างานื้นื้"อยูจับออก ไปได"เร/วข้%�นื้ และจั$านื้วนื้โปรเซีสท��รออยู��ในื้

คำ วก/จัะม�จั$านื้วนื้ลดลงแต-ถ$าม�โปรเซีสั้หลายูต�วทำ�#ม�คิวาม

ต$องการเวลาในการทำ�างานเทำ-าก�น ก/จัะใช้$หล�กการแบบมาก-อนได$ก-อนมาใช้$ในการคิ�ดเล2อก

การจั�ดคำ วแบบงานื้ส��นื้ท$าก�อนื้ (Short-Job-first : SJF)

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

ต�วอยู-างการจั�ดคิ�วเม2#อม�4 โปรเซีสั้(A,B,C,D) ต$องการ ใช้$ CPU โดยูม�

ล�าด�บการเข$ามาในคิ�วเป!น A,B,C,D

การจั�ดคำ วแบบงานื้ส��นื้ท$าก�อนื้(Short-Job-first : SJF)

… ต่�อ

โปรเซีสั้ ระยูะเวลาคิวามต$องการ CPU (ว�นาทำ�)

ABCD

6

8

7

3

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

ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!นA,B,C,D แต-การใช้$หล�กการของ SJF จัะจั�ดคิ�วออกมาในล�กษณ์ะด�งน��

0 3 9 16

24

การจั�ดคำ วแบบงานื้ส��นื้ท$าก�อนื้(Short-Job-first : SJF) … ต่�อ

D A C B

เวลาเฉล��ยูในื้การรอ 0 3 9 16+ + += 28/4 =7

เวลาเฉล��ยูในื้การท$างานื้เสร/จั 391624 = 52/4 =13

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

จัากการทำดลองพีบว-า SJF จัะให$คิ-าเฉล�#ยูของการคิอยูได$ต�#าทำ�#สั้+ด เพีราะม�การเล2#อนโปรเซีสั้ทำ�#

ม�เวลาใช้$ CPU น$อยูสั้+ดมาไว$หน$าคิ�ว ป8ญ่หาสั้�าหร�บการจั�ดคิ�วแบบ SJF คิ2อ ต�ว

จั�ดคิ�วระยูะสั้��นไม-ทำราบว-าแต-ละโปรเซีสั้ต$องการใช้$เวลาเทำ-าใด

ว�ธิ�แก$คิ2อให$แต-ละโปรเซีสั้ก�าหนดเวลาทำ�#ต$องการ

ในการใช้$ CPU มาด$วยูให$ OS สั้ร$างโปรเซีสั้เพี2#อคิ�านวณ์เวลาโดยูประมาณ์ของแต-ละโปร

เซีสั้ทำ�#ต$องการใช้$ CPU

การจั�ดคำ วแบบงานื้ส��นื้ท$าก�อนื้

(Short-Job-first : SJF) … ต่�อ

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

ว�ธิ�น��จัะม�การจั�ดล�าด�บคิวามสั้�าคิ�ญ่ให$ก�บแต-ละโปรเซีสั้ ทำ�#ต$องการใช้$ CPU

โปรเซีสั้ทำ�#อยู�- ณ์ . ต$นคิ�วก/จัะเป!นโปรเซีสั้ทำ�#ม� คิวาม สั้�าคิ�ญ่มากทำ�#สั้+ด และลดลงเร2#อยู ๆโปรเซีสั้ทำ�#อยู�-ทำ$ายูคิ�วคิ2อโปรเซีสั้ทำ�#ม�คิวาม

สั้�าคิ�ญ่ต�#าสั้+ด ถ$าม�โปรเซีสั้ใหม-เข$ามาในคิ�ว ก/จัะม�การแซีง

คิ�วได$ถ$าโปรเซีสั้ทำ�#เข$ามาใหม-ม�ล�าด�บคิวามสั้�าคิ�ญ่สั้�งกว-าโปรเซีสั้ทำ�#ก�าล�งบรรจั+อยู�-ในคิ�ว

การจั�ดคำ วแบบต่ามล$าด�บคำวามส$าคำ�ญ(Priority Queue)

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

ต�วอยู-างการจั�ดคิ�วเม2#อม�4 โปรเซีสั้ (A,B,C,D) ต$องการใช้$ CPU โดยูม�ล�าด�บการเข$ามาในคิ�วเป!น

A,B,C,D

การจั�ดคำ วแบบต่ามล$าด�บคำวามส$าคำ�ญ (Priority Queue) … ต่�อ

โปรเซีสั้ เวลาคิวามต$องการ CPU (ว�นาทำ�)

ABCD

10

1

2

5

ล�าด�บคิวามสั้�าคิ�ญ่

3

2

4

1

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

ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!น 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

การจั�ดคำ วแบบต่ามล$าด�บคำวาม ส$าคำ�ญ

(Priority Queue) … ต่�อ

D B A C

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

คำ$าถาม ถ$าเป!นการจั�ดคิ�วแบบ FCFS เวลาเฉล�#ยูใน

การรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัเทำ-าก�บเทำ-าใด

ถ$าเป!นการจั�ดคิ�วแบบ SJFเวลาเฉล�#ยูในการรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัเทำ-าก�บเทำ-าใด

การจั�ดคำ วแบบต่ามล$าด�บคำวามส$าคำ�ญ(Priority Queue) … ต่�อ

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

คิ�าตอบ เวลาเฉล�#ยูในการรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัในการทำ�างานและแบบPriority

เวลาเฉล�#ยูในการรอ =6.75 เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =11.25

FCFS เวลาเฉล�#ยูในการรอ =8.5

เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =13SJF

เวลาเฉล�#ยูในการรอ =3 เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =7.5

การจั�ดคำ วแบบต่ามล$าด�บคำวาม ส$าคำ�ญ

(Priority Queue) … ต่�อ

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

ป1ญหาท��ส$าคำ�ญส$าหร�บการจั�ดคำ วแบบนื้�� ได$แก-โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#าอาจัจัะไม-ม�

โอกาสั้ได$ใช้$ CPU ถ$าม�โปรเซีสั้ทำ�#ม�ล�าด�บคิวาม สั้�าคิ�ญ่สั้�งอยู�-เป!นจั�านวนมาก หร2อม�โปรเซีสั้ทำ�#ม�

ล�าด�บคิวามสั้�าคิ�ญ่สั้�งเข$ามาใหม-ตลอดเวลา

การจั�ดคำ วแบบต่ามล$าด�บคำวามส$าคำ�ญ(Priority Queue) … ต่�อ

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

ว�ธิ�การพี�จัารณ์าก�าหนดล�าด�บคิวามสั้�าคิ�ญ่ของ โปรเซีสั้ต-าง ๆ อาจัพี�จัารณ์าได$จัากองคิ�ประกอบต-าง ๆ

เช้-น เจั"าข้องโปรเซีส : โปรเซีสั้ทำ�#มาจัากผ�$ใช้$ทำ� #ว ๆ ไป จัะ

ม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#ากว-า โปรเซีสั้ทำ�#มาจัากผ�$คิวบคิ+มระบบ

ประเภทข้องโปรเซีส : โปรเซีสั้ของงานในระบบ แบตซี� (Batch mode) ม�กม�ล�าด�บคิวามสั้�าคิ�ญ่

ต�#ากว-าโปรเซีสั้ของงานแบบตอบโต$ (Interactivemode)ผู้�"ใช้"ท��ยู นื้ยูอมจั�ายูเง นื้เพี �มระยูะเวลาท��โปรเซีสเข้"ามาอยู��ในื้ระบบ

การจั�ดคำ วแบบต่ามล$าด�บคำวามส$าคำ�ญ(Priority Queue) … ต่�อ

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

ว�ธิ�การน��จัะคิล$ายูก�บแบบ SJF แต- SRJ จัะน�าเอาโปรเซีสั้ทำ�# เหล2อเวลาในการใช้$ CPU น$อยูทำ�#สั้+ด มาอยู�-ทำ�#ต$นคิ�วเพี2#อเข$าไปใช้$งาน CPU ก-อน

ว�ธิ�การน��จัะทำ�าให$ทำ��งโปรเซีสั้ทำ�#ต$องการเวลา ในการใช้$ CPU น$อยู และโปรเซีสั้ทำ�#ต$องการเวลา ในการใช้$ CPU มากแต-ใกล$จัะจับสั้ามารถออก

จัากระบบได$เร/วข"�นว�ธิ�การน��นอกจัากจัะต$องทำราบเวลาทำ�#

ต$องการใช้$ CPU แล$วยู�งต$องม�การบ�นทำ"กเวลาทำ�#โปรเซีสั้ทำ�างานไปแล$วด$วยู

การจั�ดคำ วแบบงานื้ท��เหล�อเวลานื้"อยูท$า ก�อนื้

(Shortest-remaining-first : SRJ)

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

ใช้$ก�บระบบงานคิอมพี�วเตอร�แบบแบ-งเวลา โดยู ม�ล�กษณ์ะการจั�ดคิ�วเป!นแบบ FCFS แต-ให$ม�กรรมว�ธิ�

ของการให$สั้�ทำธิ�ในการคิรอบคิรอง CPU ของแต-ละ โปรเซีสั้ คิ2อ “แต-ละโปรเซีสั้ทำ�#เข$ามาในระบบจัะถ�กจั�าก�ด

เวลาการเข$าไปใช้$ CPU เทำ-า ๆ ก�น ” ซี"#งเร�ยูกช้-วงเวลา น��ว-า เวลาคิว�นต�ม (Quantum Time)

ต�วจั�ดเวลาระยูะสั้��นจัะม�การให$ CPU ก�บโปรเซีสั้ทำ�# อยู�-ในคิ�วแบบวนรอบ โดยูม�กฏเกณ์ฑ์�ว-า ถ$าโปรเซีสั้ใด

ไม-สั้ามารถกระทำ�าได$สั้�าเร/จัภายูใน 1 คิว�นต�ม โปรเซีสั้ จัะต$องถ�กน�ากล�บไปไว$ในคิ�วเช้-นเด�ม

สั้ถานภาพีต-าง ๆ ของโปรเซีสั้ทำ�#ยู�งทำ�าไม-เสั้ร/จัจัะ ถ�กบ�นทำ"กไว$ เม2#อถ"งโอกาสั้ได$คิรอบรอง CPU อ�ก ก/จัะ

ได$เร�#มต$นร�นต-อจัากคิร��งทำ�#แล$วโดยูไม-ต$องเร�#มใหม-ทำ��งหมด

การจั�ดคำ วแบบวนื้รอบ(Round-Robin : RR)

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

การจั�ดคำ วแบบวนื้รอบ

(Round-Robin : RR) … ต่�อ

เร�#ม

พีร$อม ร�น

บล/อก

สั้��นสั้+ด

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

ต�วอยู-างการจั�ดคิ�วแบบ FCFS เม2#อม� 3 โปรเซีสั้ ( A,B,C) ต$องการใช้$CPU

เวลาเฉล��ยูในื้การรอ = (15+16)/3 = 10.33 ว นื้าท�

การจั�ดคำ วแบบวนื้รอบ

(Round-Robin : RR) … ต่�อ

โปรเซีสั้ ล�าด�บการเข$าคิ�ว เวลาทำ�#ต$องการใช้$CPU (ว�นาทำ�)

เวลาทำ�#รอ อยู�-ในคิ�ว (ว�นาทำ�)

เวลาทำ�#โปรเซีสั้ ทำ�างานเสั้ร/จั (ว�นาทำ�)

A 1 15 0 01515

B 2 1 151 15 16+ =

C 3 10 1610 16 26+ =

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

ต�วอยู-างการจั�ดคิ�วแบบ RR เม2#อม� 3 โปรเซีสั้ (A,B,C) ต$องการใช้$CPU โดยูม�เวลาคำว�นื้ต่�มเป4นื้ 1 ว นื้าท�

เวลาเฉล��ยูในื้การรอ = (11+1+11)/3 = 7.67 ว นื้าท�

การจั�ดคำ วแบบวนื้รอบ

(Round-Robin : RR) … ต่�อ

โปรเซีสั้ ล�าด�บการเข$าคิ�ว เวลาทำ�#ต$องการใช้$CPU (ว�นาทำ�)

เวลาทำ�#รอ อยู�-ในคิ�ว (ว�นาทำ�)

เวลาทำ�#โปรเซีสั้ ทำ�างานเสั้ร/จั (ว�นาทำ�)

A 1 15 1115 11 26+ =

B 2 1 1 1 1 2+ =

C 3 10 1110 11 21+ =

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

34

A B C A C A C A C A C A C A C A C A C A C A A A A A

การจั�ดคำ วแบบวนื้รอบ (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

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

จัากต�วอยู-างจัะเห/นว-า การทำ�างานแบบ RR จัะเป!น ประโยูช้น�ต-อโปรเซีสั้ B หร2อโปรเซีสั้ทำ�#ต$องการเวลาใน

การใช้$ CPU น$อยูแต-เข$าคิ�วมาทำ�หล�งในทำางตรงก�นข$าม จัะเก�ดผลเสั้�ยูต-อโปรเซีสั้ A

หร2อโปรเซีสั้ทำ�#ต$องการเวลาในการใช้$ CPU มากประสั้�ทำธิ�ภาพีของการวนรอบข"�นอยู�-ก�บการก�าหนดขนาดของคิว�นต�มเป!นอยู-างยู�#ง

ถ$าขนาดของคิว�นต�มใหญ่-หร2อนานเก�นไปประสั้�ทำธิ�ภาพีของการวนรอบก/จัะใกล$เคิ�ยูงก�บแบบมาก-อนได$ก-อน

ถ$าขนาดของคิว�นต�มเล/กเก�นไป ระยูะเวลาทำ�#ใช้$ในการ ทำ�างานของระบบ (throughput) ก/จัะช้$าลง

การจั�ดคำ วแบบวนื้รอบ (Round-Robin : RR) … ต่�อ

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

คำ$าถาม เม2#อม� 3 โปรเซีสั้ ( A,B,C) ต$องการใช้$CPU แบบ RR

ถ$าเวลาคิว�นต�มเป!น 3 ว�นาทำ� เวลาเฉล�#ยูในการ คิอยู เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั เป!นเทำ-าใด

เวลาคิว�นต�มเป!น 6 ว�นาทำ� เวลาเฉล�#ยูในการ คิอยู และเวลาเฉล�#ยูในการทำ�างานเสั้ร/จั เป!นเทำ-าใด

การจั�ดคำ วแบบวนื้รอบ (Round-Robin : RR)

โปรเซีสั้ ล�าด�บการเข$าคิ�ว เวลาทำ�#ต$องการใช้$CPU (ว�นาทำ�)

A 1 15

B 2 1

C 3 10

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

ต่�วอยู�าง

จังหาคิ-าเฉล�#ยูทำ��ง 3 ว�ธิ� คิ2อ FCFS, SJF และ RR เวลาคิวอนต�ม = 10

102937

12

ABCDE

เวลาโปรเซีสั้

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

FCFSเวลาในื้การรอ (0+10+39+42+49) / 5 =

28เวลาเฉล��ยูในื้การท$างานื้เสร/จั

(10+39+42+49+61) / 5 =40.2

0 10 39 42 49 61

A B C D E

เฉลยู

Page 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

เฉลยู

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

RRเวลาในื้การรอ A=0B=10+20+2=32C=20D=10+10+3E=30+10(0+32+20+23+40)

/ 5 = 23

A B C D E B E B

0 10 20 23 30 40 50 52 61

เฉลยู

เวลาเฉล��ยูในื้การท$างานื้เสร/จัA=0+10=10B=32+29=61C=20+3=23D=23+7=30E=40+12=52(10+61+23+30+52)/5=35.2

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

การจั�ดคิ�วด�งทำ�#กล-าวมาแล$วทำ��งสั้��นเป!นการจั�ดคิ�ว ภายูในคิ�วเพี�ยูง 1 คิ�ว เร�ยูกว-าการจั�ดคิ�วแบบ

1 ระด�บด�งร�ป

เพี2#อให$การจั�ดคิ�วเป!นไปอยู-างม�ประสั้�ทำธิ�ภาพีมาก ข"�น เราจั"งจั�ดให$ม�คิ�วหลายู ๆ คิ�วแทำนทำ�#จัะม�เพี�ยูง

คิ�วเด�ยูว เร�ยูกว-าเป!นการจั�ดคิ�วแบบหลายูระด�บ

การจั�ดคำ วแบบหลายูระด�บ

CPU A B C

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

• การจั�ดคิ�วแบบหลายูระด�บน��น แต-ละคิ�วไม-จั�าเป!นเป!นต$องเป!นประเภทำเด�ยูวก�น

• การคิ�ดเล2อกโปรเซีสั้น��นจัะคิ�ดเล2อกจัากคิ�ว ทำ�# 1 ก-อนจันกระทำ�#งโปรเซีสั้ภายูในคิ�วทำ�#

1 ทำ�างานเสั้ร/จัทำ��งหมด แล$วจั"งคิ�ดเล2อกโปรเซีสั้ในคิ�วล�าด�บถ�ดไป

• โปรเซีสั้ทำ�#ม�คิวามสั้�าคิ�ญ่มาก ม�กจัะอยู�-ในคิ�ว ระด�บแรก โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่

น$อยูลงไปก/จัะอยู�-ในคิ�วระด�บหล�ง• โปรเซีสั้ประเภทำเด�ยูวก�นม�กอยู�-ในคิ�วระด�บ

เด�ยูวก�น

การจั�ดคำ วแบบหลายูระด�บ … ต่�อ

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

การจั�ดคำ วแบบหลายูระด�บ … ต่�อ

CPU

An Bn Cn

A2 B2 C2

A1 B1 C1 คิ�วทำ�#1

Priority Queue

คิ�วทำ�#2FCFS Queue

คิ�วทำ�# nRR Queue

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

System processes queue

Interactive processes queue

Student processes queue

Batch 14 processes queue

Interactive processes queue

การจั�ดคำ วแบบหลายูระด�บ … ต่�อ

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

การจั�ดคำ วระยูะส��นื้เป4นื้การจั�ดคำ วในื้ระด�บโปรเซีส โดยูม�ต�วจั�ดคิ�วระยูะสั้��นทำ�าหน$าทำ�#คิ�ด

เล2อกโปรเซีสั้ทำ�#อยู�-ในคิ�วทำ�#ม�สั้ถานะพีร$อม สั้-งเข$าไปอยู�-ในสั้ถานะร�นการจั�ดคำ วระยูะยูาวเป4นื้การจั�ดคำ วในื้ระด�บงานื้ ไม-ใช้-ระด�บโปรเซีสั้

เม2#อผ�$ใช้$สั้-งงานเข$ามาในระบบ งานเหล-าน��จัะไปรออยู�-ในคิ�วงานเม2#อระบบอยู�-ในสั้ภาพี

พีร$อมทำ�#จัะร�บโปรเซีสั้ใหม-ได$ เช้-น ม�หน-วยูคิวามจั�าเหล2อมากพีอ

การจั�ดคำ วระยูะยูาว

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

ต�วจั�ดคิ�วระยูะยูาวจัะคิ�ดเล2อกงานทำ�#อยู�-ในคิ�วงานข"�นมาพีร$อมทำ��งสั้ร$างโปรเซีสั้ใหม-สั้�าหร�บ

งานน��น สั้-งให$ก�บต�วจั�ดคิ�วระยูะสั้��นทำ�างานต-อไปต�วจั�ดคิ�วระยูะสั้��นยู�งม�หน$าทำ�#ยู+ต�โปรเซีสั้ทำ�#

จับการทำ�างานแล$วคำ วงานื้จัะต-างก�บคำ วข้องโปรเซีส เล/กน$อยู

คิ2อ งานทำ�#ถ�กคิ�ดเล2อกข"�นมาและสั้ร$างเป!นโปรเซีสั้ใหม-แล$วจัะไม�ม�การวนื้กล�บมาเข้"าคำ วใหม�เหม�อนื้ก�บโปรเซีส

การคิ�ดเล2อกงานเพี2#อสั้ร$างโปรเซีสั้ใหม- ม� ว�ธิ�การเหม2อนก�บการคิ�ดเล2อกโปรเซีสั้ทำ�#อยู�-ในคิ�ว

ยูกเว$นว�ธิ�แบบ RR ทำ�#ไม-ได$ใช้$ก�บคิ�วงาน

การจั�ดคำ วระยูะยูาว … ต่�อ

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

หมายูถ"งระบบทำ�#ม� CPU หลายูต�วช้-วยูก�นทำ�างาน ด�ง น��นโปรเซีสั้เซีอร�ในทำ�#น��หมายูถ"ง CPU น�#นเอง

การจั�ดระบบคิอมพี�วเตอร�ตามการทำ�างานของ โปรเซีสั้เซีอร� เราสั้ามารถแบ-งได$ 4 ประเภทำด�งน��

คิ�าสั้�#งเด�#ยูวและข$อม�ลเด�#ยูว ( Single Instruction Single Data : SISD )

คิ�าสั้�#งเด�#ยูวและหลายูช้+ดข$อม�ล ( Single Instruction Multiple Data : SIMD )

หลายูช้+ดคิ�าสั้�#งและข$อม�ลเด�#ยูว ( Multiple Instruction Single Data : MISD )

หลายูช้+ดคิ�าสั้�#งและหลายูช้+ดข$อม�ล ( Multiple Instruction Multiple Data : MIMD )

ระบบหลายูโปรเซีสเซีอร5(Multi-processor System)

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

คิอมพี�วเตอร�ทำ�#ใช้$งานทำ�#วไปในป8จัจั+บ�นจัะเป!น ประเภทำ SISD

ระบบคิอมพี�วเตอร�ประเภทำน��ม�โปรเซีสั้เซีอร�อยู�- เพี�ยูงต�วเด�ยูว

การทำ�างานของโปรเซีสั้เซีอร�ในระบบน��จัะทำ�างาน ได$ทำ�ละ 1 คิ�าสั้�#งและร�บข$อม�ลได$ 1 ช้+ด P (Processor) แทำนโปรเซีสั้เซีอร� I

(Instruction) แทำนคิ�าสั้�#ง D (Data) แทำนข$อม�ล และ O (Output) แทำนผลล�พีธิ�

คำ$าส��งเด��ยูวและข้"อม�ลเด��ยูว ( Single Instruction Single

Data : SISD )

PD

I

O

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

การทำ�างานของระบบน��เป!นการทำ�างาน ของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�น หร2อทำ�#

เร�ยูกว-า ทำ�างานขนานก�น (parallel processing) โปรเซีสั้เซีอร�ทำ+กต�วทำ�าคิ�าสั้�#ง

เด�ยูวก�นหมด แต-ม�ข$อม�ลเป!นของตนเองด�งน��นผลล�พีธิ�ทำ�#ได$จั"งม�หลายูช้+ด

คำ$าส��งเด��ยูวและหลายูช้,ดข้"อม�ล( Single Instruction

Multiple Data : SIMD )

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

P1D1

O1

P2D2

O2

P3D3

O3

PnDn

On

คำ$าส��งเด��ยูวและหลายูช้,ดข้"อม�ล ( Single Instruction

Multiple Data : SIMD) … ต่�อ

I

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

SIMD ม�ประโยูช้น�ต-องานทำางด$านการคิ�านวณ์ทำ�# ต$องการคิ�านวณ์แบบเด�ยูวก�นก�บข$อม�ลหลายู ๆ ช้+ดเช้-น การ

บวกเมตร�กซี�เช้-น

คำ$าส��งเด��ยูวและหลายูช้,ดข้"อม�ล( Single Instruction

Multiple Data : SIMD ) … ต่�อ

1X2

3

4

5

1Y2

3

4

5

+

1 1X +Y2 2x +Y3 3x +Y4 4x +Y5 5x +Y

=

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

การทำ�างานของระบบน��เป!นการทำ�างานของ โปรเซีสั้เซีอร�หลายูต�วพีร$อมก�น หร2อทำ�#เร�ยูกว-าทำ�างาน

ขนานก�น (parallel processing) โดยูโปรเซีสั้เซีอร�ทำ+กต�วจัะม�คิ�าสั้�#งของตนเอง แต-

ทำ+กต�วจัะใช้$ข$อม�ลช้+ดเด�ยูวก�น

หลายูช้,ดคำ$าส��งและข้"อม�ลเด��ยูว(Multiple Instruction Single Data : MISD )

P1D O1P2

O2P3

I1

O3Pn

On

I2 I3 In

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

เม2#อโปรเซีสั้เซีอร�ต�วแรกทำ�างานเสั้ร/จัผลล�พีธิ�ทำ�#ได$จัะเป!นข$อม�ลของโปรเซีสั้เซีอร�ต�วต-อไป เช้-นถ$าในระบบ MISD หาคิ-าจัากสั้มการ

น�� y = 2*X2+4 โดยูทำ�# x ม�คิ-าระหว-าง 1 ถ"ง5

จัากต�วอยู-างพีบว-าม� 3 คิ�าสั้�#ง หาคิ-า X ยูกก�าล�ง2

คิ�ณ์ผลล�พีธิ�จัากข$อแรก ด$วยู2 เพี�#มคิ-าผลล�พีธิ�ทำ�#ได$จัากข$อ 2 ด$วยู4

หลายูช้,ดคำ$าส��งและข้"อม�ลเด��ยูว (Multiple Instruction

Single Data : MISD) … ต่�อ

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

การทำ�างานของระบบน��เป!นการทำ�างานของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�นและโปรเซีสั้เซีอร�แต-ละต�วจัะม�คิ�าสั้�#งและข$อม�ลเป!นของตนเอง

ด�งน��นในการทำ�างานแต-ละโปรเซีสั้เซีอร�จัะเป!นอ�สั้ระจัากก�น

ต�วอยู-างระบบคิอมพี�วเตอร�ประเภทำ MIMD ทำ�#เห/นได$ช้�ดเจันคิ2อระบบ เคิร2อข-ายูคิอมพี�วเตอร�(Computer Network)

หลายูช้,ดคำ$าส��งและหลายูช้,ดข้"อม�ล(Multiple Instruction

Multiple Data : MIMD )

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

P1D1

O1

P2D2

O2

P3D3

I1

O3

PnDn

On

I2 I3 In

หลายูช้,ดคำ$าส��งและหลายูช้,ดข้"อม�ล(Multiple Instruction

Multiple Data : MIMD) … ต่�อ