Perbedaan antara mutex dan semaphore
- 5041
- 656
- Richard Hegmann MD
Mutex vs Semaphore
Mutex digunakan untuk memberikan akses serial ke bagian dari kode masuk kembali yang tidak dapat dieksekusi secara paralel dengan lebih dari satu utas. Mutex memastikan bahwa hanya satu kode yang dapat mengakses bagian yang dikendalikan pada satu waktu. Untuk mendapatkan akses, kode lain dibuat untuk menunggu sampai kode pertama keluar. Anda dapat menganggapnya seperti kunci ruangan. Orang yang memiliki akses ke kunci itu terlebih dahulu. Sampai saat orang tersebut kembali, tidak ada orang lain yang dapat mengakses ruangan itu.
Semaphore memberikan akses ke sumber daya bersama ke sejumlah pengguna secara bersamaan. Ketika jumlah pengguna yang mengakses sumber daya meningkat, jumlah semaphore berkurang. Setelah pengguna mulai melepaskan sumber daya, jumlah semaphore mulai naik lagi. Itu digunakan oleh aplikasi yang memerlukan sinkronisasi. Jumlah pengguna bersamaan dibatasi berdasarkan batas semaphore. Semaphore dapat dianggap sebagai sekelompok kunci yang sama dengan kunci yang sama dengan satu kamar, tetapi kunci ini terbatas jumlahnya. Orang yang memiliki kunci ini dapat berbagi kamar.
Perbedaan antara Mutex dan Semaphore:
1. Mutex digunakan untuk eksklusi timbal balik sedangkan Semaphore menemukan utilitasnya di kedua acara
pemberitahuan dan pengecualian timbal balik.
2. Mutex menyediakan akses serial ke sumber daya umum sedangkan semaphore membatasi
Jumlah akses bersamaan.
3. Mutex bekerja dengan satu utas pada satu waktu sementara Semaphore mengelola banyak utas
bersama.
4. Mutex memiliki konsep pemilik di mana proses yang mengunci mutex hanya bisa
buka kembali. Tidak ada proses lain yang bisa melakukannya. Tetapi dalam kasus semaphore, seperti itu
pembatasan tidak ada.
5. Mutex adalah mekanisme penguncian sedangkan semaphore adalah mekanisme pensinyalan dengan
Menghormati Sinkronisasi Akses ke Sumber Daya.
Ringkasan:
1. Semantik dan secara teori, baik mutex dan semaphore adalah sama. Seseorang bisa
diimplementasikan menggunakan yang lain, tetapi praktis keduanya berbeda.
2. Mutex tidak lain adalah semaphore dengan nilai jumlah yang sama dengan satu.
3. Mutex adalah semaphore dengan fitur tambahan seperti kepemilikan dan inversi prioritas
perlindungan.
4. Semaphore adalah tipe data abstrak yang mengontrol akses ke sumber daya umum oleh
Berbagai proses dalam lingkungan pemrograman paralel.
5. Semaphore menemukan penggunaannya dalam banyak sistem operasi sebagai primitif sinkronisasi.
6. Baik Mutex dan Semaphore adalah sumber daya kernel yang digunakan untuk tujuan
sinkronisasi.