Procesų valdymas operacinėje sistemoje unix
5 (100%) 1 vote

Procesų valdymas operacinėje sistemoje unix

TURINYS

Įvadas 3

1. Proceso sukūrimas 3

2. Signalai procesų valdyme 4

3. Proceso atlikimo pabaiga 5

4. Proceso atlikimo sinchronizacija 6

5. Kitų programų iššaukimas 6

6. Proceso vartotojo identifikacijos kodas 7

7. Proceso dydžio pakeitimas 7

8. Komandų procesorius shell 7

9. Sistemos pakrovimas ir nulinis procesas 8

Išvados 8

Įvadas

1965 m. kompanija Bell Telephone Laboratories kartu su General Electric pradėjo kurti naują operacinę sistemą – Multics. Šiai sistemai buvo iškelti tokie tikslai – užtikrinti daugelio vartotojų priėjimą vienu metu prie kompiuterinių išteklių, užtikrinti patenkinamą skaičiavimų greitį ir duomenų saugojimą ir sutekti vartotojams galimybę esant būtinumui kartu naudoti duomenis. Multics versijos įdiegimas nepasiteisino ir neišsprendė uždavinių, kuriuos išspręsti buvo skirta. Kai kurie Bell Laboratories darbuotojai (Tompson, Richy) stengdamiesi patobulinti programavimo aplinką, pradėjo kurti failų sistemą, kuri vėliau gavo UNIX vardą. UNIX versija įgijo didesnį potencialą tuomet, kad ją galima buvo pritaikyti realiame projekte. 1974 m. Topmpsonas ir Richy publikavo straipsnį, aprašantį šią sistemą, žurnale Communications of the ACM, kas dar kartą paskatino sistemos platinimui. 1977 m. kompiuterių, kuriuose buvo instaliuota UNIX sistema, skaičius išaugo iki 500. Sistema buvo populiari telefonų kompanijose, kadangi užtikrino geras sąlygas programų kūrimui, funkcionavo dialogų režime ir realiame laiko maste. Jeigu iki to laiko ji buvo platinama universitetams, tai nuo 1977 m. licencijos buvo perduotos ir komercinėms organizacijoms.

Tarp UNIX operacinės sistemos funkcijų galima paminėti:

1. Procesų valdymas – jų kūrimas, vykdymas ir sąveikos tarp jų organizavimas.

2. Centrinio procesoriaus laiko suteikimo vykdomiems procesams eiliškumo planavimas – t.y. kad procesai dirba laiko atskyrimo režime: centrinis procesorius vykdo procesą, praėjus tam tikram laiko tarpui (skaičiuojamo branduolio) jis pristabdomas ir branduolys ativizuoja kito proceso vykdymą, o vėliau paleidžiamas pristabdytas procesas.

3. Operatyvios atminties skyrimas vykdomam procesui – operacinės sistemos branduolys leidžia procesams kartu naudoti erdvės vietas.

4. Išorinės atminties skyrimas tikslu užtikrinti efektyvų duomenų saugojimą – šios funkcijos realizacijoje kuriama failų sistema.

Kreipimųsi į operacinę sistemą panaudojimas leidžia vartotojui kurti programas, kurios vykdo sudėtingus veiksmus. Taigi OS UNIX branduolyje nėra daugelio funkcijų, kurios sudaro kitų sistemų branduolius. Tokios funkcijos (redaktoriai ir kompiliatoriai), UNIX sistemoje yra vartotojiško lygio programos.

Programa – tai vykdomas failas, o procesas – tai programos operacijų seka arba programos dalis ją vykdant. UNIX sistemoje gali vienu metu būti vykdomi daugelis procesų, kurių skaičius logiškai neribojamas, ir daugelis programos dalių gali būti sistemoje. Įvairios sisteminės operacijos leidžia procesams kurti naujus procesus, baigia juos, sinchronizuoja proceso etapų vykdymą ir valdo reakciją. Be to, procesai vykdomi nepriklausomai vienas nuo kito.

1. Proceso sukūrimas

Vienintelis vartotojo būdas sukurti naują procesą operacinėje sistemoje UNIX yra sisteminės funkcijos fork įvykdymas. Procesas, kuris iššaukia fork funkciją, vadinamas procesu tėvu, o naujas kuriamas procesas – vaiku. Fork funkcijos iššaukimo sintaksė yra pid=fork (). Šios funkcijos įvykdymo rezultate abiejų procesų vartotojiškas kontekstas sutampa, išskyrus kintamojo pid grįžtamąją reikšmę: procesui tėvui į pid grįžta vaiko proceso identifikatorius, procesui vaikui – pid turi nulinę reikšmę. Nulinis procesas, gimstantis branduolio viduje pasikraunant sistemai, yra vienintelis procesas, nekuriamas fork funkcijos pagalba.

Vykdant šią funkciją branduolys atlieka tokius veiksmus:

1. Išlaisvina procesų lentelėje vietą naujam procesui.

2. Priskiria procesui-vaikui unikalų identifikacijos kodą.

3. Atlieka proceso-tėvo konteksto loginę kopiją.

4. Padidina failų, susijusių su procesu, skaičiaus skaitiklio reikšmes failų ir indeksų lentelėse.

5. Grąžina procesui-tėvui proceso-vaiko identifikacijos kodą, o procesui- vaikui – nulinę reikšmę.

Proceso kūrimo algoritmas toks: Iš pradžių branduolys turi įsitikinti, kad fork algoritmo sėkmingam įvykdymui yra visi reikalingi tam ištekliai. Branduolys ieško vietą procesų lentelėje proceso- vaiko kontekstui konstruoti ir patikrina ar vartotojas, vykdantis fork, neviršijo maksimaliai leistino lygiagrečiai paleistų procesų skaičiaus apribojimo. Branduolys taip pat priskiria naujam procesui naują unikalų identifikatorių, kurio reikšmė vienetu viršija maksimalų iš egzistuojančių identifikatorių. Jeigu siūlomas identifikatorius jau priskirtas kitam procesui, branduolys ima kitą identifikatorių. Kai pasiekiama maksimaliai leistina reikšmė, identifikatorių atskaita prasideda nuo nulio. Kadangi daugelis procesų turi trumpą gyvenimo ciklą, prieš atskaitos pradžią daugelis identifikatorių būna laisvi.

Vienu laiku vykdomiems procesams uždedamas skaičiaus apribojimas, todėl ne vienas vartotojas negali užimti procesų lentelėje per daug vietos, trukdant kitiems vartotojams kurti naujus procesus. Be to, paprastiems vartotojams neleidžiama kurti procesą,
užimantį paskutinę laisvą vietą procesų lentelėje, kitu atveju sistema būtų aklavietėje. Kitaip tariant, kadangi procesų lentelėje nėra laisvos vietos, branduolys negali garantuoti, kad visi egzistuojantys procesai pasibaigs natūraliu būdu. Iš kitos pusės, ypatingam vartotojui reikia leisti galimybę vykdyti tiek procesų, kiek jam reikės, aišku atsižvelgiant į procesų lentelės dydį, o procesas gali užimti paskutinę laisvą vietą lentelėje. Esant reikalui tas vartotojas turi turėti galimybę leisti procesą, sąlygojantį kitų procesų baigtį.

Toliau branduolys priskiria nulines reikšmes skirtingiems procesų lentelės įrašų laukams. Tokios nulinės reikšmės skiriamos įvairiems planavimo parametrams: prioritetas, centrinio procesoriaus išteklių vartojimas ir t.t. Atlikus šiuos veiksmus branduolys yra pasiruošęs kurti procesui-vaikui vartotojišką kontekstą. Jis skiria atmintį proceso erdvei, jo sritims ir puslapių lentelėms, kuria dupreg algoritmo pagalba proceso-tėvo sričių kopijas ir prijungia kiekvieną sritį prie proceso-vaiko algoritmo attachreg pagalba. Taip baigiamas naujo proceso konteksto statinės dalies kūrimas ir branduolys pradeda kurti dinaminę dalį. Procesas-tėvas baigia atlikti fork, o naujas procesas yra pasiruošęs pasileisti.

Šiuo metu Jūs matote 33% šio straipsnio.
Matomi 903 žodžiai iš 2755 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
SMS žinute - 2,90 Eur.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA ir įveskite gautą atrakinimo kodą.
Turite atrakinimo kodą?
Po mokėjimo iškart gausite atrakinimo kodą, kurį įveskite į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.