Hỏi đáp về bài tập hệ điều hành

int x = 5;
int* sum = &x;
// xử lý tiến trình
while (TRUE) {
int j = 1-i;
flag[i]= TRUE;
turn = j;
while (turn == j && flag[j]==TRUE);
*sum++;
flag[j] = FALSE;
 Noncritical-section ();
}

a. Khi tạo 2 tiến trình để xử lý biến sum, giải pháp đồng bộ busy-waiting trên có thỏa mãn 3 yêu cầu khi giải quyết vấn đề
vùng tranh chấp (critical section)? Tại sao
b. Không dùng giải pháp buy-waiting để đồng bộ tiến trình, sửa lại code cho giải pháp semaphore

Em mới học về đồng bộ trong hệ điều hành được vài ngày thì có bài tập này, nghĩ mãi vẫn chưa ra nên mong các bác giúp em với ạ, em cám ơn.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?