Priority Inheritance Protocol (PIP) เป็นกลไกการซิงโครไนซ์ที่ใช้ในระบบปฏิบัติการแบบเรียลไทม์เพื่อแก้ไขปัญหาการกลับลำดับความสำคัญ การกลับลำดับความสำคัญเกิดขึ้นเมื่องานที่มีลำดับความสำคัญสูงถูกบล็อกโดยงานที่มีลำดับความสำคัญต่ำกว่าซึ่งมีทรัพยากรที่ใช้ร่วมกัน ส่งผลให้ระบบเกิดความล่าช้าและอาจพลาดกำหนดเวลา
ปัญหาการผกผันลำดับความสำคัญ
พิจารณางานสามงานที่มีลำดับความสำคัญต่างกัน:สูง (H) ปานกลาง (M) และต่ำ (L) หากงาน L ได้รับทรัพยากรที่งาน H ต้องการ ในขณะที่งาน M กำลังทำงานอยู่ งาน H จะต้องรอให้ทั้ง M และ L ดำเนินการให้เสร็จสิ้น สิ่งนี้ละเมิดหลักการจัดกำหนดการตามลำดับความสำคัญ
ปัญหาการผกผันลำดับความสำคัญ สูง (H) ปานกลาง (M) ต่ำ (L) ถูกบล็อกการรอทรัพยากรที่ถือโดย L กำลังรัน (ยึด L) ถือทรัพยากร ถูกบล็อกโดย M PRIORITY INVERSION
วิธีการทำงานของโปรโตคอลการสืบทอดลำดับความสำคัญ
PIP แก้ปัญหาการผกผันลำดับความสำคัญโดยการสืบทอดลำดับความสำคัญของงานที่ถูกบล็อกที่มีลำดับความสำคัญสูงสุดเป็นการชั่วคราวให้กับงานที่ถือทรัพยากร สิ่งนี้ทำให้มั่นใจได้ว่าผู้ถือทรัพยากรสามารถดำเนินการให้เสร็จสิ้นได้อย่างรวดเร็วและปล่อยทรัพยากร
ขั้นตอนอัลกอริทึม PIP
-
เมื่องานที่มีลำดับความสำคัญสูงร้องขอทรัพยากรที่จัดขึ้นโดยงานที่มีลำดับความสำคัญต่ำกว่า งานที่มีลำดับความสำคัญต่ำกว่าจะสืบทอดลำดับความสำคัญของงานที่มีลำดับความสำคัญสูง
-
งานการถือครองทรัพยากรจะดำเนินการตามลำดับความสำคัญที่สูงกว่าที่สืบทอดมาจนกว่าจะปล่อยทรัพยากร
-
เมื่อทรัพยากรถูกปล่อยออกมา ลำดับความสำคัญของงานจะเปลี่ยนกลับไปเป็นระดับเดิม
-
ขณะนี้งานที่มีลำดับความสำคัญสูงสามารถรับทรัพยากรและดำเนินการต่อได้
ตัวอย่าง 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 จัดการกับการกลับลำดับความสำคัญในระบบเรียลไทม์ได้อย่างมีประสิทธิภาพ โดยการยกระดับลำดับความสำคัญของงานการถือครองทรัพยากรเป็นการชั่วคราว ความเรียบง่ายและประสิทธิภาพทำให้เป็นตัวเลือกที่ต้องการสำหรับแอปพลิเคชันแบบฝังตัวและแบบเรียลไทม์ที่การดำเนินงานที่คาดการณ์ได้เป็นสิ่งสำคัญ