Announcement
Collapse
No announcement yet.
[Hỏi] Bài Tập Đồng Bộ Hóa Với Semaphore Hệ Điều Hành
Collapse
X
-
mình nghĩ cái này là : mặc xác thằng Na tăng lên bao nhiêu, chỉ cần Nb<Na<Nb+10 thì nó vẫn được phép chay , nếu không thì nó sẽ bị block :happy:
Leave a comment:
-
[Hỏi] Bài Tập Đồng Bộ Hóa Với Semaphore Hệ Điều Hành
Mình đang ôn Hệ Điều Hành tới Semaphore thì gặp bài tập này. Anh em nào vào giải thích giùm mình với.
Đề : Xét 2 tiến trình A,B
Proces A
{
while(1)
Na=Na+1;
}
Process B
{
while(1)
Nb=Nb+1;
}
Đồng bộ hóa 2 tiến trình trên dùng Semaphore, sao cho tại mọi thời điểm bất kì : Nb<Na<=Nb+10.
Đây là bài giải :
Code:Process A { while(1) { Wait(S21); Na=Na+1; Signal(S12); } } Process B { while(1) { Wait(S12); Nb=Nb+1; Signal(S21); } } Khởi tạo: S21= 10; S12=0;
1> Process A thực hiện trước Process B 10 lần . Sau đó thì trình tự thực hiên là: A->B->A->B.... luân phiên
2>Process A thực hiện trước Process B 10 lần sau. Sau đó Process B thực hiện 10. Rồi lặp lại A 10 lần-> B 10 lần->A 10 lần....... luân phiên
Vậy thì hiểu theo ý 1 hay ý 2 là đúng ? Mình nghĩ là ý 2 nhưng không chắc lắm nên hỏi anh em. Anh em nào giải thích giùm mình với. Thank trước:nose:Last edited by 11520207; 30-12-2012, 12:09.Tags: None
Leave a comment: