Niekoľko poznámok o operačnom systéme
Operačný
systém
Operačný systém (OS) - hlavný riadiaci program, ktorý ovláda
zdroje počítača. Napríklad UNIX je operačný systém umožňujúci:
- multitasking (súčasné spracovanie
viac ako 1 úlohy - tasku),
- mnohouživateľský (viac užívateľov
naraz),
- interaktívny (okamžite reaguje na
príkazy).
Okrem programového vybavenia nutného pre
prevádzku počítača operačný systém vykonáva aj funkciu správcu
prostriedkov (prideľuje aj pamäť a technické prostriedky jednotlivým
procesom a synchronizuje procesy).
Hierarchická (vrstvová) architektúra
operačného systému. Jadro operačného systému (kernel) komunikuje s
vyššími vrstvami a aplikačnými programami. Operačný systém (nie
napríklad MS DOS) zabezpečuje ochranu systému (crash protection) pri
zlyhaní aplikácie. V prípade "zamrznutia" alebo inej chyby aplikácie
netreba vykonať reboot systému ale stačí zrušiť a reštartovať
zhavarovanú aplikáciu.
Práca s pamäťou
Alokácia pamäti - akcia pri ktorej sa
vyhradzuje pamäťový priestor:
- dynamická - miesto v pamäti sa
alokuje počas behu programu,
- statická - miesto v pamäti sa
alokuje už počas prekladu, teda pred spustením prekladu.
Premená:
- globálna - existencia premenej
sa začína so spustením programu a končí s ukončením programu,
- lokálna - existencia premenej
sa začína pri vstupe do podprogramu (funkcie alebo procedúry), v
ktorom je definovaná a končí sa so zakončením podprogramu. Lokálna
premená je dostupná len z podprogramu, v ktorom je definovaná.
Statická alokácia premených vyhradzuje
miesto v dátovej oblasti. Globálne premnné môžu byť alokované
len staticky. Kľúčové slovo extern sa používa pri oddelenom
preklade súborov, keď je treba, aby dva alebo viac súborov sdieľali tú
istú premennú. Táto globálna premenná je v jednom súbore definovaná
bez kľúčového slova extern a vo všetkých ostatných musí byť definovaná
s použitím extern.
Pri vymedzovaní dynamickej pamäte
určitej dlžky počas behu programu sa používa zásobník - stack.
Existencia lokálnych premených začína pri vstupe do podprogramu a
končí pri výstupe z tohto podprogramu.Pri prideľovaní dynamickej
pamäte si treba uvedomiť, že síce žiadame o pridelenie určitého počtu
bajtov, ale je vecou operačného systému koľko pamäte naviac sa
skutočne pridelí. Napr. MSDOS prideľuje pamäť po tzv. paragrafoch, čo
sú násobky 16-tich bajtov. Dôvodom tohto "plytvania pamäte" je
zjednodušenie administratívy.
Správa
operačnej pamäte
Pre správu operačnej pamäte využíva jadro
operačného systému metódu prideľovania pamätí. Je vyhradená
oblasť RAM pre zavedenie a spustenie aplikačných užívateľských
programov. Správa pamäti riadi pridelený adresový priestor programu pre
uloženie vlastného kódu a dát. Na základe volania služieb jadra systému
možno podporovať riadenie prekrývania úsekov programu, meniť rozsah
pamäti pre zavedený v pamäti program, určiť umiestnenie a rozsah adries
pre zavedenie ďalších úsekov programu do pamäti => dynamicky
prideľovať a odoberať pamäť(čo môže viesť k fragmentácii pamäti).
Multitasking - operačný systém
umožňuje súčastný beh niekoľkých programov. V skutočnosti (pokiaľ sa
nejedná o multiprocesorový počítač) to operačný systém len simuluje
pomocou prepínania programov (task switching).
Kontext - údaje uložené v tabuľke
patriace k procesu (tasku), s pomocou ktorých možno prepínať (odobrať a
znova prideliť procesoru). Na rozdiel od podprogramu táto služba po
prepnutí sa vráti na iné miesto, než z ktorého bola vyvolaná.
Kooperatívny multitasking -
prepínanie medzi procesom v popredí a procesmi, ktoré čakajú na pozadí,
pri ktorom musí spolupracovať rovnocenne každý proces. Napríklad
počas čakania na stlačenie klávesu môže dôjsť ku kopírovaniu. Nevýhodou
je spomalenie spracovania, (dá sa zrýchliť rozdelením úloh na kratšie
úseky) a nemožnosť realizácie paralelných úloh.
Preemptívny multitasking - súbežné
spracovanie viac úloh s pravidelným a rovnomerným prideľovaním času ,
umožňujúci prednostne prerušiť predbiehajúci proces.
Multithreading - paralelné
spracovanie viacerých vetví toho istého programu. Operačný systém
rozdelí proces na niekoľko taskov - vlákien (threads). Thread
je najmenšia jednotka, ktorá sa v systéme realizuje určitú dobu, po
uplynutí ktorej prejde systém na ďalší thread. Pritom môžu byť
spracovávané thready rôznych procesov.
Zdieľanie času (time slicing) -
opatrenie, aby aktívny proces nepracoval príliš dlho bez zavolania
systémovej služby => každý proces beží len určitý čas. Pri striedaní
procesov sa môže dodržiavať:
- systém statickej priority -
nemenná pridelená priorita;
- systém dynamickej priority -
ak proces bežal dlho tak sa mu zníži priorita, alebo sa mu zvýši
priorita ak málo času vyčerpal.
Správa procesov
Proces - bežiaci program. Každému
spustenému programu zodpovedá istý proces. Po prihlásení sa do systému
je každému užívateľovi pridelená jedna kópia shellu, ktorá beží až do
jeho odhlásenia => tento bežiaci program je procesom. Každý príkaz
spustený z tohto shellu je opäť procesom. Viacero úloh beží naraz len
zdanlivo , striedajú sa => zdieľanie času.
- Host - hlavný počítač viac
užívateľského systému
- Terminál - sprostredkováva
vstup/výstup na host ( neinteligentný, inteligentný, grafický, emulácia
PC => VT 100; Modem - prístup cez telefónne linky).
- Konzola - hlavný terminál,
pripojený na host.
- Sever - počítač, ktorý
poskytuje služby.
- Klient - počítač, ktorý
využíva služby alebo zdroj.
- Shell - interaktívny program,
ktorý začítava a interpretuje príkazy z uživateľovej klávesnice a
vracia výstupy na obrazovku. Shell sa môže používať aj ako programovací
jazyk. Shell je interpretér, programy neprekladá ale interpretuje vždy
ak sa zavedú z disku do pamäti. Shel umožňuje vytváranie funkcií.
(Funkcie sú uložené v pamäti, takže pre ich vykonanie nie je potreba
ich opätovného zavedenia z disku.)
Správa procesov (Process Management)
- podpora pre prácu viacerých účastníkov na základe plánovaného postupu
procesora a I/O, závisiaceho od priebehu spracovania Udržuje informáciu
o programoch zavedených do operačnej pamäte počítača a o väzbách medzi
nimi. Je vytvorená rodičovská väzba (pôvodný program - parent, novo
zavádzaný objekt - child). Správa procesov (ako socialistická ekonomika
- samé plánovanie a samá fronta) sleduje procesy a riadi ich chovanie -
vytvorenie/zrušenie fronty, umiestnenie do fronty, prioritná fronta.
Okrem toho aj fronta špeciálneho typu - delta list pre procesy, ktoré
čakajú na uplynutie časového intervalu. Intervaly sú tu pravidelne
skracované a ukladá sa len rozdiel s predchádzajúcim intervalom.
Rodičovský proces - pôvodný proces
->. Novovytvorený proces sa označuje ako detský proces(
narodenie, smrť procesu). Rodičovský proces môže spustiť mnoho detských
(podriadených) procesov. Ak detský proces spustí ďalší proces a sám
zanikne tak tento proces je adaptovaný "dedkom".
Scheduller - (plánovač) - prvý
proces, ktorý sa rozbehne po spustení operačného systému. Zodpovedá za
to, ktorý z bežiacich procesov bude pripustený k procesoru, má PID=0.
Za ním je spustený Init (PID=1), ktorý udržuje v chode všetky démony.
Démon - proces, ktorý jedná bez
toho, aby bol k tomu vyzvaný užívateľom. Môže byť aktívny po celú dobu
behu systému, alebo môže byť spúšťaný len v určitých okamihoch.
Napríklad HTTP Démon vo WWW serveri čaká a obsluhuje volania hostu cez
http protokol (napríklad Netscape).
Správa súborov (File System and
File Management) prispôsobuje fyzikálne charakteristiky zariadenia ako
je disk na logické zariadenie. Typicky sú dáta prenášané z disku na
disk v blokoch. Bloky majú veľkosť 512 bajt. Je to najmenšia časť dát
vhodná na fyzický prenos na disk. Túto blokovú operáciu zabezpečuje
rôznymi spôsobmi operačný systém.
Správa vstupných / výstupných
zariadení (IO) => jednotný prístup k I/O zariadeniam a k
súborom. Pre efektívnejšiu komunikáciu s I/O zariadeniami (napríklad s
tlačiarňou) sa používa metóda vyrovnávacích pamätí (Buffers). Buffery
sú zriaďované v operačnej pamäti (napríklad v MS DOS príkazom Buffers v
config.sys), takže dochádza k zmenšovaniu rozsahu pamäte. Príliš veľký
počet bufferov má tiež za následok predĺženie času potrebného na
vykonanie požiadavky, lebo treba dlhšie prehľadávať ich zoznam.
(Kompromis 16 - 32, max. 50).
Adresár - udržuje pre operačný
systém informáciu o jednotlivom súbore (jeho mene, veľkosti, ochrane,
čase poslednej zmeny a o umiestnení na disku). Používajú sa 3 spôsoby
organizácie adresárov:
- Jednoduchý adresár, organizovaný lineárnym
spôsobom. Umiestnenie súboru v adresári sa musí hľadať sekvenčne,
čo má vplyv na trvanie procesu hľadania a je pociťované ako negatívna
vlastnosť. Napriek tomu VMS, UNIX, OS/2 a MS DOS používajú lineárne
prehľadávanie adresárov. Tieto operačné systémy pri použití pamäte
cache, v ktorej je uložená informácia o posledne používanom adresári,
môžu rýchlejšie získať informáciu o často používaných súboroch bez
prístupu na disk.
- Na skrátenie hľadania môže byť
použitá predtriedená organizačná schéma adresára. napríklad na
základe binárneho hľadania usporiadaný adresár.
- Na organizáciu adresára použiť transformačnú
tabuľku. Na základe mena súboru pridelí nejaká transformačná
funkcia súboru index. Táto stratégia môže byť zdrojom kolízii ak
podobné mená produkujú rovnaký index.
 |
Všetky operačné systémy (VMS, UNIX, OS/2
a MS DOS) používajú mnoho úrovňovú organizáciu adresárov, kde
napríklad každý uživateľ má svoj adresár ovládaný spoločným "adresárom
adresárov". V jedno úrovňovom adresári by mená súborov museli
byť jednoznačne odlišné. UNIX ako prvý zaviedol stromovú štruktúru,
v ktorej súbory sú udržované na rôznych úrovniach. Meno súboru je potom
špecifikované aj cestou, => zoznamom všetkých adresárov z
úrovne koreňového adresára až na úroveň adresára, v ktorom sa nachádza
súbor.
Prístup k súborom môže byť
zorganizovaný rôzne:
- Sekvenčne - postupne záznam
za záznamom. Nevýhoda, že sa nedá čítať záznam zo stredu súboru.
- Priamy prístup - nie je
obmedzené poradie prístupu. Napríklad číta záznam 100, potom záznam 50
a pod.
- Indexovaný - usporiadaný na
základe kľúčov, podobne ako v databázach.
Alokácie súborov môže používať:
- Súvislý spôsob ukladania súborov -
súbory zaberajú určitý blok. Používa sa pre zrýchlenie prenosov,
pretože sa minimalizuje pohyb hlavy disku. Keď sa disk zaplní a
niektoré súbory sa z neho vymažú dochádza ku fragmentácii. (=>
potreba dostatočného voľného priestoru na disku alebo použiť kompresiu
súborov, ktorá je však nevhodná pri on line práci)
- Spôsob ukladania súborov pomocou
odkazu (link) - každý blok alebo sekcia súboru obsahuje ukazovateľ
na nasledujúci blok (alebo segment) súboru. Aby pointer nezaberal
miesto pre ukladanie súborov, je potrebný zvláštny disk na uloženie
info o ukazovateľoch. Žiadny z operačných systémov (VMS, UNIX, OS/2 a
MS DOS) nepoužíva tento systém.
- Indexované alokovanie
(nepliesť s indexovaným prístupom k súboru) - kombinácia súvislého
spôsobu s odkazmi. Odkazy sa nachádzajú v indexovej tabuľke v pamäti.
Každý index určuje určitý segment súboru. Pretože indexové vstupy sú
uložené v pamäti je prístup k súboru rýchly aj keď je súbor rozložený
na disku. V rámci segmentu je usporiadanie súvislé.
Kontrolné
otázky
- Aký účinok bude mať použitie
nasledujúcich príkazov skupinového výberu súborov?
DEL *.bak DEL s*.* DEL lekci?.txt
DEL ?okus.exe DEL ?.*
- Aký účinok bude mať vykonanie
nasledujúcich príkazov MS DOS ?
DIR B: DIR B:\ DIR ..
Copy p1.dat A: Copy A:\ p1.dat Copy
p.txt PRN
Copy CON p.txt Copy p1.txt + p2.txt
p.txt
REN *.txt *.doc REN *.txt A*.txt REN
*.txt ?.txt
- V akom poradí by sa vykonali súbory
- MS DOS rovnakého mena uložené v jednom adresári ?
- Jano.com (binárny pevne
lokalizovaný súbor)
- Jano.exe (binárny premiestniteľný
súbor)
- Jano.bat (textový dávkový súbor -
zakončený 1AH )
- V akom poradí by sa vykonali súbory
MS DOS rovnakého mena uložené v rozdielnych adresároch . (V
autoexec.bat je riadok : path C:\DOS; C:\utility) ?
- Jano.com (uložený v aktuálnom
adresári)
- Jano.com (uložený v adresári
c:\util\jano.com)
- Jano.com (uložený v adresári
c:\utility\jano.com)
- Jano.com (uložený v adresári
c:\DOS\jano.com)
- Ak je súbor list.txt rovnakého mena
uložený v rôznych adresároch:
C:\p1\ list.txt;
C:\p1\p2\list.txt;
C:\p1\p2\p3\list.txt
Z ktorého adresára sa zobrazí súbor po
zadaní nasledujúcej neúplnej (relatívnej) adresy, keď aktuálny kurzor
sa nachádza v adreári C:\p1\p2:
- Type ..\list.txt
- Type .\ list.txt
- Aký účinok bude mať použitie
nasledujúcich príkazov MS DOS?
- DIR B: > adresar.txt
- DIR B: >> adresar.txt
- MORE < dopis.txt
- FIND "Ahoj" dopis.txt
-
- Ak súbor Yes.txt pozostáva z 3
znakov (0AH 13H 1AH => je to vlastne ekvivalent stlačenia Enter -
> CR + LF + zakončenie súboru). Aký účinok bude mať použitie príkazu
MS DOS ?
`
 |
Win 1250 |
Návrat na stránku |
HTML
4.0 |
 |
Back |
|
|
|
Next |
|