Module 6: CPU Scheduling

Download Report

Transcript Module 6: CPU Scheduling

โครงสร ้างการจัดลาดับ
ของซี
พ
ย
ี
ู
CPU Scheduling Structure
โครงสร ้างระบบและสถาปัตยกรรม
คอมพิวเตอร ์
นงลักษณ์ พรมทอง วิเชษฐ ์ พลาย
มาศ
Objectives
ึ ษาแนวคิดเกีย
 เพือ
่ ศก
่ วกับการจัดลาดับของ
ี ย
ซพ
ี ใู นสภาพแวดล ้อมต่างๆ
 เพือ
่ ให ้รู ้จักแนวคิดพืน
้ ฐานเกีย
่ วกับการ
จัดลาดับ
 เพือ
่ ให ้เข ้าใจถึงขัน
้ ตอนวิธก
ี ารจัดลาดับแบบ
ต่างๆ
ี ย
 เพือ
่ ให ้รู ้ถึงการจัดลาดับซพ
ี บ
ู นมัลติ
โปรเซสเซอร์ และระบบทางานแบบทันที
Agenda
 Basic Concepts
 Scheduling Criteria
 Scheduling Algorithms
 Multiple-Processor Scheduling
 Real-Time Scheduling
 Algorithm Evaluation
้ ฐาน
แนวคิดพืน
Basic Concepts
 วัตถุประสงค์หลักของระบบมัลติโปรแกรม คือ พยายามให ้มี
กระบวนการใดกระบวนการหนึง่ ดาเนินงานอยูต
่ ลอดเวลา
้
ี ย
ิ ธิภาพ
เพือ
่ ให ้สามารถใชงานซ
พ
ี ไู ด ้อย่างเต็มประสท
(maximum CPU utilization)
ี ย
 การกระทาการของกระบวนการจะประกอบด ้วยรอบซพ
ี ู
(CPU cycle) และรอบการรอไอ/โอ (I/O wait cycle)
กระบวนการจะสลับไปมาระหว่างรอบทัง้ สองนี้
่ นใหญ่สภาวะทีม
้
 สว
่ ก
ี ารเรียกใชไอ/โอจะมี
สงู กว่าการใช ้
ี ย
ซพ
ี ู
้
 ในระบบมัลติโปรแกรมมิงจึงมีความพยายามใชประโยชน์
ี ย
จากซพ
ี ใู นชว่ งจังหวะดังกล่าว
Alternating Sequence of CPU And I/O Bursts
Histogram of CPU-burst Times
ี ย
ต ัวจ ัดลาด ับซพ
ี ู
CPU Scheduler
 จะเลือกกระบวนการทีอ
่ ยูใ่ นหน่วยความจาทีพ
่ ร ้อมจะถูกกระทา
ี ย
การมาหนึง่ กระบวนการ แล ้วจัดสรรให ้ซพ
ี ู
ี ย
ิ ใจภายใต ้สถานการณ์ 4 ประการ
 การจัดลาดับซพ
ี จ
ู ะตัดสน
1.
2.
3.
4.
เมือ
่ กระบวนการสลับจากสถานะกาลังดาเนินงานไปเป็ นสถานะรอ
่ ร ้องขอไอ/โอ หรือรอคอยการเสร็จสน
ิ้ ของกลุม
(เชน
่ กระบวนการลูก
เป็ นต ้น)
่
เมือ
่ กระบวนการสลับจากกาลังดาเนินงานไปเป็ นสถานะพร ้อม (เชน
เมือ
่ เกิดการขัดจังหวะ)
่
เมือ
่ กระบวนการเปลีย
่ นสถานะจากกาลังรอไปเป็ นสถานะพร ้อม (เชน
ิ้ )
เมือ
่ ไอ/โอเสร็จสน
ิ้
เมือ
่ กระบวนการเสร็จสน
 วิธก
ี ารจัดลาดับในสถานการณ์แบบที่ 1 และ 4 นัน
้ เรียกว่า การ
จัดลาดับแบบไม่บงั คับ (nonpreemptive) หรือแบบประสานงาน
(cooperative)
่ นสถานการณ์ท ี่ 2 และ 3 นัน
 สว
้ เรียกว่า แบบบังคับ
(preemptive)
โปรแกรมเลือกจ่ายงาน
Dispatcher
 เป็ นมอดูล (module) ทีย
่ น
ิ ยอมให ้กระบวนการเข ้า
ี ย
ครอบครองซพ
ี เู มือ
่ มันถูกคัดเลือกโดยตัวจัดลาดับ
ั ้ โดยมีหน ้าที่
แบบระยะสน
 ทาการสลับบริบท (context switching)
 ทาการสลับไปยังโหมดผู ้ใช ้ (user mode)
้ อ
 กระโดดไปยังตาแหน่งทีอ
่ ยูท
่ ถ
ี่ ก
ู ต ้องในโปรแกรมผู ้ใชเพื
่
เริม
่ ต ้นโปรแกรมใหม่
 ระยะเวลาทีเ่ กิดขึน
้ ตัง้ แต่เมือ
่ โปรแกรมเลือกจ่ายงาน
หยุดกระบวนการหนึง่ แล ้วให ้กระบวนการอืน
่ เริม
่
ดาเนินการ เรียกว่า เวลาแฝงของการเลือกจ่ายงาน
(Dispatch latency)
เงือ
่ นไขของการจ ัดลาด ับ
Scheduling Criteria
ิ ธิภาพโดยตรง
 เน ้นทีร่ ะบบเป็ นหลักและเกีย
่ วข ้องกับประสท
้
ี ย
 การใชประโยชน์
จากซพ
ี ู (CPU utilization)
 ปริมาณงาน (throughput) คานึงถึงจานวนกระบวนการทัง้ หมด
ทีเ่ สร็จสมบูรณ์ตอ
่ หน่วยเวลา
้ นหลักและเกีย
ิ ธิภาพโดยตรง
 เน ้นทีผ
่ ู ้ใชเป็
่ วข ้องกับประสท
่ งเวลาตัง้ แต่สง่ งาน
 เวลาครบวงงาน (turnaround time) เป็ นชว
ไปจนกระทั่งงานเสร็จสมบูรณ์
 เวลารอคอย (waiting time) จานวนเวลาทีก
่ ระบวนการรอคอย
อยูใ่ นแถวคอยพร ้อม
้ นหลัก
 เป็ นนโยบายทีเ่ น ้นผู ้ใชเป็
 เวลาตอบสนอง (response time) เป็ นเวลาตัง้ แต่เมือ
่ สง่ คาร ้อง
ขอออกไปจนกระทั่งเริม
่ ได ้รับการตอบสนองกลับมาเป็ นครัง้ แรก
เงือ
่ นไขของการหาค่าเหมาะทีส
่ ด
ุ
Optimization Criteria
้
ี ย
 เพิม
่ ประโยชน์ใชสอยซ
พ
ี ู (Max CPU utilization)
 เพิม
่ ปริมาณงานเป็ นหลัก (Max throughput)
 ลดเวลาครบวงงาน (Min turnaround time)
 ลดเวลารอคอย (Min waiting time)
 ลดเวลาตอบสนอง (Min response time)
การจ ัดลาด ับแบบมาก่อนได้กอ
่ น
First-Come, First-Served (FCFS) Scheduling
Process
Burst Time
P1
24
P2
3
P3
3
 Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:
P1
0
P2
24
P3
27
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17
30
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order
P2 , P3 , P1 .
 The Gantt chart for the schedule is:
P2
0
P3
3
P1
6
30
 Waiting time for P1 = 6; P2 = 0; P3 = 3
 Average waiting time: (6 + 0 + 3)/3 = 3
 ดีกว่ากรณีแรก
 อาจเกิดปั ญหา ผลกระทบของคุม
้ ก ัน (Convoy effect) คือ
ั ้ อยูห
กระบวนการสน
่ ลังกระบวนการยาว ต ้องรอนาน
ั้ ดได้กอ
การจ ัดลาด ับแบบงานสนสุ
่ น
Shortest-Job-First (SJF) Scheduling
้
้ พ
ี ย
 ใชขนาดของเวลาที
ก
่ ระบวนการต ้องการใชซ
ี ใู น
คราวถัดไปเป็ นเกณฑ์ โดยจัดสรรเวลาให ้แก่
้
ี ย
กระบวนการทีต
่ ้องการใชเวลาซ
พ
ี น
ู ้อยทีส
่ ด
ุ ก่อน
 มี 2 แบบ
 แบบไม่บง
ั คับ (nonpreemptive) เมือ
่ จัดสรรให ้กระบวนการ
ี ย
ใดแล ้ว จะให ้ครอบครองซพ
ี ไู ปจนกระทั่งงานเสร็จ
 แบบบังคับ (preemptive) ถ ้ามีกระบวนการใหม่เข ้ามาพร ้อม
้ พ
ี ย
ั ้ กว่าเวลาทีย
กับต ้องการเวลาใชซ
ี ส
ู น
่ ังเหลืออยูข
่ อง
กระบวนการทีก
่ าลังใช ้ ก็จะสลับมาเลือกกระบวนการทีม
่ าใหม่
้ พ
ี ย
เข ้าไปใชซ
ี แ
ู ทน บางทีเรียกว่า เวลาเหลือน ้อยสุดใชก่้ อน
(SRTF: Shortest-Remaining-Time-First)
 SJF เป็ นวิธท
ี เี่ หมาะทีส
่ ด
ุ (optimal) ชว่ ยลดค่าเฉลีย
่
ของเวลารอคอยตา่ ทีส
่ ด
ุ สาหรับกระบวนการทัง้ หมด
Example of Non-Preemptive SJF
Process
Arrival Time
P1
0.0
P2
2.0
P3
4.0
P4
5.0
 SJF (non-preemptive)
P1
0
3
P3
7
Burst Time
7
4
1
4
P2
8
P4
12
 Average waiting time = (0 + 6 + 3 + 7)/4 - 4
16
Example of Preemptive SJF
Process
P1
P2
P3
P4
 SJF (preemptive)
P1
0
P2
2
P3
4
Arrival Time
0.0
2.0
4.0
5.0
P2
5
Burst Time
7
4
1
4
P4
7
P1
11
 Average waiting time = (9 + 1 + 0 +2)/4 - 3
16
ข้อพึงพิจารณาการเลือกจากจานวนเวลา
้ พ
ี ย
ของการใชซ
ี ค
ู รงถ
ั้ ัดไป
้
ี ย
 ต ้องสามารถรู ้ได ้ว่ากระบวนการจะใชเวลาของซ
พ
ี อ
ู ก
ี
เท่าไรจึงจะเสร็จในคราวหน ้า
 จึงใชวิ้ ธก
ี ารทานายล่วงหน ้าโดยการคานวณจากเวลา
้ ง้ สุดท ้าย โดยหาค่าเฉลีย
ทีก
่ ระบวนการใชครั
่ แบบ
ี ล (exponential averaging)
เอ็กซโ์ ปแนนเชย
1. tn  actual lenght of nthCPU burst
2.  n1  predicted value for the next CPU burst
3.  , 0    1
4. Define :
 n1   tn  1    n .
Prediction of the Length of the Next CPU Burst
Examples of Exponential Averaging
  =0
 n+1 = n
 Recent history does not count.
  =1
 n+1 = tn
 Only the actual last CPU burst counts.
 If we expand the formula, we get:
n+1 =  tn+(1 - )  tn -1 + …
+(1 -  )j  tn -1 + …
+(1 -  )n=1 tn 0
 Since both  and (1 - ) are less than or equal to 1, each
successive term has less weight than its predecessor.
การจ ัดลาด ับแบบตามลาด ับความสาค ัญ
Priority Scheduling
 กาหนดให ้แต่ละกระบวนการมีหมายเลขลาดับความสาคัญ




่ 0 ถึง 7 หรือ 0 ถึง 4095
กากับไว ้ เชน
ี ย
การจัดสรรซพ
ี จ
ู ะยึดตามลาดับความสาคัญของแต่ละ
กระบวนการ
กระบวนการทีม
่ ห
ี มายเลขลาดับความสาคัญมากกว่าจะถูก
เลือกทาให ้เสร็จก่อน แล ้วค่อยทากระบวนการทีม
่ ี
ความสาคัญลาดับรองๆ ลงไป
ในกรณีทม
ี่ ล
ี าดับความสาคัญเท่ากันอยูห
่ ลายกระบวนการ
ก็จะใชวิ้ ธม
ี าก่อนได ้ก่อนเข ้ามาชว่ ย (FCFS)
อาจเป็ นแบบบังคับ (preemptive) หรือไม่บงั คับ (nonpreemptive) ก็ได ้
การจ ัดลาด ับแบบตามลาด ับความสาค ัญ
Priority Scheduling
 ปั ญหา
ิ้ สุด (indefinite
 เกิดการหยุดรอแบบไม่มท
ี ส
ี่ น
blocking)
-หรือ ภาวะงูกน
ิ หาง (starvation) กระบวนการทีม
่ ล
ี าดับ
ความสาคัญตา่ รอให ้กระบวนการทีม
่ ล
ี าดับ
้
ี ย
ความสาคัญสูงเข ้าใชงานซ
พ
ี น
ู านเกินไป
 วิธแ
ี ก้
้
 ใชเทคนิ
คการปรับอายุ (aging)
 โดยเพิม
่ ค่าลาดับความสาคัญให ้แก่กระบวนการทีม
่ ี
ลาดับความสาคัญตา่ ในแต่ละหน่วยเวลา
การจ ัดลาด ับแบบวิธวี นรอบ
Round Robin (RR)
้
ั ้ ๆ เรียกว่า หน่วยเล็กสุด
 วิธน
ี จ
ี้ ะใชการแบ่
งเวลาออกเป็ นชว่ งสน
ี้ วเวลา (time slice) มักมี
ของเวลา (time quantum) หรือเสย
ค่าตัง้ แต่ 10 ถึง 100 msec.
 กระบวนการทัง้ หมดจะเข ้าแถวรออยูใ่ นแถวคอยพร ้อมแบบเข ้า
ก่อนออกก่อน (FIFO)
ี ย
้ พ
ี ย
 ซพ
ี จ
ู ะเลือกกระบวนการทีอ
่ ยูห
่ ัวแถวมาเพือ
่ เข ้าใชซ
ี ู
จนกระทั่งหมดชว่ งเวลา ก็จะย ้ายกระบวนการนีไ
้ ปใสไ่ ว ้ท ้ายสุด
ของแถวคอยพร ้อม แล ้วเลือกกระบวนการทีอ
่ ยูห
่ ัวแถวไป
่ นีไ
กระทาการต่อ วนรอบเป็ นเชน
้ ปเรือ
่ ยๆ
ิ ธิภาพ ขึน
 ประสท
้ อยูก
่ บ
ั ขนาดของ q หรือการแบ่งหน่วยเวลา
ิ ธิภาพจะเท่ากับแบบมาก่อนได ้ก่อน
 ถ ้าค่าของ q มีขนาดยาว ประสท
(FIFO)
ั ้ ก็จะเสย
ี เวลาในการทาสลับบริบทมากเกินไป
 ค่าของ q มีขนาดสน
Example of RR with Time Quantum = 20
Process
P1
P2
P3
P4
 The Gantt chart is:
P1
0
P2
20
37
P3
Burst Time
53
17
68
24
P4
57
P1
77
P3
97
117
P4
P1
121 134
P3
P3
154 162
ั้
 ค่าเฉลีย
่ ของเวลาครบวงงาน (turnaround time) สูงกว่าวิธงี านสน
สุดได ้ก่อน (SJF) แต่ให ้เวลาตอบสนอง (response time) ดีกว่า
Time Quantum and Context Switch Time
Turnaround Time Varies With The Time Quantum
จ ัดลาด ับแบบแถวคอยหลายระด ับ
Multilevel Queue
 แบ่งกระบวนการทัง้ หมดออกเป็ นกลุม
่ ๆ แยกตามลาดับ
ความสาคัญของงาน
 งานประเภทพืน
้ หน ้า (foreground) หรืองานแบบโต ้ตอบ
(interactive)
 งานประเภทพืน
้ หลัง (background) หรืองานประเภทเชงิ กลุม
่
(batch)
 แต่ละแถวคอยจะมีวธ
ิ ก
ี ารจัดลาดับเป็ นของตนเองทีอ
่ าจ
แตกต่างกันได ้
 แบบพืน
้ หน ้า ใชวิ้ ธวี นรอบ (RR)
 แบบพืน
้ หลัง ใชวิ้ ธม
ี าก่อนได ้ก่อน (FCFS)
ี้ วเวลาทีแ
 เสย
่ บ่งให ้กับกระบวนการประเภทต่างๆ อาจ
แตกต่างกันได ้
 แบบพืน
้ หน ้า ใชขั้ น
้ ตอนวิธแ
ี บบวนรอบ (RR) จานวน 80
็ ต์
เปอร์เซน
 แบบพืน
้ หลัง ใชขั้ น
้ ตอนวิธแ
ี บบมาก่อนได ้ก่อน (FCFS) จานวน
็ ต์
20 เปอร์เซน
Multilevel Queue Scheduling
การจ ัดลาด ับแบบแถวคอยแบบป้อนกล ับ
หลายระด ับ
Multilevel Feedback Queue
 ยอมให ้มีการย ้ายข ้ามแถวได ้ โดยจะมีการแบ่งกลุม
่ ของ
้
กระบวนการให ้แตกต่างกันตามคุณลักษณะของการใชเวลา
ี ย
้
ซพ
ี เู ป็ นสาคัญ สามารถใชการปรั
บอายุมาร่วมด ้วยได ้
 กาหนดพารามิเตอร์ดง
ั ต่อไปนี้
 จานวนแถวคอย
 ขัน
้ ตอนวิธก
ี ารจัดลาดับของแต่ละแถวคอย
 วิธก
ี ารเลือกในการปรับกระบวนการไปยังลาดับความสาคัญทีส
่ งู ขึน
้
 วิธก
ี ารเลือกในการปรับกระบวนการไปยังลาดับความสาคัญทีต
่ า่ ลง
 วิธก
ี ารเลือกในการปรับกระบวนการในเวลาทีต
่ ้องการรับบริการ
Example of Multilevel Feedback Queue
 Three queues:
 Q0 – time quantum 8 milliseconds
 Q1 – time quantum 16 milliseconds
 Q2 – FCFS
 Scheduling
 เมือ
่ มีกระบวนการเข ้ามาจะเริม
่ ต ้นในแถวที่ 0 แล ้วเริม
่ กระทาการ
ไปจนหมดเวลา 8 มิลลิวน
ิ าที ถ ้ายังไม่เสร็จ กระบวนการนีจ
้ ะถูก
ย ้ายไปอยูใ่ นแถวที่ 1
 ถ ้าขณะนัน
้ ยังไม่มก
ี ระบวนการใดอยูใ่ นแถวที่ 0 เลย กระบวนการ
นีก
้ ็จะสามารถถูกกระทาการต่อไปจนหมดเวลาอีก 16 มิลลิวน
ิ าที
 ถ ้ายังไม่เสร็จก็จะถูกย ้ายออกไปอยูใ่ นแถวที่ 2 ซงึ่ มีการจัดลาดับ
แบบมาก่อนได ้ก่อน และจะกระทาการได ้ก็ตอ
่ เมือ
่ ไม่ม ี
กระบวนการใดๆ เหลืออยูใ่ นแถวคอยที่ 0 และ 1
Multilevel Feedback Queues
การจ ัดลาด ับบนม ัลติโปรเซสเซอร์
Multiple-Processor Scheduling
ี ย
 การจัดลาดับซพ
ี บ
ู นระบบมัลติโปรเซสเซอร์มค
ี วาม
ั ซอนสู
้
ซบ
ง
 จึงมุง
่ ไปเฉพาะกลุม
่ ของตัวประมวลผลแบบเอกพันธุ์
(homogeneous processors )-ตัวประมวลผล
เหล่านัน
้ มีคณ
ุ ลักษณะเดียวกันในแง่ของความสามารถ
้
ในการใชงาน
 วิธก
ี ารกระจายภาระ (Load sharing)
 การประมวลผลแบบอสมมาตร (Asymmetric
multiprocessing)
การจ ัดลาด ับแบบทางานแบบท ันที
Real-Time Scheduling
 ระบบทางานแบบทันทีแบบเข ้มข ้น (hard real-time)
เป็ นการรับประกันว่าภารกิจวิกฤติ (critical task)
จะต ้องเสร็จภายในเวลาทีก
่ าหนด
 ระบบทางานแบบทันทีแบบเบาบาง (soft real-time)
ต ้องการเพียงให ้กระบวนการวิกฤติถก
ู จัดให ้มีลาดับ
ความสาคัญสูงกว่ากระบวนการทัว่ ไปเท่านัน
้
เวลาแฝงของการเลือกจ่ายงาน
Dispatch Latency
ิ ธิภาพของอ ัลกอริธม
การว ัดประสท
ึ
Algorithm Evaluation
 แบบจาลองเชงิ กาหนด (deterministic modeling)
เป็ นวิธก
ี ารพยากรณ์ภาระงานของแต่ละอัลกอริธม
ึ
 แบบจาลองของแถวคอย (queueing models)
้
 วิธก
ี ารใชงาน
(implementation)
Evaluation of CPU Schedulers by Simulation
Solaris 2 Scheduling
Windows 2000 Priorities
Summary
 Basic Concepts
 Scheduling Criteria
 Scheduling Algorithms
 Multiple-Processor Scheduling
 Real-Time Scheduling
 Algorithm Evaluation