Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

P1 TRƯỚC P2,P2 TRƯỚC P3

Go down

P1 TRƯỚC P2,P2 TRƯỚC P3 Empty P1 TRƯỚC P2,P2 TRƯỚC P3

Bài gửi  nguyentruongan03(HLT3) 2/5/2014, 17:44

Đồng bộ hóa công việc các tiến trình sao cho P1, trước P2, P2 trước P3!
Giả sửa có 3 tiến trình P1, P2 và P3 có mã tương ứng là S1, S2 và S3

Semaphore synch1 = 0, synch2 = 0;

P1 P2 P3
S1 wait(synch1); wait(synch2);
signal(synch1); S2, signal(synch1); S3

P2 bị khóa tại hàm wait(synch1) do synch1=0; P3 bị khóa tại hàm wait(synch2) do synch2=0. Sau khi S1 dc thi hành thì synch1 sẽ tăng lên 1 do signal(synch1).
Lúc này P2 sẽ dc thực hiện(synch1 =1), nhưng P3 vẫn bị khóa do synch2 =0, sau khi S2 thi hành xong thì synch2 =1(signal(synch2)) lúc này P3 mới dc thực hiện.
=> P1 trước P2, P2 trước P3.

nguyentruongan03(HLT3)

Tổng số bài gửi : 22
Join date : 23/03/2014

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết