1. konzultace (5 hodin) http://www.uai.fme.vutbr.cz/~vdumek/ 28. 2. 2014 Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/

Slides:



Advertisements
Podobné prezentace
Komunikace periférii.
Advertisements

SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Otázky k absolutoriu HW 1 - 5
ZÁKLADNÍ DESKA.
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
Úvod. Základní úrovně: hardwarová (procesory, jádra) programová (procesy, vlákna) algoritmická (uf... ) Motivace: zvýšení výkonu redundance jiné cíle,
Sběrnice.
Systémové sběrnice PC Kateřina Pásková 4.Z1.
Informatika 1_6 6. Týden 11. A 12. hodina.
Technické prostředky informačních systémů 4. Týden – Sběrnice.
Informatika akademický rok 2013/2014 Základní deska, rozhraní, sběrnice.
Sběrnice I. Sběrnice v počítačích. Sběrnice I. Sběrnice v počítačích.
4. přednáška 9. března 2015 Operační systémy LS 2014/2015.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Historie operačních systémů Fiala Filip, 4.C. 50. léta Počítače bez OS Programy se psaly pro konkrétní počítače, často v binárním kódu Až ke konci 50.
Operační systémy.
Počítač, jeho komponenty a periferní zařízení
Databázové systémy Architektury DBS.
Zdroj Parametry – napájení všech komponent PC
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systém (OS) ICT Informační a komunikační technologie.
Operační systémy LS 2014/ přednáška 23. února 2015.
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Informatika / …o počítači (základní pojmy, jednoduché představy) 2006.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Sběrnice Obr. 1.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systémy LS 2014/ konzultace 20. února 2015 (4 hodiny)
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Výpočetní technika kód předmětu: VT Ing. Miroslav Vachůn, Ph.D.
Hardware.
4. přednáška holý počítač, BIOS, virtuální počítač -vývoj operačních systémů -multiprocessing -paralelní systémy Studijní materiály najdete.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
organizace přednášek a cvičení
OPERAČNÍ SYSTÉMY.
Univerzita třetího věku kurz Znalci Hardware 1.
Mikroprocesor.
1. přednáška organizace přednášek a cvičení -úvodní informace, požadavky na posluchače -literatura -souvislost HW a SW, komponenty počítačového.
Základní pojmy v informatice Bohumil Bareš. Základní pojmy Data – soubory, jiný výraz pro „informace“, jsou to údaje, které vypovídají o světě, mohou.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Základy operačních systémů
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
John von Neumannova koncepce. John von Neumann  Narozen 28. prosince 1903 Budapešť Rakousko-Uhersko  Zemřel 8. února 1957 Spojené státy americké.
4. přednáška 7. března Raná historie (50. léta) -programátor a operátor v jedné osobě -přímá interakce s HW počítače -počítače bez operačního systému.
Historie počítačových sítí Co je to síť Důvody vzájemného sdílení zařízení Co je to rozhraní (interface) a protokol Historicky standardní rozhraní PC.
Technologie počítačů 1. Stavba počítače © Milan Keršláger
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Název školy: Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu: VY_32_INOVACE_10_NEUMANN_S1.
Základní desky Marek Kougl 1.L.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_IVT_1_KOT_07_BIOS.
PC základní jednotka.
Vypracoval / Roman Málek
OPERAČNÍ SYSTÉMY Číslo projektu CZ.1.07/1.5.00/ Název školy
Technologie počítačů 1. Stavba počítače
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
1. ročník oboru Mechanik opravář motorových vozidel
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
1. ročník oboru Mechanik opravář motorových vozidel
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Informatika / …o počítači
Informační a komunikační technologie 5. ročník
Přednášky z Distribuovaných systémů
Transkript prezentace:

1. konzultace (5 hodin) http://www.uai.fme.vutbr.cz/~vdumek/ 28. 2. 2014 Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/

Úvodní informace konzultace – učebna A4/715 hodnocení studujícího: 2 nebo 3 ústní otázky - podmínka pro 2 otázky - vypracování literární práce na téma: Počítače v pozadí zkázy civilizace ... (forma literární práce – povídka)

Podpůrné materiály pro konzultace: Literatura Gary Nutt: Operating Systems, Third Edition. ISBN: 0201773449 William Stallings: Operating Systems: Internals and Design Principles (7th Edition, 2011) Andrew S. Tanenbaum: Operating Systems: Design and Principles (3rd Edition) Madnick, Donovan: Operační systémy. Praha 1981. Bach: Principy operačního systému UNIX. Praha 1993. Abraham Silberschatz: Operating System Concepts (7th Edition) Čada: Operační systémy. Praha 1994. Plášil: Operační systémy. Skriptum ČVUT, Praha 1989. http://www. … Podpůrné materiály pro konzultace: http://www.uai.fme.vutbr.cz/~vdumek

Souvislost hardware - software Process management Memory management I/O Control File Management Software CPU Main Memory I/O Devices Secondary Storage Hardware

Komponenty počítačového systému hardware – poskytuje základní systémové zdroje (CPU, memory, I/O devices) operační systém – řídí a koordinuje použití prostředků mezi různými procesy (programy) různých uživatelů aplikační programy – definuje způsoby použití systémových zdrojů pro řešení uživatelských programů (compilers, database systems, video games, business programs) uživatelé – lidé, stroje, jiné počítače ............... User 1 User 2 User n Data Base MS-WORD Paint Operating System Computer Hardware

Computer Components: Top-Level View - operační systém využívá HW zdroje, nabízí množinu služeb uživatelům řídí procesor(y), primární a sekundární paměť, I/O kanály procesor řídí operace počítače, provádí zpracování dat a instrukcí, pokud je jeden -> CPU (Central Processing Unit) hlavní paměť (Main Memory) slouží k ukládání programu i dat, typicky je energeticky závislá (Real Memory, Primary Memory) I/O moduly přenáší data mezi počítačem a externími zařízeními (disky, terminály, komunikační kanály, ...) systémová sběrnice (adresní, datová, řídící) slouží ke spojení procesoru a hlavní pamětí PC Program Counter IR Instruction Register MAR Memory Address Register MBR Memory Buffer Register I/O AR Input/Output Address Register I/O BR Input/Output Buffer Register

Computer Components: Top-Level View CPU Main memory PC MAR IR MBR Execution unit I/O AR Instruction Instruction Instruction I/O BR Instruction Instruction Instruction I/O module Data Data Data Data Data Data Buffers

Provádění programu Start Fetch Next Instruction Execute Instruction Fetch Stage Execute Stage Start Fetch Next Instruction Execute Instruction Halt - přesouvání mezi pamětí a registry procesoru, ukázka sečtení obsahu adresy 940 s obsahem adresy 941 a uložení výsledku na adresu 941, jsou potřeba tři instrukce a tři fáze načtení (fetch) a tři fáze provedení (execute) PC obsahuje adresu první instrukce (300), instrukce (1940) je načtena do IR a PC je inkrementován, postup v sobě zahrnuje použití MAR a MBR, které nejsou zobrazeny Step1 První 4 bity (první hexadecimální číslo) v IR indikuje, že do AC se načte z paměti obsah adresy 940 (zbývajících 12 bitů) Step2 Další instrukce (5941) je načtena do IR z adresy 301 a PC je opět inkrementován Step3 Původní obsah AC (0003) je sečten s obsahem adresy 941 (0002) a výsledek je uložen do AC Step4 Další instrukce (2941) je načtena z adresy 302 a PC je inkrementován Step5 Obsah AC (0005) je uložen na adrese 941 Step6

Provádění programu 3 + 2 = 5 Fetch Stage Execute Stage Memory CPU registers Memory CPU registers 300 PC 300 PC 1940 300 1940 301 301 AC 301 AC 5941 5941 0003 302 IR 302 IR 2941 1940 2941 1940 ... ... 940 940 0003 0003 941 0002 941 0002 Step 1 Step 2 Memory CPU registers Memory CPU registers 300 PC 300 PC 1940 301 1940 302 301 AC 301 AC 5941 0003 5941 0005 302 IR 302 IR 2941 5941 2941 5941 ... ... 940 940 0003 0003 3 + 2 = 5 941 0002 941 0002 Step 3 Step 4 Memory CPU registers Memory CPU registers 300 PC 300 PC 1940 302 1940 303 301 AC 301 AC 5941 0005 5941 0005 302 IR 302 IR 2941 2941 2941 2941 ... ... 940 940 0003 0003 941 0002 941 0005 Fetch Stage Execute Stage Step 5 Step 6

John von Neumann *1903 v Budapešti, + 1957 v USA maďarský matematik židovského původu značnou měrou přispěl k oborům kvantové fyziky, funkcionální analýzy, teorie množin, ekonomiky, informatiky, numerické analýzy, hydromechaniky a statiky od útlého věku známky geniality, jazykové nadání a neobyčejná paměť celosvětově se prosadil v roce 1928 jako spolutvůrce matematické teorie her v roce 1929 se stal spolu s Albertem Einsteinem zakládajícím členem Institut for Advanced Study v Princetonu nejvýznamnější jsou jeho objevy jako průkopníka digitálních počítačů a operační teorie kvantové mechaniky, teorie her a buňkového automatu

Von Neumannova koncepce počítače vznikla kolem roku 1945 základní moduly jsou procesor, operační paměť, vstupní a výstupní zařízení platná s vyjímkami do dnešní doby základní principy: sériové zpracování instrukcí jednotné uložení dat i programu univerzální struktura počítače (nezávislost na řešené úloze) binární prezentace údajů

Harwardská koncepce ALU paměť programu paměť dat registr instrukcí vstupy/výstupy registr instrukcí řadič paměť programu

Harwardská koncepce návrh: Howard Aiken v 30. letech 20. století na Harvardské univerzitě vývoj reléového počítače Harvard Mark 1 instrukce na děrné pásce, data na elektro-mechanických deskách použito také na Pensylvánské univerzitě pro ENIAC (Electronic Numerical Integrator and Calculator) již tehdy šlo o moderní koncepci, která nebyla realizována kvůli technickým prostředkům a proto byla použita von Neumannovská architektura později bezproblémová realizace typické oddělení paměti pro data a program (může být jiná šířka sběrnice, jiná technologie a rychlost pamětí, jiná velikost nejmenší adresovací jednotky) větší technologická náročnost vyšší rychlost provádění instrukcí (dvojí paměť umožňuje současný přístup k datům i instrukcím) typickým představitelem jsou signálové procesory od Motoroly pro zvýšení výpočetní výkonnosti se používá pipelining přímý přístup do paměti je umožněn vícenásobným kanálem DMA program nemůže přepsat sám sebe nevyužitou paměť dat nelze použít pro instrukce a obráceně

Číselné soustavy Používané číselné soustavy: dekadická (desítková) binární (dvojková) oktalová (osmičková) hexadecimální (šestnáctková) - soustavy váhové 528 = 5*102 + 2*101 + 8*100 1101B = 1*23 + 1*22 + 0*21 + 1*20 0574 = 5*82 + 7*81 + 4*80 1AB5H = 1*163 + 10*162 + 11*161 + 5*160 - lepší orientace v binárních zápisech, hexadecimální vyjadřování - vzájemné převody

Sběrnice osobních počítačů řídící, datová, adresní, šířka, rychlost ISA (Industry Standard Architecture, IBM, 1984), data 16 bitů adresa 24 bitů, 8 MHz => 5 MB/s, známá technická specifikace, vnášela omezení při komunikaci s periferiemi MCA (Microchanel, IBM, 1987), šířka 32 bitů, 10 MHz, má dvojnásobný počet adresních vodičů => 6x rychlejší než ISA, špatná marketingová strategie, není kompatibilní s ISA EISA (Compaq, 1986), 32 bitů, kompatibilní k ISA, 5x dražší Local Bus - zachovává ISA, lokální spojení procesoru a paměti, 50 MHz, 130 MB/s, omezení počtu periferií PCI (Peripherals Component Interconnect, IBM, 1992), 64 bitů, 132 MB/s, 84 pinů, bus mastering, sdílení IRQ, PCI-X 150 pinů (1.0, 2.0, 266 MHz, 2,1 GB/s, 533 MHz, 4,2 GB/s) AGP (Accelerated Graphics Port), pro graf. kartu 528 MB/s, 4x 108 pinů, 100 MHz, 8x – výkon 2GB/s USB sériová polyfunkční sběrnice, 3.0 4 800 MB/s FireWire (50 MB/s), RS-485, I2C až 32 nízkorychlostních periferií

PCI Express PCI-Express, PCIe (známá i jako 3GIO, PCI-E), náhrada PCI, PCI-X a AGP komunikace probíhá pomocí paketů sériově, umožňuje to zvyšovat frekvenci, nejsou potíže se synchronizací původní návrh přinesla skupina AWG (Arapaho Work Group), konečný standard z dílny Dell, IBM a HP možnost „hot-plug“ (výměna za provozu) existují verze 1, 2 a 3 (PCIe v. 2.0 1x 500 MB/s jednosměrně, 4x, 8x a 16x (2 GB/s, 4 GB/s a 8 GB/s)) není dost rychlá pro použití jako paměťová sběrnice verze jsou kompatibilní

PCI Express

Sběrnice procesoru - FSB (Front Side Bus) je fyzická obousměrná datová sběrnice, která přenáší veškeré informace mezi procesorem a severním můstkem některé procesory mají L2 nebo L3 vyrovnávací paměti, které jsou k procesoru připojeny přes BSB. Tato sběrnice a vyrovnávací paměť se připojují rychleji než přístup do paměti přes FSB šířka pásma FSB je dána šířkou sběrnice a kmitočtem (1600 MB/s) čipset je spojovacím bodem pro všechny ostatní sběrnice v systému (PCI, AGP, paměť) pomalá FSB může zpomalovat rychlý procesor (procesor čeká na data z paměti) frekvence, se kterou procesor pracuje, je určena použitím násobičky kmitočtu FSB (550 MHz – CPU, 100 MHz – FSB, multiplier – 5,5x) frekvence FSB bývá stovky MHz

Sběrnice procesoru CPU Northbridge Southbridge Clock Generator Graphics card slot Front Side Bus Chipset Memory Slots High-speed graphics Bus AGP or PCIX Northbridge Memory Bus (memory controller hub) Internal Bus PCI Bus Southbridge Onboard graphics controler PCI Bus IDE SATA USB Ethernet Audio CMOS I/O controller hub) Cables and ports leading off-board PCI Slots Low Pin Count Bus Super I/O Serial Port Parallel Port Floppy Disk Keyboard Mouse Flash ROM (BIOS)

Registry procesoru - registr (viditelné pro uživatele (minimalizace potřeby paměti, využívání všech dostupných registrů, znalost instrukcí assembleru, ...), řídící a stavové (control) (používání při privilegovaných přístupech, ...)) kompatibilita procesorů uživatelské – pro data, pro adresy (index, segment, stack) řídící a stavové – PC (Program Counter), IR (Instruction Register), PSW (Program Status Word) AH, AL střadač, akumulátor BH, BL bázový registr CH, CL čítač DH, DL datový registr SP stack pointer BP base pointer SI source index DI destination index CS code segment DS data segment SS stack segment ES extra segment FLAGS registr příznaků IP instruction pointer

Přerušení Přerušení (Interrupt) je schopnost procesoru přerušit právě vykonávaný program a začít vykonávat program jiný (obsluha přerušení), začalo se implementovat z důvodu obsluhy periferií (procesor nemusí čekat ve smyčce na pomalé zařízení), dnes je využito při přepínání procesů - technickými prostředky (vnější), instrukcí INTR nemaskovatelná maskovatelná - programově (vnitřní) instrukcí INT n, chybou při běhu programu PIC 8259A 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - sled činností: uloží se FLAGS vynulují se IF, TF CS do zásobníku do CS obsah hodnoty přerušení IP do zásobníku (neprovedená instrukce) do IP obsah hodnoty přerušení - přerušení se uplatní po provedení instrukce - návrat instrukcí IRET

IRQ Levels (Interrupt Request) Typ signálu přerušení, které lze maskovat (bit IF – Interrupt Enable Flag v příznakovém registru nastaven na 0), potom se přerušení generované signálem INTR neprovede IRQ0 - systémový časovač IRQ8 – hodiny reálného času IRQ1 - řadič klávesnice IRQ9 – available, NIC, SCSI IRQ2 - sekundární PIC IRQ10 – available, NIC, SCSI IRQ3 - COM2, COM4 IRQ11 – available, NIC, SCSI IRQ4 - COM1, COM3 IRQ12 – myš, PS/2 IRQ5 - LPT2 (zvuková karta) IRQ13 – floating point unit IRQ6 - řadič disket IRQ14 – ATA (CD ROM, HD) IRQ7 - LPT1 (zvuková karta) IRQ15 - ATA

Vyvolání přerušení po instrukci N Návrat z přerušení T-M Zásobník T-M Zásobník N+1 Program counter N+1 Y+L+1 T T General registers Y Y Start Start Přerušovací rutina Stack pointer Přerušovací rutina T T-M Y+L Y+L Return Return Processor Processor T-M T Vyvolání přerušení po instrukci N N N Uživatelský program Uživatelský program N+1 N+1 Návrat z přerušení Main memory Main memory

. . . . . . . . . Instrukční cyklus s přerušením START HALT 1 2 i i+1 USER PROGRAM INTERRUPT HANDLER 1 2 . . . . . . i i+1 . . . Interrupt disabled M CHECK FOR INTERRUPT INITIATE INTERRUPT HANDLER START FETCH NEXT INSTRUCTION EXECUTE INSTRUCTION Interrupt enabled HALT

Je možné zavádět prioritní obsluhu přerušení Obsluha přerušení Je možné zavádět prioritní obsluhu přerušení Sekvenční způsob Vnořený způsob

Comunication interrupt Časování při vícenásobném přerušení Interrupt occurs = 10 Interrupt occurs = 15 t=0 t=15 5 2 t=10 Comunication interrupt service routine t=25 Interrupt occurs = 20 t=25 4 t=40 User program Printer interrupt service routine t=35 Disk interrupt service routine

Důležité vztahy mezi tématy Process description and control Scheduling Memory management Concurrency I/O management File management Networking Security

Vytváření programu Idea Algorithm Files Source Program Binary Program Execution Engine Status Stack Algorithm Files Source Program Binary Program Data Other Resources Process

Vytváření programu Algoritmus determinovanost rezultativnost hromadnost efektivnost analýza editace překlad sestavení spuštění

Operační systémy Cíle: použití počítače je pohodlnější a výhodnější, čerpání systémových zdrojů je účinnější, schopnost vývoje (testování, nové funkce, ...) Funkce: vytváření programů (editor, debugger), spouštění programů, přístup na I/O, přístup k souborům, přístup a ochrana systémových zdrojů, detekce chyb, evidence Charakteristiky: souběžnost, sdílení (cena, sdílená data, vytváření dalších úloh, odstranění redundance), determinovanost (stejné výsledky ze stejných dat a kdykoliv), výkonnost (střední čas mezi procesy, čas odezvy, čas obrátky, využití zdrojů, ...), spolehlivost, udržovatelnost, velikost

Definice operačního systému program, který je prostředníkem mezi uživatelem a technickým vybavením účelem OS je poskytovat uživateli prostředí pro spouštění programů základní část téměř všech počítačových systémů správce prostředků (řídí, alokuje, odebírá) – Resource Manager řídí provádění uživatelských programů a I/O operací – Control Program program, který vždy běží - Kernel

Provádění vnořených procedur 4000 Main program CALL Proc1 4100 4101 4500 CALL Proc2 Procedura Proc1 4600 4601 CALL Proc2 4650 4651 RETURN 4800 Procedura Proc2 4601 4651 4101 4101 4101 4101 4101 RETURN . . . . . . .

Zásobník - struktura LIFO v operační paměti Dno zásobníku SS:0A1A SS:0A1A 0A18 AA01 0A16 11AA 0A14 3C00 Vrchol zásobníku SS:0A14 0A12 - struktura LIFO v operační paměti - instrukce PUSH (vložení), POP (výběr) - výběr řídí registr SP (Stack Pointer) - kapacita zásobníku na programátorovi - používá INT, přerušovací systém, volání podprogramu

Typická organizace zásobníku Stack limit pouze jeden element může být dosažen, jedná se o poslední vkládaný záznam – vrchol zásobníku parametry zásobníku (počáteční adresa, velikost, limit, ...) jsou variabilní Stack Pointer – obsahuje sdresu vrcholu zásobníku, adresa je inkrementována nebo dekrementována operacemi PUSH a POP Stack Base – obsahuje počátek zásobníku ve vyhrazené oblasti Stack Limit – obsahuje adresu povoleného vrcholu zásobníku, každá operace PUSH za touto hodnotou vyvolá chybové hlášení Stack pointer Free Blok rezervovaný pro zásobník Stack base In use

proces P zavolal proces Q Růst zásobníku při dvou procedurách Top of stack pointer y2 y1 Return adress Current frame pointer Q: Previous frame pointer Top of stack pointer x2 x2 x1 x1 Return adress Return adress Current frame pointer P: P: Previous frame pointer Previous frame pointer aktivní proces P proces P zavolal proces Q

Direct Memory Access DMA - Direct Memory Access, některá zařízení mají možnost přistupovat k paměťovým přenosům dat bez účasti procesoru, při přenosu mezi pamětí a zařízením by byla velká režie, u blokových přenosů se nepřizpůsobuje rychlost – pouze u paměti, jedna adresová sběrnice – nelze použít adresaci dvou míst současně, specializovaný obvod – řadič DMA, jednoúčelové zařízení s 8 kanály u současných počítačů

Multiprogramování Paměťová hierarchie procesor provádí více programů (procesů) „současně“ pořadí provádění programů záleží na jejich prioritě, je modifikováno čekáním na nějakou událost (I/O operace) po přerušení se nemusí pokračovat v programu, který se prováděl před přerušením Paměťová hierarchie - rychlejší přístup – dražší bit větší kapacita – levnější bit větší kapacita – pomalejší přístup

Hierarchie pamětí Pokud se postupuje hierarchií dolů: Magnetická páska Optický disk Magnetický disk Elektronický disk Operační paměť Cache Registr zvyšuje se frekvence přístupů levnější, větší kapacity, pomalejší přístup Pokud se postupuje hierarchií dolů: - klesá cena bitu - zvyšuje se kapacita - zvyšuje se doba přístupu - klesá frekvence přístupů z procesoru do paměti rychlejší přístup, větší kapacita = dražší bit, větší kapacita = pomalejší přístup velkokapacitní paměti – dlouhá doba přístupu, rychlé paměti – menší kapacita

Cache paměť CPU Word Transfer - drahá a velmi rychlá paměť Main memory Cache CPU Block Transfer Word Transfer - drahá a velmi rychlá paměť - kontakt s pomalejší a větší hlavní pamětí - OS a uživatelské procesy ji nevidí - je v interakci s HW správy paměti (MMU) - hledání odkazovaného slova v cache při neúspěchu přesun dalšího bloku dat prostorová lokalita

Režimy práce procesoru většina procesorů podporuje nejméně dva režimy zpracování instrukcí, zpracování spojené s uživatelským programem (user mode), zpracování spojené s operačním systémem (system mode, control mode, kernel mode) je potřeba oddělit manipulaci se systémovými daty a uživatelskými daty oddělení není nezbytné, ale z hlediska bezpečnosti velice žádoucí režim je indikován na procesoru typicky pomocí jednoho bitu

Flynnova klasifikace systémů Michael J. Flynn (Stanford University,1966) třídí paralelní systémy z hlediska počtu toků instrukcí a počtu toků dat, příliš hrubé rozdělení, přesto rozšířené, rychlé přežívání, rozlišuje čtyři základní kategorie počítačových architektur: SISD (Single Instruction Single Data) jednoprocesorový počítač zpracovávající jeden tok dat, data v jedné paměti (von Neumann) SIMD (Single Instruction Multiple Data) počítač používající větší počet funkčních jednotek (procesorů), všechny procesory vykonávají současně stejnou operaci na různých datech, maticové počítače, vektorové počítače MISD (Multiple Instruction Single Data) hypotetická kombinace několika programů zpracovávajících jeden tok dat, takový princip se zatím nepoužívá a je někdy nesprávně zaměňován se systémem se zřetězeným zpracováním instrukcí (pipelining), u zřetězeného zpracování instrukcí je aktivní vždy pouze jeden program, kategorie počítačů, která není v praxi příliš běžná, posloupnost dat je přenášena k množině procesorů, lze sem zařadit některé speciální systémy, jako jsou systolická pole nebo neuronové sítě, implementováno zřídka MIMD (Multiple Instruction Multiple Data) obecný typ paralelního systému, který obsahuje jednotky již tak samostatné, že každá z nich plní samostatný program a přitom zpracovávají jiná data, nejčastější typ paralelizace, multiprocesorový systém, v němž je každý procesor řízen samostatným programem a pracuje nad svými daty, multiprocesorový systém – těsná vazba, distribuovaný systém – volně vázaný systém

Vrstvy počítačového systému Computer hardware Operating system Utilites Application programs End user Programmer Operating system designer

OS jako Resource Manager Computer System I/O Devices I/O Controler Operating System Software I/O Controler Programs & Data Storage I/O Controler Operating System Software Processor Processor Programs & Data

Obecné poznatky o operačních systémech Rozdělení operačních systémů: podle počtu úloh: jednoúlohové, multitaskové podle počtu uživatelů: jednouživatelské, víceuživatelské podle účelu použití: univerzální (nespecializované), specializované (RT- systémy, mívají zvláštní požadavky na řízení periferií, na interface s uživatelem, ...), databázové systémy, síťové operační systémy Obecná struktura OS: * řídící program (kernel, executive) * příkazový procesor (command processor) * řídící V/V programy * obsluha souborů * pomocné programy (utilities)

Obecné poznatky o operačních systémech OS je správcem prostředků (zdrojů). Řídí běh ostatních procesů (předává a bere řízení), vlastní jednotlivé systémové zdroje (přiděluje je a odebírá jednotlivýn procesům), zajišťuje rozhraní mezi uživatelem a HW, unifikuje detaily o HW pro procesy a uživatele (spravuje detaily HW ve vlastní režii). Operační systém je program, který funguje jako prostředník mezi uživatelem a hardware počítačového systému. Vytváří prostředí pro spouštění programů uživatele. Hlavním cílem je zabezpečení pohodlného přístupu uživatelů k programům a efektivní využívání technického vybavení. Podle odborné definice je OS pouze program, který běží neustále na počítači, tzv. výkonné jádro (kernel) operačního systému. Podle širší definice patří k OS i editory, kompilátory, GUI, atd. Ve formě virtuálního počítače OS skrývá detaily ovládání jednotlivých zařízení (zajišťuje transparentnost), definuje standardní rozhraní pro volání systémových služeb. diskové, specifické postupy při vývoji, assembler versus vyšší programovací jazyky, výsadní postavení jazyka C, vrstvená struktura s jednostranným tokem, krátké zdrojové texty pro snadnější ladění, objektový způsob přinesl možnost snadnější modifikace a rozšiřování, využití dědičnosti pro zvýšení flexibility

Vrstvy operačního systému operace přístupu k souboru, otevírání, zavírání, přesuny, ochrana, umístění, stav, ... „Holý počítač“ Přidělování procesoru Přidělování paměti Přidělování I/O Systém souborů stav periferií, stav kanálů a řídících jednotek, sdílení, přiřazení, efektivní přiřazování stav paměti, její využití, rozsah a doba přidělení, vlastník, uvolňování a vracení stav procesoru a procesů, plánování úloh, dispečer, plánovač úloh, vypršení limitu HW počítače

Moderní operační systémy nikoliv pouhá modifikace stávajících vlastností OS a jejich rozšiřování, zcela nová organizace, byly vytvořeny jak experimentální, tak komerčně využívané OS, pozornost zaměřena na oblasti: mikrokernelová architektura ve stávajících OS jednolitý kernel, ten prováděl většinu funkcí (plánováni, souborový systém, síťové služby, řízení paměti, ovladače zařízení, ...), byl implementován jako samostatný proces, jeden adresní prostor, mikrokernel si ponechává pouze některé funkce, zbytek je realizován samostatnými procesy (servery), ty běží v uživatelském módu, větší flexibilita, vhodné pro distribuované prostředí multithreading proces je prováděn pomocí více vláken, vlákno (sled, thread) je systémový objekt, který vzniká v rámci procesu, je viditelný pouze uvnitř procesu, výkonná jednotka procesu, charakterizován svým stavem, společné systémové prostředky (paměť, soubory, globální proměnné, …), vlastní zásobník, přiděluje se jim procesor, proces je systémový objekt charakterizovaný svým paměťovým prostorem a kontextem symetrický multiprocessing disponuje více procesory, sdílí jednu paměť a stejné I/O zařízení, propojeny komunikační sběrnicí, všechny procesory mohou provádět stejnou činnost distribuované OS ošetření několika samostatných počítačů jedním OS, multipočítačový systém, každý z počítačů má vlastní prostředky, DOS poskytuje iluzi jedné kolekce prostředků (paměť, ...), vývoj probíhá pomaleji než SMP objektově orientovaný návrh modulární přístup, dědičnost, pro plnohodnotné distribuované OS

Požadované vlastnosti OS Výkonnost (určena spoustou faktorů): střední doba mezi procesy, doba nečinnosti CPU, doba obrátky pro úlohy, čas odezvy, využití zdrojů, výkonnost počítače, kompromisní řešení Spolehlivost: v ideálním případě bez chyb Udržovatelnost: modulární řešení, jasné definice interface mezi jednotlivými moduly, rozšiřování schopností, oprava chyb Velikost: odůvodněná velikost v paměti i na disku, větší systémy jsou náchylnější k poruchám

Služby OS - vytváření programů na uživatelské úrovni editory, kompilátory, sestavovací programy, ladící programy - provádění programů zavádění programů do RAM, multiprogramové podpora komunikace a synchronizace procesů všechny OS jsou postaveny na základě zpracování procesů - V/V operace a operace se soubory zpřístupňování, formátování, privilegované operace - přístup k počítačovému systému ochrana při přístupu k systémovým zdrojům a údajům, řešení konfliktů při soupeření o zdroje - chybové řízení detekce chyb (HW, SW, neschopnost OS splnit požadavek aplikace), reakce na chyby - protokolování statistiky o zdrojích, monitorování výkonu, kalkulace cen, inspirace pro zlepšování konfigurace

Řídící struktury OS OS musí mít informace o aktuálním stavu procesů, informace o stavu HW zdrojů OS vytváří a udržuje tabulky o všech částech, které jsou pro něj důležité čtyři různé typy tabulek (paměť, I/O, soubory, procesy) mohou být rozdíly mezi různými OS, uvedené kategorie ale platí obecně Memory tables – sleduje se stav primární (real) i sekundární (virtual) paměti, část paměti je rezervována pro OS, zbytek je pro procesy, tabulky musí obsahovat informace o alokování obou pamětí procesům, ochranné atributy pro neoprávněný přístup (sdílení), informace potřebné k řízení virtuální paměti I/O tables – jsou používány OS k řízení I/O zařízení a kanálů systému, obsahují informace o přiřazení I/O zařízení jednotlivým procesům, jejich dostupnost File tables – informují o uložení souborů na disku, všechny jeho atributy, informace využívá hlavně souborový systém Process tables – slouží pro řízení procesů, musí obsahovat lokalizaci procesu (PCB (task control block, process descriptor, task descriptor), process image)

Řídící struktury OS Memory tables Memory Devices I/O tables Files Process image Process 1 Memory tables Memory Devices I/O tables Files Processes File tables Process 1 Process image Process 2 Primary process table Process n Process 3 . Process n

“Holý” počítač Operační paměť I/O procesor (kanál) Řídící jednotka Periferie

BIOS – Basic Input Ouput System základní souhrn instrukcí a funkcí nutných pro spuštění počítače propojuje HW a SW je tvořen sadou ovladačů základních komponent systému BIOS sděluje informace o HW, který je v počítači a OS říká, jak s ním má nejlépe pracovat, jaké má potíže první vrstva BIOSu v ROM (informace pro základní používání komponent, typ pamětí, typ procesoru), druhá vrstva v čipu CMOS (nastavení prováděná v menu), třetí vrstva jsou ovladače zaváděné v průběhu spouštění OS po zapnutí: nastaví konfiguraci počítače z CMOS paměti provede autonomní test počítače (POST Power On Self Test) inicializuje komponenty v konečné fázi spouští OS

BIOS

Virtuální počítač Uživatelské programy Proces 1 Proces 3 Holý počítač Proces 4 Proces 2 Programy jádra operačního systému

Vývoj operačních systémů Raná historie (50. léta) programátor a operátor v jedné osobě přímá interakce s HW počítače počítače bez operačního systému plánování (nějaká forma seznamu), přípravný čas (provádění programu (job) zahrnovalo loading zdrojového kódu, linkeru + různé funkce, každý z těchto kroků znamenal mount a dismount pásky nebo čtení sady děrných štítků, výskyt chyby znamenal znovu začátek) cena HW převyšovala cenu kvalifikované lidské práce koncem 50. let se začaly objevovat náznaky OS monitor – zaváděl systém ochrany paměti (monitor – programy), kontrolu I/O (2 pracovní módy - čtení/zápis na děrné štítky nebo provádění programu, kontrolu nekonečné smyčky (timeout, přerušení programu)

Vývoj operačních systémů První operační systémy (60. – 70. léta) éra sériového zpracování (Serial Processing), v průběhu času byly zavedeny nástroje pro zlepšení sériového zpracování, byly vyvinuty různé SW nástroje pro zefektivnění práce (knihovny, linkers, loaders, debuggers, I/O driver routines, ...) SPOOL: jednoduchý OS, běh více programů současně, přepínání mezi nimi, jak postupně čekaly na I/O operace, každý výrobce měl svůj naprosto odlišný SPOOL počítače byly velice drahé a bylo nezbytné zvýšit jejich využití, zbytečné prostoje během přípravných prací byly neakceptovatelné, pro zvýšení využití se zavedly jednoduché dávkové systémy (Simple Batch Systems), prvním byl IBSYS pro počítače IBM, pokračoval monitor - byl rezidentně umístěný v paměti, jazyk k provádění instrukcí monitoru – JCL (Job Control Language) zásoboval monitor instrukcemi, procesorový čas tak alternoval mezi monitorem a uživatelským programem

Vývoj operačních systémů Další vývoj OS - Během jednoduchého dávkového zpracování je procesor často nečinný (idle). Problémem je rychlost I/O zařízení, na která se musí čekat. Z tabulky vyplývá, že téměř 96% času se spotřebuje čekáním na I/O operaci a přenos dat do souboru. Pokud máme dostatek paměti pro monitor a uživatelské programy, můžeme mezi nimi alternovat (provést je „najednou“). Takový způsob je známý jako Multiprogrammed Batch Systems (dávkové zpracování s multiprogramováním), multitasking, výhody jsou patrné z porovnání utilizačních histogramů, multiprogramování musí počítat s HW předpoklady (IRQ, DMA, MMU)

Výpočet využití procesoru Čtení záznamu ze souboru 15 ms Provedení 100 instrukcí 1 ms Zápis záznamu do souboru 15 ms Součet 31 ms Percent CPU Utilization = 1/31 = 0,032 (3,2%)

Vývoj operačních systémů Pro většinu úloh je žádoucí nabídnout uživateli možnost interakce s výpočtem, nejprve pro sálové počítače, dnes zcela samozřejmá pro všechny kategorie počítačů. Jedná se o systémy se sdílením času TSS (Time Sharing Systems), jedná se také o multiprogramové systémy, v rámci multitaskingu je provozováno více úloh různých uživatelů, prvním TSS byl CTSS (Compatible Time Sharing System) MAC (Multiple Access Computer) pro počítač IBM 709 v roce 1961, zavedení TSS (multiprogramování) přineslo řadu nových problémů pro OS, jedná se o ochranu paměti, ochranu souborového systému, soupeření o zdroje, ...

Časová osa operačních systémů 50. léta: bez operačního systému, monitor 60. léta: SPOOL (Simultaneous Peripheral Operation OnLine) 70. léta: UNIX, Multics (Honeywell, MIT), poslední byl vypnut v roce 2000, VMS (DEC) – první verze 1978, 32 bitový, multitaskový a multiprocesorový, virtuální paměť, vyvíjen do 2000, hlavně pro procesory Alpha, i 64 bitová verze 80. léta: ráj 8 bitových počítačů, i do domácností, CP/M, velmi zjednodušená verze UNIXu, 8.3, MacOS, integroval GUI, myš jako hlavní nástroj, Amiga OS, v roce 1981 DOS pro IBM XT, 640 KB RAM, vycházel z CP/M, IBM se snažilo o PC/DOS, OS2 (z něj vznikly Windows NT), v oblasti mainframe různé UNIXy (AIX, Solaris, IRIX, FreeBSD, OpenBSD, …) 90. léta: DOS + Windows 3.1, Windows 9x/NT, Linux, BeOS (multimediální aplikace) Současnost: Windows, Linux

Oblíbenost operačních systémů Operační systém 2009 2010 2011 2012 2013 Windows 94,05% 93,73% 93,06% 92,02% 91,34% Mac 4,91% 5,25% 5,87% 6,81% 7,27% Linux 1,01% 1,0% 1,07% 1,17% 1,39% Ostatní 0,03% 0,02% 0%

Memory Layout for a Resident Monitor Interrupt processing Monitor Device driver Job sequencing Control language interpreter Boundary User program area

Time-Sharing Systems dávkové OS nepodporovaly interakci s uživateli, TSS rozšiřuje pojem multiprogramování na správu více interaktivních úloh, procesor je sdílen více uživateli (podle výkonu systému o sobě uživatelé nemusí vědět), objevuje se chráněný systém souborů - prvním TSS byl CTSS pro počítač IBM 709 v roce 1961 Batch Multiprogramming Time Sharing Hlavní účel Maximalizovat užití procesoru Minimalizovat čas odezvy Zdroj příkazů pro OS Příkazy JCL Příkazy zadávané z terminálu

Multiprogramování - multiprocessing Interleaving (multiprogramming, one processor) - prokládání Proces1 Proces2 Proces3 běží blokován čas jeden procesor Proces1 Proces2 Proces3 Overlapping (multiprocessing, three processors) - překrývání běží blokován čas tři procesory

Multiprogramování - multiprocessing Uniprogramming Run A Run A Wait Wait čas Multiprogramming se dvěma programy Run A Run B Run A Run B Wait Wait čas Multiprogramming se třemi programy Run A Run B Run C Run A Run B Run C Wait Wait čas

Multiprogramování - multiprocessing Symetrický multiprocessing (SMP) používá rovnocenné univerzální procesory (vlastní časování, ALU, registry), každý procesor má přístup do hlavní paměti a prostřednictvím sběrnice k I/O zařízením, procesory spolu mohou komunikovat prostřednictvím paměti (sdílení) nebo zpráv, na každém běží část operačního systému. Procesy se procesoru přidělují jako celky, někdy se proces může dělit na samostatné části – vlákna (thread). Potom se i vlákna mohou přidělovat jednotlivým procesorům. Dělení procesů na vlákna vede při použití víceprocesorových počítačů ke zrychlení výpočtu. Se systémovými strukturami může pracovat více procesorů. Plánování je provedeno pro každý procesor, důraz je kladen na synchronizaci procesů (sledů). Asymetrický multiprocessing (ASMP) uplatňuje mezi procesory vztah master – slave, ty nemusí být stejného typu (vektorový počítač Convex, 128 procesorů, speciální SW). ASMP funguje i pro počítače PC pro specializované procesory (FPU – pro pohyblivou čárku, grafika, zvuková karta, …). Řízení zajišťuje CPU – centrální (univerzální) procesor. Pouze jeden procesor smí pracovat se systémovými datovými strukturami. Jsou jednodušší, není potřeba zajišťovat sdílení systémových struktur, nevýhodou je nižší pružnost a výkonnost.

Efekt multiprogramování na využití zdrojů JOB1 JOB2 JOB3 Typ úlohy Heavy compute Heavy I/O Délka 5 min. 15 min. 10 min. Požadavek na paměť 50 K 100 K 75 K Potřeba disku Ne Ano Potřeba terminálu Potřeba tiskárny Uniprogramming Multiprogramming Využití procesoru 22% 43% Využití paměti 30% 67% Využití disku 33% Využití tiskárny Spotřebovaný čas 35 min. 20 min. Výkon 6 jobs/hod. 9 jobs/hod. Průměrná odezva 18 min. 10 min.

Utilization Histogram Job1 Utilization Histogram Job2 Job3 100% 0% 100% 0% CPU 100% 0% 100% 0% Paměť 100% 0% 100% 0% Disk 100% 0% 100% 0% Terminál 100% 0% 100% 0% Tiskárna 5 10 15 20 25 30 5 10 15 čas [min] čas [min]

Architektura SMP . . . Main memory Processor Processor Processor L1 L1 System bus I/O adapter Main memory I/O subsystem I/O adapter I/O adapter

Počítačové systémy Počítačový systém - hardware („holý počítač“) - operační systém - aplikační programy (překladače, hry, databázové systémy, systémové nástroje, …) - uživatelé Paralelní systémy Multiprocesorový systém obsahuje více procesorů (p > 1) sdílejících společnou paměť, sběrnice, hodiny a periferie. Paralelní systémy dělíme na symetrické a asymetrické. Paralelní systém – skutečný paralelismus procesů, těsně vázané systémy, společný FAP, sdílí se hodiny, vyšší propustnost a spolehlivost Distribuovaný systém – paralelismus procesů, volně vázané systémy, více FAP, komunikace periferními operacemi, každý procesor má vlastní paměť a hodiny

Paralelismus - distribuovanost Paralelní systém – skutečný paralelismus procesů, těsně vázané systémy, společný FAP, sdílí se hodiny, vyšší propustnost a spolehlivost Distribuovaný systém – paralelismus procesů, volně vázané systémy, více FAP, komunikace periferními operacemi, každý procesor má vlastní paměť a hodiny Nezávislý – běží samostatné procesy, žádná synchronizace, víceuživatelské systémy Velmi hrubozrnný – distribuované zpracování v síti (řešení jedné komplexní úlohy) řídká interakce mezi procesy (omezení síťové režie) Hrubozrnný – běh více procesů na více procesorech, jeden FAP, multiprocessing Střednězrnný – multitasking, sledy v rámci jednoho procesu v časté interakci, multiprogramming Jemnozrnný – paralelní řešení operací (maticové procesory), stejná operace na datech Paralelní systém paměť procesor Distribuovaný systém distribuce dat a řízení Mem Mem P P

Distribuované a agentové systémy Distribuované systémy Klasické – procesory jsou méně vázané, jde vlastně o samostatné počítače (uzly) spojené pomocí komunikační sítě. Důvody pro budování distribuovaných systémů: - sdílení zdrojů - urychlení výpočtů - zvýšení spolehlivosti (porovnání výsledků, uložení souborů na více místech, …) Mezi paralelními systémy a klasickými distribuovanými systémy se nachází počítačový cluster. Ten umožňuje efektivní spojení výkonu více počítačů, nejen jejich procesorů. Navzájem jsou propojeny vysokorychlostní sítí. Agentové systémy - jsou vázány volněji než klasické distribuované systémy. Agenti se skládají z jádra (programu) a komunikační obálky pro umožnění komunikace s jinými agenty. Agent je samostatný systém schopný spolupracovat s jinými systémy. Na rozdíl od přesně organizovaného distribuovaného systému jsou agentové systémy schopné v případě potřeby přibrat další agenty ke spolupráci.