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