บทที่ 3 การจัดเวลาซีพียู CPU Scheduling.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 5 การดำรงชีวิตของพืช
Advertisements

ประกาศกรมสวัสดิการและคุ้มครองแรงงาน เรื่อง หลักเกณฑ์และวิธีการเลือกตั้งคณะกรรมการสวัสดิการในสถานประกอบกิจการ ประกาศราชกิจจานุเบกษา วันที่ 22 พฤษภาคม.
เฉลย (เฉพาะข้อแสดงวิธีทำ)
Chapter 2 Process Pisit Nakjai.
เรื่อง แนวทางการเลือกซื้อคอมพิวเตอร์
การพัฒนาระบบทะเบียน ของ โรงเรียนเมโทรเทคโนโลยี จังหวัดเชียงใหม่
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
เป็นหลักสำคัญในการนำเสนอเนื้อหา ของบทเรียนคอมพิวเตอร์ช่วยสอนก็คือ ควร นำเสนอภาพที่เกี่ยวข้องกับเนื้อหา ประกอบ กับคำอธิบายสั้นๆ ง่ายๆ แต่ได้ใจความ การใช้ภาพประกอบจะทำให้ผู้เรียน.
เครือข่ายคอมพิวเตอร์
วัตถุประสงค์ 1. แสดงรายการของโปรแกรม ที่และสถานการทำงานของ โปรแกรม 2. แสดงรายการบริการที่มี บน ระบบปฏิบัติการ 3. แสดงกราฟการใช้ ตัว ประมวลผล 4. แสดงกราฟการทำงานการ.
กระบวนการของการอธิบาย
ซอฟต์แวร์และการเลือกใช้
การรักษาความปลอดภัยข้อมูลขั้นพื้นฐาน
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
1. รู้ถึงความต้องการของตัวเอง ก่อนก่อนเริ่มต้นออกแบบ เมื่อคุณเริ่มคิดจะออกแบบโบรชัวร์ออกมาอย่างไร ให้เริ่มต้น สอบถามลูกค้าของคุณก่อนว่าทำไม เค้าต้องการโบร์ชัวร์
การกำจัดขยะ โดยใช้หลัก 3R. มารู้จักหลัก 3R กัน Reduce Reuse Recycle.
Project Management by Gantt Chart & PERT Diagram
๕ เรื่องเด่นในร่างรัฐธรรมนูญ
บทที่ 3 องค์ประกอบของการสัมมนา
ระบบตัวแทนจำหน่าย/ ตัวแทนขายอิสระ
Material requirements planning (MRP) systems
การกำจัดขยะ โดยใช้หลัก 3R. มารู้จักหลัก 3R กัน Reduce Reuse Recycle.
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การประยุกต์ Logic Gates ภาค 2
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การบริหารโครงการ Project Management
ACCOUNTING FOR INVENTORY
แนวทางการออกแบบโปสเตอร์
Multistage Cluster Sampling
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : สื่อกลางส่งข้อมูลและการมัลติเพล็กซ์ (Transmission Media and Multiplexing) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
การบัญชีต้นทุนช่วง (Process Costing).
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
Vernier เวอร์เนียร์ คือเครื่องมือที่ใช้วัดระยะ (distance) หรือ ความยาว (length) ให้ได้ค่าอย่างละเอียด เวอร์เนียร์ต่างจากไม้บรรทัดทั่วๆไป เพราะมี 2 สเกล.
กลุ่มคำและประโยค ภาษาไทย ม. ๓
บทที่ 1 ระบบสารสนเทศ (Information System)
บทที่ 8 การควบคุมโครงการ
วิธีการกรอกแบบเสนอโครงการในไฟล์ Power point นี้
บัตรยิ้ม สร้างเสริมกำลังใจ
การรายงานความคืบหน้าหรือสถานะ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การบริหารโครงการซอฟต์แวร์
บริษัท พัฒนาวิชาการ (2535) จำกัด
SMS News Distribute Service
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
ตัวอย่างการจัดทำรายงานการผลิต และงบการเงิน
BASIC STATISTICS MEAN / MODE / MEDIAN / SD / CV.
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
มะเร็งปากมดลูก โดย นางจุฑารัตน์ กองธรรม พยาบาลวิชาชีพ รพ.สต.บ้านโนนแต้
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
บทที่ 6 เงินลงทุนในตราสารหนี้และตราสารทุน
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
หัวใจหยุดเต้น หยุดหายใจ ปั๊มหัวใจ ทำอย่างไร ?
ความช้าเร็ว ที่เกิดของวิปัสสนา
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
การวางแผนกำลังการผลิต
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
หน้าที่ของ - ไนโตรเจน (เอ็น) - ฟอสฟอรัส (พี) - โพแทสเซียม (เค)
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ปรากฏการณ์ดอปเพลอร์ของเสียง Doppler Effect of Sound
ใบสำเนางานนำเสนอ:

บทที่ 3 การจัดเวลาซีพียู CPU Scheduling

เนื้อหา การจัดเวลาซีพียู การจัดคิวในระยะสั้น การจัดคิวในระยะยาว ระบบหลายโปรเซสเซอร์ การทำงานของระบบหลายโปรเซสเซอร์

การจัดเวลาซีพียู (CPU Scheduling) การจัดเวลา CPU เป็นหลักการทำงานหนึ่งของ OS ที่ทำให้คอมพิวเตอร์มีความสามารถในการรันโปรแกรมได้หลาย ๆ โปรแกรมในเวลาเดียวกัน เหตุการณ์ที่ซีพียูเปลี่ยนจากการทำงานหนึ่งไปยังอีกงานหนึ่งเรียกว่า การเปลี่ยนสถานะ (context switching)

การจัดเวลาซีพียู (CPU Scheduling)… ต่อ เป้าหมาย ใช้งานซีพียูได้อย่างเต็มประสิทธิภาพ สิ่งที่ต้องคำนึง ในระบบโปรเซสเซอร์เดียวซีพียูจะทำงานได้ครั้งละ 1 งาน ถ้ามีหลาย ๆ งานจะต้องเกิดการรอ

การจัดเวลาซีพียู (CPU Scheduling) … ต่อ ระบบโปรแกรมเดียว ไม่ซับซ้อน ทำงานทีละโปรแกรมจนเสร็จกระบวนการ ทำงานตัวเองจนเสร็จ หรือจนกระทั่งมีการรออะไรบางอย่าง เช่น I/O การรอนี้ทำให้ซีพียูเกิดการว่างงาน อยู่เฉย (idle) ระบบหลายโปรแกรม เสมือนกับหลายโปรแกรมดำเนินไปพร้อมกัน จะไม่ยอมให้ซีพียูเกิดการรอ โปรเซสใดมีการรอการใช้ อุปกรณ์ I/O จะมีการนำออกไปจากซีพียู และนำโปรเซสใหม่เข้าไปใช้งานซีพียูแทน

ข้อพิจารณาในการจัดเวลา การใช้สอยซีพียู (CPU Utilization) ทรูพุต (Throughput) เวลาทั้งหมด (Turnaround Time) เวลารอคอย (Waiting Time) เวลาตอบสนอง (Response Time)

ข้อพิจารณาในการจัดเวลา การใช้สอยซีพียู(CPU Utilization) : การใช้ประโยชน์จากซีพียูอย่างสูงสุด โดยทำให้ซีพียูมีงานทำมากที่สุดเท่าที่จะทำได้ ซีพียูควรจะถูกใช้อยู่ระหว่าง 40-90 %

ข้อพิจารณาในการจัดเวลา ทรูพุต (Throughput) จำนวนงานที่เสร็จต่อหน่วยเวลา

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

ข้อพิจารณาในการจัดเวลา เวลารอคอย (Waiting Time) : ช่วงเวลาที่งานใดงานหนึ่งต้องรอการทำงานของตัวจัดเวลา โดยไม่รวมเวลาของการใช้ซีพียู และเวลาของการติดต่ออินพุต/เอาต์พุต ส่วนใหญ่ก็คือเวลาที่งานต้องคอยอยู่ในคิว (Ready Queue)

ข้อพิจารณาในการจัดเวลา เวลาตอบสนอง (Response Time) คือเวลาที่วัดระหว่างเวลาที่มีการร้องขอการกระทำใด ๆ ต่อระบบแล้วมีการตอบรับกลับออกมา (ความเร็วของเวลาตอบสนองจึงมักจะขึ้นอยู่กับอุปกรณ์อินพุต/เอาต์พุต)

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

การจัดคิวระยะสั้น (Short-term scheduling) … ต่อ การจัดคิวระยะสั้นมีดังนี้ การจัดคิวแบบ FCFS การจัดคิวแบบ RR การจัดคิวแบบลำดับความสำคัญ การจัดคิวแบบ SJN การจัดคิวแบบ SRT การจัดคิวแบบหลายระดับ

การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS) … ต่อ เป็นวิธีการที่ง่ายที่สุด โปรเซสใดเข้ามารอในคิวก่อนจะมีสิทธิครอบครอง CPU ก่อน โปรเซสที่ได้ครอบครอง CPU จะทำงานไปจนเสร็จ ไม่มีระยะเวลาควอนตัม ถ้าโปรเซสมีการเรียกใช้งานอุปกรณ์อินพุต/เอาท์พุต หรือรอเหตุการณ์บางอย่าง โปรเซสนั้นต้องปลดปล่อยซีพียู และออกจากสถานะรันไปอยู่ในสถานะบล็อค เมื่อการเรียกใช้อุปกรณ์อินพุต/เอาท์พุตเสร็จสิ้นลง หรือเกิดเหตุการณ์ที่กำลังรออยู่ โปรเซสนั้นจะกลับไปอยู่ต่อท้ายคิวของสถานะพร้อม

การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS) … ต่อ ข้อดีคือการจัดคิวทำได้ง่ายไม่ยุ่งยากซับซ้อน ตัวอย่างการจัดคิวเมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 0+15=15 B 2 15+1=16 C 3 10 16 16+10=26

การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C แต่การใช้หลักการของการจัดลำดับความสำคัญ จะจัดคิวออกมาในลักษณะดังนี้ A (15) B(1) C(10) 26 15 16 โปรเซส A ต้องรอเวลาในการประมวลผล = 0 วินาที โปรเซส B ต้องรอเวลาในการประมวลผล = 15 วินาที โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที เวลาเฉลี่ยในการรอ = (0+15+16)/3 =10.33 วินาที

การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS) … ต่อ จากตัวอย่างจะพบว่าการจัดคิวแบบ FCFS เป็นผลเสียอย่างมากกับโปรเซส B คือ โปรเซส B ต้องการเวลาในการทำงานเพียง 1 วินาที แต่ต้องรอให้โปรเซส A ซึ่งเข้ามาก่อนทำงานเสร็จ เวลาเฉลี่ยในการรอ = (15+16)/3 = 10.33 วินาที ทำให้การทำงานของโปรเซส B นั้นใช้เวลา 16 วินาทีจึงจะเสร็จสิ้น เทียบเวลาในการทำงานคือ 1/16*100 = 6 % สำหรับเวลาในการรอคือ 100-6 = 94 % ซึ่งจะเห็นว่าโปรเซส B ต้องเสียเวลารอนานมาก

การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) จากปัญหาของการจัดคิวแบบมาก่อนได้ก่อน จึงทำให้เกิดแนวคิดที่จะคัดเลือกโปรเซสที่ต้องการเวลาในการทำงานน้อยที่สุดเข้ามาใช้ CPU ก่อนเพื่อทำให้ โปรเซสที่ต้องการเวลาในการทำงานน้อยจบออกไปได้เร็วขึ้น และจำนวนโปรเซสที่รออยู่ในคิวก็จะมีจำนวนลดลง แต่ถ้ามีโปรเซสหลายตัวที่มีความต้องการเวลาในการทำงานเท่ากัน ก็จะใช้หลักการแบบมาก่อนได้ก่อนมาใช้ในการคัดเลือก

การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D โปรเซส ระยะเวลาความต้องการ CPU (วินาที) A B C D 6 8 7 3

การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C,D แต่การใช้หลักการของ SJF จะจัดคิวออกมาในลักษณะดังนี้ 0 3 9 16 24 D(3) A(6) C(7) B(8) เวลาเฉลียในการรอ 0+3+9+16 =28/4=7 เวลาเฉลี่ยในการทำงานเสร็จ 3+9+16+24=52/4=13

การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF) … ต่อ จากการทดลองพบว่า SJF จะให้ค่าเฉลี่ยของการคอยได้ต่ำที่สุด เพราะมีการเลื่อนโปรเซสที่มีเวลาใช้ CPU น้อยสุดมาไว้หน้าคิว ปัญหาสำหรับการจัดคิวแบบ SJF คือ ตัวจัดคิวระยะสั้นไม่ทราบว่าแต่ละโปรเซสต้องการใช้เวลาเท่าใด วิธีแก้คือ ให้แต่ละโปรเซสกำหนดเวลาที่ต้องการในการใช้ CPU มาด้วยให้ OS สร้างโปรเซสเพื่อคำนวณเวลาโดยประมาณของแต่ละโปรเซสที่ต้องการใช้ CPU

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) วิธีนี้จะมีการจัดลำดับความสำคัญให้กับแต่ละโปรเซสที่ต้องการใช้ CPU โปรเซสที่อยู่ ณ. ต้นคิวก็จะเป็นโปรเซสที่มีความ สำคัญมากที่สุด และลดลงเรื่อย ๆ โปรเซสที่อยู่ท้ายคิวคือโปรเซสที่มีความสำคัญต่ำสุด ถ้ามีโปรเซสใหม่เข้ามาในคิว ก็จะมีการแซงคิวได้ถ้าโปรเซสที่เข้ามาใหม่มีลำดับความสำคัญสูงกว่าโปรเซสที่กำลังบรรจุอยู่ในคิว

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D โปรเซส เวลาความต้องการ CPU (วินาที) A B C D 10 1 2 5 ลำดับความสำคัญ 3 4

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C,D แต่การใช้หลักการของการจัดลำดับความสำคัญ จะจัดคิวออกมาในลักษณะดังนี้ 0 5 6 16 18 โปรเซส B ต้องรอเวลาในการประมวลผล = 5 วินาที โปรเซส A ต้องรอเวลาในการประมวลผล = 6 วินาที โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที เวลาเฉลี่ยในการรอ = (0+5+6+16)/4 = 6.75 วินาที เวลาเฉลี่ยในการทำงานเสร็จ =(5+6+16+18)/4=11.25 D(5) B(1) A(10) C(2)

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ คำถาม ถ้าเป็นการจัดคิวแบบ FCFS เวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จเท่ากับเท่าใด ถ้าเป็นการจัดคิวแบบ SJFเวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จเท่ากับเท่าใด

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ คำตอบ เวลาเฉลี่ยในการรอและเวลาเฉลี่ยในการทำงานเสร็จในการทำงานและแบบ Priority เวลาเฉลี่ยในการรอ =6.75 เวลาเฉลี่ยในการทำงานเสร็จ =11.25 FCFS เวลาเฉลี่ยในการรอ =8.5 เวลาเฉลี่ยในการทำงานเสร็จ =13 SJF เวลาเฉลี่ยในการรอ =3 เวลาเฉลี่ยในการทำงานเสร็จ =7.5

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

การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue) … ต่อ วิธีการพิจารณากำหนดลำดับความสำคัญของโปรเซสต่าง ๆ อาจพิจารณาได้จากองค์ประกอบต่าง ๆ เช่น เจ้าของโปรเซส : โปรเซสที่มาจากผู้ใช้ทั่ว ๆ ไป จะมีลำดับความสำคัญต่ำกว่า โปรเซสที่มาจากผู้ควบคุมระบบ ประเภทของโปรเซส : โปรเซสของงานในระบบแบตซ์ (Batch mode) มักมีลำดับความสำคัญต่ำกว่าโปรเซสของงานแบบตอบโต้ (Interactive mode) ผู้ใช้ที่ยินยอมจ่ายเงินเพิ่ม ระยะเวลาที่โปรเซสเข้ามาอยู่ในระบบ

การจัดคิวแบบงานที่เหลือเวลาน้อยทำก่อน (Shortest-remaining-first : SRJ) วิธีการนี้จะคล้ายกับแบบ SJF แต่ SRJ จะนำเอาโปรเซสที่เหลือเวลาในการใช้ CPU น้อยที่สุดมาอยู่ที่ต้นคิวเพื่อเข้าไปใช้งาน CPU ก่อน วิธีการนี้จะทำให้ทั้งโปรเซสที่ต้องการเวลาในการใช้ CPU น้อย และโปรเซสที่ต้องการเวลาในการใช้ CPU มากแต่ใกล้จะจบสามารถออกจากระบบได้เร็วขึ้น วิธีการนี้นอกจากจะต้องทราบเวลาที่ต้องการใช้ CPU แล้วยังต้องมีการบันทึกเวลาที่โปรเซสทำงานไปแล้วด้วย

การจัดคิวแบบวนรอบ (Round-Robin : RR) ใช้กับระบบงานคอมพิวเตอร์แบบแบ่งเวลา โดยมีลักษณะการจัดคิวเป็นแบบ FCFS แต่ให้มีกรรมวิธีของการให้สิทธิในการครอบครอง CPU ของแต่ละโปรเซส คือ “แต่ละโปรเซสที่เข้ามาในระบบจะถูกจำกัดเวลาการเข้าไปใช้ CPU เท่า ๆ กัน ” ซึ่งเรียกช่วงเวลานี้ว่า เวลาควันตัม (Quantum Time) ตัวจัดเวลาระยะสั้นจะมีการให้ CPU กับโปรเซสที่อยู่ในคิวแบบวนรอบ โดยมีกฏเกณฑ์ว่า ถ้าโปรเซสใดไม่สามารถกระทำได้สำเร็จภายใน 1 ควันตัม โปรเซสจะต้องถูกนำกลับไปไว้ในคิวเช่นเดิม สถานภาพต่าง ๆ ของโปรเซสที่ยังทำไม่เสร็จจะถูกบันทึกไว้ เมื่อถึงโอกาสได้ครอบรอง CPU อีก ก็จะได้เริ่มต้นรันต่อจากครั้งที่แล้วโดยไม่ต้องเริ่มใหม่ทั้งหมด

การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ เริ่ม พร้อม รัน บล็อก สิ้นสุด

การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ ตัวอย่างการจัดคิวแบบ FCFS เมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU เวลาเฉลี่ยในการรอ = (15+16)/3 = 10.33 วินาที โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 0+15=15 B 2 1+15=16 C 3 10 16 10+16=26

การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ ตัวอย่างการจัดคิวแบบ RR เมื่อมี 3 โปรเซส (A,B,C) ต้องการใช้ CPU โดยมีเวลาควันตัมเป็น 1 วินาที เวลาเฉลี่ยในการรอ = (11+1+11)/3 = 7.67 วินาที โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) เวลาที่รอ อยู่ในคิว (วินาที) เวลาที่โปรเซส ทำงานเสร็จ (วินาที) A 1 15 11 15+11=26 B 2 1+1=2 C 3 10 10+11=21

การจัดคิวแบบวนรอบ (Round-Robin : RR) … ต่อ A B C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

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

การจัดคิวแบบวนรอบ (Round-Robin : RR) คำถาม เมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU แบบ RR ถ้าเวลาควันตัมเป็น 3 วินาที เวลาเฉลี่ยในการคอยเป็นเท่าใด เวลาควันตัมเป็น 6 วินาที เวลาเฉลี่ยในการคอยเป็นเท่าใด โปรเซส ลำดับการเข้าคิว เวลาที่ต้องการใช้ CPU (วินาที) A 1 15 B 2 C 3 10

ตัวอย่าง จงหาค่าเฉลี่ยทั้ง 3 วิธี คือ FCFS, SJF และ RR เวลาควอนตัม = 10 10 29 3 7 12 A B C D E เวลา โปรเซส

เฉลย FCFS เวลาในการรอ (0+10+39+42+49) / 5 = 28 0 10 39 42 49 61 A (3) B (29) C (3) D (7) E(12) FCFS เวลาในการรอ (0+10+39+42+49) / 5 = 28 เวลาเฉลี่ยในการทำงานเสร็จ (10+39+42+49+61) / 5 =40.2

เฉลย SJF เวลาในการรอ (0+3+10+20+32) / 5 = 13 C(3) D(7) A (10) E(12) B(29) 0 3 10 20 32 61 SJF เวลาในการรอ (0+3+10+20+32) / 5 = 13 เวลาเฉลี่ยในการทำงานเสร็จ (3+10+20+32+61)/5 =25.5

เฉลย RR เวลาในการรอ A=0 เวลาเฉลี่ยในการทำงานเสร็จ B=10+20+2=32 A (10) B(10) C(3) D (7) E (10) B (10) E (2) B(9) 0 10 20 23 30 40 50 52 61 RR เวลาในการรอ A=0 B=10+20+2=32 C=20 D=10+10+3 E=30+10 (0+32+20+23+40) / 5 = 23 เวลาเฉลี่ยในการทำงานเสร็จ A=0+10=10 B=32+29=61 C=20+3=23 D=23+7=30 E=40+12=52 10+61+23+30+52=35.2

การจัดคิวแบบหลายระดับ การจัดคิวดังที่กล่าวมาแล้วทั้งสิ้นเป็นการจัดคิวภายในคิวเพียง 1 คิว เรียกว่าการจัดคิวแบบ 1 ระดับดังรูป เพื่อให้การจัดคิวเป็นไปอย่างมีประสิทธิภาพมากขึ้น เราจึงจัดให้มีคิวหลาย ๆ คิวแทนที่จะมีเพียงคิวเดียว เรียกว่าเป็นการจัดคิวแบบหลายระดับ CPU A B C

การจัดคิวแบบหลายระดับ … ต่อ การจัดคิวแบบหลายระดับนั้น แต่ละคิวไม่จำเป็นเป็นต้องเป็นประเภทเดียวกัน การคัดเลือกโปรเซสนั้นจะคัดเลือกจากคิวที่ 1 ก่อนจนกระทั่งโปรเซสภายในคิวที่ 1 ทำงานเสร็จทั้งหมด แล้วจึงคัดเลือกโปรเซสในคิวลำดับถัดไป โปรเซสที่มีความสำคัญมาก มักจะอยู่ในคิวระดับแรก โปรเซสที่มีลำดับความสำคัญน้อยลงไปก็จะอยู่ในคิวระดับหลัง โปรเซสประเภทเดียวกันมักอยู่ในคิวระดับเดียวกัน

การจัดคิวแบบหลายระดับ … ต่อ CPU An Bn Cn คิวที่ n RR Queue A2 B2 C2 คิวที่ 2 FCFS Queue A1 B1 C1 คิวที่ 1 Priority Queue

การจัดคิวแบบหลายระดับ … ต่อ System processes queue Interactive processes queue Interactive processes queue Batch 14 processes queue Student processes queue

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

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

ระบบหลายโปรเซสเซอร์ (Multi-processor System) หมายถึงระบบที่มี CPU หลายตัวช่วยกันทำงาน ดังนั้นโปรเซสเซอร์ในที่นี้หมายถึง CPU นั่นเอง การจัดระบบคอมพิวเตอร์ตามการทำงานของโปรเซสเซอร์ เราสามารถแบ่งได้ 4 ประเภทดังนี้ คำสั่งเดี่ยวและข้อมูลเดี่ยว ( Single Instruction Single Data : SISD ) คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) หลายชุดคำสั่งและข้อมูลเดี่ยว ( Multiple Instruction Single Data : MISD ) หลายชุดคำสั่งและหลายชุดข้อมูล ( Multiple Instruction Multiple Data : MIMD )

คำสั่งเดี่ยวและข้อมูลเดี่ยว ( Single Instruction Single Data : SISD ) ระบบคอมพิวเตอร์ประเภทนี้มีโปรเซสเซอร์อยู่เพียงตัวเดียว การทำงานของโปรเซสเซอร์ในระบบนี้จะทำงานได้ทีละ 1 คำสั่งและรับข้อมูลได้ 1 ชุด P (Processor) แทนโปรเซสเซอร์ I (Instruction) แทนคำสั่ง D (Data) แทนข้อมูล และ O (Output) แทนผลลัพธ์ P D I O

คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน หรือที่เรียกว่าทำงานขนานกัน (parallel processing) โปรเซสเซอร์ทุกตัวทำคำสั่งเดียวกันหมด แต่มีข้อมูลเป็นของตนเอง ดังนั้นผลลัพธ์ที่ได้จึงมีหลายชุด

คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD) … ต่อ Pn D1 D2 D3 Dn O1 O2 O3 On

คำสั่งเดี่ยวและหลายชุดข้อมูล ( Single Instruction Multiple Data : SIMD ) … ต่อ เช่น X1 X2 X3 X4 X5 Y1 Y2 Y3 Y4 Y5 + X1+Y1 x2+Y2 x3+Y3 x4+Y4 x5+Y5 =

หลายชุดคำสั่งและข้อมูลเดี่ยว (Multiple Instruction Single Data : MISD ) การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน หรือที่เรียกว่าทำงานขนานกัน (parallel processing) โดยโปรเซสเซอร์ทุกตัวจะมีคำสั่งของตนเอง แต่ทุกตัวจะใช้ข้อมูลชุดเดียวกัน P1 D O1 P2 O2 P3 I1 O3 Pn On I2 I3 In

หลายชุดคำสั่งและข้อมูลเดี่ยว (Multiple Instruction Single Data : MISD) … ต่อ เมื่อโปรเซสเซอร์ตัวแรกทำงานเสร็จ ผลลัพธ์ที่ได้จะเป็นข้อมูลของโปรเซสเซอร์ตัวต่อไป เช่นถ้าในระบบ MISD หาค่าจากสมการนี้ y = 2*X2+4 โดยที่ x มีค่าระหว่าง 1 ถึง 5 จากตัวอย่างพบว่ามี 3 คำสั่ง หาค่า X ยกกำลัง 2 คูณผลลัพธ์จากข้อแรก ด้วย 2 เพิ่มค่าผลลัพธ์ที่ได้จากข้อ 2 ด้วย 4

หลายชุดคำสั่งและหลายชุดข้อมูล (Multiple Instruction Multiple Data : MIMD ) การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกันและโปรเซสเซอร์แต่ละตัวจะมีคำสั่งและข้อมูลเป็นของตนเอง ดังนั้นในการทำงานแต่ละโปรเซสเซอร์จะเป็นอิสระจากกัน ตัวอย่างระบบคอมพิวเตอร์ประเภท MIMD ที่เห็นได้ชัดเจนคือระบบเครือข่ายคอมพิวเตอร์ (Computer Network)

หลายชุดคำสั่งและหลายชุดข้อมูล (Multiple Instruction Multiple Data : MIMD) … ต่อ Pn D1 D2 D3 Dn O1 O2 O3 On

Question & Answer

การบ้าน ชุด 1 จงหาค่าเฉลี่ยในการรอและและทำงานเสร็จทั้ง 3 วิธี คือ FCFS, ตามลำดับความสำคัญ, SJF และ RR เวลาควอนตัม = 2 process เวลาใช้ CPU ลำดับความสำคัญ R 2 3 W 7 5 X 18 1 Y 14 Z 10 4

เวลาเฉลี่ยในการทำงานเสร็จ = 33.2 เฉลยคำตอบแบบ RR เวลาเฉลี่ยในการรอ = 23 เวลาเฉลี่ยในการทำงานเสร็จ = 33.2

การบ้าน ชุด 2 1.จงอธิบายข้อดีของรูปแบบการทำงานแบบ SJF 2. จงอธิบายข้อดีข้อเสียของรูปแบบการทำงานแบบ RR 3. จงอธิบายข้อเสียของรูปแบบการทำงานแบบลำดับความสำคัญ 4. การจัดคิวรูปแบบใดมีการใช้เวลาควันตัม 5. Short-term Scheduler ทำหน้าที่อย่างไร 6. ตัวจัดคิวระยะสั้นกับระยะยาวแตกต่างกันอย่างไร 7. การบวกเมตริกซ์ ใช้รูปแบบ processor แบบใด 8. ลักษณะการจัดคิวแบบใดมีค่าเฉลี่ยในการรอน้อยที่สุด 9. ระยะเวลาที่โปรเซสทำงานเสร็จมีหลักการคำนวณอย่างไร 10. ตัวส่ง Dispatcher ทำหน้าที่อย่างไร