Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การแก้ไขการผกผันลำดับความสำคัญ:อธิบายโปรโตคอลการสืบทอดลำดับความสำคัญ (PIP)

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

ปัญหาการผกผันลำดับความสำคัญ

พิจารณางานสามงานที่มีลำดับความสำคัญต่างกัน:สูง (H) ปานกลาง (M) และต่ำ (L) หากงาน L ได้รับทรัพยากรที่งาน H ต้องการ ในขณะที่งาน M กำลังทำงานอยู่ งาน H จะต้องรอให้ทั้ง M และ L ดำเนินการให้เสร็จสิ้น สิ่งนี้ละเมิดหลักการจัดกำหนดการตามลำดับความสำคัญ

ปัญหาการผกผันลำดับความสำคัญ สูง (H) ปานกลาง (M) ต่ำ (L) ถูกบล็อกการรอทรัพยากรที่ถือโดย L กำลังรัน (ยึด L) ถือทรัพยากร ถูกบล็อกโดย M PRIORITY INVERSION

วิธีการทำงานของโปรโตคอลการสืบทอดลำดับความสำคัญ

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

ขั้นตอนอัลกอริทึม PIP

  1. เมื่องานที่มีลำดับความสำคัญสูงร้องขอทรัพยากรที่จัดขึ้นโดยงานที่มีลำดับความสำคัญต่ำกว่า งานที่มีลำดับความสำคัญต่ำกว่าจะสืบทอดลำดับความสำคัญของงานที่มีลำดับความสำคัญสูง

  2. งานการถือครองทรัพยากรจะดำเนินการตามลำดับความสำคัญที่สูงกว่าที่สืบทอดมาจนกว่าจะปล่อยทรัพยากร

  3. เมื่อทรัพยากรถูกปล่อยออกมา ลำดับความสำคัญของงานจะเปลี่ยนกลับไปเป็นระดับเดิม

  4. ขณะนี้งานที่มีลำดับความสำคัญสูงสามารถรับทรัพยากรและดำเนินการต่อได้

ตัวอย่าง PIP ที่ใช้งานจริง

Priority Inheritance Protocol Timeline เวลา:0 1 2 3 4 5 สูง:ถูกบล็อกการทำงาน สื่อ:ทำงาน (กรณีปกติ) ต่ำ:กด R ลำดับความสำคัญที่สืบทอดมา คำอธิบาย:R =ทรัพยากรที่ไม่มี PIP:H รอ M และ L ด้วย PIP:L สืบทอดลำดับความสำคัญของ H

เปรียบเทียบกับเทคนิคอื่นๆ

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

ข้อดีของ PIP

  • ความเรียบง่าย ใช้งานง่ายโดยมีค่าใช้จ่ายน้อยที่สุด

  • งานเพื่อความโปร่งใสไม่ทราบถึงการเปลี่ยนแปลงลำดับความสำคัญ

  • ประสิทธิภาพ ไม่มีการปิดกั้นงานที่ไม่เกี่ยวข้องโดยไม่จำเป็น

  • การพกพา ทำงานได้บนแพลตฟอร์มฮาร์ดแวร์ที่แตกต่างกัน

แอปพลิเคชันในโลกแห่งความเป็นจริง

PIP ถูกนำมาใช้กันอย่างแพร่หลายในระบบที่มีภารกิจสำคัญ:

  • ซอฟต์แวร์ควบคุมการบินในระบบการบินและอวกาศในระบบการบิน

  • อุปกรณ์การแพทย์ ระบบติดตามผู้ป่วยและช่วยชีวิต

  • ระบบอัตโนมัติทางอุตสาหกรรม การควบคุมด้วยหุ่นยนต์และกระบวนการผลิต

  • หน่วยควบคุมเครื่องยนต์และระบบความปลอดภัยยานยนต์

ระบบปฏิบัติการแบบเรียลไทม์ เช่น VxWorks, QNX และ FreeRTOS ใช้ PIP เป็นกลไกการซิงโครไนซ์มาตรฐาน

ข้อจำกัด

  • การบล็อกลูกโซ่ การสืบทอดลูกโซ่หลายลูกยังคงทำให้เกิดความล่าช้า

  • ระยะเวลาการสืบทอดเวลาที่คาดเดาไม่ได้ขึ้นอยู่กับความยาวของส่วนวิกฤต

  • ไม่มีการป้องกันการชะงักงัน ไม่ได้ป้องกันเงื่อนไขการรอเป็นวงกลมโดยเนื้อแท้

บทสรุป

Priority Inheritance Protocol จัดการกับการกลับลำดับความสำคัญในระบบเรียลไทม์ได้อย่างมีประสิทธิภาพ โดยการยกระดับลำดับความสำคัญของงานการถือครองทรัพยากรเป็นการชั่วคราว ความเรียบง่ายและประสิทธิภาพทำให้เป็นตัวเลือกที่ต้องการสำหรับแอปพลิเคชันแบบฝังตัวและแบบเรียลไทม์ที่การดำเนินงานที่คาดการณ์ได้เป็นสิ่งสำคัญ

การแก้ไขการผกผันลำดับความสำคัญ:อธิบายโปรโตคอลการสืบทอดลำดับความสำคัญ (PIP)