Skirtumas tarp aklavietės ir bado

Aklavietė prieš badą
 

Pagrindinis aklavietės ir bado skirtumas yra priežasties ir pasekmės ryšys tarp jų; badas sukelia aklavietė. Kitas įdomus aklavietės ir bado skirtumas yra tas, kad aklavietė yra problema, o badavimas kartais gali padėti išeiti iš aklavietės. Kompiuterių pasaulyje, rašant kompiuterinę programą, bus daugiau nei vienas procesas / gija, kurie vienu metu vyks po vieną, kad būtų įvykdytos reikiamos programos paslaugos. Todėl, norėdamas turėti teisingą sistemą, programuotojas turėtų užtikrinti, kad visi procesai / gijos gaus ar gaus pakankamai prieigą prie jiems reikalingų išteklių. Jei ne, bus aklavietė, ir vėliau tai sukels badą. Paprastai sąžiningoje sistemoje nėra jokių aklaviečių ar bado. Aklavietės ir badavimai įvyks daugiausia tada, kai daugelis gijų konkuruoja dėl ribotų išteklių.

Kas yra aklavietė?

Aklavietė yra būklė, susidaranti, kai du siūlai ar procesai laukia vienas kito, kol atliks užduotį. Jie tik pakabins, bet niekada nesustos ir neužbaigs savo užduoties. Informatikoje aklavietę galima pamatyti visur. Sandorių duomenų bazėje, kai du procesai bus vykdomi kiekvienoje operacijoje, atnaujins tas pačias dvi informacijos eilutes, tačiau priešinga tvarka sukels aklavietę. Kartu vykstant programavimui, aklavietė gali įvykti, kai du konkuruojantys veiksmai lauks vienas kito žingsnio į priekį. Telekomunikacijų sistemose aklavietė gali įvykti dėl prarastų ar sugadintų signalų.

Šiuo metu aklavietė yra viena iš pagrindinių daugiaprocesinių sistemų ir lygiagretaus skaičiavimo problemų. Kaip sprendimas - užrakto sistema, vadinama proceso sinchronizavimas yra įdiegtas programinės įrangos, taip pat aparatinės įrangos.

Kas yra badas?

Iš medicinos mokslo žodyno matyti, kad badas yra stiprus ar visiškas maistinių medžiagų, reikalingų gyvybei palaikyti, trūkumas. Panašiai yra ir kompiuterių moksle iškilusi problema kai kelios gijos ar procesai laukia to paties šaltinio, kuris vadinamas aklavietė.

Norint išeiti iš aklavietės, vienas iš procesų ar gijų turėtų atsisakyti arba atsukti atgal, kad kitas gija ar procesas galėtų naudoti išteklius. Jei tai vyksta nuolat ir tas pats procesas ar gija turi atsisakyti arba atsitraukti kiekvieną kartą, leisdami kitiems procesams ar gijoms naudoti išteklius, tada pasirinktas procesas ar gija, atsukta, patirs situaciją, vadinamą badu. Todėl, badavimas yra vienas iš sprendimų, norint išeiti iš aklavietės. Todėl kartais vadinamas badas savotiškas gyvas akmuo. Kai yra daug aukšto prioriteto procesų ar gijų, žemesnio prioriteto procesas ar gijos visada atsidurs aklavietėje.

Gali būti daug badavimų, tokių kaip bado išteklius ir badaujantis procesoriuje. Yra daug bendrų badavimo pavyzdžių. Jie yra skaitytojų-rašytojų problema ir pietų filosofų problema, kuri yra labiau žinoma. Prie apskrito stalo su spagečių dubenėliais sėdi penki tylūs filosofai. Šakės dedamos tarp kiekvienos gretimų filosofų poros. Kiekvienas filosofas pakaitomis turi mąstyti ir valgyti. Tačiau filosofas gali valgyti spagečius tik tada, kai turi ir kairę, ir dešinę šakutes.

„Valgomieji filosofai“

Kuo skiriasi aklavietė nuo badavimo??

• Procesas:

• Aklavietėje abu siūlai ar procesai lauks vienas kito ir abu nejudės į priekį.

• Badaujant, kai du ar daugiau gijų ar procesų laukia to paties šaltinio, vienas atsistatys ir leis kitiems pirmiausia naudoti išteklius, o kitas badaujantis siūlas ar procesas bandys dar kartą. Todėl visos gijos ar procesai bet kokiu atveju vyks į priekį.

• Grįžimas atgal:

• Aklavietėje tiek aukšto prioriteto gijos / procesai, tiek žemo prioriteto gijos / procesai be galo lauks vienas kito. Tai niekada nesibaigia.

• Bet badaujant, mažo prioriteto dalyviai lauks arba atsistatydins, o aukšto prioriteto dalyviai tęsis.

• Laukimas arba užraktas:

• Aklavietė yra apskritas laukimas.

• Badavimas yra savotiškas spynos būdas ir kartais padeda išeiti iš aklavietės.

• Aklavietė ir badas:

• Aklavietė sukelia badą, tačiau badas nesudaro aklavietės.

• Priežastys:

• Aklavietė įvyks dėl abipusio atsiribojimo, palaikykite ir laukite, nebus jokios išimties ar apskrito laukimo.

• Badavimas atsiranda dėl išteklių trūkumo, nekontroliuojamo išteklių valdymo ir proceso prioritetų.

Santrauka:

Aklavietė prieš badą

Aklavietė ir badas yra keletas problemų, kylančių dėl duomenų lenktynių ir lenktynių sąlygų, atsirandančių programuojant, taip pat diegiant aparatinę įrangą. Aklavietėje du sriegiai be galo lauks vienas kito, o ne vykdys, o badaudami vienas siūlas atsivers ir leis kitam gijai panaudoti išteklius. Aklavietė sukels badą, o badavimas padės siūlams išeiti iš aklavietės.

Vaizdai maloniai:

  1. Steve'o Jurvetsono iš Menlo parko, JAV, kompiuteris (CC BY 2.0)
  2. Bdeshamo „Valgymo filosofai“ (CC BY-SA 3.0)