Perbezaan antara mutex dan semaphore
- 3401
- 967
- Dr. Anthony Turcotte
Mutex vs Semaphore
Mutex digunakan untuk memberikan akses bersiri kepada sebahagian daripada kod semula yang tidak dapat dilaksanakan selari dengan lebih daripada satu utas. Mutex memastikan bahawa hanya satu kod yang dapat mengakses bahagian terkawal pada satu masa. Untuk mendapatkan akses, kod lain dibuat untuk menunggu sehingga kod pertama keluar. Anda boleh menganggapnya seperti kunci bilik. Orang yang mempunyai akses ke kunci itu terlebih dahulu. Sehingga masa orang itu kembali, tidak ada yang dapat mengakses bilik itu.
Semaphore memberikan akses kepada sumber bersama kepada beberapa pengguna secara serentak. Oleh kerana bilangan pengguna mengakses kenaikan sumber, kiraan semaphore mengurangkan. Sebaik sahaja pengguna mula melepaskan sumber, kiraan semaphore mula meningkat lagi. Ia digunakan oleh aplikasi yang memerlukan penyegerakan. Bilangan pengguna serentak dihadkan berdasarkan had semaphore. Semaphore boleh dianggap sebagai sekumpulan kunci yang serupa dengan kunci yang serupa dengan satu bilik, tetapi kunci ini terhad. Orang yang mempunyai kunci ini dapat berkongsi bilik.
Perbezaan antara mutex dan semaphore:
1. Mutex digunakan untuk pengecualian bersama sedangkan semaphore mendapati utilitinya dalam kedua -dua acara
Pemberitahuan dan pengecualian bersama.
2. Mutex menyediakan akses siri kepada sumber bersama sedangkan semaphore meletakkan had untuk
bilangan akses serentak.
3. Mutex berfungsi dengan satu benang pada satu masa sementara semaphore menguruskan pelbagai utas
bersama.
4. Mutex mempunyai konsep pemilik di mana proses yang mengunci mutex hanya boleh
membuka semula. Tidak ada proses lain yang dapat melakukannya. Tetapi dalam kes semaphore, seperti itu
Sekatan tidak wujud.
5. Mutex adalah mekanisme penguncian manakala semaphore adalah mekanisme isyarat dengan
menghormati menyegerakkan akses ke sumber.
Ringkasan:
1. Secara semantik dan teori, kedua -dua mutex dan semaphore adalah sama. Seseorang boleh
dilaksanakan menggunakan yang lain, tetapi praktikalnya berbeza.
2. Mutex hanyalah semaphore dengan nilai kiraan yang sama dengan satu.
3. Mutex adalah semaphore dengan ciri tambahan seperti pemilikan dan penyongsangan keutamaan
perlindungan.
4. Semaphore adalah jenis data abstrak yang mengawal akses kepada sumber bersama oleh
pelbagai proses dalam persekitaran pengaturcaraan selari.
5. Semaphore mendapati penggunaannya dalam banyak sistem operasi sebagai primitif penyegerakan.
6. Kedua -dua mutex dan semaphore adalah sumber kernel yang digunakan untuk tujuan
Penyegerakan.