Khái niệm đèn hiệu và hai ứng dụng của đèn hiệu.

Go down

Khái niệm đèn hiệu và hai ứng dụng của đèn hiệu.

Bài gửi  NgoMinhTien20 (I11C) on 27/10/2011, 15:07

Code:
typedef int semaphore; // Định nghĩa kiểu đèn hiệu
wait (semaphore S)
{
while ( S <= 0 ); // Chờ bận nếu S<=0
S --; // Giảm S đi 1
}
signal (semaphore S)
{
S ++; // Tăng S lên 1
}


- Việc kiểm tra S<=0 và giảm S hoặc tăng S phải được thực hiện trọn vẹn(Không xảy ra ngắt trong thời gian thi hành).
*Ứng dụng:
-1.Giải quyết vấn đề VTT: Bằng đèn hiệu nhị phân

-Sử dụng đèn hiệu mutex với trạng thái ban đầu =1

+ Mã của tiến trình Pi bây giờ có cấu trúc:

Code:
typedef int semaphore;
semaphore mutex=1; // Binary Semaphore
while (1) // (Đèn hiệu nhị phân)
{
remainder section
wait (mutex);
critical section
signal (mutex);
remainder section
}
=> Loại trừ tính tương tranh, đảm bảo trong 1 thời điểm chỉ có 1 tiến trình ở đoạn tương tranh.


- 2. Đảm bảo trật tự cần thiết:

Giả sử P1 có mã S1,P2 có mã S2,cần tổ chức sao cho S2 chỉ thi hành sau S1.
+Ta dùng đèn hiệu sau:
semaphore synch = 0;
Cấu trúc P1:
S1
signal (synch) ;


Cấu trúc P2:
wait(synch);
S2
avatar
NgoMinhTien20 (I11C)

Tổng số bài gửi : 17
Join date : 26/08/2011

Xem lý lịch thành viên

Về Đầu Trang Go down

Về Đầu Trang


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