การจัดลำาดับการเข้าใช้งาน ซีพียู cpu...
TRANSCRIPT
CPU Scheduling 1
บทท�� 6การจั�ดลำ�าด�บการเข้�าใช้�งาน
ซี�พี�ยู�CPU Scheduling
CPU Scheduling 2
หั�วข้�อบรรยูายู แนวคิ�ดพี��นฐาน เกณฑ์!ในการจั�ดตาราง ว�ธี�การจั�ดตารางการทำ�างาน การจั�ดตารางการทำ�างานสำ�าหัร�บหัลำายูระด�บคิ�ว การจั�ดตารางการทำ�างานแบบตอบสำนองฉั�บพีลำ�น
CPU Scheduling 3
แนวคิ�ดพี��นฐาน แนวคิ�ดข้อง multiprogramming ทำ�)สำ�มพี�นธี!
ก�นอยู+างง+ายู CPU–I/O Burst Cycle
–ช้+วงประมวลำผลำ/ช้+วงร�บ-สำ+งข้�อม�ลำ กระบวนการทำ�)วไปจัะทำ�างานเป0นวงจัร คิ�อ ทำ�างานแลำะรอคิอยู
CPU burst distribution คิ�อ ช้+วงเวลำาประมวลำผลำ
CPU Scheduling 4
ลำ�กษณะข้อง CPU แลำะ I/O Bursts
CPU Scheduling 5
Histogram ข้อง CPU-burst Times
CPU Scheduling 6
ลำ�กษณะ CPU Scheduler ม�หัน�าทำ�)เลำ�อกโปรเซีสำในแถวคิอยูข้องโปรเซีสำทำ�พีร�อม
สำ�าหัร�บการประมวลำผลำมาใหั�ซี�พี�ยู�ทำ�าการประมวลำผลำ การต�ดสำ�นใจัเลำ�อกโปรเซีสำมาทำ�างาน จัะเก�ดข้4�นเม�)อ
1. โปรแกรมทำ�)ก�าลำ�งประมวลำผลำอยู�+ได�เปลำ�)ยูนสำถานะจัาก running เป0น waiting
2. โปรแกรมทำ�)ก�าลำ�งประมวลำผลำได�เปลำ�)ยูนสำถานะจัาก running เป0น ready
3. โปรแกรมในแถวคิอยูเปลำ�)ยูนสำถานะจัาก waiting เป0นready
4. โปรเซีสำสำ��นสำ5ดการทำ�างาน
CPU Scheduling 7
ลำ�กษณะ CPU Scheduler (ต+อ)
เหัต5การณ!ทำ�)1แลำะ 4 ถ�อว+าเป0นการทำ�างานแบบ nonpreemptive
เหัต5การณ!อ�)นๆ เป0นการทำ�างานแบบ preeptive
CPU Scheduling 8
ต�ว Dispatcher เป0นโปรแกรมทำ�)ทำ�าหัน�าทำ�)มอบการคิวบคิ5มการใช้�งานซี�พี�ยู�
ใหั�แก+โปรเซีสำทำ�)ถ�กเลำ�อกข้4�นมาโดยูต�วจั�ดตารางการทำ�างาน switching context คิ�อ การทำ�าสำว�ตซี!คิอนเทำกซี! การเปลำ�)ยูนสำถานะระบบปฏิ�บ�ต�การไปเป0น user
mode จั�ดต�าแหัน+ง การประมวลำผลำไปยู�งต�าแหัน+งทำ�)เหัมาะ
สำมในโปรแกรมทำ�)ถ�กเลำ�อกข้4�นมาทำ�างาน Dispatch latency –เวลำาทำ��งหัมดทำ�)โปรแกรมด�สำแพี8ทำ
เช้อร!ใช้�ต��งแต+หัยู5ดการประมวลำผลำข้องโปรเซีสำหัน4)งจันกระทำ�)งเร�)มต�นการประมวลำผลำข้องอ�กโปรเซีสำหัน4)ง
CPU Scheduling 9
เกณฑ์!ในการจั�ดตาราง อ�ตราสำ+วนการใช้�ประโยูช้น!ซี�พี�ยู�หัร�อระยูะเวลำาทำ�)ซี�พี�ยู�ม�
งานทำ�าตลำอด Throughput –อ�ตราสำ�มฤทำธี�:ผลำ หัร�อจั�านวนโปรเซีสำทำ�)
ประมวลำผลำเสำร8จัสำ��นต+อหัน+วยูเวลำา Turnaround time –ระยูะเวลำารวมทำ�)ใช้�ในการ
ประมวลำผลำโปรเซีสำหัน4)ง Waiting time –ระยูะเวลำารวมทำ�)โปรเซีสำหัน4)งคิ�างอยู�+ใน
แถวคิอยูสำ�าหัร�บโปรเซีสำทำ�)พีร�อมจัะประมวลำผลำ Response time –ระยูะเวลำาน�บต��งแต+สำ+งโปรเซีสำหัน4)ง
ถ�กสำ+งเข้�าไปทำ�างานจันกระทำ��งได�ร�บการตอบสำนองจัากโปรเซีสำน��นเป0นคิร��งแรก อาจัไม+ใช้+เอาต!พี5ทำทำ�)ต�องการ
CPU Scheduling 10
เกณฑ์!ทำ�)เหัมาะสำม การทำ�าใหั�ซี�พี�ยู�ม�งานทำ�ามากทำ�)สำ5ด ระบบสำามารถประมวลำผลำโปรเซีสำได�เสำร8จัสำ��นใน
อ�ตราสำ�งสำ5ด ทำ�าใหั�ระยูะเวลำารวมในการประมวลำผลำโปรเซีสำต�)าสำ5ด การทำ�าใหั�โปรเซีสำม�ระยูะเวลำาการรอคิอยูต�)าทำ�)สำ5ด การทำ�าใหั�โปรเซีสำได�ร�บการตอบสำนองอยู+างเร8วทำ�)สำ5ด
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
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
CPU Scheduling 13
FCFS Scheduling (ต+อ)ถ�าลำ�าด�บข้องโปรเซีสำเปลำ�)ยูนเป0น
P2 , P3 , P1 The Gantt chart ทำ�)ได� :
P1P3P2
63 300
CPU Scheduling 14
FCFS Scheduling (ต+อ) Waiting time สำ�าหัร�บ P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 ด�กว+ากรณ�แรก Convoy effect โปรเซีสำทำ�)เลำ8กอยู�+หัลำ�งโปรเซีสำทำ�)ใหัญ่+
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)ง
CPU Scheduling 16
การพียูากรณ! Next CPU Burst
CPU Scheduling 17
Priority Scheduling ว�ธี�จั�ดตารางการทำ�างานซี�พี�ยู�แบบตามระด�บคิวามสำ�าคิ�ญ่
ก�าหันดใหั�แต+ลำะโปรเซีสำม�ระด�บคิวามสำ�าคิ�ญ่เป0นข้องตนเอง
ต�วจั�ดตารางจัะมอบซี�พี�ยู�ใหั�แก+โปรเซีสำทำ�)ม�คิ+าระด�บคิวามสำ�าคิ�ญ่สำ�งสำ5ดก+อนเสำมอ Preemptive nonpreemptive
ว�ธี� SJF เป0นกรณ�ต�วอยู+างข้องว�ธี�การน��โดยูก�าหันดใหั� CPU burst เป0นระด�บคิวามสำ�าคิ�ญ่ข้องแต+ลำะโปรเซีสำ
ป<ญ่หัาคิ�อ การผ�ดผ+อนไม+ม�ทำ�)สำ��นสำ5ด ว�ธี�แก�ป<ญ่หัาการผ�ดผ+อนไม+ม�ทำ�)สำ��นสำ5ด ใหั�ใช้�ว�ธี�การเพี�)ม
ระด�บคิวามสำ�าคิ�ญ่ใหั�แก+โปรเซีสำต+าง ๆ
CPU Scheduling 18
Round Robin (RR) แต+ลำะโปรเซีสำจัะได�ร�บเวลำาประมวลำผลำเป0นหัน+วยู
ข้นาดเลำ8กเร�ยูกว+า ระยูะเวลำาคิวอนต�ม โดยูปกต�จัะม�คิ+าประมาณ -10100 millisecond เม�)อหัมดระยูะเวลำาคิวอนต�มทำ�)ใหั�แลำ�วโปรเซีสำจัะต�องหัยู5ดทำ�างานแลำ�วกลำ�บไปต+อแถวคิอยู
ถ�าม�จั�านวนโปรเซีสำเทำ+าก�บ n process แลำะระยูะเวลำาคิวอนต�ม =q แต+ลำะโปรเซีสำจัะรอนานทำ�)สำ5ด
ประสำ�ทำธี�ภาพี ถ�าคิวอนต�ม q ม�คิ+าน�อยูอาจัทำ�าใหั�เก�ดป<ญ่หัา
ข้4�นได� ด�งน��น q จัะต�องม�ข้นาดใหัญ่+ เม�)อเปร�ยูบเทำ�ยูบก�บระยูะเวลำาทำ�)ใช้�ทำ�าคิอนเทำ8กสำว�ตซี!
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
CPU Scheduling 20
Time Quantum and Context Switch Time
CPU Scheduling 21
Turnaround Time Varies With The Time Quantum
CPU Scheduling 22
ลำ�กษณะข้อง Multilevel Queue
การแบ+งแถวคิอยู ออกเป0นแถวคิอยู foreground (interactive)แลำะ background (batch)
แต+ลำะแถวคิอยูจัะใช้�ว�ธี�การจั�ดตารางการทำ�างานแตกต+างก�น)
foreground – RR(แบบเบ��องหัน�าจัะใช้�ว�ธี�การจั�ดตารางแบบหัม5นเว�ยูน)
background – FCFS (แบบเบ��องหัลำ�งจัะใช้�ว�ธี�การจั�ดตารางการทำ�างานแบบมาก+อนทำ�างานก+อน)
การจั�ดตารางการทำ�างานจัะต�องกระทำ�าระหัว+างแถวคิอยู
CPU Scheduling 23
Multilevel Queue Scheduling
CPU Scheduling 24
Multilevel Feedback Queue
โปรเซีสำต+าง ๆ สำามารถถ�กยู�ายูข้�ามแถวคิอยูต+าง ๆ ได�โดยูว�ธี�เพี�)มอายู5
Multilevel-feedback-queue สำ�)งทำ�)น�ามาพี�จัารณาในการจั�ดตาราง จั�านวนแถวคิอยู ว�ธี�การจั�ดตารางทำ�างานสำ�าหัร�บแต+ลำะแถวคิอยู ว�ธี�การทำ�น�ามาใช้�ในการพี�จัารณาเลำ�)อนระด�บโปรเซีสำ
ข้4�น ว�ธี�การทำ�)น�ามาใช้�ในการพี�จัารณาเลำ�)อนระด�บโปรเซี
สำลำง ว�ธี�การทำ�)น�ามาใช้�ในการพี�จัารณาใสำ+โปรเซีสำเข้�าไปใน
แถวคิอยูต+าง ๆ
CPU Scheduling 25
Multilevel Feedback Queues
CPU Scheduling 26
Real-Time Scheduling Hard real-time systems –ต�องการเวลำาทำ�)คิงทำ�)
แน+นอน Soft real-time computing –เป0นระบบทำ�)ทำ�างานโดยู
ไม+ต�องม�เวลำาจั�าก�ด