การจัดเวลาซีพียู
DESCRIPTION
บทที่ 7 (ต่อ). การจัดเวลาซีพียู. CPU Scheduling. เนื้อหา. การจัดเวลาซีพียู การจัดคิวในระยะสั้น การจัดคิวในระยะยาว ระบบหลายโปรเซสเซอร์ การทำงานของระบบหลายโปรเซสเซอร์. การจัดเวลาซีพียู (CPU Scheduling). - PowerPoint PPT PresentationTRANSCRIPT
การจั�ดเวลาซี�พี�ยู�การจั�ดเวลาซี�พี�ยู�CPU CPU
SchedulingScheduling
บทท�� 7 (ต่�อ)
เนื้��อหา การจั�ดเวลาซี�พี�ยู� การจั�ดคิ�วในระยูะสั้��น การจั�ดคิ�วในระยูะยูาว ระบบหลายูโปรเซีสั้เซีอร� การทำ�างานของระบบหลายู
โปรเซีสั้เซีอร�
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)
• การจั�ดเวลา CPU เป!นหล�กการ ทำ�างานหน"#งของ OS ทำ�#ทำ�าให$
คิอมพี�วเตอร�ม�คิวามสั้ามารถในการร�น โปรแกรมได$หลายู ๆ โปรแกรมในเวลา
เด�ยูวก�น•เหต+การณ์�ทำ�#ซี�พี�ยู�เปล�#ยูนจัากการทำ�างานหน"#งไปยู�งอ�กงานหน"#งเร�ยูกว-า
การเปล��ยูนื้สถานื้ะ (context switching)
เป�าหมายู ใช้$งานซี�พี�ยู�ได$อยู-างเต/มประสั้�ทำธิ�ภาพีส �งท��ต่"องคำ$านื้%ง ในระบบโปรเซีสั้เซีอร�เด�ยูวซี�พี�ยู�จัะทำ�างานได$
คิร��งละ 1 งาน ถ$าม�หลายู ๆ งานจัะต$องเก�ดการรอ
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)… ต่�อ
การจั�ดเวลาซี�พี�ยู� (CPU Scheduling) … ต่�อ
ระบบหลายูโปรแกรม เสั้ม2อนก�บหลายูโปรแกรม
ด�าเน�นไปพีร$อมก�น จัะไม-ยูอมให$ซี�พี�ยู�เก�ดการ
รอ โปรเซีสั้ใดม�การรอการใช้$
อ+ปกรณ์� I/O จัะม�การน�าออกไปจัากซี�พี�ยู� และน�าโปรเซีสั้ใหม-เข$าไปใช้$งานซี�พี�ยู�แทำน
ระบบโปรแกรมเด�ยูวระบบโปรแกรมเด�ยูว ไม-ซี�บซี$อน ทำ�างานทำ�ละโปรแกรมจัน
เสั้ร/จักระบวนการ ทำ�างานต�วเองจันเสั้ร/จั หร2อ
จันกระทำ�#งม�การรออะไรบางอยู-าง เช้-น I/O
การรอน��ทำ�าให$ซี�พี�ยู�เก�ดการว-างงาน อยู�-เฉยู (idle)
ข้"อพี จัารณาในื้การจั�ดเวลา การใช้"สอยูซี�พี�ยู� (CPU Utilization) ทร�พี,ต่ (Throughput) เวลาท��งหมด (Turnaround Time) เวลารอคำอยู (Waiting Time) เวลาต่อบสนื้อง (Response Time)
ข้"อพี จัารณาในื้การจั�ดเวลา การใช้"สอยูซี�พี�ยู�(CPU Utilization) : การใช้$ประโยูช้น�จัากซี�พี�ยู�อยู-างสั้�งสั้+ด โดยูทำ�าให$ซี�พี�ยู�ม�งานทำ�ามากทำ�#สั้+ดเทำ-าทำ�#จัะทำ�าได$ ซี�พี�ยู�คิวรจัะถ�กใช้$อยู�-ระหว-าง - 4090%
ข้"อพี จัารณาในื้การจั�ดเวลา ทร�พี,ต่ (Throughput) จั�านวนงานทำ�#เสั้ร/จัต-อหน-วยูเวลา
ข้"อพี จัารณาในื้การจั�ดเวลา เวลาท��งหมด (Turnaround Time) :
คิ2อช้-วงเวลาทำ��งหมดทำ�#ใช้$ในการทำ�างานใดงานหน"#งต��งแต-เร�#มต$นเข$าไปในระบบ จันงานถ�กทำ�าจันเสั้ร/จัเร�ยูบร$อยู (รวมเวลาทำ�#รอเข$าหน-วยูคิวามจั�า เวลาทำ�#คิอยูอยู�-ในคิ�ว เวลาทำ�#ใช้$ซี�พี�ยู� และเวลาของอ�นพี+ต/เอาต�พี+ต)
ข้"อพี จัารณาในื้การจั�ดเวลา เวลารอคำอยู (Waiting Time)
: ช้-วงเวลาทำ�#งานใดงานหน"#งต$องรอการทำ�างานของต�วจั�ดเวลา โดยูไม-รวมเวลาของการใช้$ซี�พี�ยู� และเวลาของการต�ดต-ออ�นพี+ต/เอาต�พี+ต สั้-วนใหญ่-ก/คิ2อเวลาทำ�#งานต$องคิอยูอยู�-ในคิ�ว (Ready Queue)
ข้"อพี จัารณาในื้การจั�ดเวลา เวลาต่อบสนื้อง (Response Time) คิ2อเวลาทำ�#ว�ดระหว-างเวลาทำ�#ม�การร$องขอการกระทำ�าใด ๆ ต-อระบบแล$วม�การตอบร�บกล�บออกมา (คิวามเร/วของเวลาตอบสั้นองจั"งม�กจัะข"�นอยู�-ก�บอ+ปกรณ์�อ�นพี+ต/เอาต�พี+ต)
การจั�ดคำ วระยูะส��นื้ (Short-term scheduling)
• ข� �นตอนน��เป!นการคิ�ดเล2อกโปรเซีสั้ซี"#งรออยู�-ในสั้ถานะพีร$อมทำ�#เหมาะสั้มทำ�#สั้+ดให$เข$าไป
อยู�-ในสั้ถานะร�น ( คิรอบคิรอง CPU)• การจั�ดคิ�วให$ก�บโปรเซีสั้น��นถ2อว-าเป!นหน$าทำ�#
ของหน-วยูจั�ดคิ�วในระยูะสั้��น (Short-term Scheduler) ซี"#งเป!นสั้-วนหน"#งใน OS• สั้�าหร�บการสั้-งโปรเซีสั้ทำ�#ถ�กเล2อกแล$วให$เข$าไปอยู�-ในสั้ถานะร�น เป!นหน$าทำ�#ของต�วสั้-ง(Dispatcher) ซี"#งเป!นสั้-วนหน"#งใน OS
การจั�ดคิ�วระยูะสั้��นม�ด�งน�� การจั�ดคิ�วแบบ FCFS การจั�ดคิ�วแบบ RR การจั�ดคิ�วแบบล�าด�บคิวามสั้�าคิ�ญ่ (Priority) การจั�ดคิ�วแบบ SJF (Short Job First) การจั�ดคิ�วแบบ SRJ (Shortest-remaining-first)
การจั�ดคิ�วแบบหลายูระด�บ
การจั�ดคำ วระยูะส��นื้(Short-term scheduling)
… ต่�อ
การจั�ดคำ วแบบมาก�อนื้ได"ก�อนื้ (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)
ต�วอยู-างการจั�ดคิ�วเม2#อม�4 โปรเซีสั้(A,B,C,D) ต$องการ ใช้$ CPU โดยูม�
ล�าด�บการเข$ามาในคิ�วเป!น 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
เวลาเฉล��ยูในื้การรอ 0 3 9 16+ + += 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
เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =13SJF
เวลาเฉล�#ยูในการรอ =3 เวลาเฉล�#ยูในการทำ�างานเสั้ร/จั =7.5
การจั�ดคำ วแบบต่ามล$าด�บคำวาม ส$าคำ�ญ
(Priority Queue) … ต่�อ
ป1ญหาท��ส$าคำ�ญส$าหร�บการจั�ดคำ วแบบนื้�� ได$แก-โปรเซีสั้ทำ�#ม�ล�าด�บคิวามสั้�าคิ�ญ่ต�#าอาจัจัะไม-ม�
โอกาสั้ได$ใช้$ 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 โดยูม�เวลาคำว�นื้ต่�มเป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+ =
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
จัากต�วอยู-างจัะเห/นว-า การทำ�างานแบบ 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 61
A B C D E
เฉลยู
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
เฉลยู
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
การจั�ดคำ วแบบหลายูระด�บ … ต่�อ
การจั�ดคำ วระยูะส��นื้เป4นื้การจั�ดคำ วในื้ระด�บโปรเซีส โดยูม�ต�วจั�ดคิ�วระยูะสั้��นทำ�าหน$าทำ�#คิ�ด
เล2อกโปรเซีสั้ทำ�#อยู�-ในคิ�วทำ�#ม�สั้ถานะพีร$อม สั้-งเข$าไปอยู�-ในสั้ถานะร�นการจั�ดคำ วระยูะยูาวเป4นื้การจั�ดคำ วในื้ระด�บงานื้ ไม-ใช้-ระด�บโปรเซีสั้
เม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 )
ระบบหลายูโปรเซีสเซีอร5(Multi-processor System)
คิอมพี�วเตอร�ทำ�#ใช้$งานทำ�#วไปในป8จัจั+บ�นจัะเป!น ประเภทำ SISD
ระบบคิอมพี�วเตอร�ประเภทำน��ม�โปรเซีสั้เซีอร�อยู�- เพี�ยูงต�วเด�ยูว
การทำ�างานของโปรเซีสั้เซีอร�ในระบบน��จัะทำ�างาน ได$ทำ�ละ 1 คิ�าสั้�#งและร�บข$อม�ลได$ 1 ช้+ด P (Processor) แทำนโปรเซีสั้เซีอร� I
(Instruction) แทำนคิ�าสั้�#ง D (Data) แทำนข$อม�ล และ O (Output) แทำนผลล�พีธิ�
คำ$าส��งเด��ยูวและข้"อม�ลเด��ยูว ( Single Instruction Single
Data : SISD )
PD
I
O
การทำ�างานของระบบน��เป!นการทำ�างาน ของโปรเซีสั้เซีอร�หลายูต�วพีร$อมก�น หร2อทำ�#
เร�ยูกว-า ทำ�างานขนานก�น (parallel processing) โปรเซีสั้เซีอร�ทำ+กต�วทำ�าคิ�าสั้�#ง
เด�ยูวก�นหมด แต-ม�ข$อม�ลเป!นของตนเองด�งน��นผลล�พีธิ�ทำ�#ได$จั"งม�หลายูช้+ด
คำ$าส��งเด��ยูวและหลายูช้,ดข้"อม�ล( Single Instruction
Multiple Data : SIMD )
P1D1
O1
P2D2
O2
P3D3
O3
PnDn
On
คำ$าส��งเด��ยูวและหลายูช้,ดข้"อม�ล ( Single Instruction
Multiple Data : SIMD) … ต่�อ
I
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) … ต่�อ