Livelock: Kas ir, piemēram, atšķirība no strupceļa

Satura rādītājs:

Anonim

Kas ir Livelock?

Livelock ir situācija, kad pieprasījums ekskluzīvu slēdzeni ir liegta atkārtoti, jo daudz pārklājas dalījās slēdzenes turpināt traucē otru. Procesi nemitīgi maina statusu, kas vēl vairāk neļauj viņiem veikt uzdevumu. Tas vēl vairāk neļauj viņiem veikt uzdevumu.

Šajā operētājsistēmas apmācībā jūs uzzināsiet:

  • Kas ir Livelock?
  • Livelock piemēri
  • Kas noved pie Līvoka?
  • Kas ir strupceļš?
  • Strupceļa piemērs
  • Kas ir bads?
  • Starpība starp strupceļu, badu un Livelu

Livelock piemēri

1. piemērs:

Vieglākais Līvoka piemērs būtu divi cilvēki, kuri aci pret aci tiekas koridorā, un abi pārceļas malā, lai ļautu otram iet garām. Viņi galu galā pārvietojas no vienas puses uz otru, neveicot nekādu progresu, jo tajā laikā viņi pārvietojas tāpat. Šeit viņi nekad nesakrusto viens otru.

2. piemērs:

Iepriekš redzamajā attēlā redzams, ka katram no diviem dotajiem procesiem ir vajadzīgi divi resursi, un viņi izmanto primitīvo vēlēšanu ievadīšanas reģistru, lai mēģinātu iegūt tiem nepieciešamās slēdzenes. Ja mēģinājums neizdodas, metode darbojas vēlreiz.

  1. Process A turēšanas Y resurss
  2. B process satur resursu X
  3. Procesam nepieciešams X resurss
  4. B procesam nepieciešams Y resurss

Pieņemot, ka process A vispirms palaiž un iegūst datu resursu X, un pēc tam process B darbojas un iegūst resursu Y neatkarīgi no tā, kurš process darbojas vispirms, neviens no tiem nav progresējis.

Tomēr neviens no abiem procesiem nav bloķēts. Viņi atkārtoti izmanto CPU resursus, neveicot progresu, bet arī pārtrauc jebkuru apstrādes bloku.

Tādēļ šī situācija nav strupceļā, jo nav bloķēts neviens process, bet mēs saskaramies ar situāciju, kas ir līdzvērtīga strupceļam, kas ir LIVELOCK.

Kas noved pie Līvoka?

Ieguldījums rodas, ja kopējais atļauto procesu skaits noteiktā sistēmā jānosaka ar kopējo ierakstu skaitu procesu tabulā. Tādēļ procesa tabulas sloti būtu jāsauc par ierobežotajiem resursiem.

Kas ir strupceļš?

Strupceļš ir situācija, kas rodas OS, kad jebkurš process nonāk gaidīšanas stāvoklī, jo pieprasīto resursu tur cits gaidīšanas process. Strupceļš ir izplatīta problēma daudzapstrādē, kad vairākiem procesiem ir kopīgs īpaša veida savstarpēji izslēdzošs resurss, kas pazīstams kā mīkstā bloķēšana vai programmatūra.

Strupceļa piemērs

  • Reāls piemērs būtu satiksme, kas iet tikai vienā virzienā.
  • Šeit tilts tiek uzskatīts par resursu.
  • Tātad, kad iestājas strupceļš, to var viegli atrisināt, ja viena automašīna dublējas (Preempt resursi un atcelšana).
  • Ja rodas strupceļš, var būt nepieciešams dublēt vairākas automašīnas.
  • Tātad bads ir iespējams.
Strupceļa piemērs

Kas ir bads?

Bads ir situācija, kad visi zemas prioritātes procesi tika bloķēti, un augstas prioritātes procesi turpinās. Jebkurā sistēmā pieprasījumi pēc augstas / zemas prioritātes resursiem notiek dinamiski. Tādējādi ir vajadzīga noteikta politika, lai izlemtu, kurš kad saņem atbalstu.

Izmantojot dažus algoritmus, daži procesi var nesasniegt vēlamo apkalpošanu, pat ja tie nav strupceļā. Bads rodas, ja daži pavedieni padara koplietojamos resursus ilgu laiku nepieejamus.

Bada piemērs:

Piemēram, objekts piedāvā sinhronizētu metodi, kuras atgriešanās, iespējams, prasīs daudz laika. Ja vienā pavedienā bieži tiek izmantota šī metode, bieži tiek bloķēti citi pavedieni, kuriem arī nepieciešama bieža sinhronizēta piekļuve tam pašam objektam.

Starpība starp strupceļu, badu un Livelu

  • Strupceļš ir situācija, kas rodas OS, kad kāds process nonāk gaidīšanas stāvoklī, jo pieprasīto resursu tur cits gaidīšanas process.
  • Savukārt iztika ir gandrīz līdzīga strupceļam, izņemot to, ka procesi, kas saistīti ar iztukšošanos, vienmēr mainās savā starpā, neviens nevirzās uz priekšu.
  • Tātad, Liveloks ir unikāls resursu bada gadījums.

Kopsavilkums:

  • Definīcija: Livelock ir situācija, kad pieprasījums pēc ekskluzīvas slēdzenes tiek noraidīts atkārtoti, jo daudzas koplietotās slēdzenes, kas pārklājas, turpina traucēt viena otrai.
  • Ieguldījums rodas, ja kopējais atļauto procesu skaits noteiktā sistēmā jānosaka ar kopējo procesu tabulas ierakstu skaitu
  • Strupceļš ir situācija, kas rodas OS, kad jebkurš process nonāk gaidīšanas stāvoklī, jo pieprasīto resursu tur cits gaidīšanas process.
  • Reāls piemērs būtu satiksme, kas iet tikai vienā virzienā.
  • Livelock piemērs būtu divi cilvēki, kuri gaida aci pret aci pretī koridorā, un abi pārceļas malā, lai palaistu otru garām.
  • Bads ir situācija, kad visi zemas prioritātes procesi tika bloķēti, un augstas prioritātes procesi turpinās.