Mutex vs Semaphore
A Mutex-eket arra használják, hogy sorosított hozzáférést biztosítsanak egy újbóli belépő kódnak egy olyan részéhez, amelyet egynél több szál nem képes párhuzamosan végrehajtani. A mutex biztosítja, hogy egyszerre csak egy kód férjen hozzá a vezérelt szakaszhoz. A hozzáféréshez más kódokat kell várni, amíg az első kód kilép. Ezt úgy tekintheti, mint egy szoba kulcsát. Az a személy, aki hozzáfér a kulcshoz, előbb megy. Amíg a személy visszatér, senki más nem férhet be a szobába.
A szemafor egyszerre több felhasználó számára hozzáférést biztosít a megosztott erőforráshoz. Ahogy az erőforráshoz hozzáférő felhasználók száma növekszik, a szemaforok száma csökken. Amint a felhasználók elindítják az erőforrást, a szemaforok száma újra növekedni kezd. Szinkronizálást igénylő alkalmazások használják. Az egyidejű felhasználók számát a szemafor-határérték korlátozza. A szemafor úgy tekinthető, mint egy csomó hasonló kulcs, hasonló helyiségekhez hasonló zárakhoz, de ezeknek a kulcsoknak a száma korlátozott. Azok a emberek, akik rendelkeznek ezekkel a kulcsokkal, megoszthatják a helyiséget.
Különbségek a mutex és a szemafor között:
1. A Mutexet használják a kölcsönös kizárásra, míg a szemafor mindkét esetben hasznos
értesítés és kölcsönös kizárások.
2. A Mutex soros hozzáférést biztosít a közös erőforrásokhoz, míg a szemafor korlátozza
az egyidejű hozzáférések száma.
3. A mutex egyszerre egy szállal működik, míg a szemafor több szálat kezel
együtt.
4. A Mutex fogalma a tulajdonos, ahol csak a mutex zárolható folyamat végezhető el
nyissa újra. A többi folyamat sem képes erre. De a szemafor esetében ilyen
korlátozások nem léteznek.
5. A mutex reteszelő mechanizmus, míg a szemafor jelző mechanizmus
az erőforrásokhoz való hozzáférés szinkronizálása.
Összefoglaló:
1. Szemantikailag és elméletileg mind a mutex, mind a szemafor azonos. Lehet
A másikkal megvalósítva, de gyakorlatilag mindkettő különbözik egymástól.
2. A mutex nem más, mint egy szemafor, amelynek számlálási értéke egyenlő.
3. A mutex egy olyan szemafor, amely további funkciókkal rendelkezik, mint például a tulajdonjog és a prioritási inverzió
védelem.
4. A szemafor egy elvont adattípus, amely a. Által ellenőrzi a közös erőforráshoz való hozzáférést
több folyamat párhuzamos programozási környezetben.
5. A szemafor sok operációs rendszerben szinkronizálás primitívnek találja.
6. Mind a mutex, mind a szemafor olyan kernel erőforrások, amelyeket erre a célra használnak
összehangolás.