Téma 2 Služby a architekturyos

Podobné dokumenty
Téma 2 Architektury OS a jejich služby

Téma 2 Architektury OS a jejich služby

Téma 2 Architektury OS a jejich služby

Téma 2 Služby a architekturyos

Téma 2 Služby a architekturyos

Operační systémy a databáze

a co je operační systém?

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Operační systémy a databáze

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Procesy a vlákna (Processes and Threads)

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Principy operačních systémů. Lekce 1: Úvod

Management procesu I Mgr. Josef Horálek

Implementace systémů HIPS: historie a současnost. Martin Dráb

Základní typy struktur výpočetních systémů

OPS Paralelní systémy, seznam pojmů, klasifikace

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

B4B35OSY: Operační systémy

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Paměťový podsystém počítače

Úvod do Linuxu. SŠSI Tábor 1

Operační systémy. Přednáška 1: Úvod

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Pokročilé architektury počítačů

Instalace a konfigurace web serveru. WA1 Martin Klíma

Činnost počítače po zapnutí

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

B4B35OSY: Operační systémy

Stavba operačního systému

Operační systémy. Přednáška 2: Procesy a vlákna

Počítač jako prostředek řízení. Struktura a organizace počítače

Linux Teorie operačních systémů a realita

Operační systémy (OS)

Principy operačních systémů. Lekce 3: Virtualizace paměti

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Profilová část maturitní zkoušky 2014/2015

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Přidělování paměti II Mgr. Josef Horálek

Systémy pro sběr a přenos dat

Služba ve Windows. Služba (service) je program

09. Memory management. ZOS 2006, L.Pešička

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

Řízení IO přenosů DMA řadičem

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

3. Počítačové systémy

Základní informace. Operační systém (OS)

Tomáš Borland Valenta

OPERAČNÍ SYSTÉMY. Operační systém je prostředník mezi hardwarem (technickým vybavením počítače) a určitým programem, který uživatel používá.

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Distribuovaný systém je takový systém propojení množiny nezávislých počítačů, který poskytuje uživateli dojem jednotného systému.

PRINCIPY OPERAČNÍCH SYSTÉMŮ

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

ZOS OPAKOVÁNÍ. L. Pešička

RAID, LVM a souborové systémy

Systém souborů (file system, FS)

ČÁST 1. Základy 32bitového programování ve Windows

Windows a real-time. Windows Embedded

Rozdělení operačních systémů

Profilová část maturitní zkoušky 2015/2016

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Systém adresace paměti

Princip funkce počítače

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Sísyfos Systém evidence činností

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

PB002 Základy informačních technologií

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

Metody připojování periferií

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

IT ESS II. 1. Operating Systém Fundamentals

Matematika v programovacích

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

TÉMATICKÝ OKRUH Softwarové inženýrství

Témata profilové maturitní zkoušky

Pokročilé architektury počítačů

Virtualizace. Lukáš Krahulec, KRA556

Definice OS. Operační systém je základní programové vybavení počítače, nezbytné pro jeho provoz.

Principy operačních systémů. Lekce 7: Souborový systém

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

2010/2011 ZS. Operační systém. úvod základní architektury

Operační systémy: funkce

Metody připojování periferií BI-MPP Přednáška 2

Přidělování CPU Mgr. Josef Horálek

Business Intelligence

Základní pojmy informačních technologií

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Common Object Request Broker Architecture

Přidělování zdrojů (prostředků)

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Struktura programu v době běhu

TÉMATICKÝ OKRUH Softwarové inženýrství

Transkript:

Téma 2 Služby a architekturyos Obsah 1. Úkoly a skladba OS 2. Složky OS a jejich určení 3. Systémové programy 4. Standardy pro služby OS a typickéslužby JOS 5. Mechanismus volání služeb 6. Monolitické OS 7. OS s mikrojádrem 8. Virtuální stroje 9. Cíle návrhu OS, složitost OS Služby a architektury jádra OS 1

Operační systém Program, který řídí vykonávání aplikačních programů Styčnáplocha (interface) mezi aplikačními programy a hardware Cíle OS: Uživatelské pohodlí Účinnost Umožnit, aby systémové zdroje počítače byly využívány efektivně Schopnost vývoje Umožnit vývoj, testování a tvorbu nových systémových funkcí, aniž by se narušila činnost existujícího OS Služby a architektury jádra OS 2

Vrstvy ve výpočetním systému Koncový uživatel Programátor, vývojář aplikací Vývojář operačního systému Aplikační programy Servisní programy (utility) Jádro operačního systému (JOS) Hardware Služby a architektury jádra OS 3

Generické složky OS a jejich hierarchie Správa procesorů Správa procesů proces = činnost řízená programem Správa (hlavní, vnitřní) paměti Správa souborů Správa I/O systému Správa vnější (sekundární) paměti Podpora sítí (Networking) Systém ochran Interpret příkazů Interpret příkazů(cli) Podpora sítí (Networking) Správa souborů Správa sekundární paměti Správa I/O systému Správa hlavní paměti Správa procesů Správa procesorů Jádro OS Systém ochran Služby a architektury jádra OS 4

Správa procesů a procesorů Provádění programu = proces (process, task) Proces lze chápat jako rozpracovaný program Proces má svůj stav (souhrn atributů rozpracovanosti) Proces potřebuje pro svůj běh jistézdroje: CPU (procesor), paměť, I/O zařízení,... Správaprocesů OS odpovídáza: Vytváření a rušení procesů Pozastavování (blokování) a obnovování procesů Realizaci mechanismů pro synchronizaci procesů komunikaci mezi procesy Správa procesorů OS odpovídá za: výběr procesoru pro běh procesu výběr procesu, který poběží na dostupném procesoru Služby a architektury jádra OS 5

Správa (hlavní) paměti Hlavní (operační, primární) paměť Pole samostatně adresovatelných slov nebo bytů Repositářbezprostřednědostupných dat sdílený CPU (popř. několika CPU) a I/O zařízeními (resp. jejich řadiči) Adresovaná fyzickými adresami (FAP = fyzický adresní prostor) (Zpravidla) energeticky závislé zařízení pamatovaná data se ztrácí po výpadku energie OS je při správě(hlavní) paměti odpovědný za: Vedení přehledu, který proces kterou část paměti v daném okamžiku využívá Rozhodování, kterému procesu uspokojit jeho požadavek na prostor paměti po uvolnění prostoru v paměti Přidělování a uvolňovánípaměti podle potřeb jednotlivých procesů Služby a architektury jádra OS 6

Virtualizace paměti CPU i aplikační programátor vidílogickéadresy(lap) Programy a data v LAP jsou zaváděny podle potřebydo FAP Struktury LAP lineární (jednorozměrnépole) dvojdimenzionální kolekce samostatných lineárních segmentů (obecně proměnné délky) Zobrazování LAP do dostupného FAP pomocí hardware mechanismus DAT, Dynamic Address Translation realizovanéobvykle jednotkou správy pamětimmu, (= Memory Management Unit) Při odkazu logickou adresou do místa, kterénenípřítomno ve FAP vznikne kritická výjimka (přerušení) a JOS ve FAP nalezne vhodné místo na toto místo zavede se blok s požadovanou informací z obrazu LAP na disku Služby a architektury jádra OS 7

Virtuální adresování a MMU Logická (virtuální) adresa Fyzická adresa Procesor MMU Hlavní (operační) paměť JOS Disková adresa Sekundární paměť (disk) Služby a architektury jádra OS 8

Správa vstupu a výstupu (I/O systém) OS spravuje soustavu vyrovnávacích pamětí Paměť bloku přenášených dat je alokována v paměťovém prostoru jádra OS To dovoluje uvolnit fyzickou paměť obsazovanou procesem během jím požadované I/O operace řádově pomalejší I/O Drivery (ovladače) jednotlivých hardwarových I/O zařízení Jsou specializované(pod)programy pro spolupráci a řízení konkrétní třídy vzájemně podobných periferních zařízení Jednotné rozhraní driverů (ovladačů) I/O zařízení Všechny ovladače se jeví aplikačnímu programátorovi a nadřazeným vrstvám OS jako podprogramy s unifikovanou volacíposloupnostía vedlejším efektem těchto podprogramů je pak práce s periferií Služby a architektury jádra OS 9

Správa vnějšípaměti Hlavní (primární, operační) paměť je energeticky závislá, neschopná udržet informaci trvale márelativněmalou kapacitu a nelze v ní uchovávat všechna data a programy Počítačový systém musí mít energeticky nezávislou (persistentní) sekundární paměťs dostatečnou kapacitou i za cenu nemožnosti přímédostupnosti jejího obsahu procesorem Sekundární paměť obvykle realizují disky aťuž klasické pevnédisky nebo SSD bez mechanických částí Jako správce vnější (sekundární) paměti je OS odpovědný za Správu volného prostoru na sekundární paměti Přidělování paměti souborům Plánování činnosti relativně pomalých disků organizace vyrovnávacích pamětí minimalizace pohybů hlaviček disku Služby a architektury jádra OS 10

Správa souborů Soubor Identifikovatelná kolekce souvisejících informací vnitřně strukturovaná dle definice navržené tvůrcem souboru Obvykle specializovaná reprezentace jak programů i dat Z hlediska správy souborů je OS odpovědný za: Vytváření a rušení souborů Vytváření a rušení adresářů(katalogů, složek ) Podporu elementárních operací pro manipulaci se soubory a s adresáři (čtení a zápis dat z/do souboru či adresáře) Zobrazování souborů do sekundární paměti Archivování souborů na energeticky nezávislá velkokapacitní média(např. magnetické pásky) Služby a architektury jádra OS 11

Podpora sítí, distribuované systémy Distribuovaný systém Soustava počítačů, kterénesdílejí ani fyzickou paměťani hodiny ( nesynchronizované kusy hardware ) Každý počítač má svoji lokální paměť a pracuje samostatně Počítače mohou mít i různé architektury Dílčípočítače distribuovaného systému jsou propojeny komunikační sítí Přenosy dat po síti jsou řízeny svými (zpravidla značně univerzálními) komunikačními protokoly Distribuovaný systém uživateli zprostředkovávápřístup k různým zdrojům systému Přístup ke sdíleným zdrojům umožňuje zrychlit výpočty (rozložení výpočetní zátěže) zvýšit dostupnost dat (rozsáhlá data se nepřenášejí celáa nemusí být replikována) zlepšit spolehlivost (havárie jedné části nemusí způsobit nefunkčnost celého systému) Služby a architektury jádra OS 12

Ochrany a chyby při běhu programů Ochrana mechanismus pro kontrolu a řízenípřístupu k systémovým a uživatelským zdrojům Systém ochran prorůstá všechny vrstvy OS Systém ochran musí rozlišovat mezi autorizovaným a neautorizovaným použitím poskytnout prostředky pro prosazení legální práce Detekce chyb Chyby interního a externího hardware Chyby paměti, výpadek napájení Chyby na ZVV či mediích ( díra na disku) Softwarové chyby Aritmetické přetečení, dělení nulou Pokus o přístup k zakázaným paměťovým lokacím (ochrana paměti) OS nemůže obsloužit žádost aplikačního programu o službu Např. k požadovanému souboru nemáš právo přistupovat Služby a architektury jádra OS 13

Interpret příkazů Většina zadáníuživatele je předávána operačnímu systému řídícími příkazy, které zadávají požadavky na správu a vytváření procesů ovládání I/O správu sekundárních pamětí správu hlavní paměti zpřístupňování souborů komunikaci mezi procesy práci v síti,... Program, který čte a interpretuje řídicípříkazy se označuje v různých OS různými názvy Command-line interpreter (CLI), shell, cmd.exe, sh, bash, Většinou rozumíjazyku pro programování dávek (tzv. skriptů) Interpret příkazůlze chápat jako nadstavbu vlastního OS systémový program (pracující v uživatelském režimu) Služby a architektury jádra OS 14

Systémové programy Poskytují prostředí pro vývoj a provádění programů Typická skladba Práce se soubory, editace, kopírování, katalogizace,... Získávání, definování a údržba systémových informací Modifikace souborů Podpora prostředí pro různé programovací jazyky Sestavování programů Komunikace Aplikační programy z různých oblastí Většina uživatelských rozhraní OS je vytvářenáa podporovanáinterprety příkazů systémovými programy a ne voláním systému(system calls) Systémovéprogramy jsou v rámci OS řešeny formou výpočetních procesů, ne jako služby OS Služby a architektury jádra OS 15

Další funkce operačního systému Monitorování a účtování systému Sběr statistiky o využití systému Pro dlouhodobé plánování v systému Pro účtování placených služeb (historickázáležitost nabývající v současnosti znovu svůj význam) Monitorování výkonnosti a chování systému Slouží k podpoře dalšího vývoje systému Je třeba rozlišovat služby OS jako celku služby jádra OS (JOS)(system calls) Systémové a aplikační programy Systémové API JOS Hardware počítače Služby a architektury jádra OS 16

Služby JOS Standardy pro soustavy služeb OS (system calls) Rozhraní systémových služeb API (Application Programming Interface) POSIX(IEEE 1003.1, ISO/IEC 9945) Specifikuje nejen system callsale i rozhraní standardních knihovních podprogramůa dokonce i povinné systémové programy a jejich funkcionalitu (např. ls vypíše obsah adresáře) http://www.opengroup.org/onlinepubs/9699919799/nframe.html Win32 Specifikace volání základních služeb systému v M$ Windows Několik (zdánlivě nezávislých) skupin služeb JOS: správa výpočetních procesů přidělování a uvolňování paměti na žádost přístup k datům v souborech a na periferiích správa souborů a souborových systémů služby pro podporu sítí různé další služby např. měření doby běhu úseku programu Služby a architektury jádra OS 17

Základníslužby jádra OS POSIX (1) Správa procesů Služba Popis pid = fork() Vytvoří potomka identického s rodičem pid = waitpid(pid, &stat, options) Čeká až zadaný potomek skončí s = execve(name, argv, environp) Nahradí obraz procesu jiným obrazem exit(status) Ukončí běh procesu a vrátí status s = close(fd) Služba fd = open(filename, how,...) n = read(fd, buff, nbytes) n = write(fd, buff, nbytes) pos = lseek(fd, offset, whence) s = stat(filename, &statbuffer) Práce se soubory Popis Otevře soubor pro čtení, zápis, modif. apod. Zavře otevřený soubor (uvolní paměť) Přečte data ze souboru do pole buff Zapíše data z pole buff do souboru Posouvá ukazatel aktuální pozice souboru Dodá stavové informace o souboru Služby a architektury jádra OS 18

Základníslužby jádra OS POSIX (2) Práce s adresáři souborů a správa souborů Služba Popis s = mkdir(name, mode) Vytvoří nový adresář s danými právy s = rmdir(name) Odstraní adresář s = link(name1, name2) Vytvoří položku name2 odkazující na name1 s = unlink(name) Zruší adresářovou položku s = mount(spec, name, opt) Namontuje souborový systém s = umount(spec) Odmontuje souborový systém Služba s = chdir(dirname) s = chmod(fname, mode) s = kill(pid, signal) Další služby Popis Změní pracovní adresář Změní ochranné příznaky souboru Zašle signál danému procesu a mnoho dalších služeb Služby a architektury jádra OS 19

Primitivní shell: Základní správa procesů Služby a architektury jádra OS 20

Porovnání služeb POSIX a Win32 POSIX fork waitpid execve exit open close read write lseek stat mkdir rmdir link unlink chdir Win32 CreateProcess WaitForSingleObject -- ExitProcess CreateFile CloseHandle ReadFile WriteFile SetFilePointer GetFileAttributesExt CreateDirectory RemoveDirectory -- DeleteFile SetCurrentDirectory Popis Vytvoř nový proces Může čekat na dokončení procesu CreateProcess = fork + execve Ukončí proces Vytvoří nový soubor nebo otevře existující Zavře soubor Čte data ze souboru Zapisuje data do souboru Posouvá ukazatel v souboru Vrací různé informace o souboru Vytvoří nový adresář souborů (složku) Smaže adresář souborů Win32 nepodporuje spojky v soub. systému Zruší existující soubor Změní pracovní adresář POSIX služby mount, umount, kill, chmod a další nemají ve Win32 přímou obdobu a analogická funkcionalita je řešena jiným způsobem Služby a architektury jádra OS 21

Hierarchické vrstvení OS OS (programový systém) se dělí do jistého počtu vrstev (úrovní) Každá vrstva je budována na funkcionalitě nižších vrstev Nejnižší vrstva (0) je hardware Nejvyšší vrstva je uživatelské rozhraní Pomocí principu modulů jsou vrstvy vybírány tak, aby každá používala funkcí (služeb) pouze vrstvy n 1 Řeší problém přílišné složitosti velkého systému Dekomponuje se velký složitý problém na několik menších, snáze zvládnutelných problémů Každá vrstva řeší konzistentní podmnožinu funkcí Nižší vrstva nabízí vyšší vrstvě primitivní funkce(služby) Nižší vrstva nemůže požadovat provedení služeb vyšší vrstvy Používají se přesně definovaná rozhraní jednu vrstvu lze uvnitř modifikovat, anižto ovlivní ostatnívrstvy rozhraní se volí tam, kde jsou nejméně složitá Služby a architektury jádra OS 22

Vykonávání služeb v klasickém OS Klasický monolitickýos Non-process Kernel OS Procesy jen uživatelskéa systémovéprogramy Jádro OS je prováděno jako monolitický (byť velmi složitý) program v privilegovaném režimu Služby OS lze plněvykonávat jako součást jádra nebo lze služby OS provádět v jádře v rámci běhu procesu Obecně lze realizaci služeb provádět v kontextu uživ. procesu tj. jako jeho podprogram běžící při zamaskovaném přerušení a ležící v adresním prostoru uživatelského procesu užito relativně zřídka Přerušení, volání služby Vyvoláimplicitněpřepnutí režimu procesoru do systémového režimu, nepřepíná se však kontext volajícího procesu K přepnutí kontextu(přechodu od jednoho procesu k jinému) proces 1 OS proces 2 dochází jen, je-li to nutnéz hlediska plánování procesů po dokončení služby Služby a architektury jádra OS 23

Volání služeb jádra OS Aplikační program (proces) volá službu OS: Zavolá podprogram ze standardní systémové knihovny Ten transformuje volání na systémový standard (native API) a vyvolá synchronní přerušení JOS převezme řízení v privilegovaném režimu práce CPU Podle kódu požadované služby dispečer služeb zavolá komponentu JOS odpovědnou za tuto službu Po provedení služby se řízení vrací aplikačnímu programu s případnou indikací úspěšnosti 11 kroků k provedení služby Služby a architektury jádra OS 24

Tradiční řešení Služba OS plnějako součást JOS AP 2 AP 4 AP 1 AP 3 Uživatelský prostor Systémový prostor Jádro OS poskytuje služby pro každý z aplikačních procesůap i a operuje jako jediná společná entita pracující v privilegovaném režimu MONOLITICKÉ JÁDRO OS Služby a architektury jádra OS 25

Příklad monolitické architektury: UNIX Služby a architektury jádra OS 26

Alternativní řešení Služba OS jako součást procesu AP 1 AP 2 AP 3 AP 4 Uživatelský prostor Služba OS Služba OS Služba OS Služba OS Systémový prostor Jádro přepíná mezi procesy a operuje a jako jako samostatná entita v privilegovaném režimu režimu Synchronní přerušení se obsluhuje v režii procesu minimalizace přepínání mezi procesy. Používáno např. v UNIX SVR4 Uvnitř JOS používá každý proces samostatný zásobník Kód a data JOS jsou ve sdíleném adresovém prostoru a jsou sdílena všemi procesy Služby a architektury jádra OS 27

Procesově orientované JOS, mikrojádro OS je soustavou systémových procesů Funkcí jádra je tyto procesy separovat a přitom umožnit jejich kooperaci Minimum funkcí je potřeba dělat v privilegovaném režimu Jádro pouze ústředna pro přepojování zpráv Řešení snadno implementovatelné i na multiprocesorech Malé jádro => mikrojádro (µ-jádro) (microkernel ) Souborový AP 1 AP 2 AP 3 AP 4 server Terminálový server Mikrojádro Služby a architektury jádra OS 28

OS s µ-jádrem výhody OS se snáze přenáší na nové hardwarové architektury, µ-jádro je malé Vyšší spolehlivost modulární řešení moduly jsou snáze testovatelné Vyšší bezpečnost méně kódu se běží v privilegovaném režimu Pružnější, snáze rozšiřitelné řešení snadné doplňování nových služeb a rušení nepotřebných Služby jsou poskytovány unifikovaně výměnou zpráv Přenositelné řešení při implementaci na novou hardwarovou platformu stačí změnit µ-jádro Podpora distribuovanosti výměna zpráv je implementována v síti i uvnitř systému Podpora objektově-orientovaného přístupu snáze definovatelná rozhraní mezi aplikacemi a µ-jádrem To vše za cenu zvýšenérežie, volání služeb je nahrazeno výměnou zpráv mezi aplikačními a systémovými procesy Služby a architektury jádra OS 29

Příklad OS s µ-jádrem Windows XP Služby a architektury jádra OS 30

Virtuální stroje (1) Logickástruktura OS s principem vrstvenídotaženým do extrému Softwarový produkt, který chápe hardware a jádro operačního systému jako jednu společnou (hardwarovou) vrstvu Virtuální stroj vyvážírozhraní identickés emulovaným (holým, podloženým) hardwarem OS běžněvytváří ilusi prostředí,ve kterém běžívíce procesů Každý proces běží na svém vlastním (virtuálním) procesoru vybaveném svou vlastní (virtuální) pamětí Lze-li vytvořit iluzi souběžnosti více procesů, lze vytvořit i iluzi současnosti běhu více systémůs vlastnostmi původního fyzického počítače nebo i úplnějiného stroje resp. jiného OS, jinéverze téhož OS,... Každý uživatel na sdíleném stroji může tak užívat jiný OS Služby a architektury jádra OS 31

Virtuální stroje (2) Virtuálnístroj zajišťuje úplnou ochranu systémových zdrojů Každý virtuální stroj je izolován od všech ostatních Taková izolace však neumožňuje přímé sdílení zdrojů Na virtuálním stroji může však běžet jiný virtuálnístroj usnadňuje to ladění OS během jeho provozování umožňuje to provést změnu parametrů bez restartování systému Zdroje fyzického počítače jsou sdíleny s cílem vytvořit ilusi existence virtuálních strojů Plánování CPU dává uživatelům iluzi, že mají svůj vlastní procesor Systém souborů může podporovat i virtuální tiskárnu, atd. Virtuální stroj je obtížné implementovat, protože musí modelovat přesný duplikát příslušného hardware Služby a architektury jádra OS 32

Standardní nevirtualizovaný stroj Virtuálnístroje (3) Jedno hardware Dvě virtuální hardwarové platformy Tři virtuální operační systémy Reálný příklad pro vaše PC: Virtual PC Nedílná součást Windows 7 Professional a Ultimate Služby a architektury jádra OS 33

Cíle návrhu OS Uživatelský pohled OS musí být snadno použitelný, snadno naučitelný, bezpečný, rychlý,... Systémové hledisko OS se musí dát snadno implementovat, udržovat a musíbýt přizpůsobivý, spolehlivý, bezchybný (?),... Skutečné výsledky Operační systémy jsou (a asi vždy budou) obrovské až desítky miliónů řádků zdrojového kódu asynchronní (interaktivní) (téměř vždy) plné chyb a (často) nespolehlivé a silně závislé na konkrétním hardware, a tedy obtížně přenositelné Tradičněbýval OS psaný v asembleru (assembly language). Nyní se OS píší v běžných programovacích jazycích vyšší úrovně (C, C++) OS lze napsat rychleji je kompaktnější je srozumitelnější a lze ho snáze ladit je (aspoňteoreticky) snáze přenositelný na jinou hardwarovou architekturu Služby a architektury jádra OS 34

Vytváření provozní verze OS (SYSGEN) Operačnísystém je obvykle připraven tak, aby běžel na jisté třídě hardwarových platforem / sestav počítače OS musí být konfigurovatelný na konkrétnísestavu Program SYSGEN Na základě informace týkající se konkrétní požadované konfigurace a konkrétního hardwarového systému vytváří provozní verzi OS odpovídající skutečnéskladběhw prostředků Zavaděč systému (Bootstrap program) Program uchovávaný v ROM, který umí nalézt jádro (zpravidla na disku), zavést ho do paměti a spustit jeho inicializaci a další provádění Zavádění systému (Booting) Zavedením jádra a předáním řízení na jeho vstupníbod se spustí činnost celého systému Jádro poté spustí počáteční aplikační proces, který čte různé konfigurační soubory a spouští inicializační dávky a startuje tím další komponenty systému Služby a architektury jádra OS 35

OS Unix Unix SunOS4.1 4.3 BSD SunOS4.5 SunOS5.6 (Solaris) Linux 2.0 WinNT 4.0 OS jsou funkčně složité Rok 1971 1979 1989 1991 1992 1997 1998 1999 Počet služeb jádra (system calls) 33 47 171 136 219 190 229 3443 Obrovská složitost vnitřních algoritmů (jádra) OS Počty cyklů CPU spotřebovaných ve WinXP při Zaslání zprávy mezi procesy: 6K 120 K (dle použité metody) Vytvoř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 Služby a architektury jádra OS 36

OS jsou velmi rozsáhlé Historie Windows Údaje jsou jen orientační, Microsoft data nezveřejňuje SLOC (Source Lines of Code) je velmi nepřesný údaj: Tentýž programový příkaz lze napsat na jediný nebo celou řadu řádků. OS Windows 3.1 Windows NT 3.5 Windows 95 Windows NT 4.0 Windows 98 SR-2 Windows 2000 SP5 Windows XP SP2 Windows 7 Rok 1992 1993 1995 1996 1999 2002 2005 2010 Počet řádků kódu[sloc] 3 mil. 4 mil. 15 mil. 16 mil. 18 mil. 30 mil. 48 mil.???(není známo) Služby a architektury jádra OS 37

Dotazy Služby a architektury jádra OS 38