Professional Documents
Culture Documents
Producer - Consumer (Semaphore)
Producer - Consumer (Semaphore)
Trần Kháng Dĩ
Đoàn Duy Hiếu
Nguyễn Hữu Thịnh
Võ Thái Hiền
Giang Tuấn Kiệt
Nội dung
I. Khái quát về kỹ thuật Semaphore
1. Kỹ thuật Semaphore.
2. Nhận xét
3. Ưu/nhược điểm.
Wait(S)/P(S) Signal(S)/V(S)
Nhận xét
• Dễ dàng sử dụng.
• Không tồn tại hiện tượng chờ đợi tích cực.
• Hiệu quả sử dụng phụ thuộc vào người dung.
Ưu điểm
• Đơn giản và dễ sử dụng: chỉ có thao tác đóng và mở.
• Hiệu quả: không cần sử dụng những cấu trúc dữ liệu
phức tạp như cây và danh sách liên kết.
• Có thể mở rộng: có thể dung để đồng bộ hóa tào
nguyên và số lượng lớn tiến trình và luồng.
Nhược điểm
• Có thể dẫn đến mất hiệu xuất: nếu một Semaphore
bị khóa trong thời gian dài sẽ dẫn đến mất hiệu suất.
• Không thể đồng bộ hóa các tài nguyên không thể
phân chia: Semaphore chỉ có thể dung để đồng bộ
các tài nguyên được phân chia. Ví dụ một Semaphore
có thể sử dụng để đồng bộ hóa truy cập vào một tẹp,
nhưng không thể đồng bộ hóa truy cập vào thiết bị
I/O.
BÀI TOÁN NGƯỜI SẢN XUẤT –
NGƯỜI TIÊU THỤ
( PRODUCER – CONSUMER )
Bài toán sản xuất tiêu thụ được phát biểu chung như
sau: Có một bộ đệm(Buffer) và 2 tiến trình sản xuất
Producer và tiến trình tiêu thụ Consumer. Tiến trình
Producer lần lượt sản xuất các sản phẩm item 1, item 2
vào khoang của bộ đệm Buffer. Tiến trình tiêu thụ lần
lượt lấy các sản phẩm ra khỏi bộ đệm. Công việc của
Producer và Consumer cần được đồng bộ hóa tiến trình
Consumer không thể lấy sản phẩm ra khi bộ đệm trống,
và tiến trình Producer không thể sản xuất khi bộ đệm
đầy. Đồng bộ hóa bằng 2 đèn hiệu semFull và
semEmpty