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
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.
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
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.
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
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
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.
enkelt-eksempel-eksempel1
Eksempel 2: Dødlåsningstilstand er opstået, fordi der er en kontinuerlig strøm af cyklus fra P1 til P4.
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.
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
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?”.