Stručný úvod do OS (2) Ing. Viliam Solčány, PhD. ÓÐ ÒÝ Øº ØÙ º ZS 2012/2013 Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 1 / 16
Osnova Základné hardvérové Registre Inštrukčný cyklus Prerušenie (Interrupt) Spôsoby spolupráce Systémové volania Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 2 / 16
Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 3 / 16
Základné hardvérové Procesor Hlavná pamät I/O moduly Disky a iné sekundárne pamät ové zariadenia Siet ové komunikačné zariadenia Terminály... Systémová zbernica slúži na komunikáciu medzi procesorom, pamät ou a I/O modulmi Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 4 / 16
Základné hardvérové (2) Zjednodušený, zovšeobecnený pohl ad PC IR Execution unit CPU MAR MBR I/O AR I/O BR System bus Main memory Instructions Data I/O module Buffers PC = Program counter IR = Instruction register MAR = Memory address register MBR = Memory buffer register I/O AR = I/O address register I/O BR = I/O buffer register Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 5 / 16
Registre Registre viditel né pre programy Riadiace a stavové registre Procesor ich používa na riadenie svojich operácií OS ich používa na riadenie vykonávania programov Patria sem Program Counter (PC) obsahuje adresu inštrukcie, ktorá sa ako d alšia načíta Instruction Register (IR) obsahuje posledne načítanú inštrukciu Program Status Word (PSW) bitové hodnoty Condition codes (flags) príznaky Bity nastavované procesorom po vykonaní inštrukcií Ovplyvňujú následne vykonávané inštrukcie -skoky,... Príklady: kladný/záporný výsledok, nula, pretečenie Interrupt enable/disable Kernel/user mode Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 6 / 16
Registre (2) Kernel/User mode privilegovaný/používatel ský režim OS ako správca prostriedkov potrebuje schopnosti nedostupné aplikáciam Príklad so zápisom na disk (vyššie): ak by aplikácie mohli priamo zapisovat na disk, OS by nemohol garantovat korektnost, integritu, bezpečnost dát na disku Tieto extra schopnosti majú podobu privilegovaných inštrukcií Sú potrebné pre správu prostriedkov OS, napr. komunikácia s I/O zariadeniami Môžu sa vykonávat len v privilegovanom režime, inak vznikne HW výnimka OS (jadro) beží v privilegovanom režime, aplikácie v neprivilegovanom Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 7 / 16
Registre (3) Kernel/User mode privilegovaný/používatel ský režim Prepnutie do privilegovaného režimu Aplikácia volá systémovú službu vykoná inštrukciu prepnutia do privileg. módu, alebo ÁÆÌ inštrukciu (programové prerušenie) Vznikne výnimka Príde HW prerušenie od nejakého zariadenia Prepnutie do používatel ského režimu Pri návrate z privilegovaného režimu (privilegovanou inštrukciou) Procesory Intel: 4 úrovne privilegovanosti ( rings ), vačšina OS využíva len dva Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 8 / 16
Inštrukčný cyklus Zjednodušený pohl ad START Fetch next instruction Execute instruction HALT Vychádza z princípu navrhnutého J. von Neumann-om Adresa inštrukcie, ktorá sa načíta (z hlavnej pamäti) je v registri PC Register PC sa potom inkrementuje Inštrukcia sa uloží do registra IR, dekóduje sa a vykoná Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 9 / 16
Prerušenie (Interrupt) HW signál od zariadenia: zariadenie žiada pozornost CPU CPU preruší normálnu postupnost vykonávania inštrukcií a obslúži zariadenie Po ukončení obsluhy CPU pokračuje vo vykonávaní prerušeného (príp. iného) programu Prerušenie je jediný spôsob ako pozmenit základnú činnost (inštrukčný cyklus) Prerušenie umožňuje I/O zariadeniam pracovat súbežne s CPU CPU iniciuje I/O operáciu na zariadení a vykonáva d alšie inštrukcie Po ukončení I/O operácie zariadenie preruší procesor Zdrojom prerušení nie sú len zariadenia Vážna chyba vo vykonávaní programu výnimka delenie nulou, vykonanie nepovolenej inštrukcie, pretečenie,... Skutočné prerušenie od I/O zariadenia, časovača HW chyba Úmyselné programové prerušenie inštrukcia ÁÆÌ Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 10 / 16
Prerušenie (2) Procesor s prerušeniami Interrupts disabled START Fetch next instruction Execute instruction Interrupts enabled Check for intr.; Process intr. HALT Po vykonaní inštrukcie procesor zist uje, či prišlo prerušenie inštrukcie sú atomické vzhl adom na prerušenia Ak prerušenie prišlo, zistí sa jeho zdroj a spustí sa príslušná obslužná rutina (interrupt handler) Obslužné rutiny prerušení sú súčast ou jadra OS Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 11 / 16
Spôsoby spolupráce Programovo riadené I/O operácie 1. CPU pripraví potrebné dáta a vyšle príkaz I/O zariadeniu 2. CPU cyklicky číta a testuje stavový register zariadenia, kým operácia nie je dokončená 3. Po skončení cyklu CPU vykoná prípadný presun dát zo zariadenia do pamäti Nevyužívajú sa prerušenia CPU počas testovania stavu zariadenia nemôže vykonávat iné inštrukcie Neefektívne využitie CPU I/O zariadenia sú vel mi pomalé voči CPU jedna I/O operácia trvá tol ko čo rádovo milióny (i viac) inštrukcií na CPU Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 12 / 16
Spôsoby spolupráce (2) I/O operácie riadené prerušeniami 1. CPU pripraví potrebné dáta a vyšle príkaz I/O zariadeniu 2. CPU vykonáva iné, užitočné inštrukcie 3. Zariadenie po skončení operácie vyšle prerušenie 4. CPU prerušenie obslúži, dokončí operáciu, príp. presunie dáta zo zariadenia CPU nečaká na zariadenie CPU je prerušené pri prenesení každého slova/bajtu pri väčšom množstve dát stále vel a času CPU Priamy prístup do pamäti Direct Memory Access (DMA) HW zariadenie DMA modul riadi prenos celého bloku dát medzi I/O zariadením a hlavnou pamät ou CPU dá DMA modulu autoritu pristupovat do pamäti a iniciuje prenos Po ukončení prenosu bloku pošle DMA modul prerušenie CPU sa zúčastňuje len na zahájení a ukončení prenosu Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 13 / 16
Systémové volania Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 14 / 16
Systémové volania Systémové volania Umožňujú aplikáciam vstup do jadra a vykonanie operácii, ktoré jadro poskytuje (t.j. operácie rozšíreného stroja) je iný ako mechanizmus volania funkcií: kód jadra sa musí vykonávat v privilegovanom móde Vykonaním inštrukcie ÁÆÌ 1 všetky systémové volania idú do jadra cez ten istý vstupný bod Systémové volania sa rozlišujú číslom - odovzdá sa v registri Návratovú hodnotu jadro uloží do registra Pre jednoduché používanie sú systémové volania zabalené v knižničných funkciách, napr. ÓÔ Ò µ Ö µ ÓÖ µ... používanie v programoch je rovnaké ako volanie funkcií 1 Na architektúrach Intel typicky ÁÆÌ ¼, novšie procesory majú špecializovanú inštrukciu Ë Ë ÆÌ Ê Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 15 / 16
Systémové volania (2) Systémové volania Odovzdávanie parametrov medzi procesom a jadrom V registroch sú dostupné procesu aj jadru V pamät ovej štruktúre, ktorej adresa sa umiestni do registra Na zásobníku proces vykoná ÔÙ ( ØÓÖ ), jadro vykoná ÔÓÔ (ÐÓ ) Viliam Solčány, FIIT STU Bratislava Operačné systémy 2012/13 Predn. 2 16 / 16