Semafor verzus Mutex

Autor: Laura McKinney
Dátum Stvorenia: 4 Apríl 2021
Dátum Aktualizácie: 10 Smieť 2024
Anonim
#19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net
Video: #19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net

Obsah

Rozdiel medzi semaforom a mutexom spočíva v tom, že semafor je signalizačným mechanizmom, zatiaľ čo mutex je blokovacím mechanizmom.


Operačný systém je najdôležitejšou koncepciou v informatike, v operačnom systéme sú dva hlavné pojmy: semafor a mutex. Medzi semaforom a mutexom je veľký rozdiel. Ak hovoríme o hlavnom rozdiele, potom hlavným rozdielom medzi semaforom a mutexom je to, že semafor je signalizačný mechanizmus, zatiaľ čo mutex je blokovacím mechanizmom.

V procesoch je rozdiel medzi semaforom a mutexom; Semafor vykonáva operáciu wait () a signal (), táto funkcia je zodpovedná za informáciu, či získali alebo uvoľnili zdroj. Na druhej strane, ak hovoríme o mutexe, mutex je blokovacím mechanizmom.

Semafor je celé číslo S; semafor je signalizačný mechanizmus. V operačnom systéme existuje potreba synchronizačného nástroja a tento nástroj v operačnom systéme je známy ako semafor. Existujú dve hlavné funkcie semafora, ktoré čakajú (), signál (). Hodnota Semafora sa mení pomocou dvoch funkcií, ktoré čakajú () a signalizujú (). Keď proces používa prostriedok, je semafor v čakaní () a keď proces použil prostriedok a tento prostriedok je voľný, potom semafor vydá signál (). Tieto funkcie, ktoré sú wait () a signal (), sa používajú, pretože zdroj môže naraz použiť iba jeden proces. Jeden zdroj nemožno prideliť dvom procesom. V operačnom systéme existujú dva typy semaforov, ktoré sú binárne a počítajúce semafory. Pri počítaní semafora je inicializovaná hodnota počet dostupných zdrojov. Keď proces používa prostriedok, musí čeliť wait () a musí čakať na tento prostriedok. Počítanie hodnoty semafora sa postupne znižuje. Keď proces používa prostriedok, uvoľní tento prostriedok a uvoľňovací signál (), takže musí byť voľný pre iný proces. Ak je počet zdrojov 0, znamená to, že pre nasledujúci proces nie je k dispozícii žiadny prostriedok. V binárnom semafore sú dve hodnoty, ktoré sú 0 a 1. Keď proces používa hodnotu zdroja binárneho semafora je od 1 do 0 a keď zdroj použil zdroj, potom hodnota binárneho semafora je 1 až 0.


Mutex je tiež známy ako objekt vzájomného vylúčenia. Vieme, že zdroj môže naraz použiť iba jeden proces. To je dôvod, prečo existuje systém zamykania a tento systém zámku je známy ako mutex. Mutexový zámok je daný procesu, keď tento proces používa prostriedok. Mutex objekt má jedinečný názov a ID. V programe, kedykoľvek je potreba mutexového zámku, sa mutexový zámok nazýva svojím menom a ID. Ak uvidíme kód mutexu, budeme mať jasnú predstavu o implementácii a použití mutexového zámku.

Obsah: Rozdiel medzi Semaphore a Mutex

  • Porovnávacia tabuľka
  • semafor
  • mutex
  • záver
  • Vysvetľujúce video

Porovnávacia tabuľka

základsemaformutex
zmyselSemafor je signalizačný mechanizmusMutex je blokovací mechanizmus.
hodnotaSemafor je celé číslo.Mutex je objekt.
operácieOperácie semaforového čakania () a signálu ().Operácie mutexu sú zamknuté a odomknuté
druhyDva typy semaforov sa počítajú semafory a binárne semafory.Neexistujú žiadne typy mutexového zámku.

semafor

Semafor je celé číslo S; semafor je signalizačný mechanizmus. V operačnom systéme existuje potreba synchronizačného nástroja a tento nástroj v operačnom systéme je známy ako semafor. Existujú dve hlavné funkcie semafora, ktoré čakajú (), signál (). Hodnota Semafora sa mení pomocou dvoch funkcií, ktoré čakajú () a signalizujú (). Keď proces používa prostriedok, je semafor v čakaní () a keď proces použil prostriedok a tento prostriedok je voľný, potom semafor vydá signál (). Tieto funkcie, ktoré sú wait () a signal (), sa používajú, pretože zdroj môže naraz použiť iba jeden proces.


Jeden zdroj nemožno prideliť dvom procesom. V operačnom systéme existujú dva typy semaforov, ktoré sú binárne a počítajúce semafory. Pri počítaní semafora je inicializovaná hodnota počet dostupných zdrojov. Keď proces používa prostriedok, musí čeliť wait () a musí čakať na tento prostriedok. Počítanie hodnoty semafora sa postupne znižuje. Keď proces používa prostriedok, uvoľní tento prostriedok a uvoľňovací signál (), takže musí byť voľný pre iný proces. Ak je počet zdrojov 0, znamená to, že pre nasledujúci proces nie je k dispozícii žiadny prostriedok. V binárnom semafore sú dve hodnoty, ktoré sú 0 a 1. Keď proces používa hodnotu zdroja binárneho semafora je od 1 do 0 a keď zdroj použil zdroj, potom hodnota binárneho semafora je 1 až 0.

mutex

Mutex je tiež známy ako objekt vzájomného vylúčenia. Vieme, že zdroj môže naraz použiť iba jeden proces. To je dôvod, prečo existuje systém zamykania a tento systém zámku je známy ako mutex. Mutexový zámok je daný procesu, keď tento proces používa prostriedok. Mutex objekt má jedinečný názov a ID. V programe, kedykoľvek je potreba mutexového zámku, sa mutexový zámok nazýva svojím menom a ID. Ak uvidíme kód mutexu, budeme mať jasnú predstavu o implementácii a použití mutexového zámku.

Kľúčový rozdiel

  1. Semafor je signalizačný mechanizmus, zatiaľ čo blokovanie je Mutex
  2. Semafor je celé číslo, zatiaľ čo mutex je objekt.
  3. Operácie semaforového čakania () a signálu (), zatiaľ čo operácie mutexu sú zamknuté a odomknuté.
  4. Dva typy semaforov počítajú semafory a binárne semafory, zatiaľ čo neexistujú žiadne typy mutexov

záver

V tomto článku vyššie vidíme jasný rozdiel medzi semaforom a mutexom pri ich správnej implementácii.

Vysvetľujúce video