Semaphore so với Mutex
NộI Dung
- 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
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ảng | Semaphore | Mutex |
Ý nghĩa | Semaphore là một cơ chế báo hiệu | Mutex 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 động | Hoạt động của semaphore Wait () và signal (). | Hoạt động của mutex là khóa và mở khóa |
Các loại | Hai 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
- Semaphore là một cơ chế báo hiệu trong khi Mutex là khóa
- Semaphore là một số nguyên trong khi Mutex là một đối tượng.
- Hoạt động của semaphore Wait () và signal () trong khi Hoạt động của mutex là khóa và mở khóa.
- 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.