Câu 21. Semaphore là gì? Giải thích cơ chế hoạt động của semaphore ?

Màu nền
Font chữ
Font size
Chiều cao dòng

Câu 21. Semaphore là gì? Giải thích cơ chế hoạt động của semaphore ?
Semaphores là một cấu trúc dữ liệu được định nghĩa để loại trừ khả năng xung đột
trong quá trình chia sẻ tài nguyên của các tác vụ trong hoạt động của hệ thống.Semaphores hỗ trợ hai hoạt động chính như sau:
 wait(semaphore): giảm và khoá cho tới khi semaphore được mở
 signal(semaphore): tăng và cho phép thêm một luồng mới được tham gia hoạt
động

-giải thích cơ chế hoạt dộng của semaphore

Trong hoạt động phối hợp cùng với semaphore có một hàng đợi gồm các tác vụ cần được thực
thi sẽ có một số tình huống hoạt động cơ bản như sau:
Khi một luồng (thread) gọi wait():
• Nếu semaphore được mở thì luồng đó sẽ được gia nhập và tiếp tục thực thi
• Nếu semaphore đang bị đóng thì nhánh đó sẽ bị khoá và phải nằm chờ trong hàng đợi cho tới
khi nào semaphore được mở signal() sẽ mở semaphore:
• nếu một luồng đang nằm trong hàng đợi và không bị khoá
• nếu không có luồng nào trong hàng đợi và tín hiệu signal sẽ được nhớ và dành cho luồng tiếp
theo

Các loại Semaphore
Mutex semaphore
Cho phép điều khiển hoạt động truy nhập đơn lẻ vào tài nguyên chia sẻ của
hệ thống. Đảm bảo loại trừ xung đột trong hoạt động truy nhập đồng thời của nhiều tác
vụ, và chỉ có một tác vụ được thực thi tại mỗi thời điểm.

Counting semaphore Điều khiển tài nguyên mà có thể phục vụ cùng một lúc nhiều tác vụ hoặc một nguồn tài nguyên cho phép phục vụ một số nhất định các tác vụ không đồng bộ và hoạt động đồng thời.
Nhiều luồng có thể truyền Semaphore
Số lượng luồng được quyết định bởi biến đếm N của Semaphore

Thực chất mutex semaphore là một dạng đặc biệt của counting semaphore với biến đếm
N=1.
Thực thi Semaphore
Sử dụng Semaphore trong việc đồng bộ hai quá trình tạo và sử dụng hạng mục thông qua bộ đệm trung gian.
Nhận xét:
Semaphores có thể được sử dụng để giải quyết bất kỳ một bài toán hay vấn đề
đồng bộ truyền thống nào
Tuy nhiên chúng có một số nhược điểm
o Chúng chủ yếu sử dụng các biến toàn cục trong việc điều khiển hoạt động
đồng bộ nên có thể truy nhập bất kỳ đâu trong hệ thống Æ khó kiểm soát
o Không có sự liên kết chặt chẽ giữa semaphore và dữ liệu mà được nó điều
khiển.
o Được sử dụng đồng thời cho cả việc loại trừ xung đột (mutual exclusion) và
hoạt động đồng bộ cho các tác vụ (scheduling)

Bạn đang đọc truyện trên: Truyen2U.Pro

#huy