Giao thức Kế thừa Ưu tiên (PIP) là cơ chế đồng bộ hóa dùng trong hệ điều hành real-time để giải quyết vấn đề đảo ngược ưu tiên. Đảo ngược ưu tiên xảy ra khi tác vụpriority cao bị chặn bởi tác vụ ưu tiên thấp nắm giữ tài nguyên chia sẻ, gây trễ hệ thống và có thể bỏ lỡ deadline.
Vấn Đề Đảo Ngược Ưu Tiên
Xét ba tác vụ khác ưu tiên: Cao (H), Trung (M), Thấp (L). Nếu tác vụ L chiếm tài nguyên mà H cần, trong khi M đang chạy, H phải chờ cả M và L xong. Điều này vi phạm nguyên tắc lập lịch dựa trên ưu tiên.
Vấn Đề Đảo Ngược Ưu Tiên
Cao (H) Trung (M) Thấp (L)
Bị chặn chờ tài nguyên L nắm
Đang chạy (ưu tiên L)
Nắm tài nguyên, bị chặn bởi M
ĐẢO NGƯỢC ƯU TIÊN
Cách Priority Inheritance Protocol Hoạt Động
PIP giải quyết đảo ngược ưu tiên bằng cách tạm thời kế thừa ưu tiên của tác vụ bị chặn priority cao nhất cho tác vụ nắm tài nguyên. Điều này đảm bảo tác vụ nắm tài nguyên hoàn thành nhanh và giải phóng tài nguyên.
Các Bước Thuật Toán PIP
- Khi tác vụ ưu tiên cao yêu cầu tài nguyên do tác vụ ưu tiên thấp nắm, tác vụ ưu tiên thấp kế thừa ưu tiên của tác vụ ưu tiên cao.
- Tác vụ nắm tài nguyên chạy ở ưu tiên kế thừa cao hơn cho đến khi giải phóng tài nguyên.
- Khi tài nguyên được giải phóng, ưu tiên tác vụ quay về mức gốc.
- Tác vụ ưu tiên cao giờ có thể chiếm tài nguyên và tiến triển.
Ví Dụ PIP Hành Động
Priority Inheritance Protocol Timeline
Time: 0 1 2 3 4 5
Cao: Bị chặn Đang chạy
Trung: Đang chạy (trường hợp thường)
Thấp: Nắm R Ưu tiên kế thừa
Chú thích: R = Tài nguyên
Không PIP: H chờ M và L
Có PIP: L kế thừa ưu tiên H
So Sánh Với Kỹ Thuật Khác
| Kỹ thuật | Cách tiếp cận | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Priority Inheritance | Tăng ưu tiên động | Đơn giản, không deadlock | Chain blocking có thể |
| Priority Ceiling | Ưu tiên ceiling cố định | Ngăn deadlock | Có thể chặn không cần thiết |
| Binary Semaphores | Loại trừ lẫn nhau đơn giản | Triển khai đơn giản | Dễ deadlock |
Ưu Điểm Của PIP
- Đơn giản: Dễ triển khai với chi phí tối thiểu
- Trong suốt: Tác vụ không nhận ra thay đổi ưu tiên
- Hiệu quả: Không chặn không cần thiết tác vụ không liên quan
- Di động: Hoạt động cross-platform phần cứng khác nhau
Ứng Dụng Thực Tế
PIP dùng rộng rãi trong hệ thống mission-critical:
- Hệ thống hàng không: Phần mềm điều khiển bay trong avionics
- Thiết bị y tế: Giám sát bệnh nhân và hệ thống hỗ trợ sự sống
- Tự động hóa công nghiệp: Điều khiển robot và quy trình sản xuất
- Ô tô: Engine control unit và hệ thống an toàn
Hệ điều hành real-time như VxWorks, QNX, FreeRTOS triển khai PIP như cơ chế đồng bộ chuẩn.
Hạn Chế
- Chain Blocking: Nhiều chuỗi kế thừa vẫn gây trễ
- Thời gian không dự đoán: Thời gian kế thừa phụ thuộc độ dài critical section
- Không ngăn deadlock: Không tự nhiên ngăn điều kiện chờ vòng tròn
Kết Luận
Priority Inheritance Protocol giải quyết hiệu quả đảo ngược ưu tiên trong hệ thống real-time bằng cách tạm thời nâng ưu tiên tác vụ nắm tài nguyên. Sự đơn giản và hiệu quả làm nó lựa chọn ưu tiên cho ứng dụng nhúng và real-time nơi thực thi tác vụ dự đoán được là then chốt.

Priority Inheritance Protocol giải quyết hiệu quả đảo ngược ưu tiên trong hệ thống real-time bằng cách tạm thời nâng ưu tiên tác vụ nắm tài nguyên. Sự đơn giản và hiệu quả làm nó lựa chọn ưu tiên cho ứng dụng nhúng và real-time nơi thực thi tác vụ dự đoán được là then chốt.
