Semaphore so với Mutex

Tác Giả: Laura McKinney
Ngày Sáng TạO: 4 Tháng Tư 2021
CậP NhậT Ngày Tháng: 10 Có Thể 2024
Anonim
What is difference between Semaphore and Mutex
Băng Hình: What is difference between Semaphore and Mutex

NộI Dung

Sự khác biệt giữa semaphore và mutex là semaphore là một cơ chế báo hiệu trong khi mutex là cơ chế khóa.


Hệ điều hành là khái niệm quan trọng nhất trong khoa học máy tính, trong hệ điều hành, hai khái niệm chính là semaphore và mutex. Có rất nhiều sự khác biệt giữa một semaphore và mutex. Nếu chúng ta nói về sự khác biệt chính, thì sự khác biệt chính giữa semaphore và mutex là semaphore là một cơ chế báo hiệu trong khi mutex là cơ chế khóa.

Sự khác biệt giữa semaphore và mutex đến trong các quy trình; semaphore thực hiện thao tác Wait () và signal (), hàm này có trách nhiệm biết liệu chúng có được hay chúng đã giải phóng tài nguyên. Mặt khác, nếu chúng ta nói về mutex, mutex là cơ chế khóa.

Semaphore là một biến số nguyên S; semaphore là một cơ chế báo hiệu. Trong một hệ điều hành, cần có một công cụ đồng bộ hóa và công cụ đó trong hệ điều hành được gọi là semaphore. Có hai chức năng chính của semaphore đang chờ (), signal (). Giá trị semaphore được thay đổi với hai hàm đang chờ () và signal (). Khi một quy trình đang sử dụng tài nguyên, semaphore đang chờ () và khi quy trình sử dụng tài nguyên đó và tài nguyên đó là miễn phí, thì semaphore sẽ đưa ra tín hiệu (). Các hàm này là Wait () và signal (), chúng được sử dụng vì chỉ một quá trình có thể sử dụng tài nguyên tại một thời điểm. Một tài nguyên không thể được trao cho hai quá trình. Có hai loại semaphore trong hệ điều hành là semaphore nhị phân và semaphore đếm. Khi đếm semaphore, giá trị khởi tạo là số lượng tài nguyên có sẵn. Khi một quá trình đang sử dụng một tài nguyên, nó phải đối mặt với sự chờ đợi () và phải chờ tài nguyên đó. Đếm giá trị semaphore được giảm từng cái một. Khi một quy trình sử dụng tài nguyên, nó sẽ giải phóng tài nguyên đó và phát ra tín hiệu () để nó phải miễn phí cho một quy trình khác. Khi số lượng tài nguyên bằng 0, điều đó có nghĩa là không có tài nguyên nào khả dụng cho quy trình sắp tới. Có hai giá trị trong semaphore nhị phân là 0 và 1. Khi quá trình đang sử dụng giá trị tài nguyên của semaphore nhị phân là từ 1 đến 0 và khi một tài nguyên đã sử dụng tài nguyên thì giá trị của semaphore nhị phân là 1 đến 0.


Mutex còn được gọi là đối tượng loại trừ lẫn nhau. Chúng tôi biết rằng chỉ có một quy trình có thể sử dụng tài nguyên cùng một lúc. Đây là lý do có một hệ thống khóa và hệ thống khóa đó được gọi là mutex. Khóa Mutex được trao cho một quy trình khi quy trình đó đang sử dụng tài nguyên. Đối tượng Mutex có một tên và ID duy nhất. Trong một chương trình bất cứ khi nào có nhu cầu về khóa mutex, khóa mutex được gọi bằng tên và ID của nó. Nếu chúng ta thấy mã của mutex, chúng ta sẽ hiểu rõ về việc triển khai và sử dụng khóa mutex.

Nội dung: Sự khác biệt giữa Semaphore và Mutex

  • Biểu đồ so sánh
  • Semaphore
  • Mutex
  • Phần kết luận
  • Video giải thích

Biểu đồ so sánh

Nền tảngSemaphoreMutex
Ý nghĩaSemaphore là một cơ chế báo hiệuMutex là một cơ chế khóa.
Giá trịSemaphore là một số nguyên.Một mutex là một đối tượng.
Hoạt độngHoạt động của semaphore Wait () và signal ().Hoạt động của mutex là khóa và mở khóa
Các loạiHai loại semaphore là đếm semaphore và semaphore nhị phân.Không có loại khóa mutex.

Semaphore

Semaphore là một biến số nguyên S; semaphore là một cơ chế báo hiệu. Trong một hệ điều hành, cần có một công cụ đồng bộ hóa và công cụ đó trong hệ điều hành được gọi là semaphore. Có hai chức năng chính của semaphore đang chờ (), signal (). Giá trị semaphore được thay đổi với hai hàm đang chờ () và signal (). Khi một quy trình đang sử dụng tài nguyên, semaphore đang chờ () và khi quy trình sử dụng tài nguyên đó và tài nguyên đó là miễn phí, thì semaphore sẽ đưa ra tín hiệu (). Các hàm này là Wait () và signal (), chúng được sử dụng vì chỉ một quá trình có thể sử dụng tài nguyên tại một thời điểm.


Một tài nguyên không thể được trao cho hai quá trình. Có hai loại semaphore trong hệ điều hành là semaphore nhị phân và semaphore đếm. Khi đếm semaphore, giá trị khởi tạo là số lượng tài nguyên có sẵn. Khi một quá trình đang sử dụng một tài nguyên, nó phải đối mặt với sự chờ đợi () và phải chờ tài nguyên đó. Đếm giá trị semaphore được giảm từng cái một. Khi một quy trình sử dụng tài nguyên, nó sẽ giải phóng tài nguyên đó và phát ra tín hiệu () để nó phải miễn phí cho một quy trình khác. Khi số lượng tài nguyên bằng 0, điều đó có nghĩa là không có tài nguyên nào khả dụng cho quy trình sắp tới. Có hai giá trị trong semaphore nhị phân là 0 và 1. Khi quá trình đang sử dụng giá trị tài nguyên của semaphore nhị phân là từ 1 đến 0 và khi một tài nguyên đã sử dụng tài nguyên thì giá trị của semaphore nhị phân là 1 đến 0.

Mutex

Mutex còn được gọi là đối tượng loại trừ lẫn nhau. Chúng tôi biết rằng chỉ có một quy trình có thể sử dụng tài nguyên cùng một lúc. Đây là lý do có một hệ thống khóa và hệ thống khóa đó được gọi là mutex. Khóa Mutex được trao cho một quy trình khi quy trình đó đang sử dụng tài nguyên. Đối tượng Mutex có một tên và ID duy nhất. Trong một chương trình bất cứ khi nào có nhu cầu về khóa mutex, khóa mutex được gọi bằng tên và ID của nó. Nếu chúng ta thấy mã của mutex, chúng ta sẽ hiểu rõ về việc triển khai và sử dụng khóa mutex.

Sự khác biệt chính

  1. Semaphore là một cơ chế báo hiệu trong khi Mutex là khóa
  2. Semaphore là một số nguyên trong khi Mutex là một đối tượng.
  3. Hoạt động của semaphore Wait () và signal () trong khi Hoạt động của mutex là khóa và mở khóa.
  4. Hai loại semaphore đang đếm semaphore và semaphore nhị phân trong khi không có loại mutexore

Phần kết luận

Trong bài viết này ở trên, chúng tôi thấy sự khác biệt rõ ràng giữa semaphore và mutex với việc thực hiện đúng.

Video giải thích