Forskellen mellem Semaphore og Monitor i OS

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 5 Kan 2024
Anonim
Forskellen mellem Semaphore og Monitor i OS - Teknologi
Forskellen mellem Semaphore og Monitor i OS - Teknologi

Indhold


Semaphore og Monitor giver begge processer adgang til de delte ressourcer i gensidig udelukkelse. Begge er processynkroniseringsværktøjet. I stedet for er de meget forskellige fra hinanden. Hvor Semaphore er en heltalvariabel, der kun kan betjenes ved vente () og signal () betjening bortset fra initialiseringen. På den anden side Overvåge type er en abstrakt datatype, hvis konstruktion giver mulighed for, at en proces kan aktiveres ad gangen. I denne artikel vil vi diskutere forskellene mellem semafor og monitor ved hjælp af sammenligningstabellen vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningSemaphore Overvåge
Grundlæggende Semaforer er en heltalvariabel S.Monitor er en abstrakt datatype.
HandlingVærdien af ​​Semaphore S angiver antallet af delte ressourcer, der er tilgængelige i systemetMonitortypen indeholder delte variabler og det sæt procedurer, der fungerer på den delte variabel.
AdgangNår en hvilken som helst proces får adgang til de delte ressourcer, udfører den vent () -operation på S, og når den frigiver de delte ressourcer, udfører den signal () -operation på S.Når en hvilken som helst proces ønsker at få adgang til de delte variabler på skærmen, skal den få adgang til den gennem procedurerne.
TilstandsvariabelSemaphore har ikke tilstandsvariabler.Monitor har tilstandsvariabler.


Definition af Semaphore

At være et processynkroniseringsværktøj, Semaphore er en heltalvariabel S. Denne heltalvariabel S initialiseres til antal ressourcer til stede i systemet. Værdien af ​​semafor S kan kun ændres med to funktioner vente() og signal() bortset fra initialisering.

Vent () og signal () betjening ændrer værdien af ​​semaforen S udelelig. Hvilket betyder, at når en proces modificerer semaforens værdi, kan ingen anden proces samtidigt ændre semaforens værdi. Operativsystemet adskiller desuden semaforen i to kategorier Tælle semaforer og binær semafor.

I Tæller Semafore, initialiseres værdien af ​​semafor S til antallet af ressourcer, der findes i systemet. Hver gang en proces ønsker at få adgang til de delte ressourcer, udføres den vente() operation på semaforen, som formindskelser værdien af ​​semafor med én. Når den frigiver den delte ressource, udfører den en signal() operation på semaforen, som intervaller værdien af ​​semafor med én. Når semaforoptællingen går til 0, det betyder alle ressourcer er besat ved processerne. Hvis en proces har brug for at bruge en ressource, når semaforoptælling er 0, udføres den vente () og få blokeret indtil en proces, der bruger de delte ressourcer, frigiver den, og værdien af ​​semafor bliver større end 0.


I Binær semafor, værdien af ​​semafor varierer mellem 0 og 1. Den ligner mutexlås, men mutex er en låsemekanisme, mens semaforen er en signalmekanisme. I binær semafor, hvis en proces ønsker at få adgang til ressourcen, udfører den vent () -operation på semaforen og formindskelser værdien af ​​semafor fra 1 til 0. Når processen frigiver ressourcen, udfører den en signal() operation på semaforen og øger dens værdi til 1. Hvis værdien af ​​semaforen er 0, og en proces ønsker at få adgang til ressourcen, udfører den vent () -operation og blokere sig selv, indtil den aktuelle proces, der bruger ressourcerne, frigiver ressourcen.

Definition af skærm

For at overvinde timingsfejl, der opstår under anvendelse af semafor til processynkronisering, har forskerne introduceret en synkroniseringskonstruktion på højt niveau, dvs. skærmtype. En skærmtype er en abstrakt datatype der bruges til processynkronisering.

At være en abstrakt datatype skærmtype indeholder delte datavariabler som skal deles af alle processer og nogle programmerer-definerede operationer der tillader, at processer udføres i gensidig udelukkelse inden for monitoren. En proces kan ikke direkte adgang den delte datavariabel i monitoren; processen skal have adgang til den gennem procedurer defineret i skærmen, som kun tillader en proces at få adgang til de delte variabler i en skærm ad gangen.

Syntaks for monitor er som følger:

monitor monitor_name {// delt variabel deklarationsprocedure P1 (...) {} procedure P2 (...) {} procedure Pn (...) {} initialiseringskode (..) {}}

En skærm er en konstruktion, som kun en proces er aktiv ad gangen inden for skærmen. Hvis en anden proces forsøger at få adgang til den delte variabel i skærmen, blokeres den og er indrettet i køen for at få adgang til delte data, når tidligere adgangsprocessen frigiver dem.

Betingede variabler blev introduceret for yderligere synkroniseringsmekanisme. Den betingede variabel gør det muligt for en proces at vente inde i skærmen og tillader, at en venteproces genoptages straks, når den anden proces frigiver ressourcerne.

Det betinget variabel kan kun påkalde to operationer vente() og signal(). Hvor hvis en proces P påkalder en ventetid () drift det bliver suspenderet i skærmen indtil anden proces Q påkalde signal () operation, dvs. en signal () -operation, der påberåbes af en proces, genoptager den suspenderede proces.

  1. Den grundlæggende forskel mellem semafor og monitor er, at semafor er en heltalvariabel S der angiver antallet af tilgængelige ressourcer i systemet, mens overvåge er abstrakt datatype som kun tillader en proces at udføre i et kritisk afsnit ad gangen.
  2. Værdien af ​​semafor kan ændres af vente() og signal() kun drift. På den anden side har en skærm de delte variabler og procedurerne, som delte variabler kan få adgang til via processerne.
  3. I Semaphore, når en proces ønsker at få adgang til delte ressourcer, udfører processen vente() betjening og blokering af ressourcerne, og når den frigiver de ressourcer, den udfører signal() betjening. På skærme, når en proces har brug for adgang til delte ressourcer, skal den få adgang til dem gennem procedurer i monitor.
  4. Monitor type har tilstandsvariabler hvilken semafor ikke har.

Konklusion:

Skærme er lette at implementere end semafor, og der er en lille chance for fejl i monitor i sammenligning med semaforer.