Priporočena, 2024

Izbira Urednika

Razlika med zastojem in stradanjem v OS

Oba zastoja in stradanja sta pogoja, kjer so procesi, ki zahtevajo vire, zamujali za dolgo. Čeprav sta tako zastoj kot tudi stradanje različni, sta v mnogih pogledih različni. Zamrznitev je stanje, kjer noben proces ne poteka za izvedbo, in vsak čaka na vire, ki so jih pridobili drugi procesi. Po drugi strani pa v procesu izgorevanja proces z visoko prioriteto nenehno uporablja vire, ki preprečujejo proces nizke prioritete za pridobivanje virov. Oglejmo si še nekaj razlik med zastojem in stradanjem s pomočjo primerjalne tabele, prikazane spodaj.

Primerjalna tabela

Podlaga za ComparsionDeadlockLakota
OsnovnoZamrznitev je tista, kjer se postopek ne nadaljuje in se blokira.Stradanje je tisto, kjer se procesi nizke prioritete blokirajo in nadaljuje se postopek visoke prioritete.
Vzbujanje stanjaPojav Mutual izključitve, Hold in wait, No preemption in Circular počakajte istočasno.Uveljavljanje prednostnih nalog, nenadzorovano upravljanje virov.
Drugo imeKrožna čakanja.Vseživljenjska.
ViriV mrtvi točki zahtevani viri so blokirani z drugimi procesi.V stradanju zahtevani viri stalno uporabljajo procesi visoke prioritete.
PreprečevanjeIzogibanje medsebojni izključenosti, zadržanje in čakanje ter krožna čakanja in omogočanje predplačila.Staranje.

Opredelitev mrtve točke

Zamrznitev je situacija, ko več procesov v CPE tekmuje za omejeno število virov, ki so na voljo v CPU. Pri tem ima vsak proces vire in čaka, da pridobi vir, ki ga ima kak drug proces. Vsi procesi čakajo na vire na krožni način. Na spodnji sliki lahko vidite, da je proces P1 pridobil vir R2, ki ga zahteva postopek P2, in proces P1 zahteva vir R1, ki ga ponovno drži R2. Torej procesi P1 in P2 tvorijo zastoj.

Zastoj je pogost problem v večprocesnih operacijskih sistemih, porazdeljenih sistemih in tudi v paralelnih računalniških sistemih. Obstajajo štirje pogoji, ki se morajo sočasno pojaviti, da se dvigne stanje zastoja, ki sta medsebojna izključitev, zadržanje in čakanje, brez predklica in krožna čakanja.

  • Vzajemna izključitev: samo en proces naenkrat lahko uporabi vir, če drug proces zahteva isti vir, mora počakati, da ga proces z uporabo sredstev sprosti.
  • Zadrži in počakaj: Proces mora imeti vir in čakati na pridobitev drugega vira, ki ga ima kak drug proces.
  • No Preemption: Proces, ki vsebuje vire, ni mogoče izločiti. Proces, ki ima vir, mora sprosti vir prostovoljno, ko bo opravil svojo nalogo.
  • Krožna čakanja: Postopek mora čakati na vire na krožni način. Recimo, da imamo tri procese {P0, P1, P2}. P0 mora počakati na vir, ki ga ima P1; P1 mora počakati, da pridobi vir, ki ga hrani proces P2, P2 pa mora počakati, da pridobi postopek, ki ga ima P0.

Čeprav obstajajo nekatere aplikacije, ki lahko zaznajo programe, ki se lahko zaklenejo. Vendar operacijski sistem ni nikoli odgovoren za preprečevanje zastojev. Programerji so odgovorni za oblikovanje programov brez zastojev. To se lahko stori tako, da se izognemo zgornjim pogojem, ki so potrebni za pojav zastojev

Opredelitev stradanja

Staranje lahko definiramo kot zahtevo procesa za vir in za to, da so v drugih procesih neprekinjeno uporabljeni viri, zato se proces zahtevanja sooča s stradanjem. V stradanju proces, ki je pripravljen za izvajanje, čaka, da CPU dodeli vir. Proces pa mora počakati nedoločen čas, saj drugi procesi neprestano blokirajo zahtevane vire.

Problem lakote se običajno zgodi v algoritmu razvrščanja prednostnih nalog . V algoritmu razvrščanja prednostnih nalog je proces z višjo prioriteto vedno dodeljen viru, kar preprečuje, da bi proces z nižjo prioriteto dobil zahtevani vir.

Staranje lahko reši problem lakote. Staranje postopoma povečuje prioriteto procesa, ki je dolgo čakal na vire. Staranje preprečuje proces z nizko prioriteto, da čakajo vire za nedoločen čas.

Ključne razlike med zastojem in stradanjem v OS

  1. V zastoju noben proces ne poteka za izvedbo, vsak proces se blokira in čaka na vire, ki jih pridobi drugi proces. Po drugi strani pa je stradanje stanje, v katerem lahko procesi, ki imajo višjo prioriteto, nenehno pridobivajo vire s preprečevanjem procesov nizke prioritete za pridobivanje virov, kar ima za posledico nedoločeno blokiranje nizko prioritetnih procesov.
  2. Zastoj nastane, ko štirih pogojev Vzajemna izključitev, Zadrži in počakaj, Brez vnaprejšnjega prevzema in Krožna čakanja nastane hkrati. Vendar pa se stradanje zgodi, ko so med razporejanjem virov uveljavljene prednostne naloge procesa ali pa je v sistemu nenadzorovano upravljanje virov.
  3. Zamrznitev se pogosto imenuje z imenom krožna čakanja, medtem ko se stradanje imenuje Živo zaklepanje .
  4. V mrtvi točki so procesi blokirani s procesom, medtem ko procesi v lakoti stalno uporabljajo procesi z visokimi prednostnimi nalogami.
  5. Zastoj se lahko prepreči tako, da se izognemo pogojem, kot sta vzajemna izključitev, zadržanje in čakanje, in krožna čakanja ter omogočimo predkupljanje procesov, ki dolgo časa hranijo sredstva. Po drugi strani pa lahko staranje preprečimo staranje .

Sklep:

Oba zastoja in izginevanje zakasnita izvedbo procesa tako, da jo blokira. Na eni strani, kjer lahko zastoj povzroči, da procesi izginejo, na drugi strani pa lahko stradanje povzroči procese iz mrtve točke.

Top