Hvad er blokering i operativsystemet: Betingelser og detektionsalgoritme

Prøv Vores Instrument Til At Fjerne Problemer





Hovedformålet med et operativsystem er at tilvejebringe korrekt kommunikation mellem hardware og software ressourcer og også give fælles tjenester til programmer. Når en operativsystemproces ønsker at få adgang til en hvilken som helst ressource, sender den først en anmodning til den bestemte ressource, som den ønsker at få adgang til, derefter udnytter den ressourcen og frigiver endelig ressourcen efter brug. For antag at mange processer forsøger at få adgang til en ressource på samme tid, bliver det vanskeligt at give en ressource til alle processerne ad gangen i en sådan situation opstår begrebet deadlock. Derfor beskriver denne artikel, hvordan dødvande opstår, og hvordan man kan overvinde denne situation med dødvande.

Hvad er deadlock i operativsystemet?

Definition: Dead-Lock er en situation, hvor to eller flere processorer venter på, at en eller anden begivenhed skal ske, men sådanne begivenheder, der ikke sker, er en blindlåsetilstand, og processorer siges at være i en blokade. Lad os for eksempel antage et realtidsscenarie, hvor der er to biler A & B, der køres af to individuelle chauffører på en envejsvej. Nu opstår situationen, hvor bil A-chauffør siger, at han bevæger sig mod nord er en korrekt retning, mens bil B-chauffør siger, at han bevæger sig mod syd er korrekt. Men ingen af ​​dem bevæger sig tilbage for at give en anden bil mulighed for at bevæge sig fremad, denne tilstand kaldes en blokeret tilstand.




Bileksempel

bileksempel

For bedre forståelse, lad os overveje et andet eksempel, hvor der er to ressourcer R1, R2 og to processer P1 og P2, hvor R1 er tildelt P1 og R2 er tildelt P2. Hvis P1 nu vil have adgang til R2, som vi allerede ved, er R2 i besiddelse af P2, og nu vil P2 få adgang til R1, hvilket er P1, der kun udføres, når den får adgang til R2, udfører også P2 kun, når den får adgang til R1, denne situation er en fastlåst tilstand.



Processoreksempel

processor-eksempel

Dead-Lock betingelser

Følgende er de fire vigtige blokeringsbetingelser, der skal opstå, hvis alle forhold opstår samtidigt, der er visse chancer for, at fastlåsning opstår.

Gensidig udelukkelse

Det betyder, at uanset hvilken ressource vi bruger, skal den bruges på en gensidig udelukkende måde. Hvor kun en proces kun bruger én ressource ad gangen. For eksempel foregår udskrivningsprocessen, og pludselig forsøger en anden proces at afbryde udskrivningsprocessen. Så her i gensidig udelukkelsessituation, først efter at udskrivningsopgaven er afsluttet, behandles kun den næste opgave. Gensidig udelukkelse kan elimineres ved at dele ressourcer samtidigt, hvilket praktisk talt ikke er muligt.

Gensidig udelukkelse

gensidig udelukkelse

Intet forkøb

Ifølge forebyggende baserede algoritmer, hvis der er en prioriteret opgave, der forsøger at afbryde den aktuelle opgave. Den forebyggende algoritme, den indeholder den aktuelle opgave og udfører først prioritetsopgave og får ryg til sin første opgave. En situation forklaret som i ovenstående eksempel, hvor en proces indeholder ressourcen, så længe den bliver udført, dvs. P1 kan kun frigive R1 efter udførelse, ligesom P2 frigive R2 kun efter udførelse. Hvis der ikke er nogen forkøb, kan fastlåsning forekomme.


Ingen forudgående-eksempel

no-preemption-eksempel

Vent og vent

En proces indeholder nogle ressourcer og venter på yderligere ressourcer, men disse ressourcer erhverves af en anden proces. Fra ovenstående eksempel holder P1 R1 og venter på R2, hvor R2 erhverves af P2, og P2 holder R2 og venter på R1, hvor R1 erhverves af P1, er en vent-og-vent-situation, der kan forekomme blokering i systemet.

Hold-og-vent-eksempel

hold-og-vent-eksempel

Cirkulær ventetid

Et sæt processer siges at være i blokering, hvis en proces venter på en ressource, der er allokeret til en anden proces, og den processen venter på en ressource, det ligner det ovenfor forklarede eksempel, hvor det er i loopform. Hvor P1 venter på R2 og R2 er tildelt til P2 og P2 venter på R1 og R1 allokeret til P1, hvilket er en cirkulær venteform, hvis denne tilstand opfylder blokering.

Cirkel-Vent-eksempel

cirkel-vent-eksempel

Algoritme til detektion af dødlås

De tilfælde, hvor vi tildeler ressourcer til processer, og operativsystemet genkontrol, hvis der er opstået en blokering i systemet eller ikke ved hjælp af 2 hoveddetekteringsalgoritmer, er de

  • Enkelt tilfælde
  • Flere forekomster af ressourcetype

Enkelt tilfælde

En enkelt forekomst er en situation, hvor et system har enkelte forekomster af alle ressourcerne. Det er også kendt som vent på grafalgoritme eller ressourcetildelingsgraf. Ressourceallokeringsgrafen består af et sæt processer og et sæt ressourcer, der er repræsenteret som to forskellige hjørner. Ressourcerne i ressourcetildelingsgrafen ændres og repræsenteres som ventetid på grafform. Hvor vent på grafform kun har processer, der er repræsenteret som hjørner som vist nedenfor, hvor,

  • Ressourceallokationsgraf: Processer P1, P2, P3 og ressourcer R1, R2, R3 er repræsenteret i ressourcetildelingsgrafen.
  • Vent på graf: Kun processer P1, P2, P3 er nævnt i ventetid på grafen.
  • Hvis der er en cyklustilstand, at hvis der er en kontinuerlig strøm af en proces i en retning, betyder det, at cyklustilstanden udløber, og vent på, at grafen er i en blokeret tilstand.

Eksempel 1: Eksemplet nedenfor viser, at der ikke er nogen blokeringstilstand, fordi der ikke observeres nogen kontinuerlig strøm i vente på grafen.

Eksempel på enkelt instans1

enkelt-eksempel-eksempel1

Eksempel 2: Dødlåsningstilstand er opstået, fordi der er en kontinuerlig strøm af cyklus fra P1 til P4.

Single-Instance - Eksempel 2

enkelt-eksempel-eksempel2

Hvis blokering forekommer meget ofte i systemet, bruges detektionsalgoritmen ofte. Hvis der er mere brug af detektionsalgoritmen, vil der være mere overhead og mere beregningstid. Derfor for at overvinde dette påkalder vi algoritmen efter, idet vi giver lige meget tid, det er sådan, vægten til grafen bruges til at detektere dødvande.

Flere forekomster af ressourcetype

Flere forekomster af ressourcetypen er en situation, hvor et system har flere forekomster af alle ressourcer, det er også kendt som bankers algoritme. Ifølge Bankers algoritme frigiver den sine ressourcer, så snart processen får alle sine krævede ressourcer.

Lad os overveje følgende eksempel, antag at der er 3 processer P0, P1, P2 og ressourcetype A, B, C hvor A kan være CPU , B kan være printer og C kan være tastatur. Cifrene '0' i kolonnen repræsenterer tilgængeligheden af ​​ressourcer.

Sag (i): Antag, at hvis vi tager betingelsesanmodningen er '000' -tilstand, der er til stede i P0 og P2, skal vi kontrollere, hvilken anmodning der er opfyldt, processerne P0 frigiver processerne, efter at de er tildelt, og derefter frigives P2-processerne, efter at de er tildelt. På denne måde frigiver en efter en proces i en sekvens P0, P2, P3, P1, P4 i en sekvens. Endelig får vi tilgængelige ressourcer som P7, P2, P6. Den tilgængelige sekvens er en tilstand, hvor der ikke er nogen blokering.

Bankers-algoritme-eksempel 1

bankmand-algoritme-eksempel1

Huse (ii): Antag, at hvis P2 er 001 i stedet for 000, skal du nu anvende bankmandens algoritme for at kontrollere, om tilstanden er blokeret, hvor den eneste P0 udføres blandt alle 5 processer. Derfor er P1, P2, P3, P4 i fastlåst tilstand bortset fra P0.

Bankmand-eksempel2

bankmand-eksempel2

Anvendelser af Deadlock

Anvendelserne af blokering kan forklares med et realtidseksempel på eksamineringsresultater, hvor flere studerende prøver at få adgang til deres universitetswebsted på tidspunktet for frigivelse. Man kan bemærke, at websiden til tider ikke indlæses ad gangen til flere brugere, dette er en blokeret tilstand. Dette kan overvindes ved hjælp af en af ​​algoritmerne.

Fordele

Fordelene ved dødvande er

  • Der observeres ingen forkøb i undgåelse af dødvande
  • Ingen forsinkelse i processen

Ulemper

Ulempen ved dødvande er

  • Den ressource, der skal bruges, skal være kendt på forhånd
  • Blokering af processen i lang tid
  • Fortabelsestab arves.

Denne artikel giver en oversigt over, hvordan deadlock opstår, når der er to eller flere processer, og de tre betingelser, der er årsagen til, at en deadlock finder sted, og de to typer algoritmer, nemlig ressource delingsalgoritme, der registrerer, at der findes en blokeret tilstand og bankmandens algoritme, som er en blokering af blokering af algoritmer. Her er spørgsmålet ”Hvad sker der, hvis blindlåsen ignoreres?”.