การจัดเวลาซีพียู
description
Transcript of การจัดเวลาซีพียู
CPU CPU SchedulingScheduling
เนื้��อหาการจั�ดเวลาซี�พี�ยู�การจั�ดคิ�วในระยูะสั้��นการจั�ดคิ�วในระยูะยูาวระบบหลายูโปรเซีสั้เซีอร�การทำ�างานของระบบหลายูโปรเซีสั้เซีอร�
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)
• การจั�ดเวลา CPU เป!นหล�กการทำ�างานหน"#งของ OS ทำ�#ทำ�าให$คิอมพี�วเตอร�ม�คิวามสั้ามารถในการร�นโปรแกรมได$หลายู ๆ โปรแกรมในเวลาเด�ยูวก�น•เหต+การณ์�ทำ�#ซี�พี�ยู�เปล�#ยูนจัากการทำ�างานหน"#งไปยู�งอ�กงานหน"#งเร�ยูกว-า การเปล��ยูนื้สถานื้ะ (context switching)
เป�าหมายู ใช้$งานซี�พี�ยู�ได$อยู-างเต/มประสั้�ทำธิ�ภาพีส��งที่��ต้ องคำ"านื้#ง ในระบบโปรเซีสั้เซีอร�เด�ยูวซี�พี�ยู�จัะทำ�างาน
ได$คิร��งละ 1 งานถ$าม�หลายู ๆ งานจัะต$องเก�ดการรอ
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)… ต้$อ
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling) … ต้$อ
ระบบหลายูโปรแกรมv เสั้ม2อนก�บหลายูโปรแกรม
ด�าเน�นไปพีร$อมก�นv จัะไม-ยูอมให$ซี�พี�ยู�เก�ดการรอv โปรเซีสั้ใดม�การรอการใช้$
อ+ปกรณ์� I/O จัะม�การน�าออกไปจัากซี�พี�ยู� และน�าโปรเซีสั้ใหม-เข$าไปใช้$งานซี�พี�ยู�แทำน
v ระบบโปรแกรมเด�ยูวระบบโปรแกรมเด�ยูวv ไม-ซี�บซี$อนv ทำ�างานทำ�ละโปรแกรมจัน
เสั้ร/จักระบวนการv ทำ�างานต�วเองจันเสั้ร/จั หร2อ
จันกระทำ�#งม�การรออะไรบางอยู-าง เช้-น I/O
v การรอน��ทำ�าให$ซี�พี�ยู�เก�ดการว-างงาน อยู�-เฉยู (idle)
ข้ อพี�จัารณาในื้การจั�ดเวลา การใช้$สั้อยูซี�พี�ยู� (CPU Utilization)
ทำร�พี+ต (Throughput) เวลาทำ��งหมด (Turnaround Time) เวลารอคิอยู (Waiting Time) เวลาตอบสั้นอง (Response Time)
ข้ อพี�จัารณาในื้การจั�ดเวลาการใช้ สอยูซี�พี�ยู� (CPU Utilization) :
การใช้$ประโยูช้น�จัากซี�พี�ยู�อยู-างสั้�งสั้+ด โดยู
ทำ�าให$ซี�พี�ยู�ม�งานทำ�ามากทำ�#สั้+ดเทำ-าทำ�#จัะทำ�าได$ ซี�พี�ยู�คิวรจัะถ�กใช้$อยู�-ระหว-าง -409
0%
ข้ อพี�จัารณาในื้การจั�ดเวลาที่ร�พี,ต้ (Throughput) จั�านวนงานทำ�#เสั้ร/จัต-อหน-วยูเวลา
ข้ อพี�จัารณาในื้การจั�ดเวลา เวลาที่��งหมด (Turnaround Time) : คิ2อช้-วงเวลาทำ��งหมดทำ�#ใช้$ในการทำ�างานใดงานหน"#งต��งแต-เร�#มต$นเข$าไปในระบบ จันงานถ�กทำ�าจันเสั้ร/จัเร�ยูบร$อยู (รวมเวลาทำ�#รอเข$าหน-วยูคิวามจั�า เวลาทำ�#คิอยูอยู�-ในคิ�ว เวลาทำ�#ใช้$ซี�พี�ยู� และเวลาของอ�นพี+ต/เอาต�พี+ต)
ข้ อพี�จัารณาในื้การจั�ดเวลา เวลารอคำอยู (Waiting Time) :ช้-วงเวลาทำ�#งานใดงานหน"#งต$องรอการทำ�างานของต�วจั�ดเวลา โดยูไม-รวมเวลาของการใช้$ซี�พี�ยู� และเวลาของการต�ดต-ออ�นพี+ต/เอาต�พี+ต สั้-วนใหญ่-ก/คิ2อเวลาทำ�#งานต$องคิอยูอยู�-ในคิ�ว (Ready Queue)
ข้ อพี�จัารณาในื้การจั�ดเวลา เวลาต้อบสนื้อง (Response Time) คำ�อเวลาที่��ว�ดระหว$างเวลาที่��ม�การร องข้อการกระที่"าใด ๆ ต้$อระบบแล วม�การต้อบร�บกล�บออกมา (คำวามเร.วข้องเวลาต้อบสนื้องจั#งม�กจัะข้#�นื้อยู�$ก�บอ,ปกรณ/อ�นื้พี,ต้/เอาต้/พี,ต้)
การจั�ดคำ�วระยูะส��นื้ (Short-term scheduling)
• ข� �นตอนน��เป!นการคิ�ดเล2อกโปรเซีสั้ซี"#งรออยู�-ในสั้ถานะพีร$อมทำ�#เหมาะสั้มทำ�#สั้+ดให$เข$าไปอยู�-ในสั้ถานะร�น (คิรอบคิรอง CPU)•การจั�ดคิ�วให$ก�บโปรเซีสั้น��นถ2อว-าเป!นหน$าทำ�# ของหน-วยูจั�ดคิ�วในระยูะสั้��น (Short-term Scheduler) ซี"#งเป!นสั้-วนหน"#งใน OS• สั้�าหร�บการสั้-งโปรเซีสั้ทำ�#ถ�กเล2อกแล$วให$เข$าไปอยู�-ในสั้ถานะร�น เป!นหน$าทำ�#ของต�วสั้-ง (Dispatcher) ซี"#งเป!นสั้-วนหน"#งใน OS
การจั�ดคำ�วระยูะส��นื้ (Short-term scheduling) … ต้$อ
การจั�ดคิ�วระยูะสั้��นม�ด�งน��การจั�ดคิ�วแบบ FCFSการจั�ดคิ�วแบบ RRการจั�ดคิ�วแบบล�าด�บคิวามสั้�าคิ�ญ่การจั�ดคิ�วแบบ SJN การจั�ดคิ�วแบบ SRTการจั�ดคิ�วแบบหลายูระด�บ
การจั�ดคำ�วแบบมาก$อนื้ได ก$อนื้ (First-come-first-served
: FCFS)• เป!นว�ธิ�การทำ�#ง-ายูทำ�#สั้+ด• โปรเซีสั้ใดเข$ามารอในคิ�วก-อนจัะม�สั้�ทำธิ�คิรอบคิรอง CPU ก-อน• โปรเซีสั้ทำ�#ได$คิรอบคิรอง CPU จัะทำ�างานไปจันเสั้ร/จั ไม-ม�ระยูะเวลาคิวอนต�ม• ถ$าโปรเซีสั้ม�การเร�ยูกใช้$งานอ+ปกรณ์�อ�นพี+ต/เอาทำ�พี+ต หร2อรอเหต+การณ์�บางอยู-าง โปรเซีสั้น��นต$องปลดปล-อยูซี�พี�ยู� และออกจัากสั้ถานะร�นไปอยู�-ในสั้ถานะบล/อคิ• เม2#อการเร�ยูกใช้$อ+ปกรณ์�อ�นพี+ต/เอาทำ�พี+ตเสั้ร/จัสั้��นลง หร2อเก�ดเหต+การณ์�ทำ�#ก�าล�งรออยู�- โปรเซีสั้น��นจัะกล�บไปอยู�-ต-อทำ$ายูคิ�วของสั้ถานะพีร$อม
ข$อด�คิ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) … ต้$อ
ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!น 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
จัากต�วอยู-างจัะพีบว-าการจั�ดคิ�วแบบ 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) … ต้$อ
จัากป8ญ่หาของการจั�ดคิ�วแบบมาก-อนได$ก-อน จั"งทำ�าให$เก�ดแนวคิ�ดทำ�#จัะคิ�ดเล2อกโปรเซีสั้ทำ�#ต$องการเวลาในการทำ�างานน$อยูทำ�#สั้+ดเข$ามาใช้$ CPU ก-อนเพี2#อทำ�าให$ โปรเซีสที่��ต้ องการเวลาในื้การที่"างานื้นื้ อยูจับออกไปได เร.วข้#�นื้ และจั"านื้วนื้โปรเซีสที่��รออยู�$ในื้คำ�วก.จัะม�จั"านื้วนื้ลดลง
แต-ถ$าม�โปรเซีสั้หลายูต�วทำ�#ม�คิวามต$องการเวลาในการทำ�างานเทำ-าก�น ก/จัะใช้$หล�กการแบบมาก-อนได$ก-อนมาใช้$ในการคิ�ดเล2อก
การจั�ดคำ�วแบบงานื้ส��นื้ที่"าก$อนื้ (Short-Job-first : SJF)
ต้�วอยู$างการจั�ดคำ�วเม��อม� 4 โปรเซีส (A,B,C,D) ต้ องการใช้ CPU โดยูม�ล"าด�บการเข้ ามาในื้คำ�วเป1นื้ A,B,C,D
การจั�ดคำ�วแบบงานื้ส��นื้ที่"าก$อนื้ (Short-Job-first : SJF)
… ต้$อ
โปรเซีสั้ ระยูะเวลาคิวามต$องการ CPU (ว�นาทำ�)
ABCD
6
8
7
3
ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!น 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
จัากการทำดลองพีบว-า SJF จัะให$คิ-าเฉล�#ยูของการคิอยูได$ต�#าทำ�#สั้+ด เพีราะม�การเล2#อนโปรเซีสั้ทำ�#ม�เวลาใช้$ CPU น$อยูสั้+ดมาไว$หน$าคิ�ว
ป8ญ่หาสั้�าหร�บการจั�ดคิ�วแบบ SJF คิ2อ ต�วจั�ดคิ�วระยูะสั้��นไม-ทำราบว-าแต-ละโปรเซีสั้ต$องการใช้$เวลาเทำ-าใด
ว�ธิ�แก$ คิ2อ ให$แต-ละโปรเซีสั้ก�าหนดเวลาทำ�#ต$องการในการ
ใช้$ CPU มาด$วยูให$ OS สั้ร$างโปรเซีสั้เพี2#อคิ�านวณ์เวลาโดยูประมาณ์ของแต-ละโปรเซีสั้ทำ�#ต$องการใช้$ CPU
การจั�ดคำ�วแบบงานื้ส��นื้ที่"าก$อนื้(Short-Job-first : SJF) ต้$อ
ว�ธิ�น��จัะม�การจั�ดล�าด�บคิวามสั้�าคิ�ญ่ให$ก�บแต-ละโปรเซีสั้ทำ�#ต$องการใช้$ CPU
โปรเซีสั้ทำ�#อยู�- ณ์ . ต$นคิ�วก/จัะเป!นโปรเซีสั้ทำ�#ม�คิวาม สั้�าคิ�ญ่มากทำ�#สั้+ด และลดลงเร2#อยู ๆ
โปรเซีสั้ทำ�#อยู�-ทำ$ายูคิ�วคิ2อโปรเซีสั้ทำ�#ม�คิวามสั้�าคิ�ญ่ต�#าสั้+ด
ถ$าม�โปรเซีสั้ใหม-เข$ามาในคิ�ว ก/จัะม�การแซีงคิ�วได$ถ$าโปรเซีสั้ทำ�#เข$ามาใหม-ม�ล�าด�บคิวามสั้�าคิ�ญ่สั้�งกว-าโปรเซีสั้ทำ�#ก�าล�งบรรจั+อยู�-ในคิ�ว
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ(Priority Queue)
ต�วอยู-างการจั�ดคิ�วเม2#อม� 4 โปรเซีสั้ (A,B,C,D) ต$องการใช้$ CPU โดยูม�ล�าด�บการเข$ามาในคิ�วเป!น A,B,C,D
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ (Priority Queue) … ต้$อ
โปรเซีสั้เวลาคิวามต$องการ CPU (ว�นาทำ�)
ABCD
10
1
2
5
ล�าด�บคิวามสั้�าคิ�ญ่
3
2
4
1
ถ"งแม$ว-าล�าด�บการเข$ามาในคิ�วอาจัจัะเป!น 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
คำ"าถาม ถ$าเป!นการจั�ดคิ�วแบบ FCFS เวลาเฉล�#ยูใน
การรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัเทำ-าก�บเทำ-าใด
ถ$าเป!นการจั�ดคิ�วแบบ SJFเวลาเฉล�#ยูในการรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัเทำ-าก�บเทำ-าใด
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ (Priority Queue) … ต้$อ
คำ"าต้อบ เวลาเฉล�#ยูในการรอและเวลาเฉล�#ยูในการทำ�างานเสั้ร/จัในื้การที่"างานื้และแบบPriority
เวลาเฉล�#ยูในการรอ =6.75เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =11.25
FCFSเวลาเฉล�#ยูในการรอ =8.5เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =13
SJFเวลาเฉล�#ยูในการรอ =3เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =7.5
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ
(Priority Queue) … ต้$อ
ป3ญหาที่��ส"าคำ�ญส"าหร�บการจั�ดคำ�วแบบนื้�� ได$แก- โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#าอาจัจัะไม-ม�โอกาสั้ได$ใช้$ CPU ถ$าม�โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่สั้�งอยู�-เป!นจั�านวนมาก หร2อม�โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่สั้�งเข$ามาใหม-ตลอดเวลา
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ (Priority Queue) … ต้$อ
ว�ธิ�การพี�จัารณ์าก�าหนดล�าด�บคิวามสั้�าคิ�ญ่ของโปรเซีสั้ต-าง ๆ อาจัพี�จัารณ์าได$จัากองคิ�ประกอบต-าง ๆ เช้-น
เจั าข้องโปรเซีส : โปรเซีสั้ทำ�#มาจัากผ�$ใช้$ทำ� #ว ๆ ไป จัะม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#ากว-า โปรเซีสั้ทำ�#มาจัากผ�$คิวบคิ+มระบบประเภที่ข้องโปรเซีส : โปรเซีสั้ของงานในระบบแบตซี� (Batch mode) ม�กม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#ากว-าโปรเซีสั้ของงานแบบตอบโต$ (Interactivemode)ผู้� ใช้ ที่��ยู�นื้ยูอมจั$ายูเง�นื้เพี��มระยูะเวลาที่��โปรเซีสเข้ ามาอยู�$ในื้ระบบ
การจั�ดคำ�วแบบต้ามล"าด�บคำวามส"าคำ�ญ (Priority Queue) … ต้$อ
ว�ธิ�การน��จัะคิล$ายูก�บแบบ SJF แต- SRJ จัะน�าเอาโปรเซีสั้ทำ�#เหล2อเวลาในการใช้$ CPU น$อยูทำ�#สั้+ดมาอยู�-ทำ�#ต$นคิ�วเพี2#อเข$าไปใช้$งาน CPU ก-อน
ว�ธิ�การน��จัะทำ�าให$ทำ��งโปรเซีสั้ทำ�#ต$องการเวลาในการใช้$ CPU น$อยู และโปรเซีสั้ทำ�#ต$องการเวลาในการใช้$ CPU มากแต-ใกล$จัะจับสั้ามารถออกจัากระบบได$เร/วข"�น
ว�ธิ�การน��นอกจัากจัะต้ องที่ราบเวลาทำ�#ต$องการใช้$ CPU แล$วยู�งต$องม�การบ�นทำ"กเวลาทำ�#โปรเซีสั้ทำ�างานไปแล$วด$วยู
การจั�ดคำ�วแบบงานื้ที่��เหล�อเวลานื้ อยูที่"าก$อนื้
(Shortest-remaining-first : SRJ)
ใช้$ก�บระบบงานคิอมพี�วเตอร�แบบแบ-งเวลา โดยูม�ล�กษณ์ะการจั�ดคิ�วเป!นแบบ FCFS แต-ให$ม�กรรมว�ธิ�ของการให$สั้�ทำธิ�ในการคิรอบคิรอง CPU ของแต-ละโปรเซีสั้ คิ2อ “แต-ละโปรเซีสั้ทำ�#เข$ามาในระบบจัะถ�กจั�าก�ดเวลาการเข$าไปใช้$ CPU เทำ-า ๆ ก�น ” ซี"#งเร�ยูกช้-วงเวลาน��ว-า เวลาคิว�นต�ม (Quantum Time)
ต�วจั�ดเวลาระยูะสั้��นจัะม�การให$ CPU ก�บโปรเซีสั้ทำ�#อยู�-ในคิ�วแบบวนรอบ โดยูม�กฎเกณ์ฑ์�ว-า ถ$าโปรเซีสั้ใดไม-สั้ามารถกระทำ�าได$สั้�าเร/จัภายูใน 1 คิว�นต�ม โปรเซีสั้จัะต$องถ�กน�ากล�บไปไว$ในคิ�วเช้-นเด�ม
สั้ถานภาพีต-าง ๆ ของโปรเซีสั้ทำ�#ยู�งทำ�าไม-เสั้ร/จัจัะถ�กบ�นทำ"กไว$ เม2#อถ"งโอกาสั้ได$คิรอบคิรอง CPU อ�ก ก/จัะได$เร�#มต$นร�นต-อจัากคิร��งทำ�#แล$วโดยูไม-ต$องเร�#มใหม-ทำ��งหมด
การจั�ดคำ�วแบบวนื้รอบ (Round-Robin : RR)
การจั�ดคำ�วแบบวนื้รอบ (Round-Robin :
RR) … ต้$อ
เร�#ม
พีร$อม ร�น
บล/อก
สั้��นสั้+ด
ต�วอยู-างการจั�ดคิ�วแบบ 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+ =
ต�วอยู-างการจั�ดคิ�วแบบ 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+ =
การจั�ดคำ�วแบบวนื้รอบ (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
จัากต�วอยู-างจัะเห/นว-าการทำ�างานแบบ RR จัะเป!นประโยูช้น�ต-อโปรเซีสั้ B หร2อโปรเซีสั้ทำ�#ต$องการเวลาในการใช้$ CPU น$อยูแต-เข$าคิ�วมาทำ�หล�ง
ในทำางตรงก�นข$ามจัะเก�ดผลเสั้�ยูต-อโปรเซีสั้ A หร2อโปรเซีสั้ทำ�#ต$องการเวลาในการใช้$ CPU มากประสั้�ทำธิ�ภาพีของการวนรอบข"�นอยู�-ก�บการก�าหนดขนาดของคิว�นต�มเป!นอยู-างยู�#ง
ถ$าขนาดของคิว�นต�มใหญ่-หร2อนานเก�นไป ประสั้�ทำธิ�ภาพีของการวนรอบก/จัะใกล$เคิ�ยูงก�บแบบมาก-อนได$ก-อนถ$าขนาดของคิว�นต�มเล/กเก�นไป ระยูะเวลาทำ�#ใช้$ในการทำ�างานของระบบ (throughput) ก/จัะช้$าลง
การจั�ดคำ�วแบบวนื้รอบ (Round-Robin : RR) … ต้$อ
คำ"าถาม เม2#อม� 3 โปรเซีสั้ ( A,B,C) ต$องการใช้$ CPU แบบ RR
ถ$าเวลาคิว�นต�มเป!น 3 ว�นาทำ� เวลาเฉล�#ยูในการคิอยูเป!นเทำ-าใดเวลาคิว�นต�มเป!น 6 ว�นาทำ� เวลาเฉล�#ยูในการคิอยูเป!นเทำ-าใด
การจั�ดคำ�วแบบวนื้รอบ (Round-Robin : RR)
โปรเซีสั้ ล�าด�บการเข$าคิ�ว เวลาทำ�#ต$องการใช้$ CPU (ว�นาทำ�)
A 1 15
B 2 1
C 3 10
ต้�วอยู$าง จังหาคิ-าเฉล�#ยูทำ��ง 3 ว�ธิ� คิ2อ FCFS, SJF
และ RR เวลาคิวอนต�ม = 10
102937
12
ABCDE
เวลาโปรเซีสั้
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
เฉลยู
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
เฉลยู
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
การจั�ดคิ�วด�งทำ�#กล-าวมาแล$วทำ��งสั้��นเป!นการจั�ดคิ�วภายูในคิ�วเพี�ยูง
1 คิ�ว เร�ยูกว-าการจั�ดคิ�วแบบ 1 ระด�บด�งร�ป
เพี2#อให$การจั�ดคิ�วเป!นไปอยู-างม�ประสั้�ทำธิ�ภาพีมากข"�น เราจั"งจั�ดให$ม�คิ�วหลายู ๆ คิ�วแทำนทำ�#จัะม�เพี�ยูงคิ�วเด�ยูว เร�ยูกว-าเป!นการจั�ดคิ�วแบบหลายูระด�บ
การจั�ดคำ�วแบบหลายูระด�บ
CPU A B C
• การจั�ดคิ�วแบบหลายูระด�บน��น แต-ละคิ�วไม-จั�าเป!นเป!นต$องเป!นประเภทำเด�ยูวก�น
• การคิ�ดเล2อกโปรเซีสั้น��นจัะคิ�ดเล2อกจัากคิ�วทำ�# 1 ก-อนจันกระทำ�#งโปรเซีสั้ภายูในคิ�วทำ�# 1ทำ�างานเสั้ร/จัทำ��งหมด แล$วจั"งคิ�ดเล2อกโปรเซีสั้ในคิ�วล�าด�บถ�ดไป
• โปรเซีสั้ทำ�#ม�คิวามสั้�าคิ�ญ่มาก ม�กจัะอยู�-ในคิ�วระด�บแรก โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่น$อยูลงไปก/จัะอยู�-ในคิ�วระด�บหล�ง
• โปรเซีสั้ประเภทำเด�ยูวก�นม�กอยู�-ในคิ�วระด�บเด�ยูวก�น
การจั�ดคำ�วแบบหลายูระด�บ … ต้$อ
การจั�ดคำ�วแบบหลายูระด�บ … ต้$อ
CPU
An Bn Cn
A2 B2 C2
A1 B1 C1คิ�วทำ�# 1
Priority Queue
คิ�วทำ�# 2FCFS Queue
คิ�วทำ�# nRR Queue
System processes queue
Interactive processes queue
Student processes queue
Batch 14 processes queue
Interactive processes queue
การจั�ดคำ�วแบบหลายูระด�บ … ต้$อ
การจั�ดคำ�วระยูะส��นื้เป1นื้การจั�ดคำ�วในื้ระด�บโปรเซีส โดยูม�ต�วจั�ดคิ�วระยูะสั้��นทำ�าหน$าทำ�#คิ�ดเล2อกโปรเซีสั้ทำ�#อยู�-ในคิ�วทำ�#ม�สั้ถานะพีร$อม สั้-งเข$าไปอยู�-ในสั้ถานะร�นการจั�ดคำ�วระยูะยูาวเป1นื้การจั�ดคำ�วในื้ระด�บงานื้ ไม-ใช้-ระด�บโปรเซีสั้
เม2#อผ�$ใช้$สั้-งงานเข$ามาในระบบ งานเหล-าน��จัะไปรออยู�-ในคิ�วงานเม2#อระบบอยู�-ในสั้ภาพีพีร$อมทำ�#จัะร�บโปรเซีสั้ใหม-ได$ เช้-น ม�หน-วยูคิวามจั�าเหล2อมากพีอ
การจั�ดคำ�วระยูะยูาว
ต�วจั�ดคิ�วระยูะยูาวจัะคิ�ดเล2อกงานทำ�#อยู�-ในคิ�วงานข"�นมาพีร$อมทำ��งสั้ร$างโปรเซีสั้ใหม-สั้�าหร�บงานน��น สั้-งให$ก�บต�วจั�ดคิ�วระยูะสั้��นทำ�างานต-อไป
ต�วจั�ดคิ�วระยูะสั้��นยู�งม�หน$าทำ�#ยู+ต�โปรเซีสั้ทำ�#จับการทำ�างานแล$ว
คำ�วงานื้จัะต-างก�บคำ�วข้องโปรเซีสเล/กน$อยู คิ2อ งานทำ�#ถ�กคิ�ดเล2อกข"�นมาและสั้ร$างเป!นโปรเซีสั้ใหม-แล$วจัะไม$ม�การวนื้กล�บมาเข้ าคำ�วใหม$เหม�อนื้ก�บโปรเซีส
การคิ�ดเล2อกงานเพี2#อสั้ร$างโปรเซีสั้ใหม- ม�ว�ธิ�การเหม2อนก�บการคิ�ดเล2อกโปรเซีสั้ทำ�#อยู�-ในคิ�ว ยูกเว$นว�ธิ�แบบ RR ทำ�#ไม-ได$ใช้$ก�บคิ�วงาน
การจั�ดคำ�วระยูะยูาว … ต้$อ
หมายูถ"งระบบทำ�#ม� 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)
คิอมพี�วเตอร�ทำ�#ใช้$งานทำ�#วไปในป8จัจั+บ�นจัะเป!นประเภทำ SISD
ระบบคิอมพี�วเตอร�ประเภทำน��ม�โปรเซีสั้เซีอร�อยู�-เพี�ยูงต�วเด�ยูว
การทำ�างานของโปรเซีสั้เซีอร�ในระบบน��จัะทำ�างานได$ทำ�ละ 1 คิ�าสั้�#งและร�บข$อม�ลได$ 1 ช้+ด
P (Processor) แทำนโปรเซีสั้เซีอร� I (Instruction) แทำนคิ�าสั้�#ง D (Data) แทำนข$อม�ล และ O (Output) แทำนผลล�พีธิ�
คำ"าส��งเด��ยูวและข้ อม�ลเด��ยูว ( Single Instruction Single
Data : SISD )
PD O
การทำ�างานของระบบน��เป!นการทำ�างานของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�น หร2อทำ�#เร�ยูกว-าทำ�างานขนานก�น (parallel processing) โปรเซีสั้เซีอร�ทำ+กต�วทำ�าคิ�าสั้�#งเด�ยูวก�นหมด แต-ม�ข$อม�ลเป!นของตนเอง ด�งน��นผลล�พีธิ�ทำ�#ได$จั"งม�หลายูช้+ด
คำ"าส��งเด��ยูวและหลายูช้,ดข้ อม�ล ( Single Instruction
Multiple Data : SIMD )
P1D1
O1
P2D2
O2
P3D3
O3
PnDn
On
คำ"าส��งเด��ยูวและหลายูช้,ดข้ อม�ล ( Single Instruction Multiple Data : SIMD)
… ต้$อ
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
=
การทำ�างานของระบบน��เป!นการทำ�างานของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�น หร2อทำ�#เร�ยูกว-าทำ�างานขนานก�น (parallel processing)
โดยูโปรเซีสั้เซีอร�ทำ+กต�วจัะม�คิ�าสั้�#งของตนเอง แต-ทำ+กต�วจัะใช้$ข$อม�ลช้+ดเด�ยูวก�น
หลายูช้,ดคำ"าส��งและข้ อม�ลเด��ยูว (Multiple Instruction Single Data : MISD )
P1D O1P2
O2P3
I1
O3Pn
On
I2 I3 In
เม2#อโปรเซีสั้เซีอร�ต�วแรกทำ�างานเสั้ร/จั ผลล�พีธิ�ทำ�#ได$จัะเป!นข$อม�ลของโปรเซีสั้เซีอร�ต�วต-อไป เช้-นถ$าในระบบ MISD หาคิ-าจัากสั้มการน�� y = 2*X2+4 โดยูทำ�# x ม�คิ-าระหว-าง 1ถ"ง 5
จัากต�วอยู-างพีบว-าม� 3 คิ�าสั้�#งหาคิ-า X ยูกก�าล�ง 2คิ�ณ์ผลล�พีธิ�จัากข$อแรก ด$วยู 2เพี�#มคิ-าผลล�พีธิ�ทำ�#ได$จัากข$อ 2 ด$วยู 4
หลายูช้,ดคำ"าส��งและข้ อม�ลเด��ยูว (Multiple Instruction
Single Data : MISD) … ต้$อ
การทำ�างานของระบบน��เป!นการทำ�างานของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�นและโปรเซีสั้เซีอร�แต-ละต�วจัะม�คิ�าสั้�#งและข$อม�ลเป!นของตนเอง
ด�งน��นในการทำ�างานแต-ละโปรเซีสั้เซีอร�จัะเป!นอ�สั้ระจัากก�นต�วอยู-างระบบคิอมพี�วเตอร�ประเภทำ MIMD ทำ�#เห/นได$ช้�ดเจันคิ2อระบบเคิร2อข-ายูคิอมพี�วเตอร� (Computer Network)
หลายูช้,ดคำ"าส��งและหลายูช้,ดข้ อม�ล (Multiple Instruction
Multiple Data : MIMD )
P1D1
O1
P2D2
O2
P3D3
I1
O3
PnDn
On
I2 I3 In
หลายูช้,ดคำ"าส��งและหลายูช้,ดข้ อม�ล (Multiple Instruction Multiple Data :
MIMD) … ต้$อ
การบ านื้จังหาคิ-าเฉล�#ยูในการรอและและทำ�างานเสั้ร/จัทำ��ง
3 ว�ธิ� คิ2อ FCFS, ตามล�าด�บคิวามสั้�าคิ�ญ่, SJF และ RR เวลาคิวอนต�ม = 2process เวลาใช้$ CPU ล�าด�บคิวาม
สั้�าคิ�ญ่R 2 3
W 7 5
X 18 1
Y 14 2
Z 10 457
เฉลยูคิ�าตอบแบบ RRเวลาเฉล�#ยูในการรอ = 23เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั = 33.2