Operating System

Download Report

Transcript Operating System

Operating System
Lesson 5
Process
Scheduling
•
เนือ้ หาประจาบท
•
•
•
•
•
•
ความหมาย
CPU-I/O Burst Cycle
ชนิดของการจัดตาราง
กฎเกณฑ์การจัดสรรเวลา CPU ว่าวิธีใดดีที่สุด
ประเภทของการจัดตารางระยะสั้น
วิธีการ Scheduling process
Operating System
การจัดตารางการทางาน
•
Operating System
• เพื่อกาหนดให้ CPU ทางานกับ process อย่างต่อเนื่อง
• กาหนด Process ไหน ควรจะใช้งาน CPU ได้ ณ.เวลานี้
• ใช้ Multi Programming เข้ามาช่วยเพราะสามารถที่จะ
ทางานพร้อมกันได้
• กรณี ที่ Process ไหน Block อยู่ ก็สามารถที่จะ Schedule
Process อื่นแล้วสัง่ ให้ CPU ทางานต่อไปได้
CPU-I/O Burst Cycle
•
Operating System
• รอบการทางานของ CPU ซึ่งประกอบไปด้วยการทางาน
ของ CPU และ I/O Wait
• CPU กาลังทางานเราจะเรี ยกว่า CPU Burst
• CPU ทางานไป ถึงจุดหนึ่ง อาจต้องการ Call I/O ก็จะทา
การ block process แล้วไป call I/O ช่วงที่ I/O ทางานก็
จะเรี ยกว่า I/O burst
•
Operating System
ชนิดของการจัดตาราง
1. การจัดตารางระยะยาว (Long-term scheduling) เป็ น
กระบวนการที่ ถูกจัดเก็บในหน่วยเก็บข้อมูล แล้วระบบ
จะเลือก process จากหน่วยเก็บข้อมูลนี้เพื่อนาเข้าสู่
หน่วยความจาหลัก วิธีน้ ีระยะเวลาในการทางานจะนาน
กว่าแบบที่สอง
2. การจัดตารางระยะสั้น (Short-term scheduling) เป็ นการ
เลือกกระบวนการที่รออยูใ่ น Ready queue ที่อยูใ่ น
หน่วยความจาเพื่อเข้าใช้ CPU
•
Operating System
เกณฑ์ การตัดสิ นว่ าจะให้ process ไหนใช้ CPU
1. เปลี่ยนจาก Running ไปเป็ น Blocked state (อาจจะไปทา
I/O )จะทาให้ช่วงนี้ CPU ว่าง ตัว scheduler ก็จะถูกเรี ยก
ออกมาจัดการ โดยการ Select process อื่นแล้ว assign ให้
ใช้ CPU
2. เปลี่ยนจาก Running ไปเป็ น Ready state คือในขณะที่มี
งานหนึ่ง RUN อยูแ่ ล้วเราไปทาการหยุดมันเพื่อให้งาน
อื่นทาบ้าง แล้วเอาไปใส่ ใน Ready Queue ใหม่
•
Operating System
เกณฑ์ การตัดสิ นว่ าจะให้ process ไหนใช้ CPU (2)
3. เปลี่ยนจาก Blocked ไปเป็ น Ready คือ มี process หนึ่ง
ถูก Blocked เพื่อรอทา I/O อยู่ แล้วเมื่อทา I/O เสร็ จ
Process นั้นก็จะไปต่อคิวใน ready Queue
4. เปลี่ยนเป็ น Exit : คือ Process ทางานเสร็ จแล้ว ดังนั้นก็
จะต้องหา Process ใหม่ให้ CPU ทางาน
•
Operating System
กฎเกณฑ์ การจัดสรรเวลา CPU ว่ าวิธีใดดีที่สุด
1. ประสิ ทธิผลการใช้งาน (Process utilization) เป็ นอัตราส่ วนเวลาที่
CPU ทางานแล้วเกิดผลงานออกมาภายในช่วงเวลาหนึ่ง
2. เวลาตอบสนอง (Response Time) การวัดเวลาโต้ตอบ ตั้งแต่ผใู ้ ช้ส่ง
งานให้ระบบจนถึงเวลาที่ผลลัพธ์ปรากฎ
3. เวลาการคอย (Waiting Time) ระยะเวลาที่แต่ละกระบวนการ
จะต้องรอคอยอยูใ่ น Ready queue
4. ปริ มาณงาน (Throughput) จานวนกระบวนการที่ทางานเสร็ จ
สมบูรณ์ในช่วงเวลาหนึ่ง
5. ลาดับศักดิ์(Priority) ลาดับความสาคัญที่กาหนดให้แต่ละ process
6. วงรอบการทางาน (Turnaround Time) เวลาที่กระบวนการหนึ่ง
ต้องเสี ยไปสาหรับการทางานทั้งหมด
ประเภทของการจัดตารางระยะสั้ น
•
Operating System
1. Non-preemptive scheduling
- เมื่อ process ได้รับเวลาใช้งาน CPU แล้วจะใช้ไปจนกว่าจะ
เปลี่ยนสถานะเป็ น blocked หรื อสิ้ นสุ ดการทางาน
- OS ไม่อาจโยกหน่วยประมวลผลไปให้ process อื่นได้ขณะที่
process กาลังทางานอยู่
2. Preemptive scheduling
- process ที่กาลัง ใช้ CPU อยู่ อาจถูกขัดจังหวะโดย OS แล้ว
ย้ายไปต่อที่ ready queue
- การขัดจังหวะนี้ อาจมาจาก process ใหม่หรื อจากนาฬิกา
- วิธีน้ ีป้องกันไม่ให้ process ใดยึดใช้หน่วยประมวลผลนาน
เกินไป
วิธีการ Scheduling process
• First Come First Served (FCFS) Scheduling
• Short-Job-First (SJF) Scheduling
• Priority Scheduling
• Round Robin (RR) Scheduling
• Multilevel Queue (MLQ) Scheduling
• Multilevel Feedback Queue (MLFQ) Scheduling
•
Operating System
First Come First Served (FCFS) Scheduling
•
Operating System
• process ใดขอใช้ CPU ก่อนก็จะได้รับการบริ การใช้
CPU ก่อน
• process จะทางานจนกระทัง่ หมดเวลาจึงจะปล่อย CPU
ออกมา
• วิธีการนี้จะใช้เวลาในการรอคอยโดยเฉลี่ยมาก
• ปัญหาคือ process หลาย process จะต้องเสี ยเวลารอให้
process ขนาดใหญ่เพียง process เดียวใช้ CPU จนเสร็ จ
•
First Come First Served (FCFS) Scheduling (2)
Arrival
Time
0
2
4
6
8
Process
1
2
3
4
5
0
0
P1
P2
3
5
Burst
Time
3
6
4
5
2
P3
9
10
Operating System
13
P4
15
18
P5
20
20
P1
P2
P3
P4
P5
เวลารอคอยเฉลี่ย (Average Waiting Time)คือ (0+3+9+13+18)/5 = 8.6 ms
•
Operating System
Short-Job-First Served (SJF) Scheduling
• process ใดใช้เวลาน้อยสุ ดก็จะเลือก process นั้น
• ถ้า process มีเวลาเท่ากัน จะใช้วธิ ี การเลือกแบบ
FCFS
• วิธีน้ ีถือว่าเป็ นวิธีที่ให้ค่าเฉลี่ยของเวลาการคอย
ต่าสุ ด
• ปั ญหาคือ ไม่รู้เวลาการใช้ CPU ที่แน่นอนของ
รอบถัดไป อาจทาได้เพียงคาดการณ์เท่านั้น
•
Short-Job-First Scheduling (SJF) Scheduling (2)
1
2
3
4
5
Arrival
Time
0
2
4
6
8
P1
P3
Process
0
0
P5
2
5
5
Burst
Time
3
6
4
5
2
P4
9
10
Operating System
P2
14
15
20
20
P5
P1
P3
P4
P2
เวลารอคอยเฉลี่ย (Average Waiting Time) คือ (2+14+5+9+0)/5 = 6 ms
•
Operating System
Priority Scheduling
•
•
•
•
•
วิธีการนี้กาหนดให้แต่ละ process มี priority ต่างกัน
process ใดที่มี priority สูงสุ ดจะได้ใช้ CPU ก่อน
process ใดที่มี priority เท่ากันจะเป็ นแบบ FCFS
ค่าของ priority จะกาหนดเป็ นตัวเลข
ค่าของ priority ต่าหรื อสูงอาจเป็ นค่าตัวเลขน้อยสุ ดหรื อสูงสุ ดก็
ได้
• ในระบบปฏิบตั ิการส่ วนใหญ่จะใช้เลขต่าสุ ดหมายถึง priority สูง
(ใน windows ตัวเลขมากหมายถึงค่า priority สูง)
•
Priority Scheduling (2)
Process
1
2
3
4
5
0
0
P2
6
5
Burst
Time
3
6
4
5
2
P5
8
P1
10
Operating System
Priority
3
1
3
4
2
11
P3
15
15
P4
20
20
P2
P5
P1
P3
P4
เวลารอคอยเฉลี่ย (Average Waiting Time) คือ (8+0+11+15+6)/5 = 8 ms
•
Operating System
Priority Scheduling (3)
• ปัญหาของ Priority คือ ปัญหาการแช่แข็ง (Starvation)
• Starvation หมายถึง การรอคอยแบบไม่มีที่สิ้นสุ ด นัน่ คือ
process ที่มี priority ต่า อาจไม่ได้ใช้ CPU เลย ถ้าหากมี
process ที่มี priority สูง แทรกเข้ามาอย่างต่อเนื่อง
• ทางแก้ปัญหาคือ การเพิ่ม priority ทีละน้อยให้กบั
process ที่รออยูน่ านในระบบ เช่น อาจเพิ่ม priority ที่ละ 1
เมื่อเวลาผ่านไป 10 มิลลิวินาที
•
Operating System
Round Robin (RR) Scheduling
•
•
•
•
แก้ปัญหา process สั้นๆ ที่ตอ้ งรอ process ยาวๆ
เป็ นวิธีที่ใช้การขัดจังหวะช่วงเวลาเพื่อเวียนการทางาน
เป็ นลักษณะของ ส่ วนแบ่งเวลา (Time Quantum or Time Slice)
ถ้า CPU ทางานน้อยกว่า ส่ วนแบ่งเวลา ก็จะปล่อย CPU หลังทา
เสร็ จ
• ถ้า CPU ทางานมากกว่า ส่ วนแบ่งเวลา ก็จะถูก process อื่น
แทรกกลางคัน
• ประสิ ทธิภาพขึ้นอยูก่ บั ขนาดของส่ วนแบ่งเวลา ถ้าส่ วนแบ่ง
เวลามาก จะกลายเป็ น FCFS
•
Round Robin (RR) Scheduling (2)
Arrival
Time
0
2
4
6
8
Process
1
2
3
4
5
0
0
P1
3
P2
5
7
Burst
Time
3
6
4
5
2
P3
11
10
Operating System
Time Quantum = 4 ms
P4
15
15
P5 P2 P4
17
19 20
20
P1
P2
P3
P4
P5
P2
P4
เวลารอคอยเฉลี่ย (Average Waiting Time) คือ (0+13+7+15+15)/5 = 10 ms
Multilevel Queue (MLQ) Scheduling
•
Operating System
• ใช้กบั บางระบบที่แบ่งกลุ่ม process เป็ นกลุ่มๆ ที่อยูใ่ น
Ready Queue
• โดยการแบ่ง Queue ออกเป็ น foreground กับ background
• Foreground Queue จะใช้กบั พวกงานประเภท interactive
และใช้ scheduling algorithm แบบ RR Background จะ
ใช้สาหรับงานประเภท batch จะใช้ scheduling algorithm
แบบ FCFS
•
Multilevel Queue (MLQ) Scheduling (2)
Operating System
• ปัญหาคือ ใน Queue อาจจะมีหลาย foreground ดังนั้นในแต่
ละ foreground ก็จะมี priority อยูด่ ว้ ย ซึ่ งทาให้ในส่ วนของ
background อาจไม่ได้ทางาน
• ดังนั้นเราจะต้องมีการแบ่งเวลาให้แต่ละ Queue ด้วยโดยอาจจะ
แบ่งเป็ น 80% เป็ นของ Foreground (RR) ส่ วนอีก 20% เป็ น
ของ background (FCFS)
•
Operating System
Multilevel Feedback Queue (MLFQ) Scheduling
• คล้ายกับ Multilevel Queue Scheduling ต่างกันที่
Multilevel Queue Scheduling process ไม่สามารถเปลี่ยน
แถวได้แต่ Multilevel Feedback Queue Scheduling สามารถ
เปลี่ยนแถวได้
• process ใดที่ใช้ CPU นานเกินไปจะถูกย้ายไปแถวที่มี
priority ต่ากว่า และถ้า process ใดที่รอคอยใช้ CPU นาน
ในแถวที่มี priority ต่า process นั้นก็สามารถย้ายไปอยูใ่ น
แถวที่มี priority สูง ซึ่งวิธีการนี้จะเรี ยกว่า Aging
•
Operating System
Multilevel Feedback Queue (MLFQ) Scheduling(2)
•
Operating System
Multilevel Feedback Queue (MLFQ) Scheduling (3)
วิธีการจัดตารางการทางานจะกาหนดโดยพารามิเตอร์ ดงั นี้
- จานวนแถวพร้อม
- ขั้นตอนวิธีในการจัดตารางการทางานของแต่ละแถว
- วิธีที่จะใช้ในการพิจารณาเพื่อที่จะเพิ่มค่า priority สู งขึ้น
- วิธีที่จะใช้ในการพิจารณาเพื่อที่จะลดค่า priority ให้นอ้ ยลง
- วิธีที่จะใช้ในการพิจารณาว่า กระบวนการใดควรจะให้อยู่
ในแถวใด
Round Robin (RR) Scheduling (2)
Process
1
2
3
4
5
Arrival
Time
0
2
4
6
8
Burst
Time
3
6
4
5
2
•
Operating System
Time Quantum = 4 ms
•
Priority Scheduling (2)
Process
1
2
3
4
5
Burst
Time
3
6
4
5
2
Priority
3
1
3
4
2
I/0
Burst
5
4
3
4
2
Operating System