การกำหนดเวลาล่วงหน้าและไม่ยึดถือล่วงหน้า

ความแตกต่างที่สำคัญระหว่างการกำหนดเวลาแบบยึดถือและไม่ยึดถือล่วงหน้า

  • ในการจัดกำหนดการล่วงหน้า 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