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

การจัดกำหนดการล่วงหน้าคืออะไร?
การจัดกำหนดการล่วงหน้าเป็นวิธีการจัดกำหนดการที่งานส่วนใหญ่ได้รับการมอบหมายตามลำดับความสำคัญ บางครั้งสิ่งสำคัญคือต้องรันงานที่มีลำดับความสำคัญสูงกว่าก่อนงานอื่นที่มีลำดับความสำคัญต่ำกว่า แม้ว่างานที่มีลำดับความสำคัญต่ำกว่ายังคงรันอยู่ก็ตาม
ในเวลานั้น งานที่มีลำดับความสำคัญต่ำกว่าจะพักไว้ระยะหนึ่งและดำเนินการต่อเมื่องานที่มีลำดับความสำคัญสูงกว่าเสร็จสิ้นการดำเนินการ
การจัดกำหนดการแบบไม่ยึดล่วงหน้าคืออะไร?
ในวิธีการกำหนดเวลาประเภทนี้ CPU ได้รับการจัดสรรให้กับกระบวนการเฉพาะ กระบวนการที่ทำให้ CPU ไม่ว่างจะปล่อย CPU โดยการสลับบริบทหรือยุติ
เป็นวิธีเดียวที่สามารถใช้ได้กับแพลตฟอร์มฮาร์ดแวร์ต่างๆ นั่นเป็นเพราะว่าไม่จำเป็นต้องใช้ฮาร์ดแวร์พิเศษ (เช่น ตัวจับเวลา) เช่น การจัดกำหนดการล่วงหน้า
การจัดกำหนดการแบบไม่ยึดถือล่วงหน้าเกิดขึ้นเมื่อกระบวนการเข้าสู่สถานะรอโดยสมัครใจหรือยุติลง
การกำหนดเวลาล่วงหน้าเทียบกับการไม่ยึดถือล่วงหน้า: ตารางเปรียบเทียบ
นี่คือการเปรียบเทียบแบบตัวต่อตัวระหว่างการจองล่วงหน้ากับการจัดตารางเวลาที่ไม่ยึดถือล่วงหน้า ความแตกต่างหลักระหว่างการจัดกำหนดการแบบยึดถือล่วงหน้าและแบบไม่ยึดถือล่วงหน้าใน OS มีดังนี้:
การจัดกำหนดการชั่วคราว | การจัดกำหนดการแบบไม่ยึดเอาเสียก่อน |
---|---|
โปรเซสเซอร์สามารถถูกจองล่วงหน้าเพื่อดำเนินการกระบวนการต่างๆ ในระหว่างการดำเนินการกระบวนการใดๆ ในปัจจุบันได้ | เมื่อโปรเซสเซอร์เริ่มดำเนินการแล้ว จะต้องดำเนินการให้เสร็จสิ้นก่อนที่จะดำเนินการประมวลผลอีกตัวหนึ่ง ไม่สามารถหยุดกลางคันได้ |
การใช้งาน CPU มีประสิทธิภาพมากกว่าเมื่อเปรียบเทียบกับการจัดกำหนดการแบบไม่ยึดล่วงหน้า | การใช้งาน CPU มีประสิทธิภาพน้อยกว่าเมื่อเทียบกับการจัดกำหนดการล่วงหน้า |
เวลารอและตอบสนองของการจัดกำหนดการยึดถือไว้น้อยกว่า | เวลารอและตอบสนองของวิธีการจัดกำหนดการแบบไม่ยึดถือล่วงหน้าจะสูงกว่า |
จัดลำดับความสำคัญของการจัดกำหนดการล่วงหน้า กระบวนการที่มีลำดับความสำคัญสูงสุดคือกระบวนการที่ใช้อยู่ในปัจจุบัน | เมื่อกระบวนการใดๆ เข้าสู่สถานะของการทำงาน สถานะของกระบวนการนั้นจะไม่ถูกลบออกจากตัวกำหนดตารางเวลาจนกว่างานจะเสร็จสิ้น |
การจัดกำหนดการล่วงหน้ามีความยืดหยุ่น | การจัดกำหนดการแบบไม่ยึดถือนั้นเข้มงวด |
ตัวอย่าง: – เวลาที่เหลือสั้นที่สุดก่อน, Round Robin ฯลฯ | ตัวอย่าง: มาก่อนได้ก่อน, งานที่สั้นที่สุดก่อน, การจัดลำดับความสำคัญ ฯลฯ |
อัลกอริธึมการจัดกำหนดการล่วงหน้าสามารถถูกจัดเตรียมไว้ล่วงหน้าได้ ซึ่งเป็นกระบวนการที่สามารถจัดกำหนดการได้ | ในกระบวนการจัดกำหนดการแบบไม่ยึดถือล่วงหน้าไม่สามารถจัดกำหนดการได้ |
ในกระบวนการนี้ CPU จะถูกจัดสรรให้กับกระบวนการในช่วงเวลาที่กำหนด | ในกระบวนการนี้ CPU จะถูกจัดสรรให้กับกระบวนการจนกว่าจะยุติหรือเปลี่ยนเป็นสถานะรอ |
อัลกอริธึมเชิงรับล่วงหน้ามีค่าใช้จ่ายในการสลับกระบวนการจากสถานะพร้อมไปเป็นสถานะกำลังทำงานและในทางกลับกัน | การจัดกำหนดการแบบไม่ต้องเสียภาษีไม่มีค่าใช้จ่ายในการเปลี่ยนกระบวนการจากการทำงานไปสู่สถานะพร้อม |
ข้อดีของการตั้งเวลาล่วงหน้า
ต่อไปนี้เป็นข้อดี/ประโยชน์ของวิธีการจัดกำหนดการล่วงหน้า:
- วิธีการกำหนดเวลาล่วงหน้ามีประสิทธิภาพมากกว่า แนวทางหนึ่งจึงไม่สามารถผูกขาด CPU ได้
- ทางเลือกของงานที่กำลังดำเนินการอยู่จะได้รับการพิจารณาใหม่หลังจากการหยุดชะงักแต่ละครั้ง
- แต่ละเหตุการณ์ทำให้งานวิ่งหยุดชะงัก
- ระบบปฏิบัติการทำให้แน่ใจว่าการใช้งาน CPU จะเหมือนกันโดยกระบวนการที่ทำงานอยู่ทั้งหมด
- โดยการใช้งาน CPU จะเท่ากัน กล่าวคือ กระบวนการทำงานทั้งหมดจะใช้ CPU อย่างเท่าเทียมกัน
- วิธีการจัดตารางเวลานี้ยังปรับเวลาตอบสนองโดยเฉลี่ยอีกด้วย
- การจัดกำหนดการล่วงหน้าจะเป็นประโยชน์เมื่อเราใช้สำหรับสภาพแวดล้อมที่มีการเขียนโปรแกรมหลายโปรแกรม
ข้อดีของการจัดกำหนดการแบบไม่ยึดเอาเสียก่อน
ต่อไปนี้เป็นข้อดี/ประโยชน์ของวิธีการจัดกำหนดการแบบไม่เสียภาษีล่วงหน้า:
- เสนอค่าใช้จ่ายในการกำหนดเวลาต่ำ
- มีแนวโน้มที่จะให้ปริมาณงานสูง
- เป็นวิธีการที่ง่ายมากตามแนวคิด
- Less ทรัพยากรการคำนวณที่จำเป็นสำหรับการจัดกำหนดการ
ข้อเสียของการจัดกำหนดการล่วงหน้า
ข้อเสียของการกำหนดตารางงานล่วงหน้ามีดังต่อไปนี้:
- ต้องการทรัพยากรการคำนวณที่จำกัดสำหรับการจัดกำหนดการ
- ผู้จัดกำหนดการใช้เวลานานขึ้นในการระงับงานที่กำลังทำงานอยู่ สลับบริบท และส่งงานที่เข้ามาใหม่
- กระบวนการที่มีลำดับความสำคัญต่ำต้องรอเป็นเวลานานขึ้น หากกระบวนการที่มีลำดับความสำคัญสูงบางกระบวนการมาถึงอย่างต่อเนื่อง
ข้อเสียของการจัดกำหนดการแบบไม่ยึดเสียก่อน
นี่คือข้อเสีย/ข้อเสียของวิธี Non-Preemptive Scheduling:
- มันสามารถนำไปสู่ความอดอยากโดยเฉพาะอย่างยิ่งสำหรับงานแบบเรียลไทม์เหล่านั้น
- แมลงอาจทำให้เครื่องค้างได้
- สามารถทำให้เรียลไทม์และ การจัดลำดับความสำคัญ ยาก
- เวลาตอบสนองต่ำสำหรับกระบวนการ
ตัวอย่างการจัดกำหนดการแบบไม่ยึดเสียก่อน
ในการกำหนดเวลา SJF แบบไม่ต้องเสียภาษี เมื่อมีการจัดสรรวงจร CPU ให้กับการประมวลผล กระบวนการจะคงไว้จนกว่าจะเข้าสู่สถานะรอหรือสิ้นสุด
ลองพิจารณากระบวนการทั้งห้าประการต่อไปนี้ ซึ่งแต่ละกระบวนการจะมีเวลาการระเบิดและเวลาที่มาถึงเฉพาะของตัวเอง
คิวกระบวนการ | ระเบิดเวลา | เวลาถึง |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
ขั้นตอน 0) เมื่อเวลา=0 P4 มาถึงและเริ่มดำเนินการ
ขั้นตอน 1) ณ เวลา= 1 กระบวนการ P3 มาถึง แต่ P4 ยังคงต้องการหน่วยดำเนินการ 2 หน่วยจึงจะเสร็จสมบูรณ์ จะดำเนินการต่อไป
ขั้นตอน 2) ณ เวลา =2 กระบวนการ P1 มาถึงและถูกเพิ่มในคิวที่รอ P4 จะดำเนินการต่อไป
ขั้นตอน 3) ณ เวลา = 3 กระบวนการ P4 จะดำเนินการเสร็จสิ้น มีการเปรียบเทียบเวลาระเบิดของ P3 และ P1 กระบวนการ P1 ถูกดำเนินการเนื่องจากเวลาในการระเบิดน้อยกว่าเมื่อเปรียบเทียบกับ P3
ขั้นตอน 4) ณ เวลา = 4 กระบวนการ P5 มาถึงและถูกเพิ่มในคิวที่รอ P1 จะดำเนินการต่อไป
ขั้นตอน 5) ณ เวลา = 5 กระบวนการ P2 มาถึงและถูกเพิ่มในคิวที่รอ P1 จะดำเนินการต่อไป
ขั้นตอน 6) ณ เวลา = 9 กระบวนการ P1 จะดำเนินการเสร็จสิ้น มีการเปรียบเทียบเวลาในการระเบิดของ P3, P5 และ P2 กระบวนการ P2 ถูกดำเนินการเนื่องจากเวลาการระเบิดต่ำสุด
ขั้นตอน 7) ณ เวลา=10 P2 กำลังดำเนินการ และ P3 และ P5 อยู่ในคิวรอ
ขั้นตอน 8) ณ เวลา = 11 กระบวนการ P2 จะดำเนินการเสร็จสิ้น มีการเปรียบเทียบเวลาระเบิดของ P3 และ P5 กระบวนการ P5 ถูกดำเนินการเนื่องจากเวลาการระเบิดต่ำกว่า
ขั้นตอน 9) ณ เวลา = 15 กระบวนการ P5 จะดำเนินการเสร็จสิ้น
ขั้นตอน 10) ณ เวลา = 23 กระบวนการ P3 จะดำเนินการเสร็จสิ้น
ขั้นตอน 11) ลองคำนวณเวลารอโดยเฉลี่ยสำหรับตัวอย่างข้างต้น
Wait time P4= 0-0=0 P1= 3-2=1 P2= 9-5=4 P5= 11-4=7 P3= 15-1=14 Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
ตัวอย่างการจัดกำหนดการล่วงหน้า
ลองพิจารณาสามกระบวนการต่อไปนี้ โรบิน
คิวกระบวนการ | ระเบิดเวลา |
---|---|
P1 | 4 |
P2 | 3 |
P3 | 5 |
ขั้นตอน 1) การดำเนินการเริ่มต้นด้วยกระบวนการ P1 ซึ่งมีเวลาระเบิด 4 ในที่นี้ ทุกกระบวนการจะดำเนินการเป็นเวลา 2 วินาที P2 และ P3 ยังอยู่ในคิวรอ
ขั้นตอนที่ 2) ณ เวลา =2 P1 จะถูกเพิ่มที่ส่วนท้ายของคิว และ P2 จะเริ่มดำเนินการ
ขั้นตอน 3) ณ เวลา=4 P2 จะถูกจองล่วงหน้าและเพิ่มเมื่อสิ้นสุดคิว P3 เริ่มดำเนินการ
ขั้นตอน 4) ณ เวลา=6 P3 จะถูกจองล่วงหน้าและเพิ่มเมื่อสิ้นสุดคิว P1 เริ่มดำเนินการ
ขั้นตอน 5) ณ เวลา=8 P1 มีเวลาระเบิดเป็น 4 ดำเนินการเสร็จสิ้นแล้ว P2 เริ่มดำเนินการ
ขั้นตอน 6) P2 มีเวลาระเบิดเป็น 3 โดยดำเนินการไปแล้ว 2 ช่วง ณ เวลา = 9 P2 ดำเนินการเสร็จสิ้น จากนั้น P3 จะเริ่มดำเนินการจนกว่าจะเสร็จสิ้น
ขั้นตอน 7) ลองคำนวณเวลารอโดยเฉลี่ยสำหรับตัวอย่างข้างต้น
Wait time P1= 0+ 4= 4 P2= 2+4= 6 P3= 4+3= 7