Lietuvių

Išnagrinėkite pagrindines procesų valdymo operacinėse sistemose sąvokas, įskaitant procesų būsenas, planavimo algoritmus, tarpprocesinį ryšį ir aklaviečių tvarkymą.

Operacinės sistemos: išsamus procesų valdymo vadovas

Procesų valdymas yra pagrindinis bet kurios šiuolaikinės operacinės sistemos aspektas. Tai apima procesų vykdymo valdymą, išteklių paskirstymą ir sklandaus daugiafunkcinio apdorojimo užtikrinimą. Šiame vadove pateikiama išsami procesų valdymo koncepcijų, metodų ir iššūkių apžvalga. Jis skirtas studentams, kūrėjams, sistemų administratoriams ir visiems, norintiems suprasti, kaip veikia operacinės sistemos.

Kas yra procesas?

Iš esmės procesas yra vykdomos programos egzempliorius. Tai daugiau nei tik programos kodas; jis apima dabartines programos skaitiklio, registrų ir kintamųjų reikšmes. Kiekvienas procesas turi savo atminties erdvę, kuri neleidžia jam tiesiogiai trukdyti kitiems procesams.

Pagalvokite apie programą kaip apie receptą, o apie procesą – kaip apie patiekalo gaminimą. Galite turėti kelis procesus, vienu metu vykdančius tą pačią programą (pvz., kelis teksto redaktoriaus egzempliorius), kurių kiekvienas turi savo duomenis ir būseną.

Pagrindiniai proceso komponentai:

Proceso būsenos

Procesas per savo gyvavimo ciklą pereina skirtingas būsenas. Šių būsenų supratimas yra labai svarbus norint suprasti procesų valdymą.

Šios būsenos atspindi proceso gyvavimo ciklą, o operacinė sistema yra atsakinga už perėjimus tarp jų. Pavyzdžiui, kai procesui reikia nuskaityti duomenis iš disko, jis pereina iš Vykdomos būsenos į Laukimo būseną, kol I/O operacija bus baigta. Tada jis vėl pereina į Paruoštą būseną, laukdamas savo eilės vėl paleisti.

Proceso valdymo blokas (PCB)

PCB yra duomenų struktūra, kurioje yra visa informacija, kurios reikia operacinei sistemai procesui valdyti. Tai tarsi proceso gyvenimo aprašymas, kuriame yra viskas, ką OS turi žinoti, kad galėtų jį sekti.

Tipinis PCB turinys:

Procesų planavimas

Procesų planavimas yra veikla, kurios metu nustatoma, kuris procesas parengties eilėje turėtų būti priskirtas CPU. Planavimo tikslas yra optimizuoti sistemos našumą pagal tam tikrus kriterijus, pvz., maksimaliai padidinti CPU panaudojimą, sumažinti apyvartos laiką arba užtikrinti procesų teisingumą.

Planavimo eilės

OS naudoja eiles procesams valdyti. Įprastos eilės apima:

Planuokliai

Planuokliai yra sistemos programinės įrangos moduliai, kurie pasirenka kitą procesą, kurį reikia paleisti. Yra du pagrindiniai planuoklių tipai:

Kai kuriose sistemose taip pat yra vidutinės trukmės planuoklis, kuris iškeičia procesus iš atminties (į diską) ir atgal, kad sumažintų daugiaprogramavimo laipsnį. Tai taip pat vadinama keitimu.

Planavimo algoritmai

Yra daug planavimo algoritmų, kurių kiekvienas turi savo stipriąsias ir silpnąsias puses. Algoritmo pasirinkimas priklauso nuo konkrečių sistemos tikslų. Štai keletas įprastų algoritmų:

Pavyzdys: Apsvarstykite tris procesus, P1, P2 ir P3, kurių sprogimo laikas (vykdymo laikas) atitinkamai yra 24, 3 ir 3 milisekundės. Jei jie atvyksta tokia tvarka P1, P2, P3, FCFS planavimas lemtų, kad pirmiausia bus paleistas P1, tada P2, tada P3. Vidutinis laukimo laikas būtų (0 + 24 + 27) / 3 = 17 milisekundžių. Tačiau jei naudotume SJF, procesai būtų vykdomi tokia tvarka P2, P3, P1, o vidutinis laukimo laikas būtų (0 + 3 + 6) / 3 = 3 milisekundės – reikšmingas patobulinimas!

Tarpprocesinis ryšys (IPC)

Tarpprocesinis ryšys (IPC) leidžia procesams bendrauti ir sinchronizuotis vieni su kitais. Tai būtina norint kurti sudėtingas programas, susidedančias iš kelių procesų, dirbančių kartu.

Įprasti IPC mechanizmai:

Pavyzdys: Žiniatinklio serveris gali naudoti kelis procesus, kad vienu metu apdorotų gaunamas užklausas. Kiekvienas procesas galėtų apdoroti vieną užklausą, o procesai galėtų bendrauti naudodami bendrinamą atmintį arba pranešimų perdavimą, kad bendrintų duomenis apie serverio būseną.

Sinchronizacija

Kai keli procesai pasiekia bendrinamus išteklius, labai svarbu užtikrinti sinchronizavimą, kad būtų išvengta duomenų sugadinimo ir lenktynių sąlygų. Sinchronizavimo mechanizmai suteikia būdų koordinuoti procesų vykdymą ir apsaugoti bendrinamus duomenis.

Įprasti sinchronizavimo metodai:

Pavyzdys: Apsvarstykite bendrinamą skaitiklį, kuris padidinamas keliais procesais. Be sinchronizavimo keli procesai galėtų nuskaityti skaitiklio reikšmę, padidinti ją ir įrašyti atgal, todėl rezultatai būtų neteisingi. Naudojant mutex užraktą inkrementavimo operacijai apsaugoti, užtikrinama, kad tik vienas procesas vienu metu galėtų pasiekti skaitiklį, užkertant kelią lenktynių sąlygoms.

Aklavietė

Aklavietė įvyksta, kai du ar daugiau procesų yra užblokuoti neribotam laikui, kiekvienas laukdamas ištekliaus, kurį turi kitas. Tai rimta problema, kuri gali sustabdyti sistemą.

Aklavietės sąlygos:

Kad įvyktų aklavietė, turi būti įvykdytos keturios sąlygos vienu metu (Coffman sąlygos):

Aklavietės tvarkymo metodai:

Yra keletas būdų, kaip tvarkyti aklavietes:

Pavyzdys: Apsvarstykite du procesus, P1 ir P2, ir du išteklius, R1 ir R2. P1 turi R1 ir laukia R2, o P2 turi R2 ir laukia R1. Tai sukuria apskritą laukimą, dėl kurio atsiranda aklavietė. Vienas iš būdų išvengti šios aklavietės būtų reikalauti, kad procesai vienu metu paprašytų visų išteklių prieš pradedant vykdymą.

Realaus pasaulio pavyzdžiai

Procesų valdymo koncepcijos naudojamos įvairiose operacinėse sistemose visame pasaulyje:

Išvada

Procesų valdymas yra esminis operacinių sistemų aspektas, kuris leidžia atlikti daugiafunkcį apdorojimą, dalintis ištekliais ir efektyviai panaudoti sistemą. Šiame vadove aptartų sąvokų supratimas yra būtinas visiems, dirbantiems su operacinėmis sistemomis, kuriantiems programas ar valdantiems sistemas. Įvaldę procesų būsenas, planavimo algoritmus, tarpprocesinį ryšį ir aklavietės tvarkymą, galite sukurti patikimesnes, efektyvesnes ir patikimesnes programinės įrangos sistemas. Nepamirškite atsižvelgti į kompromisus tarp skirtingų metodų ir pasirinkti metodus, kurie geriausiai atitinka jūsų konkrečius poreikius.

Tolesnis mokymasis

Norėdami pagilinti procesų valdymo supratimą, apsvarstykite galimybę ištirti šiuos išteklius: