620 likes | 954 Vues
OPERACIN Ė S SISTEMOS. S.Maciulevičius Kompiuterių katedra, 209 k. stasys @ ecdl.lt 1 dalis. Kas būtų, jei OS nebūtų?. Kompiuterių darba valdyti mašinos komandų lygiu - labai sudėtingas ir varginantis darbas:
E N D
OPERACINĖS SISTEMOS S.Maciulevičius Kompiuterių katedra, 209 k. stasys@ecdl.lt 1 dalis
Kas būtų, jei OS nebūtų? Kompiuterių darba valdyti mašinos komandų lygiu - labai sudėtingas ir varginantis darbas: Norint perskaityti duomenų bloką iš lankstaus disko (diskelio), reikia 16 skirtingųkomandų, kurių kiekviena turi 13 parametrų (bloko numeris diskelyje, takelio numeris, sektoriaus numeris ir t.t.). Baigus operaciją, kontroleris grąžina 23 parametrus, kurie apibūdina operacijos būseną, klaidos kodą ir t.t. Ar norėtumėte taip programuoti?
Vartotojas ir kompiuteris Vartotojas Vartotojo taikymai Taikomosios programos Programavimo sistemos Pagalbinės programos Operacinė sistema Kompiuterioaparatūra
Vartotojas Taikomosios programos OS komandų interpretatorius, kompiliatoriai, ryšių redaktoriai, įkrovėjai Loginio valdymo primityvai (atminties valdymas, užduočių planavimas) Fizinio valdymo primityvai - OS branduolys Kompiuterio aparatūra Operacinės sistemos struktūra
OS istorijos bruožai 1 fazė: brangi aparatūra, pigus žmogaus darbas Kai komputeriai kainuoja milijonus $, reikia optimizuoti aparatūros naudojimo efektyvumą! 1. Vartotojas prie konsolės: vienu metu - vienas vartotojas. OS kaip paprogramių biblioteka. 2. Paketo monitorius: įkrauti programą, ją paleisti, spausdinti. Apsaugos nėra: o kas bus, jei programa dėl klaidos sugadins paketo monitorių? 3. Duomenų kanalai, pertraukimai: I/O ir skaičiavimų perdengimas. 4. Atminties apsauga.
OS istorijos bruožai 1 fazė: brangi aparatūra, pigus žmogaus darbas Multiprogramavimas: kelios programos vykdomos tuo pačiu metu; vartotojai dalinasi bendrus sistemos resursus. Multiprogramavimo privalumai: 1. Mažų užduočių nesuvėlina didelės 2. Labiau perdengiamas I/O ir CPU darbas Reikalinga atminties apsauga. Problemos: OS turi valdyti programų sąveiką.
OS istorijos bruožai 2 fazė: pigi aparatūra, brangus žmogaus darbas Interaktyvus laiko skirstymas: Naudojami pigūs terminalai, kad daug vartotojų dirbtų su sistema tuo pačiu metu. Procesoriaus laikas aukojamas, siekiant vartotojams gauti mažesnį reakcijos laiką. Problema: perkrova (thrashing) – prisijungė per daug vartotojų - našumas smarkiai krinta.
OS istorijos bruožai 3 fazė: labai pigi aparatūra, labai brangus žmogaus darbas Personaliniai skaičiavimai - kompiuteriai pigūs, tad kiekvienam - po kompiuterį. Iš pradžių OS vėl tebuvo paprogramių biblioteka, tačiau po to buvo pridėta atminties apsauga, multiprogramavimas ir t.t. 4 fazė: paskirstytosios sistemos Tinklai: skirtingos mašinos lengvai naudoja bendrus resursus.
Operacinių sistemų užuomazga • Pirmieji monitoriai - valdančios programos automatizuotam perėjimui nuo vienos užduoties prie kitos:
Užduočių valdymo kalba $JOB $FORTRAN Programos tekstas $LOAD $RUN Duomenys $END
P1 P2 P3 I/O1 I/O2 Multiprogramavimas P1,P2,P3 - programų vykdymas procesoriuje, I/O1, I/O2 - įvesties ir išvesties operacijos
Multiprogramavimas Multiprogramavimą užtikrinančią OS sudaro dviejų tipų programos: · valdančiosios programos, kurios valdo sistemos funkcionavimą ir užduočių apdorojimo procesą; · apdorojančios programos, kurios dirba valdančiųjų programų priežiūroje ir sistemoje yra kaip atskiri darbo vienetai; šios programos nenaudoja privilegijuotų komandų ir dirba uždavinio režime.
Valdančiosios programos Valdančiosios programos - tai sistemos branduolys, sukurtas kompiuterinės sistemos resursams valdyti. Valdančias programas galima skirstyti į tris grupes: • Uždavinių valdymo programas • Užduočių valdymo programas • Duomenų valdymo programas
Valdančiosios programos 1) Uždavinių valdymo programos užtikrina loginę sąsają (interfeisą) tarp aparatūros ir likusios programinės įrangos. Kai kuriose sistemose jos vadinamos OS supervizoriumi. Supervizorius vykdo tokias funkcijas: - apdoroja pertrauktis; - skirsto pagrindinę atmintį; - realizuoja dinaminį atminties valdymą; - stebi taimerį, užduočių vykdymą.
Valdančiosios programos 2) Užduočių valdymo programosužtikrina loginęsąsają (interfeisą) tarp uždavinių valdymo ir operatoriaus. Jos vykdomos lygiai taip pat, kaip ir vartotojo užduotys, bet dažnai turi kiek aukštesnes teises. Užduočių valdymo programos vykdo tokias funkcijas: - analizuoja užduočių srautą; - paruošia užduotis vykdymui; - gauna sistemos resursus; - apdoroja užduočių vykdymo pabaigas; - analizuoja ir apdoroja operatoriaus komandas; - perduoda vykdomos programos pranešimus operatoriui.
Valdančiosios programos 3) Duomenų valdymo programosužtikrina programinę sąsają (interfeisą) tarp apdorojančių programų ir išorinės atminties. Jos atlieka tokias funkcijas: - išskiria sritis išorinėje atmintyje; - tvarko duomenų rinkinių katalogus; - vykdo kai kurias pagalbines I/O operacijas (OPEN, CLOSE ir t.t.); - vykdo I/O operacijas, įskaitant operacijų vyksmo stebėjimą,paieškos programas ir t.t.
Multiprogramavimas Apdorojančias programas galima skirstyti į tris grupes: 1) programavimo kalbų kompiliatorius, 2) aptarnaujančias programas (pvz., ryšių redaktorius), 3) taikomąsias programas (pvz., finansinės apskaitos programa).
P1 P2 P3 I/O1 Laiko kvantai I/O2 Laiko skirstymas P1,P2,P3 - programų vykdymas procesoriuje, I/O1, I/O2 - įvestis ir išvestis
Kas yra operacinė sistema? • Resursų tvarkytoja (menedžeris). Resursai --procesorius (CPU), pagrindinė (darbinė) atmintis, įvesties ir išvesties įtaisai, išorinė atmintis. OS funkcijos yra procesorių, atminčių, įrenginių ir duomenų paskirstymas tarp procesų, konkuruojančių dėl šių resursų.OS turi valdyti visus kompiuterinės sistemos resursus taip, kad užtikrintų maksimalų jos funkcionavimo efektyvumą.
Resursų valdymo uždaviniai • Resurso planavimas, t.y. apibrėžti kam, kada reikia išskirti šį resursą, o dalomiems resursams - ir kokį resurso kiekį • Resurso būsenos sekimas, t.y. žinoti, ar resursas užimtas, ar laisvas, o dalomiems resursams - kuri resurso dalis paskirstyta, o kuri - laisva
Kas yra operacinė sistema? • Valdymo programa -- valdo vartotojo programų vykdymą • Išplėstoji mašina -- išplečia kompiuterio funkcionalumą ir abstrakciją. OS paslepia nuo programuotojo visas aparatūros realijas ir suteikia galimybes paprastai ir patogiai dirbti su failais ir įrenginiais. OS funkcijos -pateikti vartotojui tam tikro išplėstą arba virtualų kompiuterį, kurį lengviau programuoti ir su kuriuo lengviau dirbti nei betarpiškai su aparatūra, sudarančia realų kompiuterį.
OS klasifikacija Klasifikacijos pagrindiniai požymiai: • Resursų valdymo algoritmų ypatybės • Aparatinių platformų ypatybės • Panaudojimo sričių ypatybės • OS realizavimo metodų ypatybės
Resursų valdymo algoritmų ypatybės • Daugiaužduotiškumo palaikymas: • Vienos užduoties (MS-DOS, MSX); jos turi periferinių įrenginių, failų valdymo ir vartotojo interfeiso priemones. • Daugelio užduočių (IBM/OS370, OS/2, UNIX, WINDOWS šeima); be išvardintų funkcijų, jos valdo bendrai naudojamų resursų (procesoriaus, operatyviosios atminties, failų ir išorinių įrenginių) paskirstymą .
Resursų valdymo algoritmų ypatybės • Daugiavartotojiško režimo palaikymas: • Vienvartotojiškas (MS-DOS, Windows 3.x); • Daugiavartotojiškas (UNIX, WindowsNT). Pagrindinis daugiavartotojiškų sistemų skirtumas nuo vienvartotojiškų yra vartotojo informacijos apsaugos nuo nesankcionuoto kitų vartotojų naudojimo priemonės. Reikia pabrėžti, kad ne kiekviena daugiaužduotė sistema yra daugiavartotojiška, ir atvirkščiai – ne kiekviena vienvartotojiška OS yra vienužduotė.
Resursų valdymo algoritmų ypatybės • Daugiaprocesorinis apdorojimas: Soliaris 2.x OS, Open Server 3.x, OS/2, Windows NT. Daugiaprocesoriškumas padaro sudėtingesniais resursų valdymo algoritmus. Daugiaprocesorinės OS pagal skaičiavimo proceso organizavimo būdą skirstomos į asimetrines OS ir simetrines OS. Asimetrinė OS vykdoma pilnai tiktai viename iš sistemos procesorių, paskirstant taikomąsias užduotis kitiems procesoriams. Simetrinė OS pilnai decentralizuota ir naudoja visą procesorių pulą, skirstydama juos sisteminėms ir taikomosioms užduotims.
Aparatinių platformų ypatybės • personalinių kompiuterių OS • mini kompiuterių OS • didžiųjų kompiuterių (mainfreimų) OS • klasterių OS • kompiuterių tinklų OS.
Daugiaužduotės OS • Paketinio apdorojimo sistemos (IBM/OS 370), • Laiko paskirstymo sistemos (UNIX), • Realaus laiko sistemos (RT/11).
Paketinio apdorojimo sistemos Paketinio apdorojimo sistemos daugiausia skirtos skaičiavimo tipo užduočių, nereikalaujančių greito rezultato gavimo, sprendimui. Paketinio apdorojimo sistemų pagrindinis tikslas ir efektyvumo kriterijus - maksimalus pralaidumas. Tokių sistemų funkcionavimo schema: darbo pradžioje formuojamas užduočių paketas, kiekviena užduotis turi tam tikrus reikalavimus sistemos resursams; iš šio užduočių paketo formuojamas multiprograminis mišinys, t.y. vienu metu vykdomų užduočių aibė. Vienalaikiam vykdymui išrenkamos užduotys, besiskiriančios reikalavimais resursams, kad būtų užtikrintas subalansuotas visų kompiuterinės sistemos įrenginių apkrovimas.
Laikopaskirstymo sistemos Laiko paskirstymo sistemoskiekvienam vartotojui suteikia terminalą, iš kurio jis gali vesti dialogą su savo programa. Kadangi laiko paskirstymo sistemos kiekvienai užduočiai išskiria tik procesoriaus laiko kvantą, tai nei viena iš užduočių neužima procesoriaus ilgam ir atsakymo laikas tampa priimtinas. Jeigu kvantas parinktas pakankamai nedidelis, tai visiems vartotojams, vienu metu dirbantiems su tuo pačiu kompiuteriu, atrodo, kad jie vieni naudojasi kompiuteriu.
Laiko paskirstymo sistemos Aišku, kad laiko paskirstymo sistemos yra mažesnio pralaidumo, nei paketinio apdorojimo sistemos, kadangi yra vykdoma kiekviena vartotojų paleista užduotis, o ne ta, kuri „naudinga“ sistemai, ir, be to, yra papildomos skaičiavimo resursų sąnaudos dažnesniam procesoriaus perjungimui nuo vienos užduoties prie kitos. Laiko paskirstymo sistemų efektyvumo kriterijus yra ne pralaidumas, bet vartotojų darbo patogumas ir efektyvumas.
Realaus laiko sistemos Realaus laiko sistemos naudojamos įvairiems techniniams objektams, pvz., staklėms, palydovams, mokslinių eksperimentų įrenginiams ar technologiniams procesams, valdyti. Visais šiais atvejais egzistuoja maksimaliai leistinas laikas, per kurį turi būti atlikta viena ar kita objektą valdanti programa, priešingu atveju gali įvykti avarija: palydovas gali išeiti iš kontrolės zonos, duomenys, ateinantys nuo daviklių, bus prarasti ir pan.
Realaus laiko sistemos Taigi, realaus laiko sistemų efektyvumo kriterijus yra gebėjimas atlikti programą (išduoti valdantįjį poveikį) per užduotą laiko intervalą. Šis laikas vadinamas sistemos reakcijos laiku. Šių sistemų multiprograminis mišinys yra iš anksto fiksuotas programų rinkinys, o vykdymui programa išrenkama pagal momentinę objekto būseną arba pagal planinių darbų tvarkaraštį.
OS funkcijos Skirsime dvi funkcijų grupes: 1) vartotojui skirtos funkcijos: • įvesties ir išvesties valdymas • failų sistemos tvarkymas • programų valdymas 2) sisteminės funkcijos: • atminties valdymas • atminties apsauga • resursų tvarkymas • apskaita
Įvesties ir išvesties valdymas Įvesties ir išvesties posistemisatlieka sąsajos (interfeiso) tarp pagrindinės ir išorinės atminčių funkcijas. Operacinė sistema atsako už pagrindinėje atmintyje esančių buferių aptarnavimą. Joje yra ir įrenginių tvarkyklės (driver - OS modulių, tiesigiai bendraujančių su įvesties ir išvesties įrenginiais) rinkinys. Įvesties ir išvesties posistemio darbas tarpusavyje tampriai susietas su failų bei išorinės atminties valdymu.
Įvesties ir išvesties valdymas Tam skirtos programos suskirstytos į kelis lygius. Žemiausieji lygiai “ekranuoja” aparatūros ypatumus, o aukštesnieji užtikrina patogią sąsają vartotojui. Pagrindinis principas - programa nepriklauso nuo to, kur laikomi duomenys. Unifikuota išorinių įtaisų vardų sistema. Klaidų apdorojimas - pradžioje žemiausiame lygyje, jei ten nepavyksta - aukštesniame. Dauguma įvesties ir išvesties operacijų - asinchroninės (procesorius pereina prie kitos užduoties; apie operacijos pabaigą jis informuojamas pertraukties signalu).
Įvesties ir išvesties valdymo lygiai Taikomoji programa a - pertraukčių užklausos b - įrenginių valdymo komandos c - duomenys Bibliotekinės funkcijos Sisteminės iškvietos Sisteminių iškvietų apdorojimas Duomenų buferizacijos sistema Įrenginių tvarkyklės Pertraukčių apdorojimas a b c
Tvarkyklės Įvesties ir išvesties valdymo programa, kuri priklauso nuo konkretaus įtaiso, vadinama įtaiso tvarkykle(driver). Pavyzdžiui, disko tvarkyklė operuoja tokiais objektais, kaip cilindrai, takeliai, sektoriai, galvutės pozicionavimo parametrai, ir užtikrina teisingą disko darbą. Tvarkyklė gauna užklausą iš programos ir sprendžia, kaip ją vykdys. Jei tuo momentu tvarkyklė laisva, ji pradeda nedelsiant aptarnauti užklausą. Jei užimta, užklausa patenka į eilę.
Pertrauktys Priežastys: a) išorinės b) vidinės Procedūra: a) pertraukties signalo priėmimas b) pertrauties atpažinimas c) būsenos įsiminimas d) pertrauktį apdorojančios programos vykdymas e) būsenos atstatymas Parametrai: a) įėjimo signalų skaičius b) reakcijos laikas c) perjungimo laikas d) gylis
Pagrindinėprograma Procesorius Pertraukties signalai Pertraukiančios (pertrauktį apdorojančios) programos Aplinka Pertrauktys
Failų sistema Failų sistema- tai OS dalis, realizuojanti patogią vartotojui sąsają su jam reikalingais duomenimis, kurie saugomi diske (diskelyje), taip pat užtikrina galimybę tuo pačiu metu kreiptis į failą keliems vartotojams ir procesams. Failų sistema aprūpina vartotojus atmintimi ilgalaikiam programų ir duomenų saugojimui. Tokia išorinė atmintis abstrakčiu požiūriu - tai įvardytų objektų (failų) rinkinys. Failų sistemos funkcijų sąraše - failų ir katalogų kūrimas, manipuliavimas, failų apsauga, buferizavimas ir t.t.
Failų sistema Plačiąją prasme failų sistema apima: • diske saugomų failų visumą; • duomenų struktūras, reikalingas failams tvarkyti (katalogai, failų deskriptoriai, informacija apie vietą diske); • failus tvarkančios programos (failų kūrimui, naikinimui, kopijavimui, perkėlimui, įrašymui ir t.t.).
Failų tipai • paprastieji - tekstiniai - dvejetainiai • specialūs - su įvesties ir išvesties įtaisais asocijuoti failai, kad I/O operacijos būtų vykdomos kaip failų skaitymo/rašymo operacijos • failai-katalogai - failų sąrašas ir failų atributai
Failų atributai - informacija apie kreipties teises - slaptažodis - failo savininkas - failo autorius - požymiai (“tik skaityti”, “paslėptasis failas”, “sisteminis failas”, ..., “laikinasis failas” ) - įrašo ilgis - sukūrimo, paskutinio panaudojimo ir paskutinio pakeitimo laikai - failo ilgis - maksimalus failo ilgis
Procesai Procesuvadinama tuo metu vykdoma programa (dinaminis jos vaizdas). Ši sąvoka - tai abstrakcija, kurią pasiūlė OS kūrėjai ir kuri duoda galimybes stebėti ir valdyti kelių vienu metu vykdomų programų darbą. Fiziškai proceso atvaizdą sudaro: · vykdomasis programos kodas (dar vadinamas teksto arba programos sekcija) · duomenys - kintamieji, buferiai ir t.t. (vartotojo duomenų sekcija) · būsenos ar konteksto informacija - duomenys, reikalingi procesui restartuoti (neprarandant informacijos).
Proceso kontekstas • registrų ir programos skaitiklio būsena, • procesoriaus darbo režimo būsena, • atidarytų failų rodiklių būsenos, • informacija apie neužbaigtas įvedimo-išvedimo operacijas, • šio proceso vykdomų sisteminių užklausų klaidų kodai ir t.t.
Proceso sukūrimas Programinis kodas bus pradėtas vykdyti tik tada, kai jam OS bus sukurtas procesas: • sukurti informacines struktūras, aprašančias procesą, t.y. jo deskriptorių ir kontekstą; • įtraukti naujo proceso deskriptorių į paruoštų procesų eilę; • užkrauti proceso kodo segmentą į operatyviąją atmintį arba mainų su išorine atmintimi (svopingo) sritį.
Proceso sukūrimas Proceso užbaigimas Planuotojas 2 1 Naujas Paruoštas Vykdomas 6 Sustabdytas 3 5 4 Įvykis yra Laukia įvykio Laukiantis Proceso būsenų diagrama
Proceso būsenų diagrama Naujas procesas - ką tik sukurtas - turi savo proceso ID, į atmintį įvestos duomenų struktūros , … Paruoštas procesas - pasyvi proceso būsena; procesas užblokuotas dėl išorinių jo atžvilgiu priežasčių: procesas turi visus jam reikiamus resursus, jis pasiruošęs vykdymui, bet procesorius vykdo kitą procesą, todėl procesas laukia, kol atsilaisvins procesorius; multiprograminėje sistemoje gali gūti daug tokių procesų Vykdomas procesas - aktyvi proceso būsena, kurio metu procesas turi visus būtinus resursus ir jį betarpiškai vykdo procesorius; vienintelis, jei sistema vienprocesorinė; multiprocesorinėje sistemoje tokių procesų gali būti daug
Proceso būsenų diagrama Laukiantis (blokuotas) procesas - pasyvi procesoriaus būsena, procesas užblokuotas, jis negali būti vykdomas dėl savo vidinių priežasčių, jis laukia kokio nors įvykio (pvz., duomenų įvedimo ar išvedimo) Sustabdytas (užbaigtas) procesas - buvo baigtas normaliai ar nutrauktas dėl kokių nors priežasčių; sistema turi registruoti šį faktą