Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

1. konzultace (5 hodin) 28. 2. 2014 Studijní materiály najdete na adrese:

Podobné prezentace


Prezentace na téma: "1. konzultace (5 hodin) 28. 2. 2014 Studijní materiály najdete na adrese:"— Transkript prezentace:

1 1. konzultace (5 hodin) Studijní materiály najdete na adrese:

2 - 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) Úvodní informace

3 Literatura Gary Nutt: Operating Systems, Third Edition. ISBN: 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 Bach: Principy operačního systému UNIX. Praha Abraham Silberschatz: Operating System Concepts (7th Edition) Čada: Operační systémy. Praha Plášil: Operační systémy. Skriptum ČVUT, Praha … Podpůrné materiály pro konzultace:

4 Souvislost hardware - software Process management Memory management I/O ControlFile Management CPU Main Memory I/O DevicesSecondary Storage Software Hardware

5 - 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 Komponenty počítačového systému Computer Hardware Operating System Data Base MS-WORD Paint User 1User 2User n

6 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í PCProgram Counter IRInstruction Register MARMemory Address Register MBRMemory Buffer Register I/O ARInput/Output Address Register I/O BRInput/Output Buffer Register

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

8 Provádění programu 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 - 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) Další instrukce (5941) je načtena do IR z adresy 301 a PC je opět inkrementován Step3 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 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 Start Halt Fetch Next Instruction Execute Instruction Fetch Stage Execute Stage

9 PC AC IR MemoryCPU registers Step PC AC IR MemoryCPU registers Step PC AC IR MemoryCPU registers Step PC AC IR MemoryCPU registers Step PC AC IR MemoryCPU registers Step PC AC IR MemoryCPU registers Step = 5 Provádění programu Fetch StageExecute Stage

10 John von Neumann -*1903 v Budapešti, 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

11 Von Neumannova koncepce počítače -vznikla kolem roku 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ů

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

13 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ě

14 Číselné soustavy Používané číselné soustavy: dekadická (desítková) binární (dvojková) oktalová (osmičková) hexadecimální (šestnáctková) - soustavy váhové 528 = 5* * * B = 1* * * * = 5* * *8 0 1AB5H = 1* * * * lepší orientace v binárních zápisech, hexadecimální vyjadřování - vzájemné převody

15 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, MB/s FireWire (50 MB/s), RS-485, I 2 C až 32 nízkorychlostních periferií

16 - 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 x 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

17

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

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

20 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

21 - technickými prostředky (vnější), instrukcí INTR nemaskovatelná maskovatelná - programově (vnitřní) instrukcí INT n, chybou při běhu programu - 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 PIC 8259A 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ů

22 IRQ0 - systémový časovačIRQ8 – hodiny reálného času IRQ1 - řadič klávesniceIRQ9 – available, NIC, SCSI IRQ2 - sekundární PICIRQ10 – available, NIC, SCSI IRQ3 - COM2, COM4IRQ11 – available, NIC, SCSI IRQ4 - COM1, COM3IRQ12 – myš, PS/2 IRQ5 - LPT2 (zvuková karta)IRQ13 – floating point unit IRQ6 - řadič disketIRQ14 – ATA (CD ROM, HD) IRQ7 - LPT1 (zvuková karta)IRQ15 - ATA 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

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

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

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

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

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

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

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

30 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 Operační systémy

31 - 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 Definice operačního systému

32 Provádění vnořených procedur CALL Proc1 CALL Proc2 RETURN Main program Procedura Proc1 Procedura Proc

33 AA01 SS:0A1A 11AA 3C00 0A18 0A16 0A14 0A12 Vrchol zásobníku SS:0A14 Zásobník - 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 Dno zásobníku SS:0A1A

34 Typická organizace zásobníku Free In use Stack pointer Stack limit Stack base Blok rezervovaný pro zásobník - 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í

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

36 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čů Direct Memory Access

37 - 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 Multiprogramování - rychlejší přístup – dražší bit - větší kapacita – levnější bit - větší kapacita – pomalejší přístup Paměťová hierarchie

38 Hierarchie pamětí 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

39 Cache 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

40 - 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 Režimy práce procesoru

41 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

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

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

44 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

45 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. Obecné poznatky o operačních systémech 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

46 Vrstvy operačního systému „Holý počítač“ Přidělování procesoru Přidělování paměti Přidělování I/O Systém souborů operace přístupu k souboru, otevírání, zavírání, přesuny, ochrana, umístění, stav,... 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

47 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

48 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 Požadované vlastnosti OS

49 - 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 Služby OS

50 Ří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)

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

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

53 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

54 BIOS

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

56 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)

57 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

58 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)

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

60 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,...

61 Č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

62 Oblíbenost operačních systémů Operační systém Windows94,05%93,73%93,06%92,02%91,34% Mac4,91%5,25%5,87%6,81%7,27% Linux1,01%1,0%1,07%1,17%1,39% Ostatní0,03%0,02%0%

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

64 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 Time-Sharing Systems Batch Multiprogramming Time Sharing Hlavní účelMaximalizovat užití procesoru Minimalizovat čas odezvy Zdroj příkazů pro OSPříkazy JCLPříkazy zadávané z terminálu

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

66 Run A Run B Run B Wait čas Run B Run B Wait čas Run A Run A Run A Wait čas Uniprogramming Multiprogramming se dvěma programy Multiprogramming se třemi programy Run C Run C Run A Run A

67 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. Multiprogramování - multiprocessing

68 Efekt multiprogramování na využití zdrojů JOB1JOB2JOB3 Typ úlohyHeavy computeHeavy I/O Délka5 min.15 min.10 min. Požadavek na paměť50 K100 K75 K Potřeba diskuNe Ano Potřeba termináluNeAnoNe Potřeba tiskárnyNe Ano UniprogrammingMultiprogramming Využití procesoru22%22%43%43% Využití paměti30%30%67% Využití disku33%67% Využití tiskárny33%67% Spotřebovaný čas35 min.20 min. Výkon6 jobs/hod.9 jobs/hod. Průměrná odezva18 min.10 min.

69 Utilization Histogram čas [min] 100% 0% 100% 0% 100% 0% 100% 0% 100% 0% CPU Paměť Disk Terminál Tiskárna Job2 Job3 Job1 100% 0% 100% 0% 100% 0% 100% 0% 100% 0%

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

71 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é. Počítačové systémy 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

72 Paralelismus - distribuovanost paměť procesor distribuce dat a řízení P Mem P 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 Distribuovaný systém Paralelní systém

73 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. Distribuované a agentové systémy


Stáhnout ppt "1. konzultace (5 hodin) 28. 2. 2014 Studijní materiály najdete na adrese:"

Podobné prezentace


Reklamy Google