Mis on Livelock?
Livelock on olukord, kus taotluse eksklusiivne lukustus on keelatud korduvalt, nii palju kattuvaid jagatud lukud hoida sekkudes üksteist. Protsessid muudavad oma olekut pidevalt, mis takistab neil veel ülesannet lõpule viia. See takistab neil veel ülesannet täitmast.
Selles opsüsteemi õpetuses saate teada:
- Mis on Livelock?
- Näited Livelockist
- Mis viib Livelockini?
- Mis on ummikseis?
- Näide ummikust
- Mis on nälgimine?
- Erinevus ummikseisus, nälgimises ja Livelockis
Näited Livelockist
Näide 1:
Livelocki lihtsaim näide oleks kaks inimest, kes kohtuvad koridoris silmast silma ja mõlemad liiguvad kõrvale, et teist mööda lasta. Lõpuks liiguvad nad küljelt küljele ilma edusamme tegemata, kui nad samal ajal samamoodi liiguvad. Siin ei ristuta nad kunagi üksteist.
Näide 2:
Ülaltoodud pildil näete, et mõlemad antud protsessid vajavad kahte ressurssi ja nad kasutavad primitiivse küsitluse sisestamise registrit, et proovida hankida neile vajalikke lukke. Kui katse ebaõnnestub, töötab meetod uuesti.
- Protsess Hoidke Y-ressurssi
- Protsess B omab ressurssi X
- Protsess A nõuab X-ressurssi
- Protsess B nõuab Y-ressurssi
Eeldades, et protsess A jookseb kõigepealt ja omandab andmeressursi X ning seejärel protsess B jookseb ja omandab ressursi Y, hoolimata sellest, kumb protsess esimesena jookseb, ükski neist ei edene edasi.
Kumbki protsess pole aga blokeeritud. Nad kasutavad protsessori ressursse korduvalt ilma edusammudeta, kuid peatavad ka kõik töötlusplokid.
Seetõttu ei ole see olukord ummikseisus, sest pole ühtegi protsessi, mis oleks blokeeritud, vaid seisame silmitsi olukorraga, mis on samaväärne ummikseisuga, milleks on ELAV.
Mis viib Livelockini?
Livelock tekib siis, kui konkreetse süsteemi lubatud protsesside koguarv tuleks määratleda protsessitabeli kirjete koguarvu järgi. Seetõttu tuleks protsessitabeli pesasid nimetada lõplikeks ressurssideks.
Mis on ummikseis?
Ummik on olukord, mis tekib OS-is, kui mõni protsess siseneb ooteseisundisse, kuna teine ooteprotsess hoiab nõutavat ressurssi. Ummik on tavaline probleem mitme töötluse korral, kus mitmel protsessil on teatud tüüpi vastastikku välistavaid ressursse, mida nimetatakse pehmeks lukuks või tarkvaraks.
Näide ummikust
- Reaalseks näiteks oleks liiklus, mis liigub ainult ühes suunas.
- Siin peetakse silda ressursiks.
- Niisiis, kui ummikseis juhtub, saab selle hõlpsasti lahendada, kui üks auto varundab (ressursside ennistamine ja tagasipöördumine).
- Ummiku olukorra tekkimisel võib tekkida vajadus varundada mitut autot.
- Nii et nälgimine on võimalik.

Mis on nälgimine?
Nälgimine on olukord, kus kõik madala prioriteediga protsessid blokeeriti ja kõrge prioriteediga protsessid jätkuvad. Igas süsteemis jätkuvad kõrge / madala prioriteediga ressursside taotlused dünaamiliselt. Seetõttu on vaja mõnda poliitikat, et otsustada, kes millal toetust saab.
Mõnda algoritmi kasutades ei pruugi mõned protsessid soovitud teenust saada, isegi kui need pole ummikus. Nälgimine toimub siis, kui mõned lõimed muudavad jagatud ressursid pikaks ajaks kättesaamatuks.
Nälgimise näide:
Näiteks pakub objekt sünkroniseeritud meetodit, mille tagasitulek võtab tõenäoliselt palju aega. Kui üks lõim kasutab seda meetodit sageli, blokeeritakse sageli muud lõimed, mis vajavad samuti sageli sünkroonitud juurdepääsu samale objektile.
Erinevus ummikseisus, nälgimises ja Livelockis
- Ummik on olukord, mis tekib OS-is, kui mõni protsess siseneb ooteseisundisse, kuna nõutav ressurss on teise ooteprotsessi käes.
- Elupaik seevastu on peaaegu ummikseisuga sarnane, välja arvatud see, et elulokiga seotud protsesside olekud muutuvad alati üksteiseks, ükski ei edene.
- Niisiis, Livelock on ainulaadne ressursside näljahäda.
Kokkuvõte:
- Definitsioon: Livelock on olukord, kus eksklusiivse luku taotlust lükatakse korduvalt tagasi, kuna paljud kattuvad jagatud lukud muudkui segavad üksteist.
- Livelock tekib siis, kui konkreetse süsteemi lubatud protsesside koguarv tuleks määratleda protsessitabeli kirjete koguarvu järgi
- Ummik on olukord, mis tekib OS-is, kui mõni protsess siseneb ooteseisundisse, kuna teine ooteprotsess hoiab nõutavat ressurssi.
- Reaalseks näiteks oleks liiklus, mis liigub ainult ühes suunas.
- Livelocki näiteks võiks tuua kaks inimest, kes kohtuvad koridoris silmast silma ja mõlemad liiguvad kõrvale, et teist mööda lasta.
- Nälgimine on olukord, kus kõik madala prioriteediga protsessid blokeeriti ja kõrge prioriteediga protsessid jätkuvad.