Atšķirība starp strupceļu un badu operētājsistēmas OS

Operētājsistēma ir visvienkāršākā programmatūra, kas darbojas datorā. Tas ir atbildīgs par datora atmiņas un procesu pārvaldību, kā arī par aparatūras detaļu ekranēšanu no lietojumprogrammām, kuras to izmanto. Datora operētājsistēma nodrošina arī taisnīgu resursu sadali lietotājiem un programmām, nevis vienādai sadalei starp procesiem. Taisnīga plānošanas sistēma ļauj vienam procesam izmantot centrālo procesoru, bet otrs gaida rindā. Rezultātā katrs pavediens iegūst pietiekamu piekļuvi ierobežotiem resursiem, novēršot divus visizplatītākos nosacījumus, kas citādi būtu aizkavējuši procesu: strupceļa bloķēšana un badošanās. Abi ir saistīti jēdzieni, kur procesiem nav piekļuves resursiem. Šajā rakstā ir uzsvērti daži galvenie punkti, salīdzinot abus dažādos aspektos.

Kas ir strupceļš?

Bezizeja ir stāvoklis, kad pavedienu kopa tiek bloķēta, jo katrs process, kurā tiek turēts resurss, mēģina piekļūt citiem resursiem, kurus aiztur cits process, galu galā novēršot godīgu sistēmas plānošanu. Bezizejas situācija rodas tad, ja ir spēkā šie četri nosacījumi: Savstarpēja izslēgšana nozīmē, ka resursam vienlaikus var piekļūt tikai viens process; Neviens preferences nosacījums nozīmē, ka resursu var brīvprātīgi atbrīvot tikai process, kurā resurss tiek turēts; Apturēt un gaidīt nozīmē, ka process, kurā tiek turēti resursi, var pieprasīt papildu resursus, ko glabā citi procesi; Apļveida gaidīšana nozīmē, ka divi vai vairāki procesi ir iestrēguši apļveida ķēdē, kas gaida, kad katrs process atbrīvos savus attiecīgos resursus.

Kas ir bada?

Bads ir stāvoklis, kas rodas, kad process nonāk gaidīšanas periodā uz nenoteiktu laiku, jo zemas prioritātes process nekad nesaņem iespēju piekļūt resursam sakarā ar pastāvīgu augstas prioritātes procesu plūsmu, kas piekļūst vienam un tam pašam resursam. Tā ir resursu pārvaldības problēma, jo procesam tiek liegta pieeja nepieciešamajam resursam, tādējādi pārceļot procesu uz nenoteiktu gaidīšanas periodu. Tas notiek tāpēc, ka nepieciešamais resurss nekad netiek piešķirts procesam, liekot procesam badoties pēc resursiem, no tā arī nosaukums. Labākais veids, kā izvairīties no bada, ir novecošanās tehnikas izmantošana, kas pakāpeniski palielina to procesu prioritāti, kuri ilgu laiku ir gaidīšanas periodā, lai nodrošinātu taisnīgu plānošanas sistēmu.

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

  1. Strupceļa un bada definīcija

Gan strupceļš, gan bada ir saistīti jēdzieni, kas neļauj taisnīgai sistēmas plānošanai, kur procesi tiek bloķēti, piekļūt resursiem. Kā norāda nosaukums, strupceļš attiecas uz stāvokli, kurā tiek bloķēta pavedienu vai procesu kopa, jo katrs process gaida resursa iegūšanu, kuru uztur cits process, tādējādi radot strupceļa situāciju, kurā programmas pārstāj darboties. Nobīdi, no otras puses, izraisa strupceļš, kura dēļ process tiek iesaldēts, jo zemas prioritātes procesam tiek liegta pieeja resursam, kas tiek piešķirts augstas prioritātes procesam.

  1. Stāvoklis

Bezizeja attiecas uz īpašu stāvokli, kas rodas, kad pavediens vai process nonāk gaidīšanas periodā, jo pieprasīto sistēmas resursu tur cits process, kurš savukārt gaida citu procesu, lai atbrīvotu savu resursu, tādējādi izveidojot strupceļu. To izraisa slikta resursu izmantošana. Bads ir nenoteikts atlikšanas nosacījums, kad zemas prioritātes procesam tiek liegta pieeja nepieciešamajiem resursiem, jo ​​resursi tiek piešķirti citam augstas prioritātes procesam. Tā ir resursu pārvaldības problēma, kas liek sistēmai piešķirt resursus tikai augstas prioritātes procesiem.

  1. Bezizejas un bada raksturojums

Akumulators ir galvenā bada forma, kas rodas, ja vienlaicīgi notiek šādi četri apstākļi: Savstarpēja izslēgšana, Bez preferences, Aizturēšana un gaidīšana un Apļveida gaidīšana. Bezizejas stāvoklis rodas tikai sistēmās, kurās ir spēkā visi četri nosacījumi. Bads notiek, ņemot vērā dažādus apstākļus, piemēram, kad nav pietiekami daudz resursu, lai apkārtotos, un procesu prioritāte sāk samazināties vai kad procesi sāk nodot resursus citiem procesiem bez kontroles. Ja process ar zemu prioritāti pieprasa resursus, kas rezervēti augstākās prioritātes procesiem, process paliek mūžīgi badā. Bada rodas arī tad, ja resursi tiek patvaļīgi piešķirti, liekot procesiem gaidīt ilgāku laika periodu.

  1. Profilakse

Bada novēršanu var veikt, izmantojot pareizu plānošanas algoritmu ar prioritāru rindu, kurā faktiski tiek izmantots arī novecošanās paņēmiens - plānošanas paņēmiens, kas novecošanās koeficientu pievieno katra pieprasījuma prioritātei, kas nozīmē, ka tas palielina zemas prioritātes procesu prioritātes līmeni, kas ir gaidījuši ilgu laiku. Piešķirot arī vairāk resursu programmām, vajadzētu izvairīties no nepārtrauktas resursu pārslodzes. Lai sistēma neiekļūtu strupceļā, procesiem ir jāatsaka piekļuve vienam vai vairākiem resursiem, vienlaikus gaidot citus, un resursam vienlaikus ir jāļauj piekļūt tikai vienam procesam..

Bezizejas situācija salīdzinājumā ar badu: salīdzināšanas tabula

Kopsavilkums par strupceļu VS. Bads

Gan strupceļš, gan bada ir saistīti jēdzieni daudzprocesējošās operētājsistēmās vai sadalītās sistēmās, kuru dēļ viens vai vairāki pavedieni vai procesi iestrēgst, gaidot nepieciešamos resursus. Bezizeja ir situācija, kas rodas, kad viens vai vairāki procesi pieprasa piekļuvi tam pašam resursam, izraisot procesa iesaldēšanu, turpretī badu rada strupceļš, kas procesu novirza uz nenoteiktu atlikšanas stāvokli, jo procesiem tiek liegta pieeja resursiem, kuri atrodas augstas prioritātes process un jāgaida mūžīgi.