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

Xem chủ đề cũ hơn Xem chủ đề mới hơn 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

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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