Operační systémy - přehled PB152 o Operační systémy Jan Staudek http://www.fi.muni.cz/usr/staudek/vyuka/ Verze: jaro 2017 Komponenty počítačového systému, hierarchie Banking system Airline reservation Web browser Compilers Editors Command interpreter Operating system Machine language Microarchitecture 1 Physical devices Application programs Utilities j.. System ^p°^ programs * Libraries - Hardware Jan Staudek, FI MU Brno | PB152 Operační systémy-úvod 2___^ Komponenty počítačového systému □ uživatelé (lidé, stroje, jiné počítače, ...) □ aplikační programy / definují způsoby kterými se používají zdroje systému pro řešení výpočetních uživatelských problémů (vědecké úlohy, video hry, byznys programy, ...) □ systémové programy, pomocné programy, knihovní programy / řeší standardní, systémově orientované úlohy (zálohování, editace, kompilace, řízení databáze, standardní matematika, ...) □ operační systém / program pro řízení a správu používání hardware různými aplikačními výpočty různých uživatelů souběžně, v reálném čase, ... □ hardware / bázové výpočetní zdroje (CPU / procesor, paměť, I/O zařízení komunikační spoje), CPU - Central Processing Unit ]an Staudek, FI MU Brno | PB152 Operační systémy - úvod 1___f Operační systém, cíle a funkce □ Program, který řídí provádění aplikačních a systémových programů v počítači a efektivně jim zpřístupňuje zdroje □ Reprezentuje rozhraní aplikační systémy a systémové programy x hardware □ Cíle OS / pohodlnost používání počítače / efektivnost využívání zdrojů počítačového systému / schopnost rozvoje umožnit efektivní vývoj, testování a zavádění nových funkcí bez interference s poskytovanými službami □ Z cílů plynou role / OS rozhraní uživatel (aplikační a systémové procesy)/počítač / OS správce zdrojů / OS vývoj eschopný organismus ]an Staudek, FI MU Brno | PB152 Operační systémy - úvod 3___y r Struktura hardware a software počítače detailněji Users -- vidí počítač jako sadu aplikací Application programming interface, API Voláni knihovních podprogramu Iniciace pruwádrni pcmDcnýdi programu Application binary interface (ABI) OS Services Interface, voláni služeb OS Instruction Set Architecture (ISA) strojový jazyk, instrukce Application / system programs Libra ries/ulilities - Operating system Core of operating syster i režim jádra, úplný repertoár instrjk. Execution hardware, CPU I rezim i uživatelsKý System interconnect (bus) I/O devices and networking Memory translation FAP--LAP Main memory Software Hardware Jan Staudek, FI MU Brno | PB152 Operačni systémy-úvod 4 y OS v roli rozhraní uživatel/počítač □ Koncoví uživatelé vidí počítač jako sestavu aplikačních programu / Aplikační programy se píší v programovacích jazycích aplikačními programátory □ Pro složité ovládání počítače mají k dispozici funkčnost součástí operačního systému - systémových, knihovních, pomocných programů, utilities □ Maskování detailů hardware a funkčnost nutnou pro efektivní a pohodlné používání počítače aplikačními, systémovými, knihovními, pomocnými programy zajišťují programy soustředěné v jádru operačním systému, core, kernel, pomocí poskytovaných služeb OS, OS services Jan Staudek, FI MU Brno | PB152 Operační systémy-úvod 6___/ Generická rozhraní OS □ Instruction set architecture (ISA), strojový jazyk □ Application programming interface (API), knihovny volání služeb OS na úrovni vyšších programovacích jazyků, pomocné programy - OS může poskytovat pro různé třídy aplikací různá API sockets pro přenos dat, .NET, transakce, ... □ Application binary interface (ABI), volání služeb OS na úrovní strojového jazyka (asembleru), reprezentace OS a počítače vůči všem aplikacím Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 5___f Typické oblasti služeb poskytovaných OS □ Vývoj programů, editory, ladící systémy, ... typicky poskytované pomocnými (systémovými) programy □ Provádění programů, vše co je nutné zajistit pro činnosti řízené programy - plánování, zavádění, ovládání 10, ... □ Přístup k 10 zařízením - jednotné API pro různá zařízení □ Přístup k souborům dat na vnějších pamětech □ Přístup k systémovým zdrojům, bezpečnost, řešení konfliktů □ Chybové řízení, automatizované reakce na nestandardní stavy v hardware, v software a v případech kdy OS nemůže uspokojit požadavek aplikace □ Protokolování, info o tom co se dělo, základ pro účtování, základ pro odhady budoucího vylepšování, ... Jan Staudek, FI MU Brno | PB152 Operační systémy-úvod 7 j OS v roli správce zdrojů |l/0 Cor |l/Q Cor 3—O 3—O I Processor | • ■ • | Processor | 3—Qf / Počítač je sestavou zdrojů / prostředků pro přesun, uchovávání a zpracování dat / OS je odpovědný za řádnou správu těchto zdrojů / OS je implementovaný v software, procesor ho chápe jako každý jiný řádný software OS je suita programů prováděných procesorem / Programy soustředěné v jádru OS se organizačně neřeší formou procesů, jsou spíše nástrojem pro poskytování služeb procesům ]an Staudek, FI MU Brno | PB152 Operační systémy-úvod 8 Neexistuje univerzálně akceptovatelná definice „co to je OS" □ OS je program, který funguje jako spojka mezi uživatelem počítače a hardware počítače - OS = cokoliv co je činné ve výpočetním systému a není to hardware nebo aplikace □ neexistuje univerzálně akceptovatelná definice ,,co to je OS" / Everything a vendor ships when you order an operating system □ The one program running at all times on the computer is the kernel. Everything else is either a system program (ships with the operating system) or an application program ]an Staudek, FI MU Brno | PB152 Operační systémy-úvod 10 OS je vývojeschopný organismus □ V průběhu života konkrétního konceptu OS dochází / k doplňování a k inovacím hardware / k doplňování nově požadovaných služeb / k opravám chyb ]an Staudek, FI MU Brno | PB152 Operační systémy - úvod 9___f Požadavky na OS jsou různorodé □ Cíle (povinnosti) OS / řídit řešení uživatelských (aplikačních) programů / poskytnout nástroje pro řešení problémů uživatelů (aplikací) / učinit počítač snadněji použitelný / vytvářet podmínky umožňující efektivně používat hardware počítače □ Cíle (přání) uživatele / služby poskytované OS lze pohodlně používat, snadno zvládnout / OS je spolehlivý, bezpečný / požadované služby poskytuje OS pohotově □ Cíle (přání) provozovatele OS / OS je snadno navrhnutelný, implementovatelný a udržovatelný,, / OS je přizpůsobitelný, spolehlivý a bezchybný i Staudek, FI MU Brno | PB152 Operační systémy - úvod 11___y Co to je operační systém? □ OS je poskytovatel problémově orientované abstrakce bázových fyzických prostředků □ bázové fyzické prostředky: - procesory, operační paměť, komunikační nástroje, vnější paměti, ... □ OS nabízí programátorovi bázové fyzické prostředky k použití formou služeb poskytovaných na rozhraní volání systému □ programátor chce vidět spíše - soubory a záznamy než diskové bloky a vystavovací mechanismus disku - spíše schránky (sockets) než přímý přístup k síti - spíše procesy a vlákna než procesory, paměťový prostor Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 12 y Co to tedy je operační systém? □ OS je správce prostředků / spravuje a řídí využívání všech zdrojů systému, eviduje jejich využívání,... / rozhoduje mezi konfliktními požadavky tak, aby používání zdrojů systému bylo efektivní a spravedlivé (odpovídající zvolené politice) □ OS je řídicí program, / řídí provádění ostatních programů tak, aby zabraňoval chybnému a nepatřičnému použití počítače / řídí bezpečné provádění uživatelských programů a operací I/O zařízení Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 14 j Cílem použití OS je abstrakce, extended machine □ Operační systém mění ošklivý hardware na atraktivní abstrakci Application programs System programs Operating system Hardware Procesy (Beautiful interface. acg) (ygíy interf acej^ Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 13___f Problémy budovaní OS □ OS jsou „obrovské"systémy / v současnosti představují až stovky miliónů řádků kódu, / pracnost řádově tisíce člověko-roků □ OS jsou složité systémy / požadavky různých uživatelů se často podstatně liší / nelze jednorázově odstranit všechny chyby, verifikace z důvodů složitosti selhává □ Chování OS se obtížně předpovídá, „seřizování"/ ladění se dělá vesměs odhadem i Staudek, FI MU Brno | PB152 Operační systémy - úvod 15___y OS se staly složité - funkčně / system calls: open, read, write, close, wait, exec, fork, exit, kill. OS rok pocet Unix 1971 33 Unix 1979 47 Windows 1.0 1985 450 SunOS 4.1 1989 171 4.3 BSD 1991 136 SunOS 4.5 1992 219 SunOS 5.6 1997 190 Linux 2.0 1998 319 FreeBSD 1998 330 Windows 1999 a dál x X Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 16 j OS se stávají složité - rozsahem (LOC, Lines of Code, v io6) os rok LOC 3.1 1992 3 NT 1992 4 95 1995 15 NT 4.0 1996 16 98 1998 18 2000 2000 30 XP 2001 40 Vista 2007 64 7 2009 ?? OS rok LOC Solaris 1991 10 FreeBSD 1993-1998 9 Red Hat Linux 6.2 2000 17 Red Hat Linux 7.1 2001 30 Debian 2.2 2000 60 Debian 3.0 2002 104 Debian 3.1 2005 215 Debian 4.0 2007 283 Fedora 9 2008 205 Mac OS X 10 2010 86 □ 2 dekády - zvýšení rozsahu OS v LOC na dvaceti až 30-násobek Jan Staudek, FI MU Brno | PB152 Operační systémy - úvod 18___J OS se stávají složité - funkčně □ Enormě narůstá složitost vnitřních algoritmů (jádra) OS □ počty cyklů procesoru spotřebovaných ve Windows NT při / Zaslání zprávy mezi procesy: 6K 120 K podle použité metody / Vyvtoření procesu: 3M / Vytvoření vlákna: 100K / Vytvoření souboru: 60K / Vytvoření semaforu: 10K 30K / Nahrání DLL knihovny: 3M / Obsluha přerušení/výjimky: 100K 2M / Přístup do systémové databáze Registry. 20K