Operacinė sistema
Kitos reikšmės – Os.
Operacinė sistema (OS) – speciali programinė įranga, užtikrinanti vartotojo sąsają ir kompiuterio techninės įrangos, taikomųjų programų bei duomenų valdymą. Moderniausios operacinės sistemos sudaro galimybę dirbti daugeliui vartotojų vienu metu daugialypėje aplinkoje, užtikrina bylų (failų) apsaugą, turi daug kitų naudingų savybių. Dauguma operacinių sistemų yra pirma programinė įranga, kurią pradeda vykdyti įjungtas kompiuteris.
Paskirtis
[redaguoti | redaguoti vikitekstą]Naudotojo aplinka
[redaguoti | redaguoti vikitekstą]Kompiuterio naudotojo požiūriu, operacinė sistema veikia kaip aplinka, daugiau ar mažiau supaprastinanti darbą su:
- Taikomosiomis programomis ar kita programine įranga – interneto naršyklėmis, teksto redagavimo ar internetinių pokalbių programomis.
- Bylomis (failais) ir aplankais (katalogais)
- Įvairiais vidiniais bei išoriniais įrenginiais – spausdintuvu, monitoriumi, pele, klaviatūra, skaitmeniniu fotoaparatu ir kitais.
Skirstymas naudotojo požiūriu
[redaguoti | redaguoti vikitekstą]Operacinės sistemos neretai skirstomos pagal paskirtį:
- Asmeniniams kompiuteriams skirtos OS
- labai supaprastina vartotojo darbą su kompiuteriu, turi grafinę aplinką, leidžia klausytis muzikos, žaisti žaidimus ir pan.
- Darbo stotims skirtos OS
- leidžia efektyviai panaudoti daugelį procesorių, itin didelius atminties kiekius ir pan.
- Serveriams skirtos OS
- leidžia efektyviai dirbti šimtams ar tūkstančiams programų vienu metu, turi geras darbo tinkle galimybes, vartotojų teisių valdymo priemones, efektyviai dirba su daugeliu vieno kompiuterio procesorių ir pan.
- Realaus laiko OS
- suteikia programoms vykdymo uždelsimo bei kompiuterių resursų garantijas, kurių dėka šios OS yra tinkamos automatinių įrenginių (palydovų, laivų, lėktuvų ir t. t.) valdymui.
- Prietaisams skirtos (angl. embedded) OS
- gali dirbti labai ribotas galimybes turinčiuose kompiuteriuose (mikrovaldikliuose), yra greitos, tačiau dažniausiai neturi išvystytų programų valdymo ir kitų galimybių.
- Delniniams kompiuteriams bei mobiliems telefonams skirtos OS
- yra panašios į prietaisams skirtas, tačiau turi grafinę aplinką, pritaikytos eiliniam naudotojui.
UNIX failų sistemos
[redaguoti | redaguoti vikitekstą]UNIX failų sistema yra kertinis visos operacinės sistemos komponentas – „viskas yra failas“.[1] Ji nėra vien būdas duomenims saugoti: čia pasiekiami išoriniai įrenginiai (/dev direktorijuje yra failai klaviatūrai, pelei, video kamerai), jos pagalba (iš tiesų nieko į diską nerašydami) informacija keičiasi kartu vykdomi procesai, pateikiama įvairi papildoma informacija (pavyzdžiui, iš /proc/uptime galima perskaityti kiek laiko, sekundėmis, praėjo nuo sistemos starto[2]). Visa UNIX failų sistema yra viename direktorijuje – / – kurio subdirektorijuose pasiekiami visi prijungti diskai, kiti įrenginiai bei pačios sistemos komponentai. Windows tokių direktorijų dažniausiai būna daugiau – C:\, D:\ ir panašiai).
Operacijų aplinka
[redaguoti | redaguoti vikitekstą]Programuotojo ar administratoriaus požiūriu, operacinė sistema yra tam tikra programinė aplinka, abstrahuojanti kompiuterio aparatūrą ir vykdanti sistemines procesų/programų aptarnavimo funkcijas:
- Programų/procesų paleidimo posistemė (angl. loader, liet. įkėlyklė, paleidyklė), užtikrinanti programų ar bibliotekų kodo perkėlimą į operacinę atmintį bei su tuo susijusius pagalbinius veiksmus (pvz., kodo išpakavimą).
- Operacinės atminties adresų transliavimo posistemė (angl. linker, liet. saistyklė, liet. neįsitvirtinę pakaitalai: siejyklė, rišyklė), užtikrinanti simbolinių objektinio kodo adresų transliaciją į fizinius.
- Procesų valdymo posistemė (angl. process manager), užtikrinanti procesoriaus, atminties ir pan. resursų paskirstymą, procesų valdymą ir pan.
- Pagalbinės bibliotekos (angl. library, liet. biblioteka), suteikiančios programoms standartinę aplinką darbui su OS funkcijomis.
- Tvarkyklės (angl. driver, liet. tvarkyklė, valdyklė), suteikiantys programoms standartizuotą interfeisą darbui su aparatine įranga.
- Pagalbinės posistemės, pvz., virtuali atmintis, failų sistema ir pan.
Skirstymas architektūros požiūriu
[redaguoti | redaguoti vikitekstą]Tradiciškai OS skirstomos pagal branduolio struktūrą:
- Monolitinės turi vientisą, visas funkcijas atliekantį branduolį, kurį, keičiant aparatūrą, reikia perkompiliuoti.
- Generatyvinės turi branduolį, veikiantį, kaip monolitinis, tačiau branduolys generuojamas jo pakrovimo metu.
- Modulinės artimos generatyvinėms, tačiau turi branduolius, susidedančius iš modulių, kuriuos galima keisti OS darbo metu.
- Mikrobranduolius turinčios veikia, kaip minimalūs branduoliai, atiduodantys OS funkcijas įprastiems procesams.
Taip pat, OS neretai skirstomos pagal daugelį kitų parametrų, pvz., procesų valdymo metodus (pranešimų eilę ar procesų perjungimu pagrįstos), aparatūros abstrakciją (virtualizuojančios ir nevirtualizuojančios), sistemines funkcijas (pvz., Monitorius (OS)), galimybes dirbti tinkle, istoriškai susiklosčiusias savybes (pvz., UNIX, Windows) ir pan.
Žinomesnės operacinės sistemos
[redaguoti | redaguoti vikitekstą]Asmeniniams kompiuteriams skirtos sistemos
[redaguoti | redaguoti vikitekstą]Delniniams kompiuteriams skirtos sistemos
[redaguoti | redaguoti vikitekstą]Serveriams bei darbo stotims skirtos sistemos
[redaguoti | redaguoti vikitekstą]Realaus laiko sistemos
[redaguoti | redaguoti vikitekstą]Kitos sistemos
[redaguoti | redaguoti vikitekstą]- DOS
- DR-DOS (Open DOS)
- FreeDOS
- MS-DOS
- PC-DOS
- PTS-DOS
Savybės
[redaguoti | redaguoti vikitekstą]Pertraukimai
[redaguoti | redaguoti vikitekstą]Pertraukimai yra svarbus aspektas operacinėje sistemoje, tai yra veiksmingas būdas operacinei sistemai bendrauti su aplinka. Alternatyva – leisti operacinei sistemai „stebėti“ (angl. watch), tai galima rasti senesnėse sistemose su labai maža laikinosios informacijos saugykla (50-60 baitų), tačiau tai gana neįprasta modernioms sistemoms su didelėmis laikinosiomis informacijos saugyklomis. Pertraukimą tiesiogiai palaiko dauguma šiuolaikinių procesorių. Pertraukimai teikiami kompiuteriams su automatiniu vietos taupymu kontekstų registre, reaguojant į įvykius vykdomas specialus kodas. Net ir paprasčiausių kompiuterių techninė įranga dirba su pertraukimais. Kai nutraukiamas vykdomos programos veiksmas, kompiuterio techninė įranga automatiškai sustabdo veikiančią programą, išsaugo joje esančią informaciją ir vykdomas pertraukimo apdorojimo kodas. Moderniose operacinėse sistemose pertraukimą apdoroja operacinės sistemos branduolys. Pertraukimai gali ateiti iš bet kokios kompiuterio techninės įrangos ar paleistos programos. Kai techninė įranga įjungia pertraukimą, operacinės sistemos branduolys nusprendžia, kaip elgtis tokiu atveju, paprastai yra vykdomas duomenų apdorojimo kodas. Kodas priklauso nuo nutraukimo. Techninės įrangos procesorius paleidžia iš naujo užduotį, kuri gali būti viena iš operacinės sistemos branduolio dalių, kita programa arba abiejų. Tada įvairiais būdais įrenginių tvarkyklė (angl. driver) perduoda informaciją programai. Programa taip pat gali sukelti operacinės sistemos perkrovimą. Jei programa nori naudotis technine įranga, pavyzdžiui, ji gali perkrauti operacinės sistemos branduolį. Po pertraukimo kontrolė turi būti grąžinta branduoliui. Branduolys gali pakartoti procesą. Jei programa turi papildomų resursų, pavyzdžiui, atminties, ji bus atiduota branduolio resursams.
Apsaugos aplinka ir prižiūrėtojo aplinka
[redaguoti | redaguoti vikitekstą]Šiuolaikiniai procesoriai palaiko du darbo režimus. Dėl to procesoriai naudoja dvi aplinkas: apsaugotą režimą ir prižiūrėtojo aplinką, kurios leidžia tam tikroms centrinio procesoriaus funkcijoms būti kontroliuojamoms ir paveiktoms tiktai operacinės sistemos branduolio. Čia apsaugos aplinka (apsaugotas režimas) nesiunčia specialiai į 80286 (Intel x86 16 bitų mikroprocesorius) centrinio procesoriaus ypatybę, nors apsaugos aplinka yra labai panaši į tai. CPU galėtų turėti kitas aplinkas, panašias į 80286 apsaugos aplinkas, tokias kaip virtuali 8086 aplinka iš 80386 (Intel x86 32 bitų mikroprocesorius ar i386).
Tačiau, sąlygos plačiau naudojamos operacinės sistemos teorijoje sietinoje su visomis aplinkomis, kurios riboja programų, veikiančių toje aplinkoje, gebėjimą, aprūpinanti sistemų, kaip virtualioji atmintis, adresavimą ir prieigas, ribojant prieigą pagrindinės įrangos aplinkoje, veikiančios prižiūrėtojo aplinkoje. Panašios aplinkos egzistavo superkompiuteriuose, mini kompiuteriuose ir centriniuose kompiuteriuose, kadangi jos yra tikrai būtinos, pavyzdžiui, UNIX daugelio vartotojų operacinės sistemos palaikymui.
Kai kompiuteris pirmą kartą įjungiamas, tai automatiškai pasileidžia prižiūrėtojo aplinkoje. Pirmos kelios programos, paleidžiamos kompiuterio, yra BIOS, paleidyklė (angl. boot loader) ir operacinė sistema, jos turi neribotą prieigą prie operacinės įrangos - ir tai reikalinga todėl, kad, iš esmės, inicijuojama apsaugota aplinka gali būti įjungta tiktai už jų ribų. Tačiau, kai operacinė sistema perduoda kontrolę į kitą programą, tai gali perjungti centrinį procesorių į apsaugotą režimą.
Apsaugotame režime programos gali turėti prieigą prie labiau apriboto centrinio procesoriaus instrukcijų komplekto. Vartotojų programa gali palikti apsaugotą režimą tiktai sukeldama pertrauktį, priversdama perduoti kontrolę atgal į branduolį. Tokiu būdu operacinė sistema gali palaikyti išskirtinę kontrolę kaip prieigą prie pagrindinės įrangos ir atminties.
Terminas „apsaugos aplinkos ištekliai“ apskritai siejasi su vienu ar daugiau centrinio procesoriaus registrų, kuris turi savyje informaciją, kuri veikiančiai programai neleidžia nieko pakeisti. Pastangos pakeisti šituos išteklius apskritai sukelia persijungimą į prižiūrėtojo aplinką, kur operacinė sistema gali susitvarkyti su neteisėta operacija, kurią programa stengėsi įvykdyti (pavyzdžiui, ištrindama programą).
Atminties valdymas
[redaguoti | redaguoti vikitekstą]Operacinių sistemų branduolys atsakingas už visos sistemos atminties, naudojamos procesų, valdymą. Tai apsaugo procesus nuo svetimos atminties naudojimo ir leidžia efektyviau išnaudoti esamą atmintį. Procese, darbo metu, kiekvienas procesas privalo turėti nepriklausomą priėjimą prie atminties.
Bendras atminties valdymas, naudojamas daugelyje ankstesnių operacinių sistemų, veikė su prielaida, kad visi procesai savanoriškai naudojasi branduoliu atminties valdymui ir neviršija jiems skirtos atminties kvotų. Tačiau tai nepasiteisino, nes procesai dažnai dėl klaidų viršydavo jiems skirtos atminties kvotas, taip paveikdamos ir kitus procesus, kurių atmintį užimdavo. Kenkėjiški procesai ar virusai galėjo kryptingai keisti kito proceso atmintį ar net pačią operacinę sistemą. Kooperacinės atminties valdymui pakaktų tik vienos blogos programos, kad nulaužtų sistemą.
Atminties apsauga leidžia branduoliui apriboti proceso priėjimą prie kompiuterio atminties. Egzistuoja įvairūs atminties apsaugos metodai, įskaitant atminties segmentaciją ir puslapiavimą. Visi metodai reikalauja tam tikros techninės įrangos palaikymo lygio (pavyzdžiui, 80.286 MMU), kuris egzistuoja ne visuose kompiuteriuose.
Ir segmentacijoje, ir puslapiavime, kai apsaugoto režimo registrai apibrėžti procesoriuje, atminties adresas turi sutikti duoti priėjimą veikiančioms programoms. Bandymas prieiti prie kitų adresų, iššauks pertraukimą, kuris perves sistemą į apsaugotą režimą, perduodamas valdymą branduoliui. Tai vadinama segmentavimo pažeidimu arba trumpiau - SEG-V. Dažniausiai tai yra klaidos ženklas, ir branduolys paprastai pašalins tai padariusį procesą ir praneš apie klaidą.
Windows 3.1-Me turi keletą atminties apsaugos lygių, bet programos gali lengvai juos apeiti. Pagal Windows 9x visų MS-DOS programų, kurios veikia apsauginiu režimu, suteikiant joms beveik neribotą kompiuterio valdymą. Pagrindinės atminties gedimas parodys, kokie įvyko segmentavimo pažeidimai, vis dėlto, bet kokiu atveju sistema dažnai bus nulaužiama.
Daugumoje Linux sistemų, dalis kietajame diske yra skirta virtualiai atminčiai, kai operacinė sistema bus įdiegiama. Ši dalis yra žinoma kaip „swap“ erdvė. Windows sistema naudoja „swap“ bylą vietoj padalijimo.
Virtualioji atmintis
[redaguoti | redaguoti vikitekstą]Virtualiosios atminties adresavimų (tokie kaip puslapiavimas, ar segmentavimas) naudojimas leidžia operacinės sistemos branduoliui pasirinkti kokią atminties sritį kiekviena programa gali naudoti bet kuriuo metu, kas operacinei sistemai sudaro galimybę naudoti tas pačias atminties sritis kelioms užduotims.
Jei programa bando naudoti atmintį, kuri nėra jai prieinamos atminties srityje, bet vis tiek buvo skirta jai, operacinės sistemos branduolys bus pertrauktas taip pat, lyg programa bandytų naudoti daugiau atminties nei jai yra skirta. Unix operacinėje sistemoje šis pertraukimas yra vadinamas „puslapio klaida“ (angl. Page fault).
Jei operacinės sistemos branduolys aptinka „puslapio klaidą“, jis pakeis virtualiosios atminties sritį programai, kuri šią klaidą sukėlė, skirdamas jai prašomą atminties sritį. Tai suteikia operacinės sistemos branduoliui galimybę skirti kiekvienai programai atminties sritį, bei nustatyti jos vietą.
Moderniose operacinėse sistemose atmintis, kuri naudojama rečiau, gali laikinai būti saugoma diske, ar kitoje atminties laikmenoje, atlaisvinant tą atminties vietą kitoms programoms. Tai yra vadinama „keitimu“ (angl. Paging swapping), nes daugiau nei viena programa gali naudoti tą pačią atminties sritį, keičiant tos atminties srities turinį pagal pareikalavimą.
Programos vykdymas
[redaguoti | redaguoti vikitekstą]Operacinė sistema veikia kaip sąsaja tarp vartotojo ir techninės įrangos. Vartotojas bendrauja su technine įranga iš „kitos barikadų pusės“. Operacinė sistema servisų techninei įrangai rinkinys, suteikiantis PĮ galimybę kreiptis į procesus, sudarytus iš mažesnių procesų (servisus). Iš esmės, patį programos vykdymą galima susieti su operacinės sistemos kuriamu procesu, t. y. branduolys kuria procesus padalindamas atmintį bei kitus resursus, nustato procesų eiliškumą (sistemose, kuriose vienu metu yra vykdoma keletą užduočių), perduoda programos kodą į atmintį, bet vykdo pačią programą. Tuomet programa yra tarpininkas tarp vartotojo ir įrenginių bei vykdo jai numatytas funkcijas.
Kompiuterinis tinklas
[redaguoti | redaguoti vikitekstą]Šiuo metu operacinės sistemos palaiko daug įvairių tinklo protokolų, techninės įrangos ir susijusios programinės įrangos. Tai reiškia, kad kompiuteriai, valdantys skirtingas operacines sistemas, gali dalyvauti bendrame tinkle (angl. network) tam, kad galėtų pasidalytų ištekliais: skaičiavimų pajėgumais (angl. Computing), rinkmenomis, spausdintuvais ir skaitytuvais, naudodami laidinį ar belaidį ryšį. Potencialiai, tinklai leidžia operacinei sistemai gauti prieigą prie nutolusio kompiuterio išteklių, suteikiančių tą pat funkcionalumą, kurį suteiktų tie ištekliai prijungti tiesiogiai prie kompiuterio. Tai gali būti paprasta komunikacija, tinklinės failų (rinkmenų) sistemos ar net naudojimasis kito kompiuterio grafine ar garsine technine įranga. Kai kurios tinklo paslaugos suteikia galimybę išteklius tinkle pasiekti kaip esančius toje pačioje sistemoje, pvz., SSH (SSH), kuris suteikia tinklo vartotojams tiesioginę prieigą prie kompiuterio tekstinės komandinės aplinkos (CLI).
Klientas/serveris atveju kliento programa per tinklą jungiasi prie kito kompiuterio - serverio. Serveris teikia įvairias paslaugas kitiems tinkle esantiems kompiuteriams ir vartotojams. Šios paslaugos suteikiamos per tam skirtas jungtis ar numeruotus prieigos punktus serveryje esančiame kažkokiu tai tinklo adresu (angl. Network address). Dažniausiai jungtis susiejama tik su vienu procesu, dažnai vadinamu demonu, atsakingu už duomenų, patenkančių ta jungtimi, apdorojimą, pvz., tinklalapių serveris dažniausiai atsakingas už 80-ąją jungtį. Demonas, savo ruožtu turi prieigą prie tam tikrų vietinių techninės ir programinės įrangos išteklių, ir gali atlikti kažkokius veiksmus per operacinės sistemos branduolį.
Daugelis operacinių sistemų palaiko vieną ar daugiau atvirų tinklo protokolų, pavyzdžiui, SNA (angl. Systems Network Architecture), IBM operacinėse sistemose, DECnet (angl. Digital Equipment Corporation) sistemose, ir specifiniai Microsoft protokolai (angl. SMB – Server message block). Windows operacinėse sistemose. Taip pat gali būti palaikomi specifiniai protokolai specifinėms užduotims, pvz., NFS (angl. Network file system) prieigai prie tinkle esančių rinkmenų. Protokolai kaip ESound, ar esd gali būti lengvai išplėsti per tinklą, kad lokali programinė įranga galėtų atkurti garsą naudodama nutolusią techninę įrangą.
Saugumas
[redaguoti | redaguoti vikitekstą]Kompiuterio saugumas priklauso nuo teisingo technologijų veikimo bei taikymo. Šiuolaikinė operacinė sistema aprūpina prieigą prie daugybės išteklių, kurie yra pasiekiami programinei įrangai, esančiai sistemoje, ir į išorinius įrenginius tinklais per branduolį.
Operacinė sistema turi gebėti atskirti užklausas, kurias galima apdoroti, ir kitas, kurių negalima apdoroti. Tuo metu, kuomet kai kurios sistemos gali tiesiog skirti privilegijuotą nuo neprivilegijuoto vartotojo, sistemos paprastai turi metodus identifikuoti vartotoją, pvz., vartotojo vardą. Kad nustatytume tapatumą, atliekamas autentifikavimas. Dažnai vartotojo vardas turi būti patikrintas, ir kiekvienas vartotojo vardas gali turėti slaptažodį. Taip pat, naudojami kiti autentifikavimo metodai: magnetinės kortelės ar biometriniai duomenys vietoje įprasto slaptažodžio. Kai kuriais atvejais, ypač ryšiams tarp tinklų, prie išteklių galima gauti prieigą be autentifikavimo (tokio, kaip bendrų rinkmenų skaitymas per tinklą). Taip pat, apimta registruoto tapatumo sąvoka - yra leidimas; tam tikros paslaugos ir ištekliai, prieinami per užklausimą, vieną kartą registruotą į sistemą, yra surišti ar registruojami vartotojų pranešimu ar įvairiai formuotoms grupėms vartotojų, kuriems užklausimas priklauso.
Be to, į leisti/atmesti saugumo modelį, sistema su saugumo aukštu lygiu taip pat pasiūlys tikrinimo pasirinkimą. Jie leistų sekti prieigos prašymą prie išteklių (toks kaip, „kas skaitė šią rinkmeną?“). Vidaus saugumas, ar saugumas nuo jau veikiančios programos yra tiktai galimas, jei visi galbūt žalingi prašymai turi būti atlikti per įtraukimą į operacinės sistemos branduolį . Jei programos gali tiesiogiai gauti prieigą prie aparatinės įrangos ir išteklių, jie negaunami.
Išorinis saugumas apima prašymą iš išorės kompiuterio, tokio kaip registracijos vardas susijusiame pulte ar tam tikrame tinklo ryšyje. Išorinius prašymus dažnai perduoda per prietaiso vairuotojus į operacinės sistemos branduolį, kur juos gali perduoti paraiškomis, ar atlikti tiesiogiai. Operacinių sistemų saugumas ilgai buvo reikalingas, dėl labai jautrių duomenų, naudotas kompiuteriams, komercinėms ir saugumo programoms. Jungtinių Valstijų Vyriausybės Gynybos departamentas (angl. Department of Defense, DoD) sukūrė Patikėtus Kompiuterinės Sistemos Įvertinimo Kriterijus (TCSEC), kurie yra standartas, nustatantis pagrindinius reikalavimus tam, kad įvertintų saugumo efektyvumą. Tai nutiko didelei svarbai operacinės sistemos gamintojams, todėl, kad TCSEC buvo panaudotas, kad įvertintų, klasifikuotų ir išrinktų kompiuterines sistemas, svarstytas apdirbimui, laikymui ir jautrios ar slaptos informacijos paieškai (angl. Classified information).
Tinklo paslaugos yra tokios, kaip bendras rinkmenų naudojimas, spausdinimo paslaugos, elektroninis paštas, žiniatinklio svetainės ir rinkmenos perdavimo protokolai (angl. File transfer protocol) (FTP), iš kurių dauguma galėjo saugumą nukreipti į pavojų. Saugume yra aparatinės įrangos prietaisai, žinomi kaip gaisrasienės ar įsibrovimo susekimo/prevencijos sistemos (angl. Firewalls). Operaciniame sistemos lygmenyje yra daug pasiekiamų programinės įrangos gaisrasienių, taip pat kaip įsibrovimo susekimo/prevencijos sistemos. Dauguma šiuolaikinių operacinių sistemų apima programinės įrangos gaisrasienę, kuri yra įgalinta netiesiogiai. Programinės įrangos gaisrasienė gali būti formuota, kad leistų ar paneigtų tinklo eismą į ar nuo paslaugos ar paraiškos, esančios operacinėje sistemoje. Todėl, kiekvienas gali įdiegti ir valdyti nesaugią paslaugą, tokią kaip Telnet ar FTP ir, kad būtų įmanomas saugumo pažeidimas. Todėl, kad gaisrasienė uždraudžia visą eismą, jungiantis prie to porto paslaugos.
Alternatyvi strategija ir vienintelė smėliadėžės (angl. sandbox) strategija, pasiekiama sistemose, kurios nesutinka su Popek ir Goldberg virtualizacijų reikalavimais (angl. Popek and Goldberg virtualization requirements), yra operacinė sistema, kuri nevaldo vartotojų programų kaip artimas kodas, bet tam, kad mėgdžiotų procesorių ir aprūpintų, šeimininkas p-kodui (angl. p-code) įkūrė Java sistemą.
Vidaus saugumas yra ypač tinkamas multivartotojų sistemoms; tai leidžia kiekvienam sistemos vartotojui turėti privačias rinkmenas, kurių kiti vartotojai negali perskaityti ar keisti. Vidaus saugumas yra taip pat svarbus, jei tikrinimas turi duoti grąžinti kažkokią reikšmę, kadangi programa gali potencialiai apeiti operacinę sistemą, imtinai apeiti tikrinimą.
Daugiaprogramis apdorojimas
[redaguoti | redaguoti vikitekstą]Daugiaprogramis apdorojimas (angl. Computer multitasking) nurodo kelių nepriklausomų programų veikimą tame pačiame kompiuteryje; suteikia vaizdą, kad vykdomos programos tuo pačiu metu. Daugelis kompiuterių gali padaryti daugiausiai vieną ar du dalykus tuo pačiu metu, tai paprastai daroma per laiko skirstymą (angl. Time-sharing), tai reiškia, kad kompiuteris paskirsto laiką programų įvykdymui.
Operacinės sistemos branduolys yra dalis programinės įrangos, vadinamos planuokle (angl. Scheduler), kuri nustato, kiek laiko kiekviena programa naudos vykdymui ir kokia tvarka vykdymo kontrolė turi būti perduota į programas. Procesui valdymas perduodamas branduoliu, kuris leidžia programai patekti į procesorių ir atmintį (angl. Memory). Vėliau, kontrolė grįžta į branduolį per tam tikrą mechanizmą, taigi taip kita programa gali naudotis procesoriumi. Šis kontrolės perėjimas iš branduolio ir taikymai vadinami konteksto keitimu (angl. Context switch).
Ankstesnis modelis, kuris valdė laiko pasiskirstymą programose buvo vadinamas kooperuotu daugiaprogramiu apdorojimu (angl. Cooperative multitasking). Pagal šį modelį, kai kontrolė perduodama programai per branduolį, ji gali būti vykdoma tiek ilgai, kol bus grąžinama į branduolį. Tai reiškia, kad neužbaigta arba blogai funkcionuojanti programa gali ne tik užkirsti kelią kitai programai pasinaudoti procesoriumi, bet ir pakabinti visą sistemą, jei ji patenka į begalinį ciklą (angl. Infinite loop).
Požiūris vadovaujamas prioritetiniu daugiaprogramiu apdorojimu (angl. Preemptive multitasking) yra toks, kad svarbu užtikrinti, kad visoms programoms būtų teikiamas reguliarus laikas procesoriuje. Tai reiškia, kad visos programos turi būti ribojamos laiko atžvilgiu, kurį praleidžia procesoriuje be nutraukimo. Norint tai užbaigti, modernios operacinės sistemos branduolys pasinaudoja laiko nutraukimu. Saugaus režimo (angl. Protected mode) laikmatis nustatomas pagal branduolį, kuris sukelia grįžimą į peržiūros režimą (angl. supervisor mode) po nurodyto laiko praėjimo.
Daugeliui vartotojų operacinės sistemos kooperuotas daugiaprogramis apdorojimas yra visiškai pakankamas, kai namų kompiuteriuose paprastai valdo keletas gerai išbandytų programų. Windows NT buvo pirmoji versija Microsoft Windows, kuris vykdomas prioritetiniu daugiaprogramiu apdorojimu, tačiau jis nepasiekė namų vartotojų rinkos iki Windows XP, (nuo to laiko Windows NT buvo skirta specialistams.)
Branduolio pertraukimo palaikymas
[redaguoti | redaguoti vikitekstą]Pastaraisiais metais yra kilęs didelis susirūpinimas dėl uždelsimo, siejamo su operacinės sistemos branduolio (angl. kernel) vykdymu, pavyzdžiui, kartais sistemose su vientisais branduoliais (angl. momonolithic kernel) neveiklus laikas trunka 100 milisekundžių ir daugiau. Ši delsa dažnai sukuria pastebimą sulėtėjimą stalinėse sistemose ir gali trukdyti operacinei sistemai atlikti laikui jautrius procesus, kaip tarkim garso įrašymas ar komunikacija.
Modernios operacinės sistemos pratęsia laikino proceso pertraukiamumo koncepciją įrangos tvarkyklėmis (angl. drivers) ir operacinės sistemos branduolio kodui (angl. kernel code), taigi suprantama, kad operacinės sistemos turi paskirstymo kontrolę vidiniams procesams. Operacinė sistema Windows Vista - įžanga į Windows vaizdo tvarkyklės modelį (angl. Windows Display Driver Model), įdiegia šią galimybę vaizdo tvarkyklėms (angl. display drivers). Linux operacinėje sistemoje laikinai pertraukiamas branduolio modelis pradėtas naudoti nuo 2.6 - osios versijos leidžia visoms įrangos tvarkyklėms ir keletui branduolio kodo dalių naudotis pranašumais, gaunamais iš paskirstomo daugiaprogramio apdorojimo (angl. multi-tasking). Operacinėse sistemose Windows, prieš atsirandant operacinėms sistemoms Windows Vista ir Linux 2.6 versijai, visos tvarkyklės vykdymas buvo glaudus, kas reiškė sistemos sustingimą vykdant įrangos tvarkyklių įvedimą begaliniu ciklu.
Planavimas[3]
[redaguoti | redaguoti vikitekstą]Sistemose, vykdančiose daugelį procesų, vienu metu atmintyje saugoma informacija apie keletą procesų. Kiekvienas procesas turi funkcijas, atliekamas laukiant kol bus įvykdytas įvedimas/išvedimas ar kiti veiksmai susiję su išoriniais įvykiais. Procesorius vykdo vieną procesą, kai kiti procesai yra laukimo režime. Daugprocesinės sistemos veikimas pagrįstas planavimu. Sistemų su keliais procesoriais planavimas yra sudėtingesnis, apimantis planavimą kuris vykdomas sistemose su vienu procesoriumi.
Planavimas kompiuteriuose su vienu procesoriumi
[redaguoti | redaguoti vikitekstą]Procesoriaus planavimas skirstomas pagal procesų tipą. Procesai turi nustatytą laiką, per kurį turi būti įvykdyti. Skirstomi į ilgus, vidutinio ilgumo, trumpus procesus. Ilgos trukmės procesai planuojami, juos skaidant į trumpesnio vykdymo procesus. Vienose sistemose jie statomi į steką, skirtą vidutinio ilgio procesams, kitose - trumpiems procesams. Pirmu atveju procesams, jų statusas ir stadija yra saugomi diske. Pirmenybė skiriama tiems procesams, kuriuos vykdyti naudotojas parinko pirmus. Vidutinio ilgumo procesai planuojami naudojant keitimo procesą (angl. swapping). Procesų užkrovimas į atmintį priklauso nuo sistemos galimybių vykdyti procesus vienu metu, nuo virtualios atminties egzistavimo, atminties valdymo, kiek atminties procesui reikalinga. Trumpi procesai yra vykdomi jų neskaidant. Pertraukiami tik įvykus įvedimui/išvedimui, laiko pertraukimui, operacinės sistemos įvykiams, signalams. Planavimo algoritmas dažniausiai yra pagrįstas procesų planavimu, ne naudotojo veiksmų aptarnavimui (žemesnis abstrakcijos lygmuo). Procesų parinkimas vykdymui yra atliekant jų vertinimą parenkant jiems skaitines reikšmes. Dažniausiai vertinami proceso vykdymo laikas, pertraukto proceso laukimo laikas, bei proceso savybės. Tai įvertinus, procesui nustatomas prioritetas. Procesas iš eilės vykdymui imamas tas, kurio prioritetas yra didžiausias.
Planavimo strategijos skiriasi būdu, kuriuo parenkamas vykdymui procesas iš laukiančiųjų eilės. Tai vienas iš planavimo strategijų rūšiavimų. Trumpi procesai parenkami vykdymui pagal principą - pirmas pradėtas vykdyti, pirmas baigtas vykdyti, vykdymui parenkamas tas, kuris yra eilėje ilgiausiai. Ciklinis planavimas - naudojant sistemos laikrodį. Praėjus nustatytam laiko tarpui, yra generuojamas pertraukimas, tada vykdymui yra parenkamas kitas procesas iš laukiančiųjų eilės, o vykdytas procesas padedamas į eilę. Pačio trumpiausio proceso vykdymas - tai planavimo strategija, kai parenkamas procesas pagal tai kiek liko laiko iki jo įvykdymo. Jei užtenka laiko iki kito pertraukimo, tai procesas yra įvykdomas, kitu atveju - padedamas į eilę. Šitam algoritmui yra svarbus teisingas reikalingo procesui įvykdyti laiko įvertinimas, kurį atlieka OS. Dėl klaidos sistema ne laiku gali nustoti vykdyti procesą. Trumpiausio laiko algoritmas - tai planavimo algoritmas, kai vykdymui parenkamas procesas su trumpiausiu laiku iki jo įvykdymo. Čia procesas vykdomas iki pabaigos. Planavimas, pagrįstas atsiliepimo į įvykį (reagavimo) greičiu. Paskaičiuojamas statistiškai. Procesas parenkamas iš eilės pagal tai, kaip greitai yra reaguojama į jo įvykius. Prioriteto mažinimas - planavimo strategija, kai proceso prioritetas yra sumažinamas, jei procesas ilgai vykdomas. Trūkumas - ilgų procesų vykdymo laikas dar labiau padidėja.
Vartotojui yra svarbu, kaip bus vykdomas ne vienas procesas, bet jų grupės. Jei jie yra įvertinami, tai naudojamas teisingas planavimo algoritmas. Čia kiekvienas vartotojas taip pat laikomas procesu. Tai reikalinga, kad įvertinti visus procesus ir jų naudojamus resursus. Šis planavimas naudojamas UNIX sistemose.
Planavimas kompiuteriuose su keliais procesoriais
[redaguoti | redaguoti vikitekstą]Jei atsiranda procesas, kurį reikia vykdyti, parenkamas tuo metu laisvas procesorius. Tariama, kad visi serveriai yra vienodi. Jei visi serveriai yra užimti, tai procesas atsiduria laukiančiųjų eilėje. Galimas variantas, kad kiekvienas procesorius turi savo eilę. Planavimo algoritmas daugiaprocesinėje sistemoje vykdo
- proceso paskyrimą procesoriui
- procesų dėjimą į laukiančiųjų eilę
- proceso parinkimą vykdymui iš eilės.
Realaus laiko sistemų planavimas
[redaguoti | redaguoti vikitekstą]Įvertinami ne tik procesoriai, bet ir laikas skirtas vertinimui. Procesai ir procesoriai čia turi savo prioritetus. Procesai valdo arba reaguoja į įvykius, kurie vyksta realiu laiku. Įvykiams apdoroti yra paskirtas laikas. Ar šis požymis yra griežtas, ar orientacinio pobūdžio, tai realaus laiko proceso charakteristika. Realaus laiko procesai skirstomi taip pat pagal tai, ar jie yra periodiniai.
Realaus laiko sistemos turi tenkinti reikalavimus:
- determinuotos
- jautrios įvykiams
- jautrios vartotojo veiksmams
- patikimumas
- atsistatymas po klaidos
Realaus laiko sistemų planavimo algoritmai skirstomi pagal
- vykdoma planavimo analizė
- planavimo analizė statistinė ar dinaminė
- vykdomas laiko vertinimas procesų parinkimui ar naudojamas keitimas pagal kitus procesų parametrus
Realaus laiko sistemų planavimo klasifikacija
- statistinis planavimas, naudojant skaičiavimo lenteles
- statistinis planavimas, naudojant prioritetus (čia kintamas procesų vykdymo laikas)
- dinaminis planavimas pagal eilę
- dinaminis planavimas, atliekamas įvertinimas pasiekti geriausią rezultatą (svarbiausias kriterijus - procesui skirtas laikas)
Disko prieiga ir failų sistema
[redaguoti | redaguoti vikitekstą]Prieiga prie saugomų duomenų diske yra pagrindinis visų operacinių sistemų bruožas. Kompiuteriai kaupia duomenis diskuose (angl. Disk) naudodami failus (angl. File) sudarytus tam tikrų metodų pagalba, leidžiančius greičiau gauti prieigą didesniu patikimumu, ir geriau panaudoti disko laisvą vietą. Metodas, kuriuo failai yra saugomi diske, vadinamas failų sistema (angl. File system). Ji leidžia failams turėti vardus ir atributus, taip pat juos laikyti katalogų hierarchijoje arba aplankus išdėstyti katalogų medyje (angl. Directory tree).
Pirmosios operacinės sistemos paprastai palaikė vienos rūšies diską ir failų sistemą. Jų pajėgumas, greitis, rinkmenų pavadinimai ir katalogų struktūros buvo ribojami. Šie apribojimai atsispindėjo operacinėse sistemose, kuriose jie buvo suprojektuoti, todėl sunkiai palaikė daugiau nei vieną failų sistemą.
Nors daug paprasčiau operacinės sistemos palaiko ribotas galimybes patekti į atmintį, operacinės sistemos, kaip UNIX ir Linux palaiko technologiją, žinomą kaip virtuali failų sistema (