Prezentácia
Stiahnuť PPT · 63 kBPreber si túto poznámku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.
Náhľad poznámky
Operačné systémy
História OS
Čo je OS
Operačný systém (OS) je program fungujúci ako prostredník medzi
používateľmi a hardvérom (technickým vybavením) počítačového systému.
Vytvára prostredie pre spúšťanie programov používateľov. Hlavným cieľom
je zabezpečenie pohodlného prístupu používateľov k programom a
efektívne využívanie hardvéru. Podľa širšej definície je operačný systém
všetko, čo dostanete v krabici s OS – kompilátory, editory, GUI nadstavby...
Podľa odbornej definície je OS iba program, ktorý neustále beží na počítači –
tzv. výkonné jadro (kernel) operačného systému.
Počítačový systém sa dá rozdeliť na štyri časti:
hardvér: CPU, pamäť (primárna a sekundárna) a V/V (vstupno-výstupné)
zariadenia systému;
operačný systém: koordinuje celý počítačový systém, prideľuje zdroje,
kontroluje ich použitie;
aplikačné programy: prekladače, databázy, hry (špeciálne sú tzv. nástroje
na správu systému – programy na kontrolu disku, formátovanie diskiet,
zavádzanie používateľov apod.);
používatelia. (Je trochu nesympatické považovať používateľov systému za
jeho súčasť).
Privilégia – úrovne prístupu
Mikroprocesory Intel 386+ a Pentium+ majú
možnosť pracovať v štyroch úrovniach oprávnenia.
(Úroveň 0 je úrovňou s najvyššími právami.) Ich
využitie je odporúčané takto:
Privilege Level 0 jadro operačného systému
(riadenie mikroprocesora, V/V operácií,...),
Privilege Level 1 služby poskytované operačným
systémom (organizácia V/V, ...),
Privilege Level 2 systémové programy
a podprogramy knižníc,
Privilege Level 3 používateľské aplikácie.
Architektúra OS
Veľký a zložitý systém, akým je OS, sa dá vytvoriť a spravovať, ak pozostáva z menších
častí s dobre definovaným rozhraním a chovaním. Rozdelenie komponent je vo
všeobecnosti takéto:
Správa procesov
Operačný systém by mal umožniť
vytváranie a ukončovanie procesov,
pozastavenie a reaktiváciu procesov,
synchronizáciu procesov a
komunikáciu medzi procesmi (aj po sieti).
Správa (primárnej) pamäte
odkladanie stránok (odkladanie nepotrebných stránok na disk a ich spätné nahrávanie do pamäte),
simulovaná vyrovnávacia pamäť disku,
prehľad o obsadenosti úsekov pamäte,
prideľovanie pamäte novým procesom a
prideľovanie pamäte procesom žiadajúcim o ďalšiu pamäť (a jej navracanie).
Správa sekundárnej pamäte
Správa periférnych zariadení
Správa súborov
Používateľské rozhranie
Textové používateľské rozhranie používa pre vstup údajov klávesnicu a pre výstup monitor terminálu.
Grafické používateľské rozhrania (GUI – Graphical User Interface) používajú pre vstup myš a klávesnicu.
Správa súborov
Súbory a adresáre sú organizované hierarchicky (Existuje hlavný adresár ( nazýva sa
root), ktorý je vždy ľahko detekovateľný operačným systémom. Rootovský adresár
ukazuje na ďalšie adresáre/súbory. Jeho (pod)adresáre ukazujú na ďalšie adresáre atď.
Vzniká tak tzv. stromová štruktúra adresárov.
Atribúty sú vlastnosti súboru či adresára. Bývajú uložené mimo tela (obsahu) súboru,
napríklad v adresári (u MS-DOSu a Windows 95/98/ME) či v hlavičke súboru Okrem
iného sem patria typ súboru, jeho umiestnenie, veľkosť, prístupové práva, časové údaje
a údaje o vlastníkovi. Názov súboru býva uložený v adresári.
Operácie so súbormi zabezpečované operačným systémom sú
vytvorenie/zrušenie/skrátenie súboru, zápis do súboru, čítanie dát zo súboru, presun
virtuálneho ukazovateľa pre čítanie resp. zápis na určitú pozíciu v súbore. Súbor,
s ktorým sa pracuje, označujeme ako otvorený, po skončení práce sa súbor uzavrie.
Hlavné metódy prístupu k súborom sú (z pohľadu programátora) sekvenčný prístup
(akoby bol súbor na páske) a priamy prístup (umožňuje čítať a zapisovať na rôznych
pozíciách súboru). Detaily implementácie pritom vykrýva operačný systém.
Prístupové práva: Práva sa týkajú čítania (read) súboru, zápisu (write) do súboru
a vykonávania (execute) súboru (ak je povolené vykonávanie, očakáva sa, že súbor je
programom alebo skriptom). Označujeme ich skratkami: r, w, x
Správa procesov
Proces je úloha (program) zavedená do pamäte na vykonanie. Ak
desať používateľov používa napríklad textový editor vi, spustili
jediný program (v pamäti sa nachádza iba raz), ale ide o desať
samostatných procesov.
Proces pozostáva z kódu programu (v našom príklade jediný
v pamäti) a dát procesu (globálne dáta, zásobníky zodpovedajúce
postupnosti volaní podprogramov a hromada, ktorá slúži na
prideľovanie ďalšej pamäte). Toto spolu s hodnotami registrov
počítača charakterizuje proces v operačnom systéme na danom
počítači.
Stav procesu vyjadruje vzťah OS a procesu. Proces môže byť
novovytvorený (new), bežiaci (running, práve je vykonávaný
pomocou CPU), pripravený (ready, čaká na pridelenie CPU),
čakajúci (waiting, nevykonáva sa, pretože čaká na dokončenie I/O
požiadavky, na komunikáciu s iným procesom, na uplynutie
zadaného časového úseku alebo na ukončenie činnosti svojho
potomka) a ukončený (terminated, skončil prácu alebo bol násilne
ukončený a systém ho z pamäte odstráni).
Správa primárnej pamäti
Dynamické zavedenie (dynamic loading) programov. Procedúra sa nenačíta z disku
do pamäte, kým nie je po prvýkrát volaná z programu. Je to výhodné pri málo
využívaných funkciách programu. Nevýhodou je časové zdržanie na prvé volanie
každej procedúry.
Dynamické zostavovanie (dynamic linking). Tu sa niektoré procedúry nepíšu, ale už
ich niekto umiestnil v knižniciach a tie sa k programu pridávajú až počas jeho behu (a
prvého zavolania funkcie z knižnice). Ide o dynamické knižnice Unixu či „dll“ súbory
Windows. Výhodou je menšia spotreba miesta na disku, keďže napríklad vstupno-
výstupné procedúry nemusí obsahovať každý program, stačí odkaz na ne do knižnice.
Nevýhodou je, že ak chceme zmeniť knižnice, nastáva problém kompatibility.
Prekrývanie (overlay). Často sa určité časti programov využívajú len v určitom čase
(napríklad pri štartovaní programu), potom môžu byť prepísané zvyšnou časťou
programu. Je to skôr vecou prekladača než OS, pri programovaní pre MS-DOS to
podporuje napríklad Borland Pascal i Borland C/C++.
Odkladanie stránok na disk (paging). To sme si už spomínali, má ho každý moderný
operačný systém a umožňuje využívať viac pamäte, než sa fyzicky nachádza v počítači.
Staršie operačné systémy odkladali na pevný disk celé procesy (swapovali), dnes sa
odkladajú len časti procesov – najmenej používané stránky (stránkovanie). Medzi
používateľmi a tvorcami počítačov a operačných systémov sa však zaužíval určitý
žargón, v ktorom sa procesu stránkovania nešťastne hovorí svapovanie či odkladanie
na disk. V lepšom prípade sa hovorí o odkladaní stránok do súboru resp. na
samostatnú partíciu (partícia je logický disk vytvorený na fyzickom disku, diskový
zväzok).
Prideľovanie primárnej pamäte
Existujú tri metódy alokácie primárnej (operačnej) pamäte.
Súvislá alokácia
Pri súvislej alokácii pamäte je LAP procesu uložený v súvislej oblasti FAP. Jedna oblasť FAP (typicky
oblasť nižších adries obsahujúca aj vektory prerušení) je vyhradená pre jadro operačného systému.
Zvyšok pamäte je vyhradený procesom. Rozoznávame
Stránkovanie
Stránkovanie rieši problémy fragmentácie. Program už nezaberá jednoliaty celok v pamäti ale je
rozdelený na malé stránky (o veľkosti niekoľko KB). Tabuľka stránok procesu potom určuje
pridelenie (mapovanie) stránok. Logická adresa (napríklad premennej) je určená číslom stránky (v
tabuľke stránok procesu) a ofsetom na danej stránke.
Segmentácia
Segmentácia je voči procesom menej násilná než stránkovanie. Segmenty môžu mať rôzne veľkosti,
a teda pre programátora prijateľnejšie uchovávajú navzájom súvisiace bloky programu a dát.
Segmentované stránkovanie
Segmentované stránkovanie kombinuje výhody segmentácie i stránkovania. Prvotná fáza prevodu
logickej adresy procesu na fyzickú adresu je segmentácia, kedy dostaneme lineárnu adresu. Až
priestor lineárnych adries je rozdelený na stránky, ktorým sú pridelené rámce.
Virtuálna pamäť – odkladanie stránok na disk
Najpoužívanejšou metódou rozšírenia operačnej pamäte na zdanlivo (resp. virtuálne) väčšiu je
stránkovanie na žiadosť, celým názvom operačným systémom spravované odkladanie stránok
procesov v prípade ich výpadku, t.j. iného umiestnenia, než vo fyzických čipoch primárnej (operačnej)
pamäte.
Ochrana a zabezpečenie
Ochrana
Ochrana musí procesu dovoliť prístup iba k zdrojom, ku ktorým má povolenie
(právo) pristupovať. Abstraktne hovoríme o doméne ochrany – množine
zdrojov (CPU, pamäť, súbory, I/O) a množine povolených operácií so zdrojmi.
Patrí sem napríklad implementácia súborovej ochrany (Windows NT, Unix,
Novell NetWare), pričom platí, že čím väčšia možnosť napadnutia, tým
prepracovanejšia musí byť ochrana.
Zabezpečenie
Kým ochrana je vnútorný mechanizmus operačného systému, zabezpečenie je
ochranou na vyššej úrovni (proti neoprávnenému čítaniu (krádeži) dát,
neoprávnenému vymazaniu ale aj modifikácii údajov) – môže ísť o obranu proti
zlomyseľným prístupom, chybným programom a chybujúcim používateľom.
Zabezpečenie zahŕňa vytvorenie fyzickej bariéry pre prístup ku konzole.
Autentifikácia prebieha rôznymi spôsobmi
fyzickým kontaktom (odtlačok prstu, hlasová identifikácia, snímkovanie sietnice
(očného pozadia), overenie podpisu, kontrola DNA),
predmetom (kľúč, identifikačná karta, dotykové čipy),
heslom.
Alebo (samozrejme) kombináciou použitých metód.
Narušenie bezpečnosti
Narušeniu zabezpečenosti sa dá len ťažko (z dlhodobého hľadiska) vyhnúť. K prezradeniu údajov
napríklad môže dôjsť po ukradnutí pevného disku. (Tu je riešením kódovanie citlivých údajov na
disku. Krádežou síce o dáta prídeme, nedôjde však k ich prezradeniu.
Rozoznávame niekoľko druhov programov slúžiacich na narušenie bezpečnosti:
Trójske kone sú programy sľubujúce urobiť niečo, ale robia niečo iné. Zadné dvierka. Má ich takmer
každý systém (vojenské i bankové) nevyvíjaný tímom spolupracovníkov z rôznych firiem, ktorí si
programy navzájom kontrolujú. Ako zadné dvierka je označované tajné naprogramovanie postupu
umožňujúceho nedovolené pripojenie sa autora programu do systému, na ktorom nemá konto.
Zadné dvierka si v prvých rokoch ponechali napríklad vývojári Unixu...
Červ (worm). Červ je samostatný program, ktorý sa intenzívne množí až zahltí sieť. Často ide
o nevydarený vírus.
Antivírus je program, ktorý sa chová presne ako vírus, avšak neničí všetky programy, len odstraňuje
jeden konkrétny vírus z napadnutých programov (ak ho nájde).
Softvérová bomba je program, ktorý prenikne do operačného systému a po určitom čase (časovaná
bomba) prejaví svoju deštrukčnú činnosť..
Špión je autonómny softvérový mobilný agent. Je to program podobný vírusu. Dostane sa (aj
relatívne komplikovanými bariérami) do systému, aby odtiaľ získal nejaké informácie.
Trpaslík je „neškodný“ vírus, ktorý naopak môže používateľovi dokonca pomáhať. Existuje trpaslík
zhusťujúci dáta ukladané na disk, takže sa ich tam vojde omnoho viac...
Škriatok je menej príjemný než trpaslík. Používateľa obťažuje napríklad vypisovaním „Prosím stlačte
Enter” (a na stlačenie klávesu naozaj čaká) alebo je to mucha lezúca po obrazovke alebo ide o autíčko
čas od času s hrmotom prefrčiace po obrazovke počítača...
Document Outline
Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.
nechodím na prednášky