Operačný systém Interpreter príkazov Služby operačného systému Používateľské rozhranie operačného systému Systémové volania Typy systémových volaní Systémové programy Operating System Concepts 2.1 ©2009 Interpreter.
Download
Report
Transcript Operačný systém Interpreter príkazov Služby operačného systému Používateľské rozhranie operačného systému Systémové volania Typy systémových volaní Systémové programy Operating System Concepts 2.1 ©2009 Interpreter.
Operačný systém
Interpreter príkazov
Služby operačného systému
Používateľské rozhranie operačného systému
Systémové volania
Typy systémových volaní
Systémové programy
Operating System Concepts
2.1
©2009
Interpreter príkazov
Jeden z najdôležitejších systémových programov
Je rozhraním medzi používateľoma operačným systémom
Niektoré operačné systémy zahrnuli interpreter príkazov do jadra. Iné
operačné systémy (MS-DOS, UNIX) spracovali interpreter príkazov ako
špeciálmy program, ktorý sa spustí automaticky, keď sa spustí prvá úloha,
alebo keď sa používateľ prihlási poprvýkrát v time-sharingovom systéme.
Veľa príkazov je v OS k dispozícii ako tzv. riadiace príkazy. Program, ktorý
číta a interpretuje riadiace príkazy je vykonávaný automaticky. Tento
program sa niekedy nazýva interpreter riadiacich štítkov (Control-Card
Interpreter) alebo interpreter príkazového riadku (Command-Line
Interpreter), a je často známy ako shell. Jeho funkcia je jednoduchá:
Dostať ďalší príkaz a vykonať ho !
Operating System Concepts
2.2
©2009
Služby Operačného systému
Jedna časť služieb operačného systému poskytuje funkcie, ktoré sú
užitočné pre používateľa:
Používateľské rozhranie – takmer všetky operačné systémy majú
používateľské rozhranie
Môže sa realizovať Príkazovým riadkom, Grafickým používateľským
rozhraním (GUI), Dávkou
Vykonávanie programu - Systém musí byť schopný zaviesť program
do pamäte a spustiť tento program, ukončiť vykonávanie buď normálne
alebo abnormálne (indikujúc chybu)
V/V operácie - Bežiaci program môže požadovať V/V, ktorý môže
zahrňovať súbor alebo V/V zariadenie
Manipulácia so súborovým systémom - Obvykle, programy
potrebujú čítať a zapisovať do súborov a adresárov, vytvárať a mazať
ich, vyhľadávať ich, vytvárať zoznam informácií o súbore, spravovať
oprávnenia prístupu k súborom a adresárom.
Operating System Concepts
2.3
©2009
Služby Operačného systému
Operating System Concepts
2.4
©2009
Služby operačného systému
Komunikácie – Procesy si môžu vymieňať informácie na tom istom počítači
alebo medzi počítačmi ktoré sú spojené sieťou.
Komunikácie môžu byť prostredníctvom zdieľanej pamäte alebo
cez techniku odovzdávania správ (balíky premiestňované
prostredníctvom OS)
Detekcia chyby – OS potrebuje si neustále uvedomovať možné chyby:
Môžu sa objaviť v CPU alebo v pamäti, vo V/V zariadení (chyba
parity na magnetickej páske, nedostatok papiera v tlačiarni), v
používateľskom programe (aritmetické pretečenie, veľmi veľké
použitie času CPU).
Pre každý typ chyby, OS by mal vykonať vhodnú činnosť pre
zabezpečenie opravy a konzistencie výpočtu.
Ladiace možnosti môžu vo veľkej miere zvýšiť užívateľské a
programátorské schopnosti pri efektívnom využívaní systému
Operating System Concepts
2.5
©2009
Služby Operačného systému
Iná množina funkcií OS zabezpečuje efektívnu činnosť samotného systému
prostredníctvom zdieľania zdrojov
Pridelenie zdrojov – Keď viacero požívateľov alebo viacero zdrojov sa
vykonáva súčasne, zdroje musia byť pridelené každému z nich.
Veľa rozličných typov zdrojov je riadených operačným syystémom.
Účtovanie – Chceme sledovať ktorí používatelia používajú koľko a aké
druhy počítačových zdrojov.
Ochrana a bezpečnosť – Vlastníci informácií, ktoré sú uložené vo
viacpoužívateľskom alebo zosieťovanom počítačovom systéme môžu
chcieť riadiť používanie týchto informácií. Keď niekoľko disjunktných
procesov sa vykonáva súbežne, súbežne vykonávané procesy nemôžu sa
navzájom narušiť.
Ochrana obsahuje zabezpečenie, že všetky prístupy k systémovým
zdrojom sú riadené.
Bezpečnosť systému od outsajderov si vyžaduje požívateľskú
autentifikáciu.
Reťaz je tak silná ako jej najslabší článok.
Operating System Concepts
2.6
©2009
Systémové volania
Poskytujú rozhranie (prepojenie) medzi procesom a OS
Tieto volania sú obvykle prístupné ako inštrukcie v jazyku assembler a zvyčajne sú
uvedené v rôznych manuáloch. Určité systémy dovoľujú robiť systémové volania
priamo z programu jazyku vyššej úrovne, vtedy sa tieto volania podobajú volaniam
podprogramov. Môžu generovať volanie pre špeciálny Run-Time podprogram, alebo
systémové volanie môže byť vytvorené priamo In-Line. Niekoľko jazykov ako C, C++
boli definované ako náhrada jazyka asembler pre systémové programovanie. Tieto
jazyky dovoľujú realizovať systémové volania priamo. Napr. UNIX-ovské systémové
volania môžu byť vyvolané priamo z C alebo C++ programu.
Zväčša sú prístupné prostredníctvom programov vysokej úrovne. Ide o tzv.
Application Program Interface (API) skôr než priame použitie systémového
volania. Systémové volania pre moderné platformy Microsoft Windows sú časťou
Win32 aplikačného programového rozhrania (API), ktorý je prístupný aplikáciami
písanými pre Microsoft Windows.
Tri najbežnejšie API sú Win32 API pre Windows, POSIX API pre POSIX-založené
systémy (zahrňujúc virtuálne všetky verzie UNIX, Linux a Mac OS X), a Java API pre
Java virtuálne stroje (JVM)
Operating System Concepts
2.7
©2009
Príklad – systémové volanie
Sekvencia systémových volaní pre kopírovanie obsahu jedného súboru do
druhého súboru
Operating System Concepts
2.8
©2009
Príklad štandardného API
Uvažujme ReadFile() funkciu vo
Win32 API—funkcia pre čítanie zo súboru
Opis parametrov prechádzajúcich do ReadFile()
HANDLE file—súbor ktorý bude čítaný
LPVOID buffer— bufer, kde dáta budú čítané z...a zapisované do...
DWORD bytesToRead—počet bajtov načítaných do bufra
LPDWORD bytesRead—počet prečítaných bajtov počas posledného čítania
LPOVERLAPPED ovl—indikuje či prekrývajúce V/V sú používané
Operating System Concepts
2.9
©2009
Implementácia systémového volania
Typicky, číslo pridružené ku každému systémovému volaniu
Interfejs systémového volania udržiava tabuľku indexovanú podľa týchto
čísiel
Interfejs systémového volania vyvoláva zamýšľané systémové volanie v
jadre OS a vracia stav systémového volania a všetky návratové hodnoty
Volajúci nemusí vedieľ nič o tom, ako je implementované systémové volanie
Musí len „počúvať“ API a porozumieť čo OS urobí ako výsledok volania
Väčšina detailov interfejsu OS-u skrytá pred programátorom
prostredníctvom API
Spravovaná knižnicou pre podporu počas behu programu (množina
funkcií zabudovaná do knižníc zahrňovaná kompilátorom počas
prekladu - kompilácie)
Operating System Concepts
2.10
©2009
Vzťah: systémové volanie – operačný systém
Používateľská aplikácia
Používateľský
mód
Interfejs systémových volaní
Mód
jadra
Operating System Concepts
2.11
©2009
Štandardná C knižnica - príklad
C program vyvolávajúci printf() knižničné volanie, ktoré volá write()
systémové volanie
Operating System Concepts
2.12
©2009
Odovzdávanie parametrov systémových volaní
Často viac informácií je požadovaných než len jednoduchá identifikácia
systémového volania
Tri všeobecné metódy sa používajú na odovzdávanie parametrov
operačnému systému.
Najjednoduchšia: odovzdávanie parametrov v registroch
V niektorých prípadoch tam môže byť viac parametrov ako registrov
Parametre sa vtedy obvykle ukladajú do bloku, či tabuľky v pamäti, a
adresa bloku sa odovzdá ako parameter v registri
Takýto prístup je v Linux a Solaris
Parametre tiež môžu byť umiestnené do zásobniíka a vybraté zo
zásobníka operačným systémom.
Niektoré OS-y preferujú blokové alebo zásobníkové metódy, pretože
tieto prístupy neobmedzujú počet alebo dľžku parametrov, ktoré sú
odovzdávané.
Operating System Concepts
2.13
©2009
Parameter prechádzajúci cez tabuľku
Parameter Passing via Table
X: Parametre pre
sys. volanie
Použi parametre
z tabuľky X
Zaveď adresu X
kód programu
pre systémové
volanie 13
Používateľský
program
Operačný systém
Operating System Concepts
2.14
©2009
Typy systémových volaní
Riadenie procesov
Správa súborov
Správa zariadení
Správovanie informácií
Komunikácia
Ochrana
Operating System Concepts
2.15
©2009
Príklady systémových volaní vo Windows a Unix
Operating System Concepts
2.16
©2009
MS-DOS vykonávanie
(a) Štartovanie systému (b) bežiaci
program
Operating System Concepts
2.17
©2009
Systémové programy
Systémové programy poskytujú pohodlné prostredie pre vývoj a
vykonávanie programov. Niektoré z nich sú jednoduché
užívateľské rozhrania pre systémové volania, iné sú podstatne
komplexnejšie. Kategórie systémových programov:
Správa súborov
Informácie o stave
Modifikácia súborov
Podpora programovacích jazykov
Zavedenie programu a jeho spustenie
Komunikácia
Aplikačné programy
Operating System Concepts
2.18
©2009
Systémové programy
Poskytujú vhodné prostredie pre vývoj a vykonávanie programov
Niektoré z nich sú jednoducho používateľské rozhrania pre systémové volania,
ďalšie sú značne komplikovanejšie
Správa súborov – Tieto programy vytvárajú, odstraňujú, kopírujú, premenúvajú,
tlačia, vypisujú, listujú a vo všeobecnosti manipulujú so sbormia adresármi.
Informácie o stave
Niektoré programy pýtajú od systému informácie – dátum, čas, množstvo voľnej
pamäte či miesta na disku, počet používateľov a podobné stavové informácie.
Ostatné poskytujú detailné informácie o vykonávaní, zaznamenávaní a
odlaďovaní.
Tieto informácie sú sú potom formátované a zobrazené na obrazovke, či v
súbore.
Niektoré systémy implementujú registre – používané na uchovávanie a
prehľadávanie informácie o konfigurácii
Operating System Concepts
2.19
©2009
Systémové programy
Modifikácia súborov
Niektoré textové editory sú schopné vytvárať a modifikovať obsah
súborov uložených na disku
Podpora programovacích jazykov – Kompilátory, assemblery a
interpretery pre bežné programovacie jazyky ako C, C++, Java, Visual
Basic sú často dodávané spolu s operačným systémom
Zavedenie programu a jeho spustenie – po tom, čo je program zostavený
a skompilovaný, musí byť zavedený (Load) do pamäte a až potom môže byť
vykonaný.
Komunikácia – Tieto programy poskytujú mechanizmus na tvorbu
virtuálnych spojení medzi procesmi, užívateľmi a rozličnými počítačovými
systémami.
Umožňujú užívateľom vzájomne si posielať správy, prezerať web
stránky, posielať elektronickú poštu, prihlásiť sa k vzdialeným zdrojom
alebo prenášať súbory z jedného počítača na druhý.
Aplikačné programy – Väčšina OS-ov je vybavená programami, ktoré
riešia bežné problémy, napr. internetové prehliadače, textové procesory,
tabuľkové kalkulátory, databázové systémy, kompilátory, hry.
Operating System Concepts
2.20
©2009