Flowchart · Giải thuật Banker
Kiểm tra trạng thái an toàn trong giải thuật Banker
Thuật toán kiểm tra an toàn của Banker
Khởi tạo Work bằng Available, lặp tìm tiến trình chưa xong có Need không vượt Work, giả sử nó chạy xong và trả Allocation vào Work; nếu mọi tiến trình đều xong thì trạng thái an toàn, ngược lại không an toàn.
LẶP LẠI
CÓ
KHÔNG
CÓ
KHÔNG
Khởi tạo
Work = Available · Finish[i] = false
Còn Pi chưa xong mà
Need_i ≤ Work?
Pi chạy xong, trả tài nguyên
Work = Work + Allocation_i
Finish[i] = true
nối Pi vào chuỗi an toàn
Mọi Finish[i]
đều true?
Trạng thái an toàn
đã có chuỗi an toàn
Không an toàn
có thể dẫn tới deadlock
GHI CHÚ
Need_i = Max_i − Allocation_i
Need ≤ Work: so từng loại tài nguyên
CHÚ GIẢI
Bắt đầu / kết thúc
Bước xử lý
Rẽ nhánh
Điểm nhập nhánh
Kết quả mong muốn
© tiennhm