PPT - dusithost.dusit.ac.th

Download Report

Transcript PPT - dusithost.dusit.ac.th

Chapter 3 : CPU Management
Juthawut Chantharamalee
Curriculum of Computer Science
Faculty of Science and Technology, Suan Dusit University
Email: [email protected]
URL: http://dusithost.dusit.ac.th/~juthawut_cha/home.htm
การจัดการหน่วยประมวลผลกลาง (CPU Management)
ในระบบคอมพิวเตอร์ทมี่ กี ารทางานหลายงานพร้อมๆ กัน (Multi-tasking)
ระบบปฏิบตั กิ าร (Operating System) จะทาการแบ่งเวลาให้กบั งานหรือ
กระบวนการ (Process) แต่ละงาน สามารถประมวลผลได้อย่างรวดเร็วเสมือนว่า
ทางานได้หลายๆ งานได้ในเวลาเดียวกัน ดังนัน้ การจัดการกับหน่วยประมวลผลกลาง
(CPU
Management)
จึงเกีย่ วข้องกับการจัดกระบวนการ
(Process) การจัดตารางการทางาน (CPU Scheduling) การ
ประยุกต์ใช้อลั กอริทมึ เข้าไปช่วยในการจัดตารางการทางานในระบบทีม่ ี CPU หลาย
ตัว (Multiprocessor) ระบบทันที (Real Time) เพือ่ ใช้การจัดการ
Processor เกิดประสิทธิภาพสูงสุด
2
Suan Dusit Rajabhat University (Computer Science)
การจัดตารางการทางานของหน่วยประมวลผลกลาง
(CPU Scheduling)
การจัดตารางการทางานของหน่วยประมวลผลกลาง (CPU Scheduling)
เป็ นหน้าทีพ่ น้ ื ฐานของระบบปฏิบตั กิ าร เกือบจะทุกระบบคอมพิวเตอร์ ก่ อนกระบวนการ
(Process) จะมีการใช้งานทรัพยากรต่างๆ CPU จะเป็ นส่วนทีใ่ ช้จดั ตารางการ
ใช้ทรัพยากร
3
Suan Dusit Rajabhat University (Computer Science)
ระดับการจัดตารางการทางาน (Level Scheduling)
การจัดตารางการในระบบปฏิบตั กิ าร คือการเลือกกระบวนการ (Process) หรือ
จัดสรรทรัพยากรทีม่ จี ากัดให้กบั กระบวนการแบ่งออกเป็ น 2 แบบ คือ
1.การจัดตารางการทางานในระดับบน (High-Level Scheduling)
เป็ นการจัดลาดับงานให้กบั กระบวนการ (Process) ทีจ่ ะเข้าไปใช้งานทรัพยากร
CPU แบบกลุม่ ซึง่ มีจานวนกระบวนการ (Process) มากเกินกว่าระบบจะรับได้
ในช่วงเวลาเดียวกัน ดังนัน้ ระบบปฏิบตั กิ ารจะมีหน้าทีจ่ ดั ลาดับ ความเหมาะสมให้แต่ละ
กระบวนการ (Process) เพือ่ ให้เกิดประโยชน์สูงสุดโดยคานึงถึงปัจจัยต่างๆ ได้แก่
ลาดับความสาคัญ (Priority) และภาวะติดตาย (Deadlock) เป็ นต้ น
4
Suan Dusit Rajabhat University (Computer Science)
ระดับการจัดตารางการทางาน (Level Scheduling)
2.การจัดตารางการทางานในระดับล่าง (Low-Level Scheduling)
เป็ นการเลือกและส่งกระบวนการ (Process) ทีจ่ ะเข้าไปใช้งานทรัพยากร CPU
โดยเลือกกระบวนการทีม่ สี ถานะพร้อม (Ready State) จากคิวโดยจะถูกส่ง
โดยตัวจัดการเวลา (Dispatcher)
5
Suan Dusit Rajabhat University (Computer Science)
ระยะเวลาใช้งานและรับส่งของมูลของ CPU
(CPU-I/O Burst Cycle)
ความสาคัญของการจัดเวลาของ CPU นัน้ ขึน้ อยู่กบั คุณลักษณะของกระบวนการ
(Process)
ซึง่ โดยทัว่ ๆ ไป การประมวลผลกระบวนการ (Process
Execute) จะประกอบด้วยรอบเวลา (Cycle) ทีใ่ ช้งาน CPU และเวลาที่
ต้องคอยใช้งานอุ ปกรณ์ I/O ในขณะทีม่ กี ารประมวลผลกระบวนการ (Process
Execute) จะมีการสลับการทางานระหว่าง 2 ช่วงเวลานีเ้ ท่านัน้ คือ ระยะเวลาใช้
งาน (CPU Burst) และระยะเวลาในการรับ - ส่งข้อมูล (I/O Burst)
แสดงได้ดงั รูปที่ 3.1 ซึง่ จะไม่เกิดขึน้ พร้อมกัน
6
Suan Dusit Rajabhat University (Computer Science)
Alternating sequence of CPU and I/O bursts
รูปที่ 3.1 แสดงการสลับการทางานระหว่างระยะเวลาใช้งานและระยะเวลาในการรับ– ส่งข้อมูล
(Alternating sequence of CPU and I/O bursts)
7
Suan Dusit Rajabhat University (Computer Science)
ระยะเวลาใช้งานและรับส่งของมูลของ CPU
(CPU-I/O Burst Cycle)
การประมวลผล (Execute) มักจะเริม่ จากการใช้งาน CPU แล้วก็จะตามด้วย
การคอยการใช้งานอุ ปกรณ์ I/O หลังจากใช้งานอุ ปกรณ์ I/O เสร็จ ก็จะกลับมาใช้
งาน CPU ต่อ สลับกันไปเรือ่ ยๆ จนกว่าจะเสร็จสิ้นการประมวลผล ซึง่ การสิ้นสุด
การเสร็จสิ้นการประมวลผลนีม้ กั จะใช้เวลา CPU (CPU Burst) มากกว่า
การรอคอยในระยะเวลาในการรับ - ส่งข้อมูล (I/O Burst) แสดงได้ดงั รูปที่
3.2
8
Suan Dusit Rajabhat University (Computer Science)
Histogram of CPU-burst times
รูปที่ 3.2 แสดงฮีสโตแกรมของระยะเวลาการใช้งาน CPU
(Histogram of CPU-burst times)
Suan Dusit Rajabhat University (Computer Science)
9
ตัวจัดตารางการทางานของ CPU (CPU Scheduler)
เมือ่ ใดก็ตามที่ CPU ว่างระบบปฏิบตั กิ าร (Operating System) จะต้องเข้า
มาดาเนินการนาเอากระบวนการ (Process) ใดกระบวนการหนึง่ ทีค่ อยอยู่ในคิวเข้ามาใช้
งาน CPU โดยการเลือกกระบวนการ (Process) เพือ่ เข้ามาใช้งาน CPU นี้ จะถูก
จัดการด้วยส่วนทีเ่ รียกว่า ตัวจัดการเวลาช่วงสัน้ (Short-Term Scheduler)
หรือ ตัวจัดการเวลา CPU ตัวจัดการเวลานีจ้ ะเลือกกระบวนการ (Process) ทีอ่ ยู่ใน
หน่วยความจาทีพ่ ร้อมในการประมวลผล (Execute) ทีส่ ุด เพือ่ ให้ครอบครองเวลาการ
ใช้งาน CPU และทรัพยากรทีเ่ กีย่ วข้องกับกระบวนการนัน้ (Process) นัน้ ภายใต้
บล็อกควบคุมกระบวนการ (Process Control Block : PCBs) ซึง่ มี
อัลกอริทมึ ในการจัดการคิวทีม่ คี วามพร้อม (Ready Queue) ให้เลือกใช้หลากหลาย
เช่น คิวแบบมาก่อนได้รบั บริการก่อน (FIFO Queue) คิวแบบเรียงตามลาดับ
อาวุ โส (A Priority Queue) ต้นไม้ (Tree) หรือลิงค์ลสิ ก์ แบบไม่เรียงลาดับ
(Unordered Linked List) เป็ นต้น
10
Suan Dusit Rajabhat University (Computer Science)
การให้สิทธิ การจัดเวลา (Preemptive Scheduling)
การตัดสินใจของ CPU ในการเลือกว่ากระบวนการใด (Process) จะถูก
ประมวลผล (Execute) ขึน้ อยู่กบั สถานการณ์ดงั ต่อไปนีน้ ้ ี
1. เมือ่ มีการกระบวนการ (Process) เปลีย่ นสถานะของจากสถานะทีป่ ระมวลผล
อยู่ (Running State) ไปเป็ นสถานะคอย (Waiting State) เช่น
การร้องขอใช้งานอุ ปกรณ์ I/O เป็ นต้น
2. เมือ่ มีการเปลีย่ นสถานะของ process จากสถานะรัน เป็ นสถานะพร้อม
3. เมือ่ มีการเปลีย่ นสถานะของ process จากสถานะคอย เป็ นสถานะพร้อม
4. เมือ่ process เสร็จสิน้ ไปแล้ว
Suan Dusit Rajabhat University (Computer Science)
11
11
ตัวจัดการเวลา (Dispatcher)
เป็ นคอมโพเนนต์ (Component) ทีส่ าคัญอีกตัวหนึง่ ทีเ่ กีย่ วข้องกับฟั งก์ชนั ในการจัด
เวลาในหน่วยประมวลผลกลาง (CPU) ซึง่ เป็ นโมดูลทีท่ าหน้าทีค่ วบคุมการครอบครองเวลา
ใน CPU ของกระบวนการ (Process) โดยฟั งก์ชนั นีจ้ ะประกอบด้วย
1.การย้ายไปในส่วนของอธิบายขยายความ (Switching Context)
2.การย้ายไปในส่วนของผู ใ้ ช้ (User Mode)
3.การกระโดด (Jumping) ไปยังตาแหน่งทีเ่ หมาะสมของโปรแกรม เพือ่ ทีจ่ ะเริม่ รันโปรแกรม
ใหม่อกี ครัง้
นอกจากนีต้ วั จัดการเวลา (Dispatcher) ควรมีการทางานทีเ่ ร็วทีส่ ุดเท่าทีจ่ ะ
ทาได้ เพราะว่าตัวจัดการเวลาจะต้องทางานทุกครัง้ ทีม่ กี ารย้าย Process ซึง่ เวลาทีถ่ ูกใช้ไป
กับการทาการแบบนีเ้ รียกว่า Dispatch Latency
12
Suan Dusit Rajabhat University (Computer Science)
ตัวจัดตารางการทางานของ CPU (CPU Scheduler)
เมือ่ ใดก็ตามที่ CPU ว่างระบบปฏิบตั กิ าร (Operating System) จะต้องเข้ามา
ดาเนินการนาเอากระบวนการ (Process) ใดกระบวนการหนึง่ ทีค่ อยอยู่ในคิวเข้ามาใช้ งาน
CPU โดยการเลือกกระบวนการ (Process) เพือ่ เข้ามาใช้งาน CPU นี้ จะถูกจัดการด้วย
ส่วนทีเ่ รียกว่า ตัวจัดการเวลาช่วงสัน้ (Short-Term Scheduler) หรือ ตัวจัดการ
เวลา CPU ตัวจัดการเวลานีจ้ ะเลือกกระบวนการ (Process) ทีอ่ ยู่ในหน่วยความจาทีพ่ ร้อม
ในการประมวลผล (Execute) ทีส่ ุ ด เพือ่ ให้ครอบครองเวลาการใช้งาน CPU และ
ทรัพยากรทีเ่ กีย่ วข้องกับกระบวนการนัน้ (Process) นัน้ ภายใต้บล็อกควบคุ มกระบวนการ
(Process Control Block : PCBs) ซึง่ มีอลั กอริทมึ ในการจัดการคิวทีม่ คี วาม
พร้ อม (Ready Queue) ให้เลือกใช้หลากหลาย เช่น คิวแบบมาก่อนได้รบั บริการก่ อน
(FIFO Queue) คิวแบบเรียงตามลาดับอาวุ โส (A Priority Queue) ต้นไม้
(Tree) หรือลิงค์ลสิ ก์ แบบไม่เรียงลาดับ (Unordered Linked List) เป็ นต้น
13
Suan Dusit Rajabhat University (Computer Science)
เกณฑ์ในการจัดตารางการทางาน (Scheduling Criteria)
ใช้ ใ นการเปรีย บเทีย บความแตกต่ า งของอัล กอริท ึม ที่ใ ช้ ส าหรับ กระบวนก าร
(Process) ในการเข้ามาใช้งาน CPU หรือเปรียบเทียบวิธกี ารจัดตารางการ
ทางาน CPU ว่าวิธใี ดเหมาะสมทีส่ ุด ดังนี้
1. การใช้ CPU ให้เกิดประโยชน์ (CPU Utilization) สูงสุด (0100%) เช่น 40 % สาหรับการโหลดเบาๆ (Lightly Load) และ ไม่
ควรเกิน 90 % สาหรับการโหลดหนัก (Hardily Load)
2. ปริมาณงาน (Throughput) ขณะทีม่ ี CPU การประมวลมีจานวน
กระบวนการ (Process) ทีท่ างานเสร็จสมบู รณ์ ภายในหนึง่ หน่วยเวลา (Per
Time Unit) เท่าใด
14
Suan Dusit Rajabhat University (Computer Science)
เกณฑ์ในการจัดตารางการทางาน (Scheduling Criteria)
3. การวนรอบการทางาน (Turnaround Time) คือ ระยะเวลาที่ Process
เริม่ เข้าไปประมวลผลจนกระทัง้ ทางานเสร็จสมบูรณ์ หรืออาจจะเป็ นเวลาที่ Process
รอเพือ่ ทีจ่ ะเข้าไปใช้งาน CPU
รออยู่ในแถวคอยเพือ่ เปลีย่ นสถานะเป็ น พร้ อม
(Ready) ในการประมวลผล (Execute) บน CPU หรือรอเพือ่ ใช้งาน
อุ ปกรณ์ I/O เป็ นต้น 4. เวลาทีใ่ ช้คอย (Waiting Time) รออยู่ในแถวคอย
เพือ่ เปลีย่ นสถานะเป็ นพร้อม (Ready)
5. เวลาในการตอบสนอง (Respond Time) ระยะเวลาทีก่ ระบวนการ
(Process) ใช้ในการสนองต่อคาสัง่ จากผู ใ้ ช้ทรี่ ้องขอ (Request) จนกระทัง้
ได้ ผลลัพ ธ์ ส่งกลับมายังผู ้ใช้ โดยทีเ่ วลาในการตอบสนองมักจะขึ้นอยู่ กบั ความเร็ว
(Speed) ของอุ ปกรณ์แสดงผล (Output Device)
15
Suan Dusit Rajabhat University (Computer Science)
3.2 อั ลกอริทึมสาหรับการจัดตารางการทางาน
(Scheduling Algorithms)
หน้าทีข่ องตัวจัดคิวคือ คัดเลือกโปรเซสซึง่ รออยู่ในสถานะพร้อมทีเ่ หมาะสมทีส่ ุดให้เข้าไป
อยู่ในสถานะรัน (ได้ครอบครองซีพยี ู) โดยแท้จริงแล้วการส่งโปรเซสทีถ่ ูกเลือกแล้วให้เข้า
ไปอยู่ ใ นสถานะรัน เป็ น หน้ า ทีข่ องโปรเซสของระบบปฏิบ ตั ิก าร (Operating
System) ทีช่ อื่ ตัวส่ง (dispatcher) ใน แง่การทางานแล้วตัวจัดคิวจะเป็ น
ผู ค้ ดั เลือกโปรเซสและเรียกให้ตวั ส่งส่งโปรเซสทีถ่ ูกเลือกแล้วเข้าไปในสถานะรันเป็ นความ
รับผิดชอบของตัวจัดคิว
16
Suan Dusit Rajabhat University (Computer Science)
1. การจัดเวลาแบบมาก่อนได้ก่อน
(FCFS : First-come First-served Scheduling)
การจัดคิวแบบ FCFS (first-come-first-served) วิธกี ารคัดเลือกแบบ
FCFS นี้ เป็ นวิธที งี่ ่ายทีส่ ุด คือ โปรเซสไหนเข้ามารอในคิวก่อนจะได้ครอบครองซีพยี ู
ก่อน คือ "มาก่อนได้ก่อน" โปรเซสทีไ่ ด้ครอบครองซีพยี ูจะทางานไปจนเสร็จ ไม่ม ี
ระยะเวลาควอนตัมซึง่ จากัดเวลาการครอบครองซีพยี ู แต่ถา้ โปรเซสมีการเรียกใช้งาน
อุ ปกรณ์ I/O หรือรอเหตุการณ์บางอย่าง โปรเซสนัน้ ต้องปลดปล่อยซีพยี ู และออก
จากสถานะรันไปอยู่ในสถานะติดขัด เมือ่ ใดทีง่ านเสร็จสิน้ ลงหรือเกิดเหตุการณ์ทกี่ าลังรอ
อยู่ โปรเซสนัน้ จึงค่อยกลับเข้าไปอยู่ต่อท้ายคิวของสถานะพร้อมใหม่อกี ครัง้
17
Suan Dusit Rajabhat University (Computer Science)
1. การจัดเวลาแบบมาก่อนได้ก่อน
(FCFS : First-come First-served Scheduling)
18
Suan Dusit Rajabhat University (Computer Science)
2. การจัดเวลาแบบงานสั้นทาก่อน
(SJF: Short-Job-First Scheduling)
การจัดคิวแบบ SJN (shortest job next) การ คัดเลือกโปรเซสด้วย
วิธีน้ ี จะคัดเลือ กเอาโปรเซสทีต่ ้ อ งการเวลาในการทางานน้อ ยทีส่ ุ ด ทาให้โปรเซสที่
ต้องการเวลาในการทางานน้อยจบออกไปได้เร็วขึน้ จานวนโปรเซสในระบบทีร่ ออยู่ในคิวมี
ก็จะมีจานวนลดลง และทาให้เวลาโดยเฉลีย่ ในการทางาน 1 งานเสร็จหรือเวลาครบงาน
(turnaround time) น้อยลงแต่การจัดคิวแบบนีเ้ ป็ นผลเสียต่อโปรเซสที่
ต้องการเวลาในการทางานนาน
19
Suan Dusit Rajabhat University (Computer Science)
2. การจัดเวลาแบบงานสั้นทาก่อน
(SJF: Short-Job-First Scheduling)
20
Suan Dusit Rajabhat University (Computer Science)
3. การจัดเวลาตามลาดับความสาคัญ
(Priority Scheduling)
การจัดคิวแบบลาดับความสาคัญ (priority queue) มีลกั ษณะแตกต่างกับ
คิวธรรมดา ภายในคิวจะมีการจัดเรียงลาดับของโปรเซสต่าง ๆ ตามลาดับความสาคัญ
ของโปรเซสนัน้ โปรเซสทีอ่ ยู่ต้นคิวจะมีลาดับความสาคัญมากทีส่ ุ ด และลดลงเรือ่ ย ๆ
โปรเซสทีอ่ ยู่ท้ายคิวคือโปรเซสทีม่ ลี าดับความสาคัญต่ าสุด การคัดเลือกโปรเซสจะเอา
โปรเซสทีอ่ ยู่ต้นคิว (มีลาดับความสาคัญสูงสุ ด) เข้าไปครอบครองซีพยี ูก่อน ดังนัน้
ถึงแม้ว่าโปรเซสทีเ่ ข้าคิวทีหลังแต่มลี าดับความสาคัญสูงกว่าก็อาจได้ เข้าไปครอบครอง
ซีพยี ูก่อน เช่น โปรเซส P5 เข้าคิวเป็ นโปรเซสหลังสุ ด แต่จะได้ครอบครองซีพยี ูก่อน
โปรเซส P3 และ P4
เพราะมีความสาคัญสู งกว่า แต่ ถ้ากรณีทโี่ ปรเซสมีลาดับ
ความสาคัญเท่ากันจะใช้วธิ มี าก่อนได้ก่อนในการช่วยพิจารณา
21
Suan Dusit Rajabhat University (Computer Science)
3. การจัดเวลาตามลาดับความสาคัญ
(Priority Scheduling)
22
Suan Dusit Rajabhat University (Computer Science)
4. การจัดเวลาแบบวนรอบ
(RR : Round-Robin Scheduling)
การจัดคิวแบบ RR (round-robin) การจัดคิวแบบ RR อาจเรียกว่า
เป็ น การจัด คิว แบบมีก ารวนรอบ ลัก ษณะการคัด เลือ ก โปรเซสในคิว จะเป็ น แบบ
FCFS คือ "มาก่อนได้ก่อน" แต่ต่างกันนิดหน่อยตรงทีก่ ารครอบครองซีพยี ู
ของโปรเซสในสถานะรันจะถู กจากัด เวลาไว้ด้วยระยะเวลาควอนตัม ทาให้โปรเซสที่
ต้องการเวลาในการทางานนานจะต้องเปลีย่ นสถานะหมุนระหว่างสถานะ พร้อมและสถานะ
รัน การจัดคิวแบบ RR สามารถ แก้ปญั หาการคอยนานของโปรเซสทีต่ ้องการเวลา
ทางานน้อย ๆ
23
Suan Dusit Rajabhat University (Computer Science)
4. การจัดเวลาแบบวนรอบ
(RR : Round-Robin Scheduling)
ถ้าระบบกาหนดเวลาควอนตัมเป็ น 4 มิลลิวนิ าที โปรเซส P1 ต้องมีการวนรอบเปลีย่ น
สถานะระหว่างสถานะรันและสถานะพร้อม 6 ครัง้ โปรเซส P2 1 ครัง้ โปรเซส P3 1
ครัง้ เมือ่ โปรเซส P1 เข้าไปอยู่ในสถานะรันครัง้ แรกและกลับออกมา โปรเซส P2 จะได้
ครอบครองซีพยี ูได้และ ทางานเสร็จโปรเซส P2 จบและออกจากระบบไปเลย โปรเซส
ถัดไปทีจ่ ดั ได้ครอบครองซีพยี ูคอื P3 โปรเซส P3 จะครอบครองซีพยี ู 3 มิลลิวนิ าที
จนกระทัง่ โปรเซส P3 จบ เหลือโปรเซส P1 เพียงโปรเซสเดียว จนเข้ามาใช้ CPU
จนด าเนิน การเสร็ จ สิ้น โดยมีต วั ควบคุ ม การส่ ง โปรเซสเข้ า ไปในคิว ที่เ รี ย กว่ า
Process Control Block ดังรูปที่ 3.3 เป็ นแผนภาพแสดงการสลับกัน
ทางานของโปรเซสทัง้ 3 และเป็ นผลทีเ่ กิดขึน้ จากการจัดคิวแบบ RR
24
Suan Dusit Rajabhat University (Computer Science)
รูปที่ 3.3 แสดงการครอบครอง CPU แบบวนรอบ (round-robin)
25
Suan Dusit Rajabhat University (Computer Science)
4. การจัดเวลาแบบวนรอบ
(RR : Round-Robin Scheduling)
26
Suan Dusit Rajabhat University (Computer Science)
5. การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)
เป็ นวิธกี ารจัดคิวโดยการแบ่งคิวออกเป็ นระดับ (Partition) แสดงดังรูปที่ 3.3
มีการกาหนดคุณลักษณะของแต่ละกระบวนการ (Process) เช่น ขนาดของ
หน่ว ยความจ า ล าดับ ความส าคัญ ของโปรเซส และชนิด ของโปรเซส แต่ ล ะคิว จะมี
อัลกอริทมึ การจัดเวลาเป็ นของตัวเอง และมีจดั ลาดับความสาคัญของแต่ ละโปรเซสใน
รูปแบบโปรเซสลาดับความสาคัญต่ าสุด (Lowest Priority) ไปจนถึงโปรเซส
ลาดับความสาคัญสูงสุด (Highest Priority)
27
Suan Dusit Rajabhat University (Computer Science)
Multilevel Queue Scheduling
รูปที่ 3.4 แสดงการจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)
Suan Dusit Rajabhat University (Computer Science)
28
6. การจัดเวลาแบบคิวหลายระดับแบบย้ อนกลับ
(Multilevel Feedback Queue Scheduling)
เพือ่ ให้การจัดคิวเป็ นไปอย่างมีประสิทธิภาพ จึงมีการนาหลาย ๆ เทคนิคมาประยุกต์
เข้าด้วยกัน เป็ นการจัดคาแบบวนรอบ ทีค่ านึงถึงความสาคัญของงาน ทาให้งานทีม่ ี
ความสาคัญเหมือนกันอยู่ในคิวเดียวกัน และให้งานสาคัญน้อย ๆ อยู่ในคิวทีส่ าคัญน้อย
เช่นกัน แสดงดังรูปที่ 3.4
29
Suan Dusit Rajabhat University (Computer Science)
Multilevel Feedback Queue Scheduling
รูปที่ 3.5 แสดงการจัดเวลาแบบคิวหลายระดับ
(Multilevel Feedback Queue Scheduling)
30
Suan Dusit Rajabhat University (Computer Science)
3.3 การจัดตารางการทางานของระบบหลายกระบวนการ
(Multiple-Processor Scheduling)
การทางานในลักษณะทีม่ ี CPU หลายตัวต่างก็มรี ะบบการจัดเวลาของตัวเอง จะต้อง
มีการออกแบบอย่างระมัดระวังในเรือ่ งของการทีโ่ ปรเซสแต่ ละโปรเซสอาจจะต้องการใช้
ข้อมูลในฐานข้อมูลในเวลาเดียวกัน รวมทัง้ ต้องระวังไม่ให้ CPU ว่างงานพร้อมกัน
ในระบบคอมพิวเตอร์บางระบบทีม่ กี ารพัฒนาเพือ่ ให้ได้ประสิทธิภาพสูงสุด ได้ม ี
การใช้ CPU แยกต่างหากระหว่างงานภายในของระบบ และกับงานทีเ่ ป็ นของผู ้ใช้ซงึ่
การทางานแยกกันของ CPU แบบนี้ ทาให้การออกแบบระบบปฏิบตั กิ ารมีค วาม
ซับ ซ้ อ นน้ อ ยลงมาก เนื่อ งจากมี CPUเพีย งตัว เดีย วที่จ ะเข้ า ไปใช้ ข้ อ มู ล ของ
ระบบปฏิบตั กิ าร เพราะว่า CPU ตัวอืน่ ๆ ไม่ว่าจะกีต่ วั ก็ตาม จะเข้าถึงได้เฉพาะข้อมูล
ของผู ใ้ ช้ภายนอกเท่านัน้
31
Suan Dusit Rajabhat University (Computer Science)
3.4 การจัดตารางการทางานของระบบแบบทันที
(Real-Time Scheduling)
Hard real-time คือระบบทีส่ ามารถทางานใดงานหนึง่ ให้เสร็จตามเวลาที่
กาหนดได้ ซึง่ งานทีจ่ ะรับเข้ามาแต่ละงานนัน้ จะมีความต้องการของเวลาทีต่ ้องการให้
เสร็จมาด้ วย ดังนัน้ ตัวจัดเวลาจะต้ อ งเป็ นตัวตัดสิน ใจว่ าจะรับงานเข้ ามาทาหรือ ไม่
Soft real-time คือระบบทีแ่ บ่งเวลาธรรมดาทีม่ กี ารให้ระดับความสาคัญแก่
งานบางประเภท หรืองานทีถ่ ู กเลือกไว้ล่วงหน้าว่าเป็ นงานเร่ งด่ วน ซึง่ อาจทาให้เกิด
ปัญ หาของการท างานในระดับ ต่ า ๆ อาจไม่ไ ด้ ร บั เวลาของ CPU
เลย
32
Suan Dusit Rajabhat University (Computer Science)
3.5 การเลือกใช้อัลกอริทึม (Algorithm Selection)
การกาหนดกฎเกณฑ์และวิธกี ารเลือกใช้อลั กอริทมึ มักจะถูกกาหนดจากการเข้าไปใช้งาน
CPU ดังนัน้ จะต้องคานึงถึงการวัดประสิทธิภาพการใช้งานโดยพิจารณาจาก
1. การใช้ประโยชน์จาก CPU ได้สูงสุดภายใต้ขอ้ กาหนดของเวลาในการ
ตอบสนอง (Maximum Respond Time) ให้ได้อย่างรวดเร็วภายใน
หนึง่ วินาที (หนึง่ หน่วยเวลา)
2. การใช้ประโยชน์จาก CPU
ได้สูงสุ ดของปริมาณงาน
(Throughput) ที่ไ ด้ เ มื่อ เที ย บกับ อัต ราส่ ว นของเวลาในการประมวลผล
(Execution Time) กับจานวนโปรเซสทีท่ างานเสร็จสมบูรณ์ภายในหนึง่
หน่ ว ยเวลา ตัง้ แต่ โ ปรเซสนัน้ ถู ก ส่ ง ไปใช้ ง านจนกระทัง้ ได้ ร บั ผลลัพ ธ์ ก ลับ มาโดยมี
อัลกอริทมึ หรือรูปแบบให้เลือกใช้ ดังนี้
33
Suan Dusit Rajabhat University (Computer Science)
3.5 การเลือกใช้อัลกอริทึม (Algorithm Selection)
Deterministic Modeling
วิธนี เ้ ี ป็ นวิธกี ารคัดเลือกทีเ่ รียกว่า analytic evaluation ซึง่ จะ
นาเอา Algorithm ชนิดต่างๆ และลักษณะของงานมาสร้างสูตร เพือ่ ใช้ใ นการ
คานวณหาตัวเลขของประสิทธิภาพทีส่ ามารถวัดและเปรียบเทียบได้
Queuing Models
ลักษณะของงานทีเ่ ข้ามาในระบบคอมพิวเตอร์นนั้ มักจะมีลกั ษณะทีไ่ ม่แน่นอน ใน
แต่ละวันทีม่ กี ารใช้ระบบคอมพิวเตอร์ นนั้ งานต่างๆทีเ่ ข้ามาอาจมีล กั ษณะทีไ่ ม่ซ้ ากันเลย
อย่างไรก็ตามมีสงิ่ หนึง่ ทีเ่ ราอาจจะสามารถทานายหรือกาหนดได้ ก็คอื การกระจายของ
เวลาในการใช้ CPU และการใช้อุปกรณ์ Input/output ซึง่ เราสามารถทีจ่ ะ
กาหนดแบบคร่าวๆ ได้
34
Suan Dusit Rajabhat University (Computer Science)
3.5 การเลือกใช้อัลกอริทึม (Algorithm Selection)
Simulations
วิธกี ารจาลองระบบ การทีเ่ ราจะเลือกวิธกี ารหรือเลือก Algorithm ที่
ถูกต้องต่อระบบใดๆ อย่างเป็ นจริงเป็ นจังแล้ว เราสามารถใช้วธิ กี ารของการจาลองระบบ
ซึง่ วิธกี ารนี้จะสามารถคานวณตัวเลขต่างๆ ออกมาได้อย่างเทีย่ งตรงมากขึ้น การทา
การจาลองระบบในทีน่ จ้ ี ะเกีย่ วข้องกับการใช้โปรแกรมคอมพิวเตอร์ ซึ่งจะต้องมีการเขียน
โปรแกรมเพือ่ ใช้เป็ นตัวแทนหรือหุ่นจาลองของระบบต่างๆ ในคอมพิวเตอร์ นอกจากนี้
ยัง ต้ อ งมีก ารเขีย นโปรแกรมเพือ่ เป็ น ตัว แทนของสิง่ แวดล้อ มทีเ่ กีย่ ว ข้อ งกับ ระบบ
คอมพิวเตอร์นนั้ ๆอีกด้วย
35
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
การจัดการหน่วยประมวลผลกลาง (CPU Management) ซึง่ ในระบบ
คอมพิว เตอร์ ที่ ม ีก ารท างานหลายงานพร้ อ มๆ กัน (Multi-tasking)
ระบบปฏิบตั กิ าร (Operating System) จะทาการแบ่งเวลาให้กบั งานหรือ
กระบวนการ (Process) แต่ ละงาน สามารถประมวลผลได้อย่างรวดเร็วเสมือนว่ า
ทางานได้หลายๆ งานได้ในเวลาเดียวกัน ดังนัน้ การจัดการกับหน่วยประมวลผลกลาง
(CPU Management) จึงเกีย่ วข้องกับการจัดกระบวนการ (Process)
การจัดตารางการทางาน (CPU Scheduling) การประยุกต์ใช้อลั กอริทมึ เข้าไป
ช่ ว ยในการจัด ตารางการท างานในระบบ Multiprocessor แบบ Real
Time เพือ่ ใช้การจัดการProcessor ให้เกิดประสิทธิภาพสูงสุด โดยอัลกอริทมึ
สาหรับการจัดตารางการทางานมีดงั นี้
36
36
*สรุป*
1. การจัดเวลาแบบมาก่อนได้ก่อน (FCFS:First-come First-served
Scheduling)
เป็ น อัล กอริท มึ ประเภททีไ่ ม่ ส ามารถแทรกกลางคัน ได้
(Non-preemptive) เหมาะกับ การใช้ ง านในระบบงานแบบกลุ่ ม (Batch
System) มีขอ้ ดีคอื ง่ายต่อการประยุกต์ใช้งาน ข้อเสียคือไม่สามารถคาดเดาเหตุการณ์
ของแต่ละโปรเซสในการเข้าใช้งาน CPU ได้
2. การจัดเวลาแบบงานสัน้ ทาก่อน (SJF: Short-Job-First
Scheduling)
เป็ นอัลกอริทมึ ประเภททีไ่ ม่สามารถแทรกกลางคันได้ (Nonpreemptive) เหมาะกับการใช้งานในระบบงานแบบกลุ่ม (Batch System) มี
ข้อดีคอื มีค่าเฉลีย่ เวลาในการรอคอยในการใช้งาน CPU แต่ละโปรเซสน้อยทีส่ ุด ข้อเสีย
คืออาจทาให้เกิดปัญหาการขาดแคลนทรัพยากร (Starvation)
37
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
3. การจัดเวลาตามลาดับความสาคัญ (Priority
Scheduling)
เป็ นอัลกอริทมึ ประเภททีไ่ ม่สามารถแทรกกลางคันได้ (Non-preemptive)
เหมาะกับการใช้งานในระบบงานแบบกลุ่ม (Batch System) มีขอ้ ดีคอื ลาดับ
งานทีม่ คี วามสาคัญจะได้รบั การประมวลผลก่อนเสมอ ข้อเสียคืออาจทาให้เกิดปัญหาการ
ขาดแคลนทรัพยากร (Starvation)
38
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
4. การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling)
เป็ นอัลกอริทมึ ประเภททีส่ ามารถแทรกกลางคันได้ (Preemptive) เหมาะกับการใช้งาน
ในระบบงานแบบโต้ตอบ (Interactive System) มีขอ้ ดีคอื สามารถตอบสนอง
ต่ อ ผู ้ ใ ช้ ง านได้ อ ย่ า งรวดเร็ ว ข้ อ เสีย คื อ ต้ อ งมีก ารก าหนดระยะเวลาการใช้ ง าน
(Quantum Time) ทีแ่ น่นอนให้กบั แต่ละโปรเซส
5. การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)
เป็ นอัลกอริทมึ ประเภท Preemptive/Non- Preemptive เหมาะกับการใช้
การใช้งานในระบบงานแบบกลุ่ม (Batch System) และงานในระบบงานแบบโต้ตอบ
(Interactive
System) มีข้อ ดีค ือ มีค วามยืด หยุ่ น ในการใช้ ง าน
(Flexibility) ข้อเสียคือมี overhead ในการจากการตรวจสอบลาดับคิว
39
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
4. การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling)
เป็ นอัลกอริทมึ ประเภททีส่ ามารถแทรกกลางคันได้ (Preemptive) เหมาะกับการใช้งาน
ในระบบงานแบบโต้ตอบ (Interactive System) มีขอ้ ดีคอื สามารถตอบสนอง
ต่ อ ผู ้ ใ ช้ ง านได้ อ ย่ า งรวดเร็ ว ข้ อ เสีย คื อ ต้ อ งมีก ารก าหนดระยะเวลาการใช้ ง าน
(Quantum Time) ทีแ่ น่นอนให้กบั แต่ละโปรเซส
5. การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)
เป็ นอัลกอริทมึ ประเภท Preemptive/Non- Preemptive เหมาะกับการใช้
การใช้งานในระบบงานแบบกลุ่ม (Batch System) และงานในระบบงานแบบโต้ตอบ
(Interactive
System) มีข้อ ดีค ือ มีค วามยืด หยุ่ น ในการใช้ ง าน
(Flexibility) ข้อเสียคือมี overhead ในการจากการตรวจสอบลาดับคิว
40
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
การจัดตารางงานของระบบตัวประมวลผลหลายตัว (Multiprocessor) จะ
แบ่งการทางานออกเป็ น 2 ลักษณะ คือ
1. การใช้ตวั Processor) ทีห่ ลากหลาย (Heterogeneous System)
โดยกาหนดให้โปรเซสมีควิ การทางานเป็ นของตนเอง เพือ่ จัดให้แต่ ละโปรเซสทางานกับตัว
ประมวลผลทีเ่ หมาะสม
2. การใช้ ต วั Processor
เดีย วกัน ทัง้ หมด (Homogeneous
System) โดยแบ่งคิวให้กบั ตัวประมวลผล (Processor) แต่ ละตัว โดยมีการ
จัดการคิวในลักษณะ “คิวร่ วม” ให้กบั โปรเซส โดยการจัดคิวร่ วมแบ่ง 2 วิธคี อื ตัวจัด
ตารางการ
1. Symmetric Multiprogramming
2. Asymmetric Multiprogramming
41
Suan Dusit Rajabhat University (Computer Science)
*สรุป*
การจัดตารางการทางานของระบบแบบทันที (Real-Time Scheduling)
แบ่งออกเป็ น
1. Hard real-time เป็ นการจัดตารางทางานเพือ่ กาหนดสิทธิใ์ ห้กบั โปรเซส
ทางาน โดยรับประกันว่างานนัน้ จะเสร็จสิน้ ตามระยะเวลาทีก่ าหนด โดยมีการกาหนดระยะเวลา
ทีแ่ น่นอน
2. Soft real-time เป็ นการจัดตารางทางานเพือ่ อนุญาตให้โปรเซสทางานได้
อย่างต่อเนือ่ งจนกว่างานนัน้ จะเสร็จสิน้ โดยไม่มกี ารกาหนดระยะเวลาทีแ่ น่นอน
42
Suan Dusit Rajabhat University (Computer Science)
Chapter 3 : The End (Any Question?)