4.1 Bài toán :
Ở các chương trước , process master giữ nhiệm vụ quan sát xem process nào ngưng làm việc rồi sau đó tạo process mới thay thế hoặc gán các công việc của process ngưng hoạt động cho process có số công việc ít nhất. Ta thấy rằng sự ngưng làm việc không loại trừ bất kỳ một process nào. Do đó nếu không may master ngưng hoạt động thì toàn bộ hệ thống sẽ deadlock. Hơn nữa có những bài toán trong đó không có khái niệm master. Ví dụ như bài toán tìm đường đi ngắn nhất giữa hai máy tính nối mạng khi gởi thông điệp, bài toán ngữ pháp đồ thị, …. Trong chương này xin đề cử một thuật toán phân công công việc của các process ngừng hoạt động được thực hiện bởi các process còn đang hoạt động.
Định nghĩa 4.1.1 Cho (x, y) và (u, v) NxN. Ta định nghĩa (x, y) (u,v) (y <v)
(( x <u) (y=v)).
Mệnh đề 4.1.2 Phép toán có tính bắt cầu.
Chứng minh. Giả sử ta có (x, y) (u,v) và (u,v) (t,z). theo định nghĩa 4.1.1 ta có các trường hợp : - Trường hợp 1: y < v và v < z => y < z => (x, y) (t,z). - Trường hợp 2: y < v và u < t và v=z => y < z => (x, y) (t,z). - Trường hợp 3: x < u , y = v , và v < z => y < z => (x, y) (t,z). - Trường hợp 4: x < u , y = v , và u < t và v=z => x < t và y = z => (x, y) (t,z). Mệnh đề 4.1.2 Gọi S là tập hữu hạn các phần tử có dạng {(0, L0), (1, L1), …, (n, Ln)} ,
với Li N. Khi đó tồn tại duy nhất i sao cho j i , (i, Li) (j , Lj). Ta có thể nói (i, Li) là bé nhất.
Chứng minh. Ta có với mọi cặp (i, Li) và (j , Lj) luôn có (i, Li) (j , Lj) hoặc (j, Lj)
cầu nên không thể có đồng thời (i, Li) (j , Lj) và (j, Lj) (i , Li). Vậy i là duy nhất.