CHƢƠNG 6 TREO MÁY DEADLOCK
6.1 Điều kiện xảy ra bếtắc
Tỡnh trạng bế tắc xẩy ra khi bốn điều kiện sau đồng thời thỏa món:
1) Loại trừ tƣơng hỗ. Điều kiện này nghĩa là cú một tài nguyờn nguy hiểm,
tức là tài nguyờn mà tại mỗi thời điểm chỉ duy nhất một tiến trỡnh được sử dụng. Tiến trỡnh khỏc yờu cầu tài nguyờn này sẽ phải dừng lại chờ đến khi tài nguyờn được giải phúng.
2) Giữ và chờ. Tiến trỡnh giữ tài nguyờn trong khi chờ đợi, chẳng hạn chờ
đợi để được cấp thờm tài nguyờn khỏc.
3) Khụng cú phõn phối lại (no preemption). Tài nguyờn do tiến trỡnh giữ
khụng thể phõn phối lại cho tiến trỡnh khỏc trừ khi tiến trỡnh đang giữ tự nguyện giải phúng tài nguyờn.
4) Chờ đợi vũng trũn. Tồn tại nhúm tiến trỡnh P1, P2, …, Pn sao cho P1 chờ
đợi tài nguyờn do P2 đang giữ, P2 chờ tài nguyờn do P3 đang giữ, …, Pn chờ tài nguyờn do P1 đang giữ.
Bốn điều kiện trờn là cần và đủ để xẩy ra bế tắc. Cần lưu ý rằng điều kiện 2 là hệ quả của điều kiện 4 và điều kiện 3, nhưng vẫn được tỏch riờng để thuận lợi cho việc tỡm hiểu cơ chế xử lý bế tắc trỡnh bày trong cỏc phần sau.
Dựa trờn đặc điểm và điều kiện xảy ra bế tắc, cú thể giải quyết vấn đề bế tắc theo những cỏch sau:
- Ngăn ngừa (deadlock prevention): đảm bảo để một trong bốn điều kiện xẩy ra bế tắc khụng bao giờ thỏa món. Giải phỏp này cú thể thực hiện bằng cỏch sử dụng một số quy tắc để hạn chế cỏch yờu cầu tài nguyờn của tiến trỡnh.
- Phũng trỏnh (deadlock avoidance): cho phộp một số điều kiện bế tắc được thỏa món nhưng đảm bảo để khụng đạt tới điểm bế tắc.
- Phỏt hiện và giải quyết (deadlock detection): cho phộp bế tắc xẩy ra, phỏt
hiện bế tắc và khụi phục hệ thống về tỡnh trạng khụng bế tắc.
Trờn thực tế, hệ điều hành hiện nay khụng sử dụng giải phỏp nào trong số này, tức là khụng làm gỡ với bế tắc. Nhiệm vụ xử lý bế tắc do cỏc tiến trỡnh tự đảm nhiệm.