โครงสร้างการจัดลำดับของซีพียู

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
AbZolute Logistic Solutions
Advertisements

วิชาหัวข้อเรื่องที่ทันสมัยทางวิทยาการคอมพิวเตอร์ 6 มกราคม 2555
กระบวนการ (Process).
การศึกษาและประยุกต์ใช้ขั้นตอนวิธีเชิง วิวัฒน์แบบหลายจุดประสงค์บนคลังข้อมูล เจเมทัล Study of Evolutionary Algorithm in Multi- objective on Library jMetal.
โครงสร้างของระบบปฏิบัติการ Operating System Structure
ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การทำงานแบบเลือกทำ (Selection)
การปรับปรุงหลักเกณฑ์วิธีปฎิบัติในการอ่านหน่วยการใช้ไฟฟ้า 01/06/2012
Functional programming part II
รัฐประศาสนศาสตร์ รัฐประศาสนศาสตร์เป็นเรื่องเกี่ยวกับ “กิจการสาธารณะ (Public Affairs)” และพื้นฐานของรัฐประศาสนศาสตร์ก็คืองานบริหารงานภาครัฐใดๆ ที่ต้องคำนึงถึง.
บทที่ 6 โปรแกรมเชิงเส้น Linear Programming
การแก้ปัญหาด้วยคอมพิวเตอร์
การจัดสรรหน่วยประมวลผล (Process Scheduling)
การจัดการอุปกรณ์รับ และแสดงผล
บทที่ 9 ราคาระดับฟาร์มและราคาสินค้าเกษตรและอาหาร
การค้ามนุษย์ การค้ามนุษย์ สภาพปัญหา ผลกระทบ แนวทางการแก้ไขปัญหา.
Project Management.
การจำลองความคิด
Use Case Diagram.
คิวQueue Circular Queue.
Operating System ฉ NASA 4.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
การติดตาม และประเมินโครงการ.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 4 การโปรแกรมเชิงเส้น (Linear Programming)
The General Systems Theory
ให้ประหยัดการใช้หน่วยความจำ (space) ด้วยความรวดเร็ว (time)
การวางแผนการผลิตรวม ความหมาย วัตถุประสงค์และขั้นตอนการวางแผนการผลิตรวม
การเสนอกระบวนงานบริการเพื่อขอรับการประเมิน
ระบบการผลิต ( Production System )
CPU ไม่รวม I/O PROCESSOR , MATH CO-PROCESSOR
การบริหารโครงการ (Project anagement)
การวิจัยดำเนินงาน Operations research
โครงสร้างข้อมูลแบบคิว
การประชุมชี้แจงสาระสำคัญของประกาศ คพร.
Memory Management ในยุคก่อน
คำถามตามเกณฑ์ PMQA:105คำถาม หมวด1 12คำถาม.
การวัดประเมินผลแบบดั้งเดิม
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
บทที่ 3 การวิเคราะห์ Analysis.
DEADLO CK นางสาวเบญจวรรณ จิตร ถวิล วันนี้เริ่มต้นเรียนบทที่ 7 หน้า 237 ในตำรา เรียนจะเกี่ยวกับ deadlocks คือ สิ่งที่รู้อยู่แล้ว คือ สิ่งที่ทำให้แอพพลิเคชั่นหรือบางครั้งถ้า.
Synchronization (การประสานงาน)
ภาวะติดตาย (Deadlock)
บทที่ 7 Deadlock Your company slogan.
Process.
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
A Comparison on Quick and Bubble sort on large scale data
การประเมินค่างาน ดร. สุจิตรา ธนานันท์.
บทที่ 3 การจ่ายงาน (Process Management).
โครงสร้างขององค์การ.
Interrupt.
กระบวนการสมานฉันท์และสันติวิธี
โครงสร้างข้อมูล Queues
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Input / Output ธนวัฒน์ แซ่เอียบ.
การกำหนดโครงการ (Project Scheduling: PERT / CPM)
ADDIE Model.
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.
ความหมาย รูปแบบหนึ่งของบทเรียน คอมพิวเตอร์ช่วยสอนซึ่ง มีการออกแบบบทเรียน โดยมีเป้าหมายที่จะเสนอ ข้อคำถามในรูปแบบต่าง ๆเพื่อให้ผู้เรียนฝึกปฏิบัติ
Deadloc ks. วันนี้เราเริ่มต้นเรียนบทที่ 7 เริ่มในหน้า 237 ในตำรา เรียนของคุณ. บทนี้จะเกี่ยวกับ deadlocks คือ สิ่งที่คุณรู้, มันคือ สิ่งที่ทำให้ application.
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
7.Discussion การอภิปราย นายวัชรกร เดชะบุญ รหัสนิสิต
หน่วยที่1 ข้อมูลทางการตลาด
Advanced Operating System Operating System Technology
Advanced Operating System Operating System Technology
CPU and I/O bursts.
ใบสำเนางานนำเสนอ:

โครงสร้างการจัดลำดับของซีพียู 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 และ 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: Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 P1 P2 P3 24 27 30

FCFS Scheduling (Cont.) Suppose that the processes arrive in the order P2 , P3 , P1 . The Gantt chart for the schedule is: Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 ดีกว่ากรณีแรก อาจเกิดปัญหา ผลกระทบของคุ้มกัน (Convoy effect) คือกระบวนการสั้นอยู่หลังกระบวนการยาว ต้องรอนาน P1 P3 P2 6 3 30

การจัดลำดับแบบงานสั้นสุดได้ก่อน Shortest-Job-First (SJF) Scheduling ใช้ขนาดของเวลาที่กระบวนการต้องการใช้ซีพียูในคราวถัดไปเป็นเกณฑ์ โดยจัดสรรเวลาให้แก่กระบวนการที่ต้องการใช้เวลาซีพียูน้อยที่สุดก่อน มี 2 แบบ แบบไม่บังคับ (nonpreemptive) เมื่อจัดสรรให้กระบวนการใดแล้ว จะให้ครอบครองซีพียูไปจนกระทั่งงานเสร็จ แบบบังคับ (preemptive) ถ้ามีกระบวนการใหม่เข้ามาพร้อมกับต้องการเวลาใช้ซีพียูสั้นกว่าเวลาที่ยังเหลืออยู่ของกระบวนการที่กำลังใช้ ก็จะสลับมาเลือกกระบวนการที่มาใหม่เข้าไปใช้ซีพียูแทน บางทีเรียกว่า เวลาเหลือน้อยสุดใช้ก่อน (SRTF: Shortest-Remaining-Time-First) SJF เป็นวิธีที่เหมาะที่สุด (optimal) ช่วยลดค่าเฉลี่ยของเวลารอคอยต่ำที่สุดสำหรับกระบวนการทั้งหมด

Example of Non-Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive) Average waiting time = (0 + 6 + 3 + 7)/4 - 4 P1 P3 P2 7 3 16 P4 8 12

Example of Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive) Average waiting time = (9 + 1 + 0 +2)/4 - 3 P1 P3 P2 4 2 11 P4 5 7 16

ข้อพึงพิจารณาการเลือกจากจำนวนเวลาของการใช้ซีพียูครั้งถัดไป ต้องสามารถรู้ได้ว่ากระบวนการจะใช้เวลาของซีพียูอีกเท่าไรจึงจะเสร็จในคราวหน้า จึงใช้วิธีการทำนายล่วงหน้าโดยการคำนวณจากเวลาที่กระบวนการใช้ครั้งสุดท้าย โดยหาค่าเฉลี่ยแบบเอ็กซ์โปแนนเชียล (exponential averaging)

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) หรือไม่บังคับ (non-preemptive) ก็ได้

การจัดลำดับแบบตามลำดับความสำคัญ Priority Scheduling ปัญหา เกิดการหยุดรอแบบไม่มีที่สิ้นสุด (indefinite blocking) -หรือ- ภาวะงูกินหาง (starvation) กระบวนการที่มีลำดับความสำคัญต่ำรอให้กระบวนการที่มีลำดับความสำคัญสูงเข้าใช้งานซีพียูนานเกินไป วิธีแก้ ใช้เทคนิคการปรับอายุ (aging) โดยเพิ่มค่าลำดับความสำคัญให้แก่กระบวนการที่มีลำดับความสำคัญต่ำในแต่ละหน่วยเวลา

การจัดลำดับแบบวิธีวนรอบ Round Robin (RR) วิธีนี้จะใช้การแบ่งเวลาออกเป็นช่วงสั้นๆ เรียกว่า หน่วยเล็กสุดของเวลา (time quantum) หรือเสี้ยวเวลา (time slice) มักมีค่าตั้งแต่ 10 ถึง 100 msec. กระบวนการทั้งหมดจะเข้าแถวรออยู่ในแถวคอยพร้อมแบบเข้าก่อนออกก่อน (FIFO) ซีพียูจะเลือกกระบวนการที่อยู่หัวแถวมาเพื่อเข้าใช้ซีพียูจนกระทั่งหมดช่วงเวลา ก็จะย้ายกระบวนการนี้ไปใส่ไว้ท้ายสุดของแถวคอยพร้อม แล้วเลือกกระบวนการที่อยู่หัวแถวไปกระทำการต่อ วนรอบเป็นเช่นนี้ไปเรื่อยๆ ประสิทธิภาพ ขึ้นอยู่กับขนาดของ q หรือการแบ่งหน่วยเวลา ถ้าค่าของ q มีขนาดยาว ประสิทธิภาพจะเท่ากับแบบมาก่อนได้ก่อน (FIFO) ค่าของ q มีขนาดสั้น ก็จะเสียเวลาในการทำสลับบริบทมากเกินไป

Example of RR with Time Quantum = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 The Gantt chart is: ค่าเฉลี่ยของเวลาครบวงงาน (turnaround time) สูงกว่าวิธีงานสั้นสุดได้ก่อน (SJF) แต่ให้เวลาตอบสนอง (response time) ดีกว่า P1 P2 P3 P4 20 37 57 77 97 117 121 134 154 162

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