Livelock: Kaj je, primer, razlika z mrtvo točko

Kazalo:

Anonim

Kaj je Livelock?

Livelock je situacija, v kateri se zahteva za ekskluzivno zaklepanje večkrat zanikal, toliko prekrivajočih se delijo ključavnice naprej motijo med seboj. Procesi nenehno spreminjajo svoje stanje, kar jim še preprečuje, da bi opravili nalogo. To jim še preprečuje, da bi opravili nalogo.

V tej vadnici o operacijskem sistemu boste izvedeli:

  • Kaj je Livelock?
  • Primeri Livelock
  • Kaj vodi do Livelock-a?
  • Kaj je Deadlock?
  • Primer mrtve točke
  • Kaj je stradanje?
  • Razlika med zastojem, stradanjem in zaklepanjem

Primeri Livelock

Primer 1:

Najlažji primer Livelocka bi bila dva človeka, ki se na hodniku srečata iz oči v oči, oba pa se premakneta vstran in pustita drugega mimo. Na koncu se premikajo z ene strani na drugo, ne da bi pri tem napredovali, saj se takrat premikajo enako. Tu se nikoli ne križata.

2. primer:

Na zgornji sliki lahko vidite, da vsak od dveh podanih procesov potrebuje dva vira in s pomočjo primitivnega registra za vpisovanje v ankete poskuša pridobiti zanje potrebne ključavnice. Če poskus ne uspe, metoda znova deluje.

  1. Process A hold Y vir
  2. Proces B vsebuje vir X
  3. Proces A zahteva X vir
  4. Proces B zahteva Y-vir

Če predpostavimo, da se postopek A najprej zažene in pridobi podatkovni vir X, nato pa se postopek B zažene in pridobi vir Y, ne glede na to, kateri postopek se najprej izvede, nobeden od njih ne napreduje.

Vendar noben od obeh procesov ni blokiran. Vire procesorja večkrat porabijo, ne da bi bil dosežen napredek, hkrati pa ustavijo tudi kakršen koli blok obdelave.

Zato ta situacija ni zastoja, ker ni niti enega postopka, ki bi bil blokiran, vendar se soočamo s situacijo, ki je enakovredna zastoju, to je LIVELOCK.

Kaj vodi do Livelock-a?

Livelock se zgodi, ko je treba skupno število dovoljenih procesov v določenem sistemu določiti s skupnim številom vnosov v tabelo procesov. Zato bi morali biti reže tabel procesov označeni kot Končni viri.

Kaj je Deadlock?

Zastoj je situacija, ki se v OS zgodi, ko kateri koli proces preide v čakalno stanje, ker drugi čakalni postopek zadržuje zahtevani vir. Zastoj je pogosta težava pri večprocesorski obdelavi, kjer si več procesov deli določeno vrsto medsebojno izključujočih se virov, imenovano soft lock ali programska oprema.

Primer mrtve točke

  • Primer iz resničnega sveta bi bil promet, ki gre samo v eno smer.
  • Tu most velja za vir.
  • Torej, ko se zgodi Deadlock, ga je mogoče enostavno rešiti, če en avtomobil ustvari varnostno kopijo (Prednostni viri in povračilo).
  • Če pride do zastoja, bo morda treba varnostno kopirati več avtomobilov.
  • Torej je stradanje možno.
Primer zastoja

Kaj je stradanje?

Stradanje je situacija, ko so bili blokirani vsi procesi z nizko prioriteto in postopki z visoko prioriteto. V katerem koli sistemu se zahteve za vire z visoko / nizko prioriteto dogajajo dinamično. Zato je za določitev, kdo kdaj dobi podporo, potrebna določena politika.

Z uporabo nekaterih algoritmov nekateri procesi morda ne bodo želeni servisirani, čeprav niso v zastoju. Stradanje nastane, ko nekatere niti dlje časa ne bodo na voljo skupnih virov.

Primer stradanja:

Na primer, objekt ponuja sinhronizirano metodo, ki se bo verjetno vrnila dlje časa. Če ena nit pogosto uporablja to metodo, bodo druge niti, ki prav tako potrebujejo pogost sinhroniziran dostop do istega predmeta, pogosto blokirane.

Razlika med zastojem, stradanjem in zaklepanjem

  • Zastoj je situacija, ki se v OS zgodi, ko kateri koli postopek preide v čakalno stanje, ker zahtevani vir zadrži drug čakalni postopek.
  • Po drugi strani je liveloc skoraj podoben zastoju, le da se stanja procesov, ki so vključeni v liveloc, vedno spreminjajo, druga pa ne napreduje.
  • Torej, Livelock je edinstven primer stradanja virov.

Povzetek:

  • Opredelitev: Livelock je situacija, ko je zahteva za izključno zaklepanje večkrat zavrnjena, saj številne prekrivajoče se ključavnice v skupni rabi nenehno motijo ​​druge.
  • Livelock se zgodi, ko je treba skupno število dovoljenih procesov v določenem sistemu določiti s skupnim številom vnosov v tabelo procesov
  • Zastoj je situacija, ki se v OS zgodi, ko kateri koli proces preide v čakalno stanje, ker drugi čakalni postopek zadržuje zahtevani vir.
  • Primer iz resničnega sveta bi bil promet, ki gre samo v eno smer.
  • Primer Livelocka bi bila dva človeka, ki se na hodniku srečata iz oči v oči in oba se premakneta vstran, da pustita drugega mimo.
  • Stradanje je situacija, ko so bili blokirani vsi procesi z nizko prioriteto in postopki z visoko prioriteto.