Hva er låsing i operativsystemet: betingelser og deteksjonsalgoritme

Prøv Instrumentet Vårt For Å Eliminere Problemer





Hovedmålet med et operativsystem er å gi riktig kommunikasjon mellom maskinvare- og programvareressurser og også gi vanlige tjenester til programmer. Når en operativsystemprosess ønsker å få tilgang til en hvilken som helst ressurs, sender den først en forespørsel til den bestemte ressursen som den vil ha tilgang til, deretter bruker den ressursen og frigjør til slutt ressursen etter bruk. For antar at mange prosesser prøver å få tilgang til en ressurs samtidig, blir det vanskelig å gi en ressurs til alle prosessene om gangen i en slik situasjon, oppstår konseptet som heter fastlåst. Derfor beskriver denne artikkelen hvordan fastlåst forekommer og hvordan man kan overvinne denne fastlåste situasjonen.

Hva er låsingen i operativsystemet?

Definisjon: Dead-Lock er en situasjon der to eller flere prosessorer venter på at en hendelse skal skje, men slike hendelser som ikke skjer, er en fastlåst tilstand, og prosessorene sies å være i en fastlåst tilstand. La oss for eksempel anta et sanntidsscenario, der det er to biler A & B, kjørt av to individuelle sjåfører på enveiskjørt vei. Nå oppstår situasjonen hvor bil A-sjåfør sier at han beveger seg mot nord er en riktig retning, mens bil B-sjåfør sier at han beveger seg mot sør er riktig. Men ingen av dem beveger seg tilbake for å tillate at en annen bil beveger seg fremover.




Bileksempel

bil-eksempel

For bedre forståelse, la oss vurdere et annet eksempel der det er to ressurser R1, R2 og to prosesser P1 og P2, hvor R1 er tildelt P1 og R2 er tildelt P2. Nå hvis P1 ønsker å få tilgang til R2, som vi allerede vet, holdes R2 av P2, og nå vil P2 få tilgang til R1, som er at P1 bare utføres når den får tilgang til R2, utfører også P2 bare når den får tilgang til R1 denne situasjonen er en fastlåst tilstand.



Prosessoreksempel

prosessor-eksempel

Dead-Lock forhold

Følgende er de fire viktige låsebetingelsene som skal oppstå hvis alle forholdene oppstår samtidig, det er visse sjanser for at blokkeringen oppstår.

Gjensidig utelukkelse

Det betyr at uansett hvilken ressurs vi bruker den, må den brukes på en gjensidig utelukkende måte. Der bare én prosess bare bruker én ressurs om gangen. For eksempel pågår utskriftsprosessen, og plutselig prøver en annen prosess å avbryte utskriftsprosessen. Så her i gjensidig ekskluderingssituasjon, bare etter at utskriftsoppgaven er fullført, blir bare neste oppgave behandlet. Gjensidig utestenging kan elimineres ved å dele ressurser samtidig, noe som praktisk talt ikke er mulig.

Gjensidig utelukkelse

gjensidig utelukkelse

Ingen forkjøp

I følge forebyggende baserte algoritmer, hvis det er en prioritert oppgave som prøver å avbryte den nåværende oppgaven. Den forebyggende algoritmen inneholder den nåværende oppgaven og utfører først og fremst prioritetsoppgave og får tilbake til sin første oppgave. En situasjon forklart i henhold til eksemplet ovenfor der en prosess inneholder ressursen så lenge den blir utført, det vil si P1, kan bare frigjøre R1 etter utførelse, på samme måte P2-frigjøring R2 bare etter utførelse. Hvis det ikke er noen forkjøp, kan fastlåsen oppstå.


No-Preemption-Eksempel

no-preemption-eksempel

Hold og vent

En prosess inneholder noen ressurser og venter på ytterligere ressurser, men disse ressursene erverves av en annen prosess. Fra eksemplet ovenfor holder P1 R1 og venter på R2, hvor R2 blir anskaffet av P2, og P2 holder R2 og venter på R1, hvor R1 ervervet av P1 er en vent og ventesituasjon kan det oppstå fastlåsning i systemet.

Hold-og-vent-eksempel

hold-og-vent-eksempel

Sirkulær vent

Et sett med prosesser sies å være i fastlåst tilstand hvis en prosess venter på en ressurs som er allokert til en annen prosess, og den prosessen venter på en ressurs, den ligner på det ovenfor forklarte eksemplet der den er i sløyfeform. Der P1 venter på R2 og R2 er tildelt for P2 og P2 venter på R1 og R1 tildelt for P1, som er et sirkulært venteskjema hvis denne tilstanden tilfredsstiller at fastlåsning oppstår.

Eksempel på sirkulær-vent

sirkel-vent-eksempel

Dead-Lock Detection Algorithm

De tilfellene der vi tildeler ressurser til prosesser, og operativsystemet kontrollerer på nytt hvis det har oppstått en fastlåst tilstand i systemet eller ikke ved hjelp av to hovedoppdagelsesalgoritmer, er

  • Enkelt forekomst
  • Flere forekomster av ressurstype

Enkelttilfelle

En enkelt forekomst er en situasjon der et system har enkelt forekomster av alle ressursene. Det er også kjent som vent på grafalgoritme eller ressurstildelingsgraf. Ressursallokeringsgrafen består av et sett med prosesser og et sett med ressurser som er representert som to forskjellige hjørner. Ressursene i ressurstildelingsgrafen blir endret og blir representert som vent på grafform. Hvor venting på grafform bare har prosesser som er representert som hjørner som vist nedenfor der,

  • Ressurstildelingsgraf: Prosesser P1, P2, P3 og ressurser R1, R2, R3 er representert i ressurstildelingsgrafen.
  • Vent på graf: Bare prosesser P1, P2, P3 er nevnt i påvente av grafen.
  • Hvis det er en syklustilstand, at hvis det er en kontinuerlig strøm av en prosess i en retning, betyr det at syklustilstanden går ut og venter på at grafen er i en fastlåst tilstand.

Eksempel 1: Eksemplet nedenfor viser at det ikke er noen fastlåst tilstand fordi det ikke er observert kontinuerlig strøm i påvente av grafen.

Enkelt-eksempel-eksempel1

enkelt-eksempel-eksempel1

Eksempel 2: Dødlåsetilstand har oppstått fordi det er en kontinuerlig strøm av syklus fra P1 til P4.

Enkelttilfelle - Eksempel 2

enkelt-eksempel-eksempel2

Hvis fastlåst forekommer veldig ofte i systemet, brukes deteksjonsalgoritmen ofte. Hvis det er mer bruk av deteksjonsalgoritmen, vil det være mer overhead og mer beregningstid. Derfor for å overvinne dette, påkaller vi algoritmen etter, og gir like lang tid, dette er hvordan vekten for grafen brukes til å oppdage fastlåst.

Flere forekomster av ressurstype

Flere forekomster av ressurstypen er en situasjon der et system har flere forekomster av alle ressurser, det er også kjent som bankers algoritme. I følge Bankers algoritme, så snart prosessen får alle nødvendige ressurser, frigjør den ressursene.

La oss se på følgende eksempel, anta at det er tre prosesser P0, P1, P2 og ressurstype A, B, C hvor A kan være prosessor , B kan være skriver og C kan være tastatur. Sifrene “0” i kolonnen representerer tilgjengeligheten av ressurser.

Sak (i): Anta at hvis vi tar betingelsesforespørselen er '000' -tilstand som er tilstede i P0 og P2, bør vi sjekke hvilken forespørsel som blir oppfylt, prosessene P0 frigjør prosessene etter at de blir tildelt, og deretter frigjøres P2-prosessene etter at de blir tildelt. Som dette, i en sekvens, frigjør en etter en prosess P0, P2, P3, P1, P4 i en sekvens. Til slutt får vi tilgjengelige ressurser som P7, P2, P6. Den tilgjengelige sekvensen er en tilstand der det ikke er noen fastlåst tilstand.

Bankers-algoritme-eksempel 1

bankers-algoritme-eksempel1

Hus (ii): Anta at hvis P2 er 001 i stedet for 000, bruker du nå bankens algoritme for å sjekke om tilstanden er fastlåst, der den eneste P0 blir utført blant alle 5 prosessene. Derfor er P1, P2, P3, P4 i fastlåst tilstand bortsett fra P0.

Bankerseksempel2

bankfolk-eksempel2

Anvendelser av Deadlock

Søknadene om fastlåst kan forklares med et sanntidseksempel på eksamensresultater på nettet, der flere studenter prøver å få tilgang til universitetets nettsted på tidspunktet for utgivelsen. Man kan observere at websiden til tider ikke lastes av gangen til flere brukere, dette er en fastlåst tilstand. Dette kan overvinnes ved hjelp av en av algoritmene.

Fordeler

Fordelene med fastlåst er

  • Det blir ikke observert noen forkjøpsrett i fastlåste unngåelse
  • Ingen forsinkelse i prosessen

Ulemper

Ulempen med fastlåst er

  • Ressursen som skal brukes må være kjent på forhånd
  • Blokkering av prosessen i lang tid
  • Preption tap er arvet.

Denne artikkelen gir oversikt over hvordan fastlåst forekommer når det er to eller flere prosesser og de tre forholdene som er årsaken til at en fastlåst forekommer, og de to typene algoritmer, nemlig ressursdelingsalgoritme som oppdager at det eksisterer en fastlåst tilstand og bankers algoritme som er en fastlåst unngåelsesalgoritme. Her er spørsmålet 'Hva skjer hvis blindlåsen blir ignorert?'.