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.