26
CPU Scheduling 1 บบบบบ 6 กกกกกกกกกกกกกกก กกกกกกกกกกกกกกกก CPU Scheduling

การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

Embed Size (px)

Citation preview

Page 1: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 1

บทท�� 6การจั�ดลำ�าด�บการเข้�าใช้�งาน

ซี�พี�ยู�CPU Scheduling

Page 2: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 2

หั�วข้�อบรรยูายู แนวคิ�ดพี��นฐาน เกณฑ์!ในการจั�ดตาราง ว�ธี�การจั�ดตารางการทำ�างาน การจั�ดตารางการทำ�างานสำ�าหัร�บหัลำายูระด�บคิ�ว การจั�ดตารางการทำ�างานแบบตอบสำนองฉั�บพีลำ�น

Page 3: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 3

แนวคิ�ดพี��นฐาน แนวคิ�ดข้อง multiprogramming ทำ�)สำ�มพี�นธี!

ก�นอยู+างง+ายู CPU–I/O Burst Cycle

–ช้+วงประมวลำผลำ/ช้+วงร�บ-สำ+งข้�อม�ลำ กระบวนการทำ�)วไปจัะทำ�างานเป0นวงจัร คิ�อ ทำ�างานแลำะรอคิอยู

CPU burst distribution คิ�อ ช้+วงเวลำาประมวลำผลำ

Page 4: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 4

ลำ�กษณะข้อง CPU แลำะ I/O Bursts

Page 5: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 5

Histogram ข้อง CPU-burst Times

Page 6: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 6

ลำ�กษณะ CPU Scheduler ม�หัน�าทำ�)เลำ�อกโปรเซีสำในแถวคิอยูข้องโปรเซีสำทำ�พีร�อม

สำ�าหัร�บการประมวลำผลำมาใหั�ซี�พี�ยู�ทำ�าการประมวลำผลำ การต�ดสำ�นใจัเลำ�อกโปรเซีสำมาทำ�างาน จัะเก�ดข้4�นเม�)อ

1. โปรแกรมทำ�)ก�าลำ�งประมวลำผลำอยู�+ได�เปลำ�)ยูนสำถานะจัาก running เป0น waiting

2. โปรแกรมทำ�)ก�าลำ�งประมวลำผลำได�เปลำ�)ยูนสำถานะจัาก running เป0น ready

3. โปรแกรมในแถวคิอยูเปลำ�)ยูนสำถานะจัาก waiting เป0นready

4. โปรเซีสำสำ��นสำ5ดการทำ�างาน

Page 7: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 7

ลำ�กษณะ CPU Scheduler (ต+อ)

เหัต5การณ!ทำ�)1แลำะ 4 ถ�อว+าเป0นการทำ�างานแบบ nonpreemptive

เหัต5การณ!อ�)นๆ เป0นการทำ�างานแบบ preeptive

Page 8: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 8

ต�ว Dispatcher เป0นโปรแกรมทำ�)ทำ�าหัน�าทำ�)มอบการคิวบคิ5มการใช้�งานซี�พี�ยู�

ใหั�แก+โปรเซีสำทำ�)ถ�กเลำ�อกข้4�นมาโดยูต�วจั�ดตารางการทำ�างาน switching context คิ�อ การทำ�าสำว�ตซี!คิอนเทำกซี! การเปลำ�)ยูนสำถานะระบบปฏิ�บ�ต�การไปเป0น user

mode จั�ดต�าแหัน+ง การประมวลำผลำไปยู�งต�าแหัน+งทำ�)เหัมาะ

สำมในโปรแกรมทำ�)ถ�กเลำ�อกข้4�นมาทำ�างาน Dispatch latency –เวลำาทำ��งหัมดทำ�)โปรแกรมด�สำแพี8ทำ

เช้อร!ใช้�ต��งแต+หัยู5ดการประมวลำผลำข้องโปรเซีสำหัน4)งจันกระทำ�)งเร�)มต�นการประมวลำผลำข้องอ�กโปรเซีสำหัน4)ง

Page 9: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 9

เกณฑ์!ในการจั�ดตาราง อ�ตราสำ+วนการใช้�ประโยูช้น!ซี�พี�ยู�หัร�อระยูะเวลำาทำ�)ซี�พี�ยู�ม�

งานทำ�าตลำอด Throughput –อ�ตราสำ�มฤทำธี�:ผลำ หัร�อจั�านวนโปรเซีสำทำ�)

ประมวลำผลำเสำร8จัสำ��นต+อหัน+วยูเวลำา Turnaround time –ระยูะเวลำารวมทำ�)ใช้�ในการ

ประมวลำผลำโปรเซีสำหัน4)ง Waiting time –ระยูะเวลำารวมทำ�)โปรเซีสำหัน4)งคิ�างอยู�+ใน

แถวคิอยูสำ�าหัร�บโปรเซีสำทำ�)พีร�อมจัะประมวลำผลำ Response time –ระยูะเวลำาน�บต��งแต+สำ+งโปรเซีสำหัน4)ง

ถ�กสำ+งเข้�าไปทำ�างานจันกระทำ��งได�ร�บการตอบสำนองจัากโปรเซีสำน��นเป0นคิร��งแรก อาจัไม+ใช้+เอาต!พี5ทำทำ�)ต�องการ

Page 10: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 10

เกณฑ์!ทำ�)เหัมาะสำม การทำ�าใหั�ซี�พี�ยู�ม�งานทำ�ามากทำ�)สำ5ด ระบบสำามารถประมวลำผลำโปรเซีสำได�เสำร8จัสำ��นใน

อ�ตราสำ�งสำ5ด ทำ�าใหั�ระยูะเวลำารวมในการประมวลำผลำโปรเซีสำต�)าสำ5ด การทำ�าใหั�โปรเซีสำม�ระยูะเวลำาการรอคิอยูต�)าทำ�)สำ5ด การทำ�าใหั�โปรเซีสำได�ร�บการตอบสำนองอยู+างเร8วทำ�)สำ5ด

Page 11: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 11

First-Come, First-Served (FCFS) Scheduling

ProcessBurst TimeP1 24

P2 3

P3 3

ลำ�าด�บข้องโปรเซีสำทำ�)มาถ4งเป0นด�งน�� : P1 , P2 , P3

Gantt Chart ทำ�)ได� :

P1 P2 P3

24 27 300

Page 12: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 12

First-Come, First-Served (FCFS) Scheduling (ต+อ)

Waiting time สำ�าหัร�บ P1 = 0; P2 = 24; P3

= 27 Average waiting time: (0 + 24 + 27)/3

= 17

Page 13: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 13

FCFS Scheduling (ต+อ)ถ�าลำ�าด�บข้องโปรเซีสำเปลำ�)ยูนเป0น

P2 , P3 , P1 The Gantt chart ทำ�)ได� :

P1P3P2

63 300

Page 14: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 14

FCFS Scheduling (ต+อ) Waiting time สำ�าหัร�บ P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 ด�กว+ากรณ�แรก Convoy effect โปรเซีสำทำ�)เลำ8กอยู�+หัลำ�งโปรเซีสำทำ�)ใหัญ่+

Page 15: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 15

Shortest-Job-First (SJR) Scheduling

ว�ธี�การจั�ดตารางการทำ�างานซี�พี�ยู�แบบโปรเซีสำสำ��นทำ�างานก+อน เป0นการจั�ดตารางการทำ�างานโดยูใหั�โอกาสำแก+โปรเซีสำทำ�)ใช้�เวลำาซี�พี�ยู�น�อยูได�ทำ�างานก+อน

ม� 2 แนวทำาง nonpreemptive –เม�)อทำ�าการมอบซี�พี�ยู�ใหั�แก+โปรเซีสำ

ใดแลำ�วโปรเซีสำน��นจัะได�คิรอบคิรองซี�พี�ยู�จันกว+าจัะหัมดเวลำา ซี�พี�ยู� burst ข้องตนเอง

preemptive –แม�ว+าจัะมอบซี�พี�ยู�ใหั�แก+โปรเซีสำใดแลำ�วก8ตาม ถ�าม�โปรเซีสำใหัม+ทำ�)ม� ซี�พี�ยู� burst น�อยูกว+าเวลำาทำ�)เหัลำ�ออยู�+ข้องโปรเซีสำทำ�)ก�าลำ�งประมวลำผลำน��นต�วจั�ดตารางการทำ�างานก8จัะหัยู5ดการทำ�างาน แลำ�วมอบซี�พี�ยู�ใหั�แก+โปรเซีสำใหัม+ทำ�)ม�เวลำาซี�พี�ยู� burst น�อยูกว+า

SJF น��นเป0นว�ธี�การทำ�)ด�ทำ�)สำ5ดแบบหัน4)งทำ�)จัะใหั�ผลำเวลำาเฉัลำ�)ยูในการรอคิอยูทำ�)น�อยูทำ�)สำ5ดสำ�าหัร�บโปรเซีสำทำ�)ก�าหันดข้4�นกลำ5+มหัน4)ง

Page 16: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 16

การพียูากรณ! Next CPU Burst

Page 17: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 17

Priority Scheduling ว�ธี�จั�ดตารางการทำ�างานซี�พี�ยู�แบบตามระด�บคิวามสำ�าคิ�ญ่

ก�าหันดใหั�แต+ลำะโปรเซีสำม�ระด�บคิวามสำ�าคิ�ญ่เป0นข้องตนเอง

ต�วจั�ดตารางจัะมอบซี�พี�ยู�ใหั�แก+โปรเซีสำทำ�)ม�คิ+าระด�บคิวามสำ�าคิ�ญ่สำ�งสำ5ดก+อนเสำมอ Preemptive nonpreemptive

ว�ธี� SJF เป0นกรณ�ต�วอยู+างข้องว�ธี�การน��โดยูก�าหันดใหั� CPU burst เป0นระด�บคิวามสำ�าคิ�ญ่ข้องแต+ลำะโปรเซีสำ

ป<ญ่หัาคิ�อ การผ�ดผ+อนไม+ม�ทำ�)สำ��นสำ5ด ว�ธี�แก�ป<ญ่หัาการผ�ดผ+อนไม+ม�ทำ�)สำ��นสำ5ด ใหั�ใช้�ว�ธี�การเพี�)ม

ระด�บคิวามสำ�าคิ�ญ่ใหั�แก+โปรเซีสำต+าง ๆ

Page 18: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 18

Round Robin (RR) แต+ลำะโปรเซีสำจัะได�ร�บเวลำาประมวลำผลำเป0นหัน+วยู

ข้นาดเลำ8กเร�ยูกว+า ระยูะเวลำาคิวอนต�ม โดยูปกต�จัะม�คิ+าประมาณ -10100 millisecond เม�)อหัมดระยูะเวลำาคิวอนต�มทำ�)ใหั�แลำ�วโปรเซีสำจัะต�องหัยู5ดทำ�างานแลำ�วกลำ�บไปต+อแถวคิอยู

ถ�าม�จั�านวนโปรเซีสำเทำ+าก�บ n process แลำะระยูะเวลำาคิวอนต�ม =q แต+ลำะโปรเซีสำจัะรอนานทำ�)สำ5ด

ประสำ�ทำธี�ภาพี ถ�าคิวอนต�ม q ม�คิ+าน�อยูอาจัทำ�าใหั�เก�ดป<ญ่หัา

ข้4�นได� ด�งน��น q จัะต�องม�ข้นาดใหัญ่+ เม�)อเปร�ยูบเทำ�ยูบก�บระยูะเวลำาทำ�)ใช้�ทำ�าคิอนเทำ8กสำว�ตซี!

Page 19: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 19

ต�วอยู+าง RR เม�)อ Time Quantum = 20

Process Burst TimeP1 53

P2 17

P3 68

P4 24 The Gantt chart ทำ�)ได� :

Typically, higher average turnaround than SJF, but better response.

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Page 20: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 20

Time Quantum and Context Switch Time

Page 21: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 21

Turnaround Time Varies With The Time Quantum

Page 22: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 22

ลำ�กษณะข้อง Multilevel Queue

การแบ+งแถวคิอยู ออกเป0นแถวคิอยู foreground (interactive)แลำะ background (batch)

แต+ลำะแถวคิอยูจัะใช้�ว�ธี�การจั�ดตารางการทำ�างานแตกต+างก�น)

foreground – RR(แบบเบ��องหัน�าจัะใช้�ว�ธี�การจั�ดตารางแบบหัม5นเว�ยูน)

background – FCFS (แบบเบ��องหัลำ�งจัะใช้�ว�ธี�การจั�ดตารางการทำ�างานแบบมาก+อนทำ�างานก+อน)

การจั�ดตารางการทำ�างานจัะต�องกระทำ�าระหัว+างแถวคิอยู

Page 23: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 23

Multilevel Queue Scheduling

Page 24: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 24

Multilevel Feedback Queue

โปรเซีสำต+าง ๆ สำามารถถ�กยู�ายูข้�ามแถวคิอยูต+าง ๆ ได�โดยูว�ธี�เพี�)มอายู5

Multilevel-feedback-queue สำ�)งทำ�)น�ามาพี�จัารณาในการจั�ดตาราง จั�านวนแถวคิอยู ว�ธี�การจั�ดตารางทำ�างานสำ�าหัร�บแต+ลำะแถวคิอยู ว�ธี�การทำ�น�ามาใช้�ในการพี�จัารณาเลำ�)อนระด�บโปรเซีสำ

ข้4�น ว�ธี�การทำ�)น�ามาใช้�ในการพี�จัารณาเลำ�)อนระด�บโปรเซี

สำลำง ว�ธี�การทำ�)น�ามาใช้�ในการพี�จัารณาใสำ+โปรเซีสำเข้�าไปใน

แถวคิอยูต+าง ๆ

Page 25: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 25

Multilevel Feedback Queues

Page 26: การจัดลำาดับการเข้าใช้งาน ซีพียู CPU Scheduling

CPU Scheduling 26

Real-Time Scheduling Hard real-time systems –ต�องการเวลำาทำ�)คิงทำ�)

แน+นอน Soft real-time computing –เป0นระบบทำ�)ทำ�างานโดยู

ไม+ต�องม�เวลำาจั�าก�ด