Perbezaan antara mutex dan semaphore

Perbezaan antara mutex dan semaphore

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.