ความแตกต่างที่สำคัญ – การจัดกำหนดการแบบยึดไว้ก่อนเทียบกับแบบไม่จองเวลาในระบบปฏิบัติการ
กระบวนการคือโปรแกรมที่กำลังดำเนินการ คอมพิวเตอร์ควรทำงานหลายอย่างพร้อมกัน ดังนั้น CPU ควรรับกระบวนการและดำเนินการ บางครั้งจำเป็นต้องดำเนินการบางกระบวนการมากกว่ากระบวนการอื่น ณ จุดนั้น กระบวนการที่ทำงานอยู่จะถูกขัดจังหวะ และ CPU จะถูกจัดสรรให้กับกระบวนการใหม่ หลังจากงานเสร็จสิ้น CPU จะถูกจัดสรรกลับไปที่กระบวนการก่อนหน้า การจัดกำหนดการตามกลไกนี้เรียกว่าการตั้งเวลาแบบยึดเอาเสียก่อน หากกระบวนการที่ทำงานอยู่ไม่สามารถถูกขัดจังหวะได้และจำเป็นต้องดำเนินการตามกระบวนการที่ทำงานอยู่ กระบวนการนั้นเรียกว่าการตั้งเวลาแบบไม่ต้องพักล่วงหน้าบทความนี้กล่าวถึงความแตกต่างระหว่างการจัดกำหนดการแบบยึดเอาเสียก่อนและแบบไม่ยึดเอาเสียก่อนในระบบปฏิบัติการ การจัดกำหนดการยึดหน่วงคือกลไกการจัดกำหนดการกระบวนการซึ่งกระบวนการสามารถขัดจังหวะโดยกระบวนการอื่นในระหว่างการดำเนินการ nonpreemptive scheduling คือกลไกการตั้งเวลากระบวนการซึ่งกระบวนการหนึ่งเริ่มดำเนินการหลังจากกระบวนการก่อนหน้านี้สิ้นสุดลงเท่านั้น นั่นคือข้อแตกต่างที่สำคัญระหว่าง Preemptive และ Nonpreemptive Scheduling ใน OS
การตั้งเวลาล่วงหน้าในระบบปฏิบัติการคืออะไร
Round Robin Scheduling เป็นตัวอย่างของการตั้งเวลาแบบเอารัดเอาเปรียบ แต่ละกระบวนการจะได้รับเวลา CPU เล็กน้อย โดยปกติคือ 10 ถึง 100 มิลลิวินาที หน่วยข้อมูลขนาดเล็กนี้เรียกอีกอย่างว่าควอนตัมเวลา หลังจากเวลานี้ผ่านไป กระบวนการจะถูกจองไว้ก่อนและเพิ่มไปยังจุดสิ้นสุดของคิวที่พร้อมใช้งาน สมมติว่ามี 4 กระบวนการคือ P1, P2, P3 และ P4 CPU ระเบิดครั้งในหน่วยมิลลิวินาทีมีดังนี้ ควอนตัมเวลาคือ 20
รูปที่ 01: ตัวอย่าง Round Robin Scheduling
กระบวนการ P1 ดำเนินการจนถึง 20 น. เหลือเวลาอีก 33 ms จากนั้น P2 จะดำเนินการ เนื่องจากเวลาควอนตัมคือ 20 และเวลาที่กำหนด P2 คือ 17 มิลลิวินาที P2 จะดำเนินการเป็นเวลา 17 มิลลิวินาที ดังนั้น กระบวนการ P2 จึงเสร็จสิ้น จากนั้นให้โอกาสแก่ P3 มันจะดำเนินการเป็นเวลา 20ms ส่วนที่เหลือคือ 48ms จากนั้น P4 จะทำงานเป็นเวลา 20 มิลลิวินาที มี 4ms เพื่อให้กระบวนการทั้งหมดเสร็จสมบูรณ์ อีกครั้ง P1 จะดำเนินการเป็นเวลา 20 มิลลิวินาที มีเวลาอีก 13ms ในการดำเนินการให้เสร็จสิ้นการเปลี่ยนแปลงนี้มอบให้กับ P3 มันจะดำเนินการเป็นเวลา 20ms และอีก 28ms จะเสร็จสิ้นอย่างสมบูรณ์ P4 ดำเนินการ มีเพียง 4ms เท่านั้น ดังนั้น P4 จึงเสร็จสิ้นการดำเนินการ P2 และ P4 ได้เสร็จสิ้นแล้ว กระบวนการที่เหลือคือ P1 และ P3 มีโอกาสได้รับ P3 มีเวลา 13 มิลลิวินาทีในการทำให้เสร็จ ดังนั้นจึงเสร็จสมบูรณ์ ตอนนี้เหลือกระบวนการเดียวคือ P3 มี 28ms ให้เสร็จสมบูรณ์ ดังนั้น P3 จะทำงานเป็นเวลา 20ms ส่วนที่เหลือคือ 8ms กระบวนการอื่นๆ ทั้งหมดได้ดำเนินการเสร็จสิ้นแล้ว ดังนั้น 8ms ที่เหลือของ P3 จะทำงานอีกครั้ง ในทำนองเดียวกัน แต่ละกระบวนการมีโอกาสที่จะดำเนินการ
การตั้งเวลาแบบไม่จองใน OS คืออะไร
การกำหนดเวลามาก่อนได้ก่อน (FCFS) สามารถใช้เป็นตัวอย่างของการตั้งเวลาแบบไม่จองได้ กระบวนการที่ร้องขอก่อนจะถูกจัดสรรให้กับ CPU ก่อน การจัดกำหนดการนี้จัดการได้ง่ายโดยคิวเข้าก่อนออกก่อน (FIFO) หากมีกระบวนการตามลำดับเช่น P1, P2 และ P3 โอกาสนั้นจะถูกมอบให้ P1 ก่อน หลังจากเสร็จสิ้น P2 จะดำเนินการเมื่อ P2 เสร็จสิ้น P3 จะดำเนินการ สมมติว่ามี 3 กระบวนการคือ P1, P2 และ P3 ที่มี CPU burst ครั้งในหน่วยมิลลิวินาทีดังนี้
รูปที่ 02: ตัวอย่าง FCFS Scheduling
ตามที่กล่าวข้างต้น P1 จะดำเนินการ เมื่อเสร็จสิ้น กระบวนการ P2 จะถูกดำเนินการเป็นเวลา 3 มิลลิวินาที ตอนนี้กระบวนการที่เหลือคือ P3 จากนั้นจะดำเนินการ เวลารอสำหรับ P1 เป็นศูนย์ กระบวนการ P2 ต้องรอ 24 มิลลิวินาที และกระบวนการ P3 ต้องรอ 27 มิลลิวินาที หากกระบวนการมาถึงในลำดับ P2, P3 และ P1 แล้ว P2 จะเสร็จสิ้นก่อนP3 ถัดไปจะเสร็จสมบูรณ์ และสุดท้าย P1 จะเสร็จสมบูรณ์
ความคล้ายคลึงกันระหว่างการตั้งเวลาแบบ Preemptive และ Nonpreemptive ในระบบปฏิบัติการคืออะไร
ทั้ง Preemptive และ Nonpreemptive Scheduling ใน OS เป็นกลไกในการกำหนดเวลากระบวนการในคอมพิวเตอร์
ความแตกต่างระหว่าง Preemptive และ Nonpreemptive Scheduling ใน OS คืออะไร
การตั้งเวลาแบบ Preemptive vs Nonpreemtive ในระบบปฏิบัติการ |
|
การตั้งเวลายึดไว้ก่อนเป็นกลไกการจัดกำหนดการกระบวนการซึ่งกระบวนการสามารถขัดจังหวะโดยกระบวนการอื่นในระหว่างการดำเนินการได้ | การตั้งเวลาแบบ nonpreemptive คือกลไกการตั้งเวลากระบวนการซึ่งกระบวนการหนึ่งเริ่มดำเนินการหลังจากกระบวนการก่อนหน้าสิ้นสุดลงเท่านั้น |
กระบวนการหยุดชะงัก | |
ในการจัดกำหนดการชั่วคราว กระบวนการสามารถถูกขัดจังหวะได้ | ในการจัดกำหนดการแบบไม่จองเวลา กระบวนการสามารถถูกขัดจังหวะได้ |
การใช้ CPU | |
ในการตั้งเวลาไว้ล่วงหน้า การใช้งาน CPU จะสูงกว่าการตั้งเวลาแบบไม่ยึดเอาเสียก่อน | ในการตั้งเวลาแบบไม่ยึดเอาเสียก่อน การใช้งาน CPU นั้นน้อยที่สุดเมื่อเทียบกับการตั้งเวลาแบบยึดไว้ก่อน |
ความยืดหยุ่น | |
การตั้งเวลาล่วงหน้ามีความยืดหยุ่น | การตั้งเวลาแบบไม่จองไม่ยืดหยุ่น |
Summary – Preemptive vs Nonpreemptive Scheduling ในระบบปฏิบัติการ
มีหลายกระบวนการที่ทำงานบนคอมพิวเตอร์ เมื่อแต่ละกระบวนการดำเนินการ CPU จะถูกจัดสรรให้กับกระบวนการเฉพาะนั้นบางครั้ง จำเป็นต้องหยุดการดำเนินการของกระบวนการปัจจุบันและให้ความสำคัญกับกระบวนการอื่น กลไกการจัดตารางเวลาของกระบวนการสามารถเป็นแบบยึดเอาเสียก่อนหรือไม่ยึดเอาเสียก่อน การจัดกำหนดการยึดหน่วงคือกลไกการจัดกำหนดการกระบวนการซึ่งกระบวนการสามารถขัดจังหวะโดยกระบวนการอื่นในระหว่างการดำเนินการ nonpreemptive scheduling คือกลไกการตั้งเวลากระบวนการ แม้ว่ากระบวนการใดจะเริ่มดำเนินการหลังจากกระบวนการก่อนหน้านี้สิ้นสุดลงเท่านั้น นี่คือข้อแตกต่างระหว่าง Preemptive และ Nonpreemptive Scheduling ใน OS
ดาวน์โหลดไฟล์ PDF ของ Preemptive vs Nonpreemptive Scheduling ใน OS
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดเวอร์ชัน PDF ที่นี่: ความแตกต่างระหว่าง Preemptive และ Nonpreemptive Scheduling ใน OS