Atšķirība starp strupceļu un badu OS

Autors: Laura McKinney
Radīšanas Datums: 3 Aprīlis 2021
Atjaunināšanas Datums: 23 Aprīlis 2024
Anonim
Ето Как се Произвеждат Парите
Video: Ето Как се Произвеждат Парите

Saturs


Gan strupceļš, gan badošanās ir apstākļi, kad resursa pieprasīšanas procesi ir ilgi aizkavējušies. Lai gan strupceļš un bads daudzos aspektos atšķiras viens no otra. Strupceļš ir nosacījums, kad neviens process netiek turpināts izpildīšanai, un katrs gaida resursus, kurus ir ieguvuši citi procesi. No otras puses, iekšā Bads, process ar augstām prioritātēm nepārtraukti izmanto resursus, novēršot zemas prioritātes procesu resursu iegūšanai. Apskatīsim vēl dažas atšķirības starp strupceļu un badu ar salīdzināšanas diagrammas palīdzību, kas parādīta zemāk.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsStrupceļšBads
PamataBez strupceļa process nenotiek, un tas tiek bloķēts.Bada dēļ bloķēti zemas prioritātes procesi un notiek augstas prioritātes process.
Rodas stāvoklisSavstarpējas izslēgšanas, aizturēšanas un nogaidīšanas, preemption un apļveida gaidīšanas vienlaicīga parādīšanās.Prioritāšu ievērošana, nekontrolēta resursu pārvaldība.
Cits vārdsApļveida gaidīšana.Mūžs.
ResursiBez strupceļa pieprasītos resursus bloķē citi procesi.Bada laikā pieprasītos resursus nepārtraukti izmanto augstas prioritātes procesi.
ProfilakseIzvairieties no savstarpējas izslēgšanas, turiet un gaidiet, un apļveida gaidiet un dodiet iespēju preemption. Novecošanās.


Strupceļa definīcija

Bezizeja ir situācija, kad vairāki procesi CPU konkurē par ierobežoto CPU pieejamo resursu skaitu. Šeit katram procesam ir resurss un gaidiet, kamēr iegūsit kādu citu procesu saturošu resursu. Visi procesi gaida resursus apļveida veidā. Zemāk redzamajā attēlā jūs varat redzēt, ka process P1 ir ieguvis resursu R2, kuru pieprasa process P2, un process P1 pieprasa resursu R1, ko atkal tur R2. Tātad process P1 un P2 veido strupceļu.

Bloķēšana ir izplatīta problēma operētājsistēmu daudzprocesēšanas, sadalītās sistēmās un arī paralēlās datorsistēmās. Ir četri apstākļi, kuriem jānotiek vienlaikus, lai uzlabotu strupceļu, un tie ir savstarpējā izslēgšana, aizturēšana un gaidīšana, bez preferencēm un apļveida gaidīšana.

  • Savstarpēja izslēgšana: Resursu var izmantot tikai viens process vienlaicīgi, ja cits process pieprasa to pašu resursu, ir jāgaida, kamēr process, kurā resurss to izmanto, atbrīvo.
  • Turiet un gaidiet: Procesa laikā ir jāuztur resurss un jāgaida, lai iegūtu citu resursu, kuru tur kāds cits process.
  • Bez izņēmuma: Resursu glabāšanas procesu nevar novērst. Resursa turēšanas procesam resurss ir jāatbrīvo brīvprātīgi, kad tas ir paveicis savu uzdevumu.
  • Apļveida gaidīšana: Procesa laikā jāgaida resursi apļveida veidā. Pieņemsim, ka mums ir trīs procesi {P0, P1, P2}. P0 jāgaida resurss, kas atrodas P1; P1 jāgaida, lai iegūtu resursus, ko uztur process P2, un P2 jāgaida, lai iegūtu procesu, ko tur P0.

Lai gan dažas programmas var atklāt programmas, kas var nonākt strupceļā. Bet operētājsistēma nekad nav atbildīga par strupceļa novēršanu. Programmētāju pienākums ir izveidot bezmaksas strupceļa programmas. To var izdarīt, izvairoties no iepriekšminētajiem apstākļiem, kas nepieciešami strupceļa iestāšanās gadījumā


Bada definīcija

Staru var definēt kā tad, kad resursa procesa pieprasījumu un šo resursu nepārtraukti izmanto citi procesi, tad pieprasīšanas process saskaras ar badu. Bada laikā process, kas gatavs izpildei, gaida, kad CPU piešķirs resursus. Bet procesam jāgaida bezgalīgi, jo citi procesi nepārtraukti bloķē pieprasītos resursus.

Bada problēma parasti rodas prioritātes plānošanas algoritms. Prioritātes plānošanas algoritmā process ar augstāku prioritāti vienmēr tiek piešķirts resursam, neļaujot zemākas prioritātes procesam iegūt pieprasīto resursu.

Novecošanās var atrisināt bada problēmu. Novecošanās pakāpeniski palielina tā procesa prioritāti, kurš ilgi gaidījis resursus. Novecošanās novērš procesu ar zemu prioritāti bezgalīgi gaidīt resursu.

  1. Bez strupceļa neviens process netiek veikts izpildīšanai, katrs process tiek bloķēts, gaidot resursus, ko ieguvis cits process. No otras puses, bada ir nosacījums, kad procesiem, kuriem ir augstāka prioritāte, ir atļauts nepārtraukti iegūt resursus, neļaujot zemas prioritātes procesiem iegūt resursus, kā rezultātā zemu prioritāšu procesi tiek bloķēti uz nenoteiktu laiku.
  2. Bezizeja rodas, ja ir četri apstākļi Savstarpēja izslēgšana, aizturēšana un nogaidīšana, bez izvēles un apļveida gaidīšana notiek vienlaicīgi. Tomēr procesa laikā rodas bada prioritātes ir izpildītas vienlaikus piešķirot resursus, vai arī sistēmā ir nekontrolēta resursu pārvaldība.
  3. Deadlock bieži sauc ar vārdu riņķveida gaidīšana tā kā badu sauc Dzīvā atslēga.
  4. Strupceļā resursi tiek bloķēti, savukārt badā procesus nepārtraukti izmanto procesi ar augstu prioritāti.
  5. Noslodzi var novērst, izvairoties no tādiem apstākļiem kā savstarpēja izslēgšana, aizturēšana un nogaidīšana un apļveida gaidīšana, kā arī ļaujot novērst procesus, kas ilgstoši glabā resursus. No otras puses, badu var novērst ar novecošanās.

Secinājums:

Gan Deadlock, gan Starvation aizkavē procesa izpildi, to bloķējot. No vienas puses, kur strupceļš var izraisīt procesu badu, un, no otras puses, badošanās var atbrīvot procesus no strupceļa.