Diferència entre Semàfor i Monitor en sistema operatiu

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 5 Ser Possible 2024
Anonim
Diferència entre Semàfor i Monitor en sistema operatiu - Tecnologia
Diferència entre Semàfor i Monitor en sistema operatiu - Tecnologia

Content


El semàfor i el monitor permeten que els processos accedeixin als recursos compartits en exclusió mútua. Totes dues són l’eina de sincronització de processos. En canvi, són molt diferents entre si. On Semàfor és una variable sencera que només es pot operar per operació wait () i senyal () a part de la inicialització. D’altra banda, el Monitor El tipus és un tipus de dades abstracte la construcció del qual permet activar un procés alhora. En aquest article, tractarem les diferències entre el semàfor i el monitor amb l'ajut del gràfic de comparació que es mostra a continuació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióSemàfor Monitor
Bàsic Els semàfors és una variable sencera.El monitor és un tipus de dades abstracte.
AccióEl valor del Semàfor S indica el nombre de recursos compartits disponibles en el sistemaEl tipus Monitor conté variables compartides i el conjunt de procediments que operen en la variable compartida.
AccésQuan qualsevol procés accedeix als recursos compartits realitza una operació wait () a S i quan allibera els recursos compartits realitza una operació de senyal () a S.Quan qualsevol procés vol accedir a les variables compartides al monitor, cal accedir-hi mitjançant els procediments.
Variable de condicióEl semàfor no té variables de condició.El monitor té variables de condició.


Definició de Semaphore

Al ser una eina de sincronització de processos, Semàfor és un variable sencera S Aquesta variable sencera s'inicialitza a nombre de recursos presents en el sistema. El valor del semàfor S només es pot modificar amb dues funcions espera() i senyal() a part de la inicialització.

L’operació wait () i signal () modifiquen el valor del semàfor S indivisiblement. La qual cosa significa que quan un procés modifica el valor del semàfor, cap altre procés pot modificar simultàniament el valor del semàfor. A més, el sistema operatiu distingeix el semàfor en dues categories Comptant semàfors i semàfor binari.

Dins Comptant el semàfor, el valor del semàfor S s'inicialitza per al nombre de recursos presents al sistema. Sempre que un procés vol accedir als recursos compartits, es realitza espera() operació al semàfor que decrets el valor del semàfor per un. Quan allibera el recurs compartit, realitza una senyal() operació al semàfor que increments el valor del semàfor per un. Quan el recompte del semàfor va a 0, significa tots els recursos estan ocupats pels processos. Si un procés ha d’utilitzar un recurs quan el recompte de semàfors és 0, executa wait () i get bloquejat fins que un procés que utilitza els recursos compartits l’allibera i el valor del semàfor esdevé superior a 0.


Dins Semàfor binari, el valor del semàfor oscil·la entre 0 i 1. És similar al mutex lock, però el mutex és un mecanisme de bloqueig mentre que, el semàfor és un mecanisme de senyalització. Al semàfor binari, si un procés vol accedir al recurs, realitza una operació wait () al semàfor i decrets el valor del semàfor de l'1 al 0. Quan el procés allibera el recurs, realitza a senyal() operació al semàfor i augmenta el seu valor a 1. Si el valor del semàfor és 0 i un procés vol accedir al recurs que realitza l'operació wait () i bloquejar-se fins que el procés actual utilitzant els recursos alliberi el recurs.

Definició de Monitor

Per superar els errors de sincronització que es produeixen mentre s’utilitza el semàfor per a la sincronització de processos, els investigadors han introduït una construcció de sincronització d’alt nivell, és a dir, la tipus de monitor. Un tipus de monitor és un tipus de dades abstracte que s'utilitza per a la sincronització de processos.

El tipus de monitor de tipus de dades abstracte conté el variables de dades compartides que es compartiran per tots els processos i alguns definits pel programador operacions que permeten executar processos en exclusió mútua dins del monitor. Un procés pot no accedeix directament la variable de dades compartida al monitor; el procés ha d’accedir-hi mitjançant procediments definida al monitor que permet a un sol procés accedir a les variables compartides d’un monitor alhora.

La sintaxi del monitor és la següent:

monitor monitor_nom {// procediment de declaracions de variable compartida P1 (..) {} procediment P2 (..) {} procediment Pn (..) {} codi d'inicialització (..) {}}

Un monitor és una construcció, com només un procés està actiu a la vegada dins del monitor. Si un altre procés intenta accedir a la variable compartida al monitor, es bloqueja i es troba alineat a la cua per obtenir accés a les dades compartides quan prèviament accedeix al procés l'allibera.

Variables condicionals es van introduir per al mecanisme de sincronització addicional. La variable condicional permet un procés esperar dins del monitor i permet que un procés d’espera es reprengui immediatament quan l’altre procés alliberi els recursos.

El variable condicional només pot invocar dues operacions espera() i senyal(). En cas que sigui un procés P invoca una espera () operació es suspèn en el monitor fins a un altre procés Q invocar senyal () operació, és a dir, una operació senyal () invocada per un procés reprèn el procés suspès.

  1. La diferència bàsica entre el semàfor i el monitor és que el semàfor és un variable enter S que indiquen el nombre de recursos disponibles al sistema mentre que, el monitor és el tipus de dades abstractes que permet executar només un procés a la secció crítica alhora.
  2. Es pot modificar el valor del semàfor esperar () i senyal () operació només. D’altra banda, un monitor té les variables compartides i els procediments només mitjançant els quals els processos poden accedir a variables compartides.
  3. A Semàfor quan un procés vol accedir a recursos compartits, es realitza el procés espera() opera i bloqueja els recursos i quan allibera els recursos que realitza senyal() operació. En monitors quan un procés necessita accedir a recursos compartits, ha d’accedir a ells mitjançant procediments en monitor.
  4. El tipus de monitor té variables de condició quin semàfor no té.

Conclusió:

Els monitors són fàcils d’implementar que el semàfor, i hi ha poques possibles errades en el monitor en comparació amb els semàfors.