4. přednáška 9. března 2015 Operační systémy LS 2014/2015
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) Operační systémy LS 2014/2015
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 Operační systémy LS 2014/2015
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) Operační systémy LS 2014/2015
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, ... Operační systémy LS 2014/2015
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%) Operační systémy LS 2014/2015
Č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 Operační systémy LS 2014/2015
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% OS (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% Operační systémy LS 2014/2015
Memory Layout for a Resident Monitor Interrupt processing Monitor Device driver Job sequencing Control language interpreter Boundary User program area Operační systémy LS 2014/2015
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 Operační systémy LS 2014/2015
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 Operační systémy LS 2014/2015
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 Operační systémy LS 2014/2015
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. Operační systémy LS 2014/2015
Utilization Histogram 100% 0% 100% 0% CPU Job1 Job2 Job3 Job3 Job1 Job2 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] Operační systémy LS 2014/2015 č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 Operační systémy LS 2014/2015
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 Operační systémy LS 2014/2015
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. Operační systémy LS 2014/2015
Paralelní systémy Paralelní systém Distribuovaný systém paměť 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 Operační systémy LS 2014/2015
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. Operační systémy LS 2014/2015