Advanced Operating System Operating System Technology

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การติดตามและ ประเมินผลโครงการ
Advertisements

Chapter 2 Process Pisit Nakjai.
การผลิตบ่อพัก ทำเอง ใช้เอง หจก. มภัสกาญ คอนสตรัคชั่น
เรื่อง แนวทางการเลือกซื้อคอมพิวเตอร์
System Requirement Collection (2)
บทที่ 3 การบริหารพนักงานขาย
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
ซอฟต์แวร์และการเลือกใช้
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
Material requirements planning (MRP) systems
การแพร่กระจายนวัตกรรม Diffusion of Innovation
หน่วยที่ 1 ข้อมูลทางการตลาด. สาระการเรียนรู้ 1. ความหมายของข้อมูลทางการตลาด 2. ความสำคัญของข้อมูลทางการตลาด 3. ประโยชน์ของข้อมูลทางการตลาด 4. ข้อจำกัดในการหาข้อมูลทาง.
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
IP-Addressing and Subneting
IP-Addressing and Subneting
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
บทที่ 3 การจัดเวลาซีพียู CPU Scheduling.
เริ่มต้นออกแบบ Unit7.
Advanced Operating System Operating System Technology
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
บทที่ 3 การวิเคราะห์ Analysis.
การบริหารโครงการ Project Management
ACCOUNTING FOR INVENTORY
แนวทางการออกแบบโปสเตอร์
Multistage Cluster Sampling
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : สื่อกลางส่งข้อมูลและการมัลติเพล็กซ์ (Transmission Media and Multiplexing) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
การบัญชีต้นทุนช่วง (Process Costing).
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
Basic Input Output System
Presentation การจัดการข้อร้องเรียนในธุรกิจบริการ Customer Complaint Management for Service.
บทที่ 1 ระบบสารสนเทศ (Information System)
บทที่ 8 การควบคุมโครงการ
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
วิธีการกรอกแบบเสนอโครงการในไฟล์ Power point นี้
บัตรยิ้ม สร้างเสริมกำลังใจ
การจัดลำดับความสำคัญของโครงการด้านการเปลี่ยนแปลงสภาพภูมิอากาศ
การรายงานความคืบหน้าหรือสถานะ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การบริหารโครงการซอฟต์แวร์
วาระที่ ผลการประชุมเชิงปฏิบัติการ เรื่อง การเตรียมความพร้อมบุคลากร สำนักแผนงานและโครงการพิเศษเพื่อสนับสนุนการปฏิบัติงาน ของหน่วยงานในพื้นที่
โดย นายอนุชา ศรีเริงหล้า นักอุตุนิยมวิทยาปฏิบัติการ
SMS News Distribute Service
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
โซ่อุปทานและโลจิสติกส์ ญาลดา พรประเสริฐ คณะวิทยาการจัดการ
BASIC STATISTICS MEAN / MODE / MEDIAN / SD / CV.
Multimedia และระบบความจริงเสมือน Virtual Reality, VR
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
การวางแผนกำลังการผลิต
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
การจัดทำแผนการสอบบัญชีโดยรวม
อ.ชิดชม กันจุฬา (ผู้สอน)
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
กระดาษทำการ (หลักการและภาคปฏิบัติ)
CPU and I/O bursts.
ใบสำเนางานนำเสนอ:

Advanced Operating System Operating System Technology การจัดลำดับงานของหน่วยประมวลผลกลาง CPU Scheduling

CPU Scheduling เนื้อหา - แนวคิดพื้นฐาน (Basic Concepts) - เกณฑ์การจัดตารางเวลาการทำงาน (Scheduling Criteria) วิธีการจัดตารางเวลาการทำงาน(Scheduling Algorithms) การจัดตารางการทำงานแบบคิว (Queue Scheduling) - การจัดตารางงานของมัลติโปรเซสเซอร์ หรือหน่วยประมวลผลแบบหลายตัว (Multiple-Processor Scheduling) - การจัดตารางงานแบบเรียลไทม์ (Real-Time CPU Scheduling) - การประเมินวิธีการ (Algorithm Evaluation)

Basic Concepts - เป็นหลักการพื้นฐานสำหรับระบบปฏิบัติการแบบ Multiprogrammed จุดประสงค์ของการรันโปรแกรมหลายโปรแกรมคือ ความต้องการที่จะให้ซีพียูมีการทำงานตลอดเวลา เพื่อให้มีการใช้ซีพียูอย่างเต็มที่และเต็มประสิทธิภาพ ใช้เวลาให้คุ้มค่า กระบวนการหลายๆ กระบวนการถูกเก็บในหน่วยความจำครั้งเดียว เมื่อมีกระบวนการรอ ระบบจะสับเปลี่ยนหน่วยประมวลผลกลางให้อีกกระบวนการหนึ่งแทน

Basic Concepts ช่วงประมวลผล/ช่วงรับส่งข้อมูล การจัดตารางการทำงานที่ดี ต้องทราบลักษณะการทำงานของกระบวนการ กระบวนการทั่วไปจะทำงานเป็นวงจรคือ ทำงานในหน่วยประมวลผล และรอคอย การรับ-ส่งข้อมูลจากอุปกรณ์สลับกันไป โดยเริ่มต้นที่ทำงานในหน่วยประมวลผลก่อนเรียกว่า ช่วงประมวลผล (CPU-burst) แล้วก็จะหยุดเพื่อทำงานในอุปกรณ์รับ-ส่งข้อมูลเรียกว่า ช่วงรับส่งข้อมูล (I/O burst) แล้วตามด้วยช่วงประมวลผลอีกสลับกันไปจนสิ้นสุดกระบวนการ ควรกระจายการดำเนินการหน่วยประมวลผลให้เท่าเทียมกัน

Alternating Sequence of CPU And I/O Bursts

Histogram of CPU-burst Times

ตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง (CPU Scheduler ) ผู้เลือกกระบวนการในแถวพร้อม (ready queue) เพื่อเข้าไปใช้งานหน่วยประมวลผลกลาง ใช้ตัวจัดตารางระยะสั้นหรือตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง

ตัวจัดตารางการทำงานของหน่วยประมวลผลกลาง (CPU Scheduler ) ตัวจัดตารางการทำงานระยะสั้น (short–term scheduler) จะเลือกโปรเซสที่อยู่ในคิวที่พร้อมในการประมวลผล เพื่อให้ครอบครองเวลาซีพียูและทรัพยากรที่เกี่ยวข้องกับโปรเซสนั้น อย่างไรก็ตามโปรเซสทุกโปรเซสที่พร้อมใช้ซีพียู จะต้องมีโอกาสได้เข้าครอบครองเวลาซีพียูไม่เวลาใดก็เวลาหนึ่ง การเข้าและออกจากการครอบครองเวลาซีพียูแต่ละครั้ง จำเป็นต้องมีการเก็บข้อมูลไว้เสมอว่าเข้ามาทำอะไร ต่อไปจะทำอะไร

การจัดตารางการทำงานของหน่วยประมวลผลกลาง การตัดสินใจในการจัดตารางการทำงานหน่วยประมวลผลกลางก่อนหลัง เกิดขึ้นเมื่อโปรเซสมีเหตุการณ์ดังต่อไปนี้ 1) เมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงาน (running)ไปเป็นสถานะการรอคอย (waiting) 2) เมื่อเกิดการเปลี่ยนแปลงสถานะจากกำลังทำงาน (running) ไปเป็นสถานะพร้อมที่จะเข้าทำงาน (ready) 3) เมื่อเกิดการเปลี่ยนแปลงสถานะจากรอคอย(waiting)ไปเป็นสถานะพร้อม (ready) 4) เมื่อโปรเซสสิ้นสุดการทำงาน

การจัดลำดับการทำงานของหน่วยประมวลผลกลาง การจัดลำดับการทำงานเหตุการณ์แบบ 1)และแบบ 4) เรียกว่า แบบไม่ให้แทรกกลางคัน (non-preemptive) ระบบจะต้องเลือกกระบวนการเข้ามาทำงาน ไม่คำนึงถึงลำดับความสำคัญของกระบวนการ การจัดลำดับการทำงานแบบอื่นๆ เป็นแบบให้แทรกกลางคัน (preemptive) หรือคำนึงถึงความสำคัญของกระบวนการ ก่อให้เกิดค่าใช้จ่าย กรณีมีการแชร์ข้อมูลกันระหว่างสองกระบวนการ ต้องมีกลไกประสานการทำงาน

การจัดตารางแบบให้แทรกกลางคัน (Preemptive Scheduling) การจัดเวลาแบบให้สิทธิ์ก่อนนั้นมีผลกระทบต่อการออกแบบ Kernel ของระบบปฏิบัติการเป็นอย่างมาก ในระหว่างการเกิด system call นั้น Kernel อาจจะยังไม่ว่าง อาจจะกำลังทำงานในการจัดคิวโปรเซสอยู่ UNIX และบางระบบปฏิบัติการมีการแก้ปัญหานี้ ให้ System call สิ้นสุดเอง หรือไม่ก็คอยจนกว่าจะมีการบล็อกการทำงานของอินพุต/เอาต์พุตเกิดขึ้น แล้วจึงมีการทำสลับการทำงาน

การจัดตารางแบบไม่ให้แทรกกลางคัน (Non-Preemptive Scheduling) เมื่อกระบวนการได้ใช้หน่วยประมวลผลกลางแล้ว กระบวนการสามารถใช้จนกระทั่งกระบวนการสิ้นสุดหรือเปลี่ยนเป็นสถานะรอคอย จึงจะคืนหน่วยประมวลผลกลางกลับให้แก่ระบบ วิธีนี้ใช้ใน Window 3.1 และ Macintosh

ตัวจัดการการทำงานของระบบ (Dispatcher) - ให้การควบคุมการทำงานของหน่วยประมวลผลกลาง กับโปรเซสที่ถูกเลือกจากตัวจัดตารางระยะสั้น เกี่ยวกับ - สลับสภาวะการทำงาน (context switch) - สลับการทำงานไปสู่โหมดผู้ใช้งาน (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

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

วิธีการจัดตารางเวลาการทำงาน (Scheduling Algorithms) การจัดตารางการทำงานแบบมาก่อนให้บริการก่อน (First-Come, First-Served Scheduling; FCFS) การจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อน(Shortest-Job-First Scheduling; SJF) การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ (Priority Scheduling) การจัดตารางการทำงานแบบวนรอบ (Round Robin Scheduling; RR)

การจัดตารางการทำงานแบบมาก่อนให้บริการก่อน First-Come, First-Served Scheduling (FCFS) โปรเซสใดที่ร้องขอใช้ซีพียูก่อนก็จะได้รับการจัดสรรให้ครอบครองเวลาซีพียูก่อน ผลเสียของอัลกอริทึมนี้คือค่าเฉลี่ยของการคอยในคิวแบบมาก่อนได้ก่อนนี้ค่อนข้างจะสูง

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

First- Come, First-Served (FCFS) Scheduling 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 Much better than previous case

ประสิทธิผลในการทำงานของหน่วยประมวลผลและอุปกรณ์ต่ำลง First- Come, First-Served (FCFS) Scheduling เกิดปัญหา Convoy effect หมายถึง ต้องรอกระบวนการใหญ่เพียงกระบวนการเดียวใช้งานเสร็จแล้วจึงปล่อยหน่วยประมวลผลคืนสู่ระบบ ประสิทธิผลในการทำงานของหน่วยประมวลผลและอุปกรณ์ต่ำลง เป็นการทำงานที่ไม่สามารถแทรกกลางคันได้

การจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อน Shortest-Job-First Scheduling (SJF) ในการจัดตารางการทำงานจะพิจารณาจากโปรเซสที่ใช้ระยะเวลาที่สั้นที่สุด แบ่งออกเป็นสองแบบคือ - Non-preemptive คือการทำงานที่หน่วยประมวลผลจะให้โปรเซสทำงานจนเสร็จสิ้นโดยไม่คำนึงถึงระดับความสำคัญ - Preemptive คือการทำงานที่พิจารณาถึงระดับความสำคัญ เมื่อเกิดโปรเซสขึ้นใหม่ที่ใช้ระยะเวลาในการทำงานสั้นกว่าโปรเซสเดิมที่กำลังทำงานอยู่ หน่วยประมวลผลจะให้โปรเซสใหม่ที่เกิดขึ้นเข้าทำงานก่อน และให้โปรเซสเดิมที่ต้องใช้เวลาในการทำงานนานกว่าหยุดการทำงานโดยชั่วคราว หรือเรียกว่า Shortest-Remaining-Time (SRT)

การจัดตารางการทำงานแบบเวลาในการทำงานสั้นที่สุดให้ทำก่อน Shortest-Job-First Scheduling (SJF) - การทำงานด้วยวิธีนี้สามารถช่วยลดระยะเวลาในการรอคอยของแต่ละโปรเซสโดยรวมเฉลี่ยลดลง ความยากคือ จะต้องทราบเวลาของการร้องขอใช้งาน CPU โปรเซสต่อไป

Example of SJF Process Burst Time P1 6 P2 8 P3 7 P4 3 SJF scheduling chart Average waiting time = (3 + 16 + 9 + 0) / 4 = 7

Example of Shortest-remaining-time-first Now we add the concepts of varying arrival times and preemption to the analysis Process Arrival Time Burst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5 Preemptive SJF Gantt Chart Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec

การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling จำนวนของระดับความสำคัญ เป็นจำนวนเต็ม (integer) จะสัมพันธ์กับแต่ละโปรเซส โปรเซสที่เข้าใช้งานหน่วยประมวลผลจะต้องมีระดับความสำคัญสูงสุด คือ ค่า Integer น้อยสุด ถ้ามีงานที่มีลำดับความสำคัญเท่ากัน ก็จะมีการนำเอามาก่อนได้ก่อน FCFS มาใช้ Preemptive จะแทรกได้ต่อเมื่อ กระบวนการที่เข้ามาใหม่มีความสำคัญสูงกว่ากระบวนการเดิม Non-preemptive จะนำกระบวนการใหม่ไปไว้ที่หัวแถวของ ready queue แทน

การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling ปัญหาคือ โปรเซสที่ระดับความสำคัญต่ำสุดอาจไม่ได้รับการประมวลผลหรือไม่ถูกเอ็กซ์ซีคิวท์เลย เรียก ปัญหาการแช่เย็น(Starvation) หรือรอคอยชั่วนิรันดร์ กระบวนการที่ความสำคัญสูงเข้ามาเรื่อยๆ จนความสำคัญต่ำไม่ได้ทำงานเลย อาจจะได้ทำงานเมื่องานในระบบน้อยลง ระบบทำงานไปจนเสียและงานนั้นๆ ก็จะสาบสูญไป เช่น ระบบ Rumor บนเครื่อง IBM 9074 ที่ MIT ปี 1973 - แก้ปัญหาโดยการกำหนดให้เวลาที่สูญเสียในการรอคอยจะไปเพิ่มระดับความสำคัญของโปรเซสนั้นให้มากขึ้น (Aging)

การจัดตารางการทำงานแบบคำนึงถึงระดับความสำคัญ Priority Scheduling เช่น สมมติว่าเรามีการออกแบบให้มีลำดับความสำคัญจาก 0-127 ขั้น เราอาจจะเพิ่มอัลกอริทึมพิเศษลงไปว่า ถ้าโปรเซสใดคอยครบ 15 นาที ก็ให้ลดตัวเลขลำดับขั้นลงทีละขั้น และจะลดลงไปเรื่อย ๆ ทุก ๆ 15 นาที แม้โปรเซสที่เข้ามาในระบบมีลำดับความสำคัญต่ำสุดที่ 127 ก็จะมีโอกาสเข้าไปใช้ซีพียูภายในเวลาไม่เกิน 32 ชั่วโมง เพราะในที่สุดโปรเซสนี้ก็จะมีลำดับความสำคัญเท่ากับ 0

Example of Priority Scheduling Process Burst Time Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Priority scheduling Gantt Chart Average waiting time = (0 + 1 + 6 + 16 + 18) / 5 = 8.2 msec

การจัดตารางการทำงานแบบวนรอบ (Round Robin Scheduling; RR) กำหนดให้แต่ละโปรเซสได้รับเวลาในการประมวลผลหรือเวลาที่สามารถเข้าใช้หน่วยประมวลผลระยะสั้นๆ เท่าๆ กัน เรียกว่าส่วนแบ่งเวลา (time quantum, q) ประมาณ 10 – 100 มิลลิวินาที เมื่อแต่ละโปรเซสใช้เวลาที่ตนเองได้รับหมดไป โปรเซสนั้นก็จะต้องหยุดทำงานและถูกย้ายกลับเข้าไปอยู่ยังลำดับสุดท้ายของคิวพร้อมทำงานเพื่อการรอคอยเข้าทำงานอีกครั้ง วนรอบเช่นนี้จนจบการทำงาน ไม่มีกระบวนการใดได้รับช่วงเวลาทำงานมากกว่า 1 ส่วนแบ่งเวลา

การจัดตารางการทำงานแบบวนรอบ (Round Robin; RR) ถ้ามี จำนวนโปรเซส (n) อยู่ในคิวพร้อมทำงาน ส่วนแบ่งเวลา (q) แต่ละโปรเซสจะได้เวลาเพื่อการเข้าใช้งานหน่วยประมวลผลเป็น 1/n ของเวลาที่หน่วยประมวลผลสามารถประมวลผลในหนึ่งช่วงเวลา ดังนั้นจึงไม่มีโปรเซสใดที่จะต้องรอนานเกินกว่า (n-1)q หน่วยเวลา เช่น ถ้ามีโปรเซส 5 โปรเซส และระยะเวลาควันตัมคือ 20 วินาที แต่ละโปรเซสจะต้องคอยในคิวโดยเฉลี่ยประมาณไม่เกิน 80 วินาที เพราะว่าการคอยอาจจะน้อยกว่านี้ ถ้าหากว่ามีโปรเซสใด ๆ สามารถทำงานเสร็จโดยใช้เวลาน้อยกว่าเวลาควันตัมนั่นเอง

Example of RR with Time Quantum = 4 Process Burst Time P1 24 P2 3 P3 3 The Gantt chart is: [(10-4)+4+7] / 3 = 17/3 = 5.67 วินาที

การจัดตารางการทำงานแบบวนรอบ ( Round Robin; RR ) - ประสิทธิผลขึ้นอยู่กับ - q มีขนาดใหญ่  FCFS q ที่มีขนาดเล็ก เป็นการแบ่งปันการประมวลผล ซึ่งมี Overhead สูง

เวลาควอนตัม กับเวลาในการสลับสภาพแวดล้อม Time Quantum and Context Switch Time

การจัดตารางการทำงานแบบวนรอบ (RR : Round-Robin Scheduling) ประสิทธิภาพของการวนรอบขึ้นอยู่กับการกำหนดขนาดของควันตัม ถ้าขนาดของควันตัมใหญ่หรือนานเกินไป ประสิทธิภาพของการวนรอบก็จะใกล้เคียงกับแบบมาก่อนได้ก่อน ถ้าขนาดของควันตัมเล็กมากเกินไป ทรูพุต (throughput) ของระบบก็จะช้าลง เนื่องจากการสลับโปรเซสเข้าและออกจากการครอบครองซีพียู จะต้องเสียเวลาบางส่วนในการทำ Dispatcher ถ้าขนาดของควันตัมเล็กใกล้เคียงกับเวลาของ Dispatcher เวลาของระบบรวมก็จะหมดไปกับการสลับโปรเซส(Context Switch) นั่นเอง

การจัดตารางการทำงานแบบคิว (Queue Scheduling) การจัดตารางการทำงานของคิวแบบหลายระดับ (Multilevel Queue Scheduling) การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ (Multilevel Feedback Queue Scheduling)

การจัดลำดับการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling เป็นการจัดเวลาของซีพียูอีกแบบหนึ่งสำหรับระบบที่สามารถแบ่งระดับชั้นของงานได้อย่างชัดเจน งานในคิวพร้อมทำงานแบ่งได้เป็น งานที่เป็น Foreground หรืองานโต้ตอบ(Interactive) กับงานที่เป็นBackground หรือแบบกลุ่ม (Batch) งานทั้งสองแบบนี้ต้องการเวลาตอบสนอง (Response time) ที่แตกต่างกัน ซึ่งสามารถใช้ระบบการจัดเวลาที่แตกต่างกันได้

การจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling ใช้วิธีแบ่งคิวออกเป็นหลาย ๆ ระดับโดยที่แต่ละระดับหมายถึงระดับโปรเซสที่มีความสำคัญแตกต่างกัน การแบ่งระดับความสำคัญของโปรเซสนั้น สามารถแบ่งได้หลายลักษณะ เช่นแบ่งตามขนาดโปรเซส, จำนวนหน่วยความจำที่ต้องใช้ หรือจำนวนอินพุต/เอาต์พุต เป็นต้น แต่ละคิวยังสามารถใช้หลักการจัดเวลาที่แตกต่างกันได้ด้วย เช่น งานที่Foreground ก็อาจใช้การจัดตารางแบบวนรอบ ส่วนงานที่เป็นแบบBackground ก็อาจใช้แบบมาก่อนได้ก่อน ก็ได้

การจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling คิวด้านบนจะมีความสำคัญมากกว่าคิวที่อยู่ด้านล่างถัดลงไปเสมอ โปรเซสที่คอยอยู่ในคิวที่มีความสำคัญต่ำจะมีโอกาสได้ออกมาใช้ซีพียูก็ต่อเมื่อคิวที่มีความสำคัญสูงกว่าไม่มีโปรเซสที่ต้องทำเหลืออยู่เท่านั้น ในขณะที่โปรเซสที่มีลำดับความสำคัญกำลังครอบครองซีพียู มีโปรเซสที่มีลำดับความสำคัญสูงกว่าเข้ามาคอยอยู่ในคิวที่สูงกว่า โปรเซสนี้ก็จะถูกสลับออกมาจากซีพียูทันที

การจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling เพื่อป้องกันไม่ให้โปรเซสที่อยู่ในคิวต่ำต้องคอยอยู่นานเกินไป หรืออาจจะไม่มีโอกาสได้เข้าไปใช้ซีพียูเลย เพราะว่าในคิวบน ๆ ไม่เคยว่างเลย ต้องมีการกำหนดสัดส่วนเวลาให้กับแต่ละคิวในการทำงานเข้าไปใช้ซีพียู เช่น การกำหนดให้เวลา 80 เปอร์เซ็นต์เป็นของโปรเซสที่เป็น Foreground และอีก 20 เปอร์เซ็นต์เป็นของงานBackground เป็นต้น

การจัดตารางการทำงานของคิวแบบหลายระดับ Multilevel Queue Scheduling

การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling - โปรเซสสามารถเคลื่อนย้ายระหว่างคิวต่าง ๆ กัน (สามารถใช้ได้ในการทำ Aging) - ตัวจัดตารางการทำงานของคิวผลตอบกลับหลายระดับถูกกำหนดโดยพารามิเตอร์ต่าง ๆ ดังต่อไปนี้ - จำนวนของคิว - อัลกอริธึมในการจัดตารางการทำงานของแต่ละคิว - เกณฑ์ในการตัดสินเมื่อมีการปรับระดับกระบวนการ - เกณฑ์ในการตัดสินเมื่อมีการลดระดับกระบวนการ - เกณฑ์ในการตัดสินเลือกกระบวนการที่ต้องการครอบครองซีพียูเข้าสู่คิว

การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling โปรเซสในแต่ละคิว สามารถมีการเลื่อนชั้นระดับความสำคัญขึ้นหรือลงได้ อาจจะต้องเสียเวลาเพิ่ม ในการคำนวณหาระดับความสำคัญใหม่ให้กับโปรเซส

การจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Multilevel Feedback Queue Scheduling ส่วนมากจะแบ่งระดับความสำคัญตามระยะเวลาของเวลาซีพียู เช่นเมื่อซีพียูทำงานนานขึ้นก็อาจจะถูกลดชั้นลงมาสู่คิวที่มีลำดับความสำคัญต่ำได้ ซึ่งจะทำให้โปรเซสที่มีการใช้ซีพียูน้อยแต่มีอินพุต/เอาต์พุตหรืออินเทอร์แอ็กทีฟมาก ๆ มีโอกาสเข้าไปอยู่ในคิวที่มีความสำคัญมากได้ วิธีนี้ยังเป็นการป้องกันไม่ให้มีโปรเซสที่มีความสำคัญน้อยถูกดองอยู่ในคิว เพราะโปรเซสที่อยู่ในคิวที่ต่ำก็สามารถเลื่อนขึ้นไปสู่คิวที่สูงขึ้นถ้าคอยอยู่นานเกินไป

ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue Scheduling

ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue ระบบมี 3 คิว: - Q 0 – time quantum 8 milliseconds - Q 1 – time quantum 16 milliseconds - Q 2 – FCFS การจัดลำดับการทำงาน เมื่อเกิดงานใหม่ขึ้นเข้าไปอยู่ในคิว q0 เมื่อสามารถเข้าใช้งานหน่วยประมวลผล งานนั้นจะได้รับเวลาในการทำงาน 8 มิลลิวินาที หากงานนั้นไม่สามารถดำเนินการให้เสร็จสิ้นภายในระยะเวลา 8 มิลลิวินาที งานนั้นจะถูกเคลื่อนย้ายไปยัง q1

ตัวอย่างของการจัดตารางการทำงานของคิวผลตอบกลับหลายระดับ Example of Multilevel Feedback Queue Scheduling ใน q1 งานนั้นจะได้รับเวลาในการทำงานเพิ่มขึ้นเป็น 16 มิลลิวินาที หากยังคงไม่สามารถดำเนินการให้เสร็จสิ้นอีก ก็จะถูกทำการเพิ่มระดับและเคลื่อนย้ายเข้าสู่ คิว q2 ต่อไป ใน q2 กระบวนการจะได้ทำงานก็ต่อเมื่อ q0 และ q1 ว่าง

Thread Scheduling Distinction between user-level and kernel-level threads When threads supported, threads scheduled, not processes Many-to-one and many-to-many models, thread library schedules user-level threads to run on LWP Known as process-contention scope (PCS) since scheduling competition is within the process Typically done via priority set by programmer Kernel thread scheduled onto available CPU is system-contention scope (SCS) – competition among all threads in system

Pthread Scheduling API allows specifying either PCS or SCS during thread creation PTHREAD_SCOPE_PROCESS schedules threads using PCS scheduling PTHREAD_SCOPE_SYSTEM schedules threads using SCS scheduling Can be limited by OS – Linux and Mac OS X only allow PTHREAD_SCOPE_SYSTEM

การจัดตารางการทำงานแบบหน่วยประมวลผลหลายหน่วย Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing Symmetric multiprocessing (SMP) – each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes Currently, most common

Multiple-Processor Scheduling – Load Balancing If SMP, need to keep all CPUs loaded for efficiency Load balancing attempts to keep workload evenly distributed Push migration – periodic task checks load on each processor, and if found pushes task from overloaded CPU to other CPUs Pull migration – idle processors pulls waiting task from busy processor

Multicore Processors Recent trend to place multiple processor cores on same physical chip Faster and consumes less power Multiple threads per core also growing Takes advantage of memory stall to make progress on another thread while memory retrieve happens

Multithreaded Multicore System

Real-Time CPU Scheduling Can present obvious challenges Soft real-time systems – no guarantee as to when critical real-time process will be scheduled Hard real-time systems – task must be serviced by its deadline Two types of latencies affect performance Interrupt latency – time from arrival of interrupt to start of routine that services interrupt Dispatch latency – time for schedule to take current process off CPU and switch to another

Priority-based Scheduling For real-time scheduling, scheduler must support preemptive, priority-based scheduling But only guarantees soft real-time For hard real-time must also provide ability to meet deadlines Processes have new characteristics: periodic ones require CPU at constant intervals Has processing time t, deadline d, period p 0 ≤ t ≤ d ≤ p Rate of periodic task is 1/p

Windows Scheduling Windows uses priority-based preemptive scheduling Highest-priority thread runs next Dispatcher is scheduler Thread runs until (1) blocks, (2) uses time slice, (3) preempted by higher-priority thread Real-time threads can preempt non-real-time 32-level priority scheme Variable class is 1-15, real-time class is 16-31 Priority 0 is memory-management thread Queue for each priority If no run-able thread, runs idle thread

Windows Priority Classes Win32 API identifies several priority classes to which a process can belong REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS,NORMAL_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS All are variable except REALTIME A thread within a given priority class has a relative priority TIME_CRITICAL, HIGHEST, ABOVE_NORMAL, NORMAL, BELOW_NORMAL, LOWEST, IDLE Priority class and relative priority combine to give numeric priority Base priority is NORMAL within the class If quantum expires, priority lowered, but never below base

Windows Priority Classes (Cont.) If wait occurs, priority boosted depending on what was waited for Foreground window given 3x priority boost Windows 7 added user-mode scheduling (UMS) Applications create and manage threads independent of kernel For large number of threads, much more efficient UMS schedulers come from programming language libraries like C++ Concurrent Runtime (ConcRT) framework

Windows Priorities

การประเมินวิธีการ (Algorithm Evaluation) ต้องคำนึงถึงรื่องของการกำหนดคุณสมบัติสำหรับการเปรียบเทียบในกระบวนการคัดเลือก อรรถประโยชน์ของซีพียู (CPU utilization) เวลาตอบสนอง (Response time) ผลสัมฤทธิ์ (Throughput) กำหนดหลักเกณฑ์ในการพิจารณาดังนี้ การกำหนดโมเดล (Deterministic Modeling) โมเดลการจัดคิว วิธีการจำลองระบบ (Simulations) วิธีการสร้างขึ้นจริง

การกำหนดโมเดล (Deterministic Modeling) วิธีการคัดเลือกนี้เรียกว่า Analytic Evaluation ซึ่งจะนำเอาอัลกอริทึมชนิดต่าง ๆ และลักษณะของงานมาสร้างสูตร เพื่อใช้ในการคำนวณหาตัวเลขของประสิทธิภาพที่สามารถวัดและเปรียบเทียบได้

การกำหนดโมเดล (Deterministic Modeling) For each algorithm, calculate minimum average waiting time Simple and fast, but requires exact numbers for input, applies only to those inputs FCS is 28ms: Non-preemptive SFJ is 13ms: RR is 23ms:

โมเดลการจัดคิว ลักษณะงานที่เข้ามาในระบบคอมพิวเตอร์มีลักษณะไม่แน่นอน อาจจะไม่ซ้ำกันเลย แต่เราสามารถทำนายหรือกำหนดการกระจายเวลาของซีพียู และการกระจายการใช้อินพุต/เอาต์พุตได้ ระบบคอมพิวเตอร์อาจมองเป็นระบบเน็ตเวิร์คที่สถานีงานที่มีคิวเป็นของตนเอง ทั้งซีพียูหรืออุปกรณ์ต่าง ๆ ถ้าเราทราบเวลาในการให้บริการและจำนวนงานที่เข้ามาในสถานีงาน เราก็สามารถคำนวณหาสิ่งที่ต้องการได้ การวิเคราะห์แบบนี้เรียกว่า การวิเคราะห์การจัดคิวแบบเน็ตเวิร์ค (Queuing-network analysis)

โมเดลการจัดคิว Little’s formula (n=*w) มีประโยชน์เนื่องจากสามารถใช้ได้เมื่อทราบค่าเฉลี่ยการกระจายเวลา n = ขนาดแถวคอย  = อัตราเฉลี่ยของกระบวนการที่เข้ามา w = เวลาคอยเฉลี่ยในแถวคอย สามารถเปรียบเทียบค่าของการคอยแต่ละอัลกอริทึม ปัญหาก็คือยังไม่สามารถคำนวณกับทุกอัลกอริทึมได้ ถ้าใช้อัลกอริทึมที่ซับซ้อนมาก ๆ การคำนวณค่าเฉลี่ยทำได้ยาก เนื่องจากการตั้งสูตรทำได้ยาก การคำนวณค่าเฉลี่ยจึงทำไว้แบบง่าย ๆ การคำนวณอาจไม่เที่ยงตรง

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

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

Evaluation of CPU Schedulers by Simulation

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

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