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

58
CPU CPU Scheduling Scheduling

description

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

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

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

CPU CPU SchedulingScheduling

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

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

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

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

• การจั�ดเวลา CPU เป!นหล�กการทำ�างานหน"#งของ OS ทำ�#ทำ�าให$คิอมพี�วเตอร�ม�คิวามสั้ามารถในการร�นโปรแกรมได$หลายู ๆ โปรแกรมในเวลาเด�ยูวก�น•เหต+การณ์�ทำ�#ซี�พี�ยู�เปล�#ยูนจัากการทำ�างานหน"#งไปยู�งอ�กงานหน"#งเร�ยูกว-า การเปล��ยูนื้สถานื้ะ (context switching)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ข้ อพี�จัารณาในื้การจั�ดเวลา การใช้$สั้อยูซี�พี�ยู� (CPU Utilization)

ทำร�พี+ต (Throughput) เวลาทำ��งหมด (Turnaround Time) เวลารอคิอยู (Waiting Time) เวลาตอบสั้นอง (Response Time)

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

ข้ อพี�จัารณาในื้การจั�ดเวลาการใช้ สอยูซี�พี�ยู� (CPU Utilization) :

การใช้$ประโยูช้น�จัากซี�พี�ยู�อยู-างสั้�งสั้+ด โดยู

ทำ�าให$ซี�พี�ยู�ม�งานทำ�ามากทำ�#สั้+ดเทำ-าทำ�#จัะทำ�าได$ ซี�พี�ยู�คิวรจัะถ�กใช้$อยู�-ระหว-าง -409

0%

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

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

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

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

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

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

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

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

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

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

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

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

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

การจั�ดคิ�วระยูะสั้��นม�ด�งน��การจั�ดคิ�วแบบ FCFSการจั�ดคิ�วแบบ RRการจั�ดคิ�วแบบล�าด�บคิวามสั้�าคิ�ญ่การจั�ดคิ�วแบบ SJN การจั�ดคิ�วแบบ SRTการจั�ดคิ�วแบบหลายูระด�บ

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: การจัดเวลาซีพียู

ต้�วอยู$างการจั�ดคำ�วเม��อม� 4 โปรเซีส (A,B,C,D) ต้ องการใช้ CPU โดยูม�ล"าด�บการเข้ ามาในื้คำ�วเป1นื้ 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

เวลาเฉล�ยูในการรอ 03916

=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เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =13

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

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

(Priority Queue) … ต้$อ

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

ป3ญหาที่��ส"าคำ�ญส"าหร�บการจั�ดคำ�วแบบนื้�� ได$แก- โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#าอาจัจัะไม-ม�โอกาสั้ได$ใช้$ 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 โดยูม�เวลาคำว�นื้ต้�มเป1นื้ 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: การจัดเวลาซีพียู

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

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

34

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 61A B C D E

เฉลยู

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

SJFเวลาในการรอ (0+3+10+20+32) / 5 = 13 เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั (3+10+20+32+61)/5

=25.2

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: การจัดเวลาซีพียู

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

เม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 )

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

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

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

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

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

P (Processor) แทำนโปรเซีสั้เซีอร� I (Instruction) แทำนคิ�าสั้�#ง D (Data) แทำนข$อม�ล และ O (Output) แทำนผลล�พีธิ�

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

Data : SISD )

PD 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)

… ต้$อ

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) … ต้$อ

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

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

3 ว�ธิ� คิ2อ FCFS, ตามล�าด�บคิวามสั้�าคิ�ญ่, SJF และ RR เวลาคิวอนต�ม = 2process เวลาใช้$ CPU ล�าด�บคิวาม

สั้�าคิ�ญ่R 2 3

W 7 5

X 18 1

Y 14 2

Z 10 457

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

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