Sự khác biệt giữa Semaphore và Monitor trong HĐH

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 5 Có Thể 2024
Anonim
Sự khác biệt giữa Semaphore và Monitor trong HĐH - Công Nghệ
Sự khác biệt giữa Semaphore và Monitor trong HĐH - Công Nghệ

NộI Dung


Semaphore và Monitor đều cho phép các quá trình truy cập các tài nguyên được chia sẻ trong loại trừ lẫn nhau. Cả hai đều là công cụ đồng bộ hóa quy trình. Thay vào đó, họ rất khác nhau. Ở đâu Semaphore là một biến số nguyên chỉ có thể được vận hành bằng thao tác Wait () và signal () ngoài khởi tạo. Mặt khác, Màn hình, máy quan sát loại là một kiểu dữ liệu trừu tượng có cấu trúc cho phép một quá trình được kích hoạt cùng một lúc. Trong bài viết này, chúng tôi sẽ thảo luận về sự khác biệt giữa semaphore và màn hình với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhSemaphore Màn hình, máy quan sát
Căn bản Semaphores là một biến số nguyên S.Màn hình là một loại dữ liệu trừu tượng.
Hoạt độngGiá trị của Semaphore S cho biết số lượng tài nguyên được chia sẻ có sẵn trong hệ thốngKiểu Màn hình chứa các biến được chia sẻ và tập hợp các thủ tục hoạt động trên biến được chia sẻ.
Truy cậpKhi bất kỳ quá trình nào truy cập vào các tài nguyên được chia sẻ, nó thực hiện thao tác Wait () trên S và khi nó giải phóng các tài nguyên được chia sẻ, nó thực hiện thao tác signal () trên S.Khi bất kỳ quá trình nào muốn truy cập các biến được chia sẻ trong màn hình, nó cần truy cập nó thông qua các thủ tục.
Biến điều kiệnSemaphore không có các biến điều kiện.Màn hình có các biến điều kiện.


Định nghĩa của Semaphore

Là một công cụ đồng bộ hóa quy trình, Semaphore là một biến số nguyên S. Biến số nguyên S này được khởi tạo cho số lượng tài nguyên có mặt trong hệ thống. Giá trị của semaphore S chỉ có thể được sửa đổi bằng hai hàm chờ đợi() và tín hiệu() ngoài việc khởi tạo.

Hoạt động Wait () và signal () sửa đổi giá trị của semaphore S không thể phân biệt được. Có nghĩa là khi một quá trình đang sửa đổi giá trị của semaphore, không có quá trình nào khác có thể đồng thời sửa đổi giá trị của semaphore. Hơn nữa, hệ điều hành phân biệt semaphore trong hai loại Đếm semaphores và Baph semaphore.

Trong Đếm Semaphore, giá trị của semaphore S được khởi tạo cho số lượng tài nguyên có trong hệ thống. Bất cứ khi nào một quá trình muốn truy cập các tài nguyên được chia sẻ, nó sẽ thực hiện chờ đợi() hoạt động trên semaphore mà giảm giá trị của semaphore bởi một. Khi nó giải phóng tài nguyên được chia sẻ, nó thực hiện một tín hiệu() hoạt động trên semaphore mà gia số giá trị của semaphore bởi một. Khi số lượng semaphore đi đến 0, nó có nghĩa là tất cả tài nguyên bị chiếm đóng bởi các quy trình. Nếu một quá trình cần sử dụng tài nguyên khi số lượng semaphore bằng 0, thì nó thực thi Wait () và get bị chặn cho đến khi một quá trình sử dụng các tài nguyên được chia sẻ sẽ giải phóng nó và giá trị của semaphore trở nên lớn hơn 0.


Trong Semaphore nhị phân, giá trị của semaphore nằm trong khoảng từ 0 đến 1. Nó tương tự như khóa mutex, nhưng mutex là một cơ chế khóa trong khi đó, semaphore là một cơ chế báo hiệu. Trong semaphore nhị phân, nếu một tiến trình muốn truy cập vào tài nguyên thì nó thực hiện thao tác Wait () trên semaphore và giảm giá trị của semaphore từ 1 đến 0. Khi quá trình giải phóng tài nguyên, nó thực hiện một tín hiệu() hoạt động trên semaphore và tăng giá trị của nó lên 1. Nếu giá trị của semaphore là 0 và một quá trình muốn truy cập vào tài nguyên mà nó thực hiện thao tác Wait () và tự chặn cho đến khi quy trình hiện tại sử dụng tài nguyên giải phóng tài nguyên.

Định nghĩa của màn hình

Để khắc phục các lỗi thời gian xảy ra trong khi sử dụng semaphore để đồng bộ hóa quy trình, các nhà nghiên cứu đã giới thiệu một cấu trúc đồng bộ hóa mức cao, tức là loại màn hình. Một loại màn hình là một kiểu dữ liệu trừu tượng được sử dụng để đồng bộ hóa quá trình.

Là một loại màn hình loại dữ liệu trừu tượng có chứa các biến dữ liệu được chia sẻ được chia sẻ bởi tất cả các quy trình và một số lập trình viên xác định hoạt động cho phép các quy trình thực hiện loại trừ lẫn nhau trong màn hình. Một quá trình có thể không truy cập trực tiếp biến dữ liệu được chia sẻ trong màn hình; quá trình phải truy cập nó thông qua thủ tục được xác định trong màn hình chỉ cho phép một quá trình truy cập các biến được chia sẻ trong màn hình tại một thời điểm.

Cú pháp của màn hình như sau:

màn hình Monitor_name {// thủ tục khai báo biến được chia sẻ P1 (..) {} thủ tục P2 (...) {} thủ tục Pn (...) {} mã khởi tạo (...) {}}

Một màn hình là một cấu trúc như chỉ có một quá trình được kích hoạt tại một thời điểm trong màn hình. Nếu quá trình khác cố gắng truy cập vào biến được chia sẻ trong màn hình, nó sẽ bị chặn và được xếp hàng trong hàng đợi để có quyền truy cập vào dữ liệu được chia sẻ khi quá trình truy cập trước đó giải phóng nó.

Biến điều kiện đã được giới thiệu cho cơ chế đồng bộ hóa bổ sung. Biến điều kiện cho phép một quá trình chờ đợi bên trong màn hình và cho phép một quy trình chờ để tiếp tục ngay lập tức khi quy trình khác giải phóng tài nguyên.

Các biến điều kiện chỉ có thể gọi hai thao tác chờ đợi() và tín hiệu(). Nếu một quá trình P gọi chờ () hoạt động nó bị đình chỉ trong màn hình cho đến quá trình khác Tín hiệu gọi Q () hoạt động, tức là một hoạt động tín hiệu () được gọi bởi một quy trình nối lại quy trình bị đình chỉ.

  1. Sự khác biệt cơ bản giữa semaphore và màn hình là semaphore là một biến số nguyên S trong đó chỉ ra số lượng tài nguyên có sẵn trong hệ thống trong khi, màn hình, máy quan sátkiểu dữ liệu trừu tượng cho phép chỉ có một quá trình thực hiện trong phần quan trọng tại một thời điểm.
  2. Giá trị của semaphore có thể được sửa đổi bởi chờ đợi() tín hiệu() chỉ hoạt động. Mặt khác, một màn hình có các biến được chia sẻ và các thủ tục chỉ thông qua đó các biến được chia sẻ có thể được truy cập bởi các quy trình.
  3. Trong Semaphore khi một quy trình muốn truy cập các tài nguyên được chia sẻ, quy trình thực hiện chờ đợi() vận hành và chặn các tài nguyên và khi nó giải phóng các tài nguyên mà nó thực hiện tín hiệu() hoạt động. Trong các màn hình khi một quá trình cần truy cập vào các tài nguyên được chia sẻ, nó phải truy cập chúng thông qua các thủ tục trong màn hình.
  4. Loại màn hình có biến điều kiện mà semaphore không có.

Phần kết luận:

Màn hình dễ thực hiện hơn semaphore, và có rất ít cơ hội nhầm lẫn trong màn hình so với semaphores.