CHƯƠNG 2 : QUẢN LÝ TIẾN TRÌNH
2.4. ĐỒNG BỘ HÓA TIẾN TRÌNH ĐỒNG THỜI
2.4.2. Yêu cầu với giải pháp cho đoạn nguy hiểm
Như đã trình bày ở trên, yêu cầu quan trọng khi đồng bộ hóa tiến trình là giải quyết vấn đề đoạn nguy hiểm (critical section) và loại trừ tương hỗ. Giải pháp cho vấn đề đoạn nguy hiểm cần thỏa mãn những yêu cầu sau:
1) Loại trừ tương hỗ: nếu nhiều tiến trình có đoạn nguy hiểm đối với cùng một tài nguyên thì tại mỗi thời điểm, chỉ một tiến trình được ở trong đoạn nguy hiểm.
2) Tiến triển: một tiến trình đang thực hiện ở ngồi đoạn nguy hiểm không được phép ngăn cản các tiến trình khác vào đoạn nguy hiểm của mình. Chẳng hạn, nếu một tiến trình bị treo ở ngồi đoạn nguy hiểm thì điều đó khơng được phép ảnh hưởng tới tiến trình khác.
3) Chờ đợi có giới hạn: nếu tiến trình có nhu cầu vào đoạn nguy hiểm thì tiến trình đó phải được vào sau một khoảng thời gian hữu hạn nào đó. Điều này có nghĩa là khơng được phép xảy ra bế tắc hoặc tình trạng bị đói đối với tiến trình.
Bên cạnh đó, giải pháp cho vấn đề đoạn nguy hiểm được xây dựng dựa trên các giả thiết sau: 1) Giải pháp khơng phụ thuộc vào tốc độ của các tiến trình.
2) Khơng tiến trình nào được phép nằm quá lâu trong đoạn nguy hiểm. Cụ thể là giả thiết tiến trình khơng bị treo, khơng lặp vơ hạn, và không kết thúc trong đoạn nguy hiểm.
3) Thao tác đọc và ghi bộ nhớ là thao tác nguyên tử (atomic) và không thể bị xen ngang giữa chừng.
Trong các phần tiếp theo, ta sẽ xem xét một số giải pháp cho vấn đề đoạn nguy hiểm. Các giải pháp được chia thành 3 nhóm: nhóm giải pháp phần mềm, nhóm giải pháp phần cứng, và nhóm sử dụng hỗ trợ của hệ điều hành hoặc thư viện ngơn ngữ lập trình.