แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างการหยุดชะงักและความอดอยากในระบบปฏิบัติการ

ทั้ง Deadlock และ Starvation เป็นเงื่อนไขที่กระบวนการที่ร้องขอทรัพยากรล่าช้ามาเป็นเวลานาน แม้ว่าการหยุดชะงักและความอดอยากทั้งสองจะแตกต่างกันในหลาย ๆ ด้าน การหยุดชะงัก เป็นเงื่อนไขที่ไม่มีกระบวนการดำเนินการสำหรับการดำเนินการและแต่ละรอทรัพยากรที่ได้รับจากกระบวนการอื่น ๆ ในทาง ตรงกันข้าม ใน ความอดอยาก กระบวนการที่มีลำดับความสำคัญสูงจะใช้ทรัพยากรอย่างต่อเนื่องเพื่อป้องกันกระบวนการที่มีลำดับความสำคัญต่ำเพื่อรับทรัพยากร ให้เราคุยความแตกต่างเพิ่มเติมระหว่างการหยุดชะงักและความอดอยากด้วยความช่วยเหลือของกราฟเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

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

คำจำกัดความของ Deadlock

Deadlock เป็นสถานการณ์ที่กระบวนการต่าง ๆ ใน CPU แข่งขันกันสำหรับจำนวน จำกัด ของทรัพยากรที่มีอยู่ภายใน CPU ที่นี่แต่ละกระบวนการมีทรัพยากรและรอรับทรัพยากรที่กระบวนการอื่นถืออยู่ กระบวนการทั้งหมดรอทรัพยากรในแบบวงกลม ในภาพด้านล่างคุณจะเห็นว่ากระบวนการ P1 ได้รับทรัพยากร R2 ซึ่งถูกร้องขอโดยกระบวนการ P2 และกระบวนการ P1 กำลังร้องขอทรัพยากร R1 ซึ่งจัดขึ้นอีกครั้งโดย R2 ดังนั้นประมวลผล P1 และ P2 ในรูปแบบการหยุดชะงัก

การหยุดชะงักเป็นปัญหาที่พบบ่อยในระบบปฏิบัติการหลายตัวระบบแบบกระจายและในระบบคอมพิวเตอร์แบบขนาน มีสี่เงื่อนไขที่จะต้องเกิดขึ้นพร้อมกันเพื่อยกระดับเงื่อนไขของการหยุดชะงักซึ่ง ได้แก่ การกีดกันซึ่งกันและกันการพักและรอการไม่รอการจองและการรอแบบวน

  • การยกเว้นร่วมกัน: กระบวนการเดียวในแต่ละครั้งสามารถใช้ทรัพยากรหากกระบวนการอื่นร้องขอทรัพยากรเดียวกันก็ต้องรอจนกว่ากระบวนการโดยใช้ทรัพยากรที่ปล่อยออกมา
  • พักและรอ: กระบวนการจะต้องถือครองทรัพยากรและรอที่จะได้รับทรัพยากรอื่นที่จัดขึ้นโดยกระบวนการอื่น ๆ
  • ไม่มีการ จองล่วงหน้า : กระบวนการที่ถือครองทรัพยากรไม่สามารถจองล่วงหน้าได้ กระบวนการที่ถือครองทรัพยากรจะต้องปล่อยทรัพยากรโดยสมัครใจเมื่อมันเสร็จสิ้นภารกิจแล้ว
  • การรอ แบบวนเวียนวนรอบ : กระบวนการต้องรอทรัพยากรในลักษณะวงกลม สมมติว่าเรามีสามกระบวนการ {P0, P1, P2} P0 ต้องรอทรัพยากรที่ถือโดย P1; P1 ต้องรอรับทรัพยากรที่จัดขึ้นโดยกระบวนการ P2 และ P2 ต้องรอรับกระบวนการที่จัดขึ้นโดย P0

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

คำจำกัดความของความอดอยาก

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

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

ริ้วรอยก่อนวัย สามารถแก้ไขปัญหาความอดอยาก อายุจะค่อยๆเพิ่มลำดับความสำคัญของกระบวนการที่รอมานานสำหรับทรัพยากร การกำหนดอายุจะป้องกันกระบวนการที่มีลำดับความสำคัญต่ำเพื่อรอทรัพยากรอย่างไม่มีกำหนด

ความแตกต่างที่สำคัญระหว่างการหยุดชะงักและความอดอยากในระบบปฏิบัติการ

  1. ในการหยุดชะงักไม่มีกระบวนการใดที่ดำเนินการเพื่อดำเนินการแต่ละกระบวนการได้รับการบล็อกรอทรัพยากรที่ได้มาจากกระบวนการอื่น ในทางตรงกันข้ามความอดอยากเป็นเงื่อนไขที่กระบวนการที่มีลำดับความสำคัญสูงกว่าได้รับอนุญาตให้ได้รับทรัพยากรอย่างต่อเนื่องโดยการป้องกันไม่ให้กระบวนการลำดับความสำคัญต่ำได้รับทรัพยากร
  2. การหยุดชะงักเกิดขึ้นเมื่อมีเงื่อนไขสี่ประการที่ การแยกกันรวม, พักและรอ, ไม่มีใบจองและรอแบบเวียน เกิดขึ้นพร้อมกัน อย่างไรก็ตามความอดอยากเกิดขึ้นเมื่อ มีการบังคับใช้ลำดับความสำคัญของ กระบวนการในขณะที่จัดสรรทรัพยากรหรือมีการจัดการทรัพยากรที่ไม่มีการควบคุมในระบบ
  3. การหยุดชะงักมักจะถูกเรียกโดยการ รอ ชื่อ วงเวียน ในขณะที่ความอดอยากเรียกว่า ล็อคแบบมีชีวิต
  4. ใน Deadlock ทรัพยากรถูกบล็อกโดยกระบวนการในขณะที่ความอดอยากกระบวนการจะถูกใช้อย่างต่อเนื่องโดยกระบวนการที่มีลำดับความสำคัญสูง
  5. การหยุดชะงักสามารถป้องกันได้โดยการหลีกเลี่ยงเงื่อนไขเช่นการกีดกันซึ่งกันและกันการพักไว้และรอและการรอคอยเป็นวงกลมและโดยอนุญาตให้กระบวนการจองล่วงหน้าของกระบวนการที่ใช้ทรัพยากรอยู่เป็นเวลานาน ในขณะที่ความอดอยากสามารถป้องกันได้โดย อายุ

สรุป:

ทั้ง Deadlock และ Starvation ทำให้กระบวนการดำเนินการล่าช้าโดยการปิดกั้น ในอีกด้านหนึ่งที่การหยุดชะงักสามารถทำให้กระบวนการอดอยากและในอีกทางหนึ่งการอดอาหารสามารถทำให้กระบวนการหยุดชะงักได้

Top