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 ReportTranscript 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