‹#›/30 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Něco málo o hardwaru 02 ‹#›/30 lPrvní počítače ●obrovské stroje zabírající patra budov ●velice drahé ●I/O zařízení: děrné štítky, děrná páska, magnetická páska ●job: program + data + řídící informace ●řídící informace ●návod co má počítač s programem a daty dělat ●typicky kompilace + sestavení (linkování knihoven) + běh programu + dump výsledku (příp. také paměti a registrů) ●Vznikají JCL – Job Control Language ●jeden uživatel: programátor a operátor v jedné osobě ●OS ●Neustále v paměti ●Úkolem je pouze předání řízení z jednoho jobu na druhý ●využití počítače nebylo efektivní HISTORIE: DÁVKOVÉ SYSTÉMY PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lPozději ●Počítače se zmenšují (střediskové počítače) ●Oddělení role operátora a programátora ●Operátoři úlohy (joby) přeskládají do dávek, tak aby se seskupily úlohy podobného typu ●např. zavede se překladač a ten se využije pro přeložení hned několika programů za sebou ●Přesto stále nebyly drahé počítače efektivně využity ●I/O operace byly a stále jsou řádově pomalejší než procesor (CPU) ●vždy, když program čeká na vyřízení I/O požadavku je CPU nevyužit ●řešení: multiprogramování l HISTORIE: DÁVKOVÉ SYSTÉMY (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lMultiprogramování zvyšuje využití CPU ●přidělování CPU jednotlivým úlohám tak, aby CPU byl využit (téměř) vždy lV paměti je zároveň několik úloh současně ●ne však nutně všechny ●plánování úloh (job scheduling) – které úlohy umístit do paměti ●musíme zajistit ochranu úloh navzájem lCPU je přidělen úloze, jakmile úloha požádá o I/O operaci, je úloha pozastavena a CPU dostává jiná úloha ●pro výběr úlohy, která dostane CPU musíme mít CPU plánovací algoritmus ●jakmile je I/O operace dokončena, je úloha opět přemístěna do fronty úloh připravených ke spuštění ●CPU je vytížen, dokud mám úlohy, které nečekají na dokončení I/O operací ●dokud úloha nepožádá o I/O operaci, tak má CPU k dispozici lJde tedy „pouze“ o efektivnost využití CPU HISTORIE: MULTIPROGRAMOVÁNÍ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lV paměti vždy jen jedna úloha lV paměti několik úloh, běží jen jedna z nich HISTORIE: OBSAZENÍ PAMĚTI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ operating system user program area operating system job 1 job 2 job 3 job 4 0 512K ‹#›/30 lTime-sharing neboli multitasking ●Logické rozšíření multiprogramování, kdy úloha (dočasně) ztrácí CPU nejen požadavkem I/O operace, ale také vypršením časového limitu ●CPU je multiplexován, ve skutečnosti vždy běží jen jedna úloha, mezi těmito úlohami se však CPU přepíná, takže uživatelé získají dojem, že úlohy jsou zpracovávány paralelně l HISTORIE: MULTITASKING PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lMultitaskingový systém umožňuje řadě uživatelů počítačový systém sdílet lUživatelé mají dojem, že počítačový systém je vyhrazen jen pro ně lOproti pouhému multiprogramování snižuje dobu odezvy (response time) interaktivních procesů lMultitaskingové systémy jsou již značně komplexní ●správa a ochrana paměti, virtuální paměť ●synchronizace a komunikace procesů ●CPU plánovací algoritmy, souborové systémy l HISTORIE: MULTITASKING (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 ARCHITEKTURA POČÍTAČOVÉHO SYSTÉMU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ CPU disk controller USB controller graphics adapter memory keyboard.png mouse.png printer.png screen.png disks mouse keyboard printer monitor ‹#›/30 lI/O zařízení typicky mají vlastní vyrovnávací paměť (buffer) lCPU a I/O zařízení mohou pracovat paralelně ●např. řadič disku může ukládat data na disk a CPU může něco počítat ●pokud CPU a I/O zařízení pracují paralelně, měli by se nějak synchronizovat ●neustálé zjišťování stavu ●interrupt l ZÁKLADNÍ VLASTNOSTI POČÍTAČOVÉHO SYSTÉMU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lNeustálý cyklus ●loop ●získej další instrukci ●proveď instrukci ●end loop lPokud chci provést I/O operaci a dozvědět se, že již byla dokončena, musím se periodicky ptát I/O zařízení lCPU není v těchto chvílích efektivně využit nebo je programování extrémně náročné PROCESOR BEZ PŘERUŠENÍ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lZákladní cyklus je obohacen o kontrolu příznaku přerušení ●loop ●získej další instrukci ●proveď instrukci ●je-li nastaven příznak přerušení (a přerušení je povoleno), ulož adresu právě prováděného kódu a začni provádět kód obslužné rutiny ●endloop l PROCESOR S PŘERUŠENÍM PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lPřerušení je signál od I/O zařízení, že se stalo něco, co by OS měl zpracovat lPřerušení přichází asynchronně ●OS nemusí aktivně čekat na událost (efektivní využití CPU) ●při výskytu události se automaticky volá patřičná obslužná rutina ●umístění obslužných rutin pro jednotlivé typy událostí je typicky dáno tabulkou (v paměti) adres rutin (tzv. vektor přerušení) lAby nedocházelo ke „ztrátě“ přerušení, je při zpracování přerušení další přerušení zakázáno (maskováno) ●aby se nepřerušovala rutina obsluhující přerušení ●časově náročnější obslužné rutiny však mohou další přerušení explicitně povolit PŘERUŠENÍ (2) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lOperační systém je řízený přerušeními ●(interrupt driven) ●CPU zpracovává uživatelský proces, při příchodu přerušení je spuštěna obslužná rutina OS ●návratovou adresu ukládá procesor ●hodnoty použitých registrů ukládá ovládací rutina ●Přerušení nemusí být generováno jen HW, přerušení je možné vyvolat i softwarovými prostředky (tzv. „trap“ – jde vlastně o synchronní přerušení) ●chyby – dělení nulou ●speciální instrukce (např. INT – typicky slouží k systémovému volání) l PŘERUŠENÍ (3) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 PŘERUŠENÍ (4) PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ CPU I/O device idle transfering user process executing I/O interrupt processing I/O request I/O request transfer done transfer done ‹#›/30 PŘÍKLAD: TABULKA PŘERUŠENÍ INTEL8086&MS-DOS PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Interrupts Services Pointers INT 00H Division by 0 INT 10H Video services INT 1dH Video parms INT 01H Single-step INT 11H Equipment list INT 1eH Diskette parms INT 02H Non-Maskable INT 12H Usable Mem Size INT 1fH Graphics chars INT 03H Breakpoint INT 13H Disk I/O INT 04H Overflow INT 14H Serial Port I/O INT 05H Print Screen INT 15H AT Services INT 41H hard disk 0 parms INT 06H (reserved) INT 16H Keyboard I/O INT 46H hard disk 1 parms INT 07H (reserved) INT 17H Printer I/O INT 08H Timer INT 18H ROM-BASIC INT 43H EGA graphix chars INT 09H Keyboard INT 19H Bootstrap INT 0aH-0dH (hw ints) INT 1aH Time I/O INT 4aH user alarm addr INT 0eH Diskette INT 1bH Keyboard Break INT 50H CMOS timer int INT 0fH (hdwr int) INT 1cH User timer Int INT 20H-2fH DOS Interrupts INT 33H Mouse Support INT 67H Expanded Memory Fns Vektor přerušení začíná na adrese 0000:0000, přerušení je celkem 256 ‹#›/30 lSynchronní ●proces požádá o I/O operaci, řízení se uživatelskému procesu vrací až po ukončení I/O operace ●výhody: jednoduchost, vyhýbám se souběžnému zpracování I/O požadavků ●nevýhody: možná neefektivnost lAsynchronní ●proces požádá o I/O operaci a řízení se procesu vrací okamžitě ●výhody: je možné paralelně pracovat s několika I/O zařízeními ●nevýhody: komplexnější systém, potřebujeme tabulku stavu I/O zařízení, příkazy pro počkání na dokončení I/O operace apod. l I/O: DVA PŘÍSTUPY PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 SYNCHRONNÍ VS. ASYNCHRONNÍ I/O PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ hardware data transfer interrupt handler device driver requesting process time b) user kernel hardware data transfer interrupt handler device driver time a) kernel user requesting process waiting ‹#›/30 lZpůsob jak rychle přenášet data mezi I/O zařízením a pamětí lCPU nemusí přenášet data po jednom bajtu, požádá řadič o přenos celého bloku dat lCPU požádá o přenos dat, po skončení přenosu dat se o tom dozví pomocí přerušení (tj. 1 přerušení/blok dat ne 1 přerušení/bajt-slovo) lV době přenosu dat soupeří I/O řadič a CPU o přístup do paměti (oba pracují se „stejnou“ pamětí) DMA, Direct Memory Access PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 MODERNÍ POČÍTAČOVÝ SYSTÉM PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ device (*M) DMA CPU (*N) thread of execution data movement instruction execution cycle instructions and data memory ‹#›/30 lPrimární paměť (též operační paměť, hlavní paměť) ●jediná větší paměť, kterou může CPU přímo adresovat ●typicky energeticky závislá (volatilní) ●současná kapacita: stovky MB až desítky GB, současná rychlost: nanosekundy l STRUKTURA PAMĚTI – PRIMÁRNÍ PAMĚŤ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lSekundární paměť rozšiřuje paměťovou kapacitu počítačového systému ●energeticky nezávislá ●vysoká paměťová kapacita (dnes stovky gigabajtů až terabajty) ●relativně pomalá doba přístupu (velice variabilní – od mikrosekund až po jednotky sekund) ●v dnešní době je nejběžnější magnetický disk STRUKTURA PAMĚTI – SEKUNDÁRNÍ PAMĚŤ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lRychlost ↓ lKapacita ↑ lCena ↓ HIERARCHIE PAMĚTI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Energeticky závislé Energeticky nezávislé registry cache main memory electronic disk magnetic disk optical disk magnetic tapes ‹#›/30 lPoužití rychlejší paměti pro uchování posledně použitých dat z paměti pomalejší ●např. cache procesoru vs. hlavní paměť ●nebo hlavní paměť vs. disková paměť ●pokud jsou data v cachi použijí se tato data, pokud ne, musí se získat z pomalejší paměti, zároveň se přenesou i data okolní (princip časové a prostorové lokálnosti) lVelikost cache paměti je omezená lData se zároveň nacházejí v několika úrovních paměti – problém udržení konzistence KEŠOVÁNÍ, CACHE, MEZIPAMĚŤ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ A A A magnetic disk main memory cache hardware register ‹#›/30 lJe-li v paměti několik procesů, nechceme, aby se procesy mohly navzájem negativně ovlivňovat ●přepisování paměti ●nespravedlivé získání času CPU ●souběžný nekoordinovaný přístup k I/O prostředkům lProto OS musí tomuto ovlivňování zabránit ●často to však nemůže zajistit sám a potřebuje podporu HW – např. při ochraně přístupu do paměti, přístupu k I/O portům l OCHRANNÉ FUNKCE HW PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lBěžný způsob ochrany je dvojí režim činnosti procesoru ●uživatelský režim ●privilegovaný režim lNěkteré instrukce je možné provést jen v privilegovaném režimu ●např. instrukce pro I/O, nastavování některých registrů (např. některé segmentové registry) lZ privilegovaného režimu do uživatelského režimu se CPU dostane speciální instrukcí, z uživatelského režimu do privilegovaného režimu se CPU dostává při zpracování přerušení l REŽIMY PROCESORU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lMinimálně musíme chránit vektor přerušení a rutiny obsluhy přerušení ●jinak by bylo možné získat přístup k privilegovanému režimu procesoru lKaždému procesu vyhradíme jeho paměť, jinou paměť nemůže proces používat ●ochranu zajišťuje CPU na základě registrů/tabulek nebo principů nastavených OS ●např. báze a limit – proces má přístup jen k adresám báze + 0 až báze + limit ●přístup k nepovoleným adresám způsobí přerušení – to zpracovává OS a např. ukončí činnost procesu OCHRANA PAMĚTI PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 lJednoduché na implementaci ●dva registry, jejichž nastavování je privilegovanou operací ●CPU kontroluje, zda adresy, které proces používá spadají do rozsahu daného registry lJak řešit požadavek procesu o přidělení dalšího bloku paměti? l BÁZE + LIMIT PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ monitor job 1 job 2 job 3 job 4 300040 0 256000 300040 420940 880000 1024000 base register 120900 limit register ‹#›/30 lJak zaručit, že vládu nad procesorem (tj. jaký kód bude CPU vykonávat) bude mít OS? lČasovač ●časovač generuje přerušení ●přerušení obsluhuje OS ●ten rozhodne co dál ●např. odebere jednomu procesu, vybere další připravený proces a ten spustí (změní kontext) ●časovač může generovat přerušení pravidelně nebo je příchod přerušení programovatelný (privilegovanou instrukcí) l OCHRANA CPU PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 l8253/8254 Programmable Interval Timer (PIT) – od roku 1981 ●Jednorázové nebo periodické spouštění (přerušení) ●1,193182 MHz krystalový oscilátor ●Časovač 0 – systémový časovač OS (Windows, Linux), 1 – obnovování RAM (historicky), 2 – PC speaker lReal-Time Clock's (RTC) – od roku 1984 ●Skutečný čas ●32,768 kHz neboli 215 cyklů za sekundu lHigh Precision Event Timer (HPET) – od roku 2005 ●Pro multimedia ●10 MHz, 64 bitů ●Snadné naprogramovaní jednorázového časovače ČASOVAČE V PC PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ ‹#›/30 Výukovou pomůcku zpracovalo Servisní středisko pro e-learning na MU http://is.muni.cz/stech/ PB 153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ