nguyenanhque.hdh.dl
FCFS:
SJF:
SRTF: lập bảng
DEADLOCK:
VII.3.1 Giải thuật an toàn
Giải thuật để xác định hệ thống ở trạng thái an toàn hay không có thể được mô tả
như sau:
1) Gọi Work và Finish là các vector có chiều dài m và n tương ứng. Khởi tạo
Work:=Available và Finish[i]:=false cho i = 1, 2, …,n.
2) Tìm i thỏa:
a) Finish[i] = false
b) Need i ≤ Work.
Nếu không có i nào thỏa, di chuyển tới bước 4
3) Work:=Work + Allocation i
Finish[i] := true
Di chuyển về bước 2.
4) Nếu Finish[i] = true cho tất cả i, thì hệ thống đang ở trạng thái an toàn.
Giải thuật này có thể yêu cầu độ phức tạp mxn2
thao tác để quyết định trạng thái
là an toàn hay không.
VII.3.2 Giải thuật yêu cầu tài nguyên
Cho Requesti là vector yêu cầu cho quá trình Pi. Nếu Requesti[j] = k, thì quá
trình Pi muốn k thể hiện của loại tài nguyên Rj. Khi một yêu cầu tài nguyên được thực
hiện bởi quá trình Pi, thì các hoạt động sau được thực hiện:
1) Nếu Requesti ≤ Needi, di chuyển tới bước 2. Ngược lại, phát sinh một điều
kiện lỗi vì quá trình vượt quá yêu cầu tối đa của nó.
2) Nếu Requesti ≤ Available, di chuyển tới bước 3. Ngược lại, Pi phải chờ vì tài
nguyên không sẳn có.
3) Giả sử hệ thống cấp phát các tài nguyên được yêu cầu tới quá trình Pi bằng
cách thay đổi trạng thái sau:
Available := Available – Requesti;
Allocationi := Allocationi + Requesti;
Needi := Needi – Requesti;
Nếu kết quả trạng thái cấp phát tài nguyên là an toàn, thì giao dịch được hoàn thành
và quá trình Pi được cấp phát tài nguyên của nó. Tuy nhiên, nếu trạng thái mới là
không an toàn, thì Pi phải chờ Requesti và trạng thái cấp phát tài nguyên cũ được phục
hồi.
Bạn đang đọc truyện trên: AzTruyen.Top