PB001: Uvod do informačních technologií Luděk Matýska Fakulta informatiky Masarykovy univerzity podzim 2011 Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 1 / 111 • Přednášky nejsou povinné • Zkouška je pouze písemná • Termíny oznámím do konce října (cca 5, 2 řádné, dva kombinované, jeden pouze opravný) • Jeden náhradní termín • Vzhledem ke kapacitním omezením doporučuji rané termíny • Prototypové zadání písemky dám k dispozici koncem listopadu • Studijní literatura uvedena u sylabu • Přednáška je nahrávána na video Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 2 / 111 • Základní orientace v oblasti informačních technologií. • Úvod do technického a programového vybavení současných počítaču a propojovacích sítí. • Etické a sociální rozměry informačních technologií. • Systémový (konceptuálni) pohled na celou oblast. • „Průvodce" následujícím studiem Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 3 / 111 • Unikátní kombinace reálných a abstraktních (virtuálních) systémů • Technické komponenty (hardware): podléhají fyzikálním zákonům • Programy (software): „ztělesnění" abstraktních konstrukcí Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 4 / 111 • Unikátní kombinace reálných a abstraktních (virtuálních) systémů • Technické komponenty (hardware): podléhají fyzikálním zákonům • Programy (software): „ztělesnění" abstraktních konstrukcí • Důsledky: • Virtuální prostředí • Pocit, že IT stojí mimo „realitu" • Fenomém vaporware Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 4 / 111 • Dva rozměry: • Od fyzické po programovou vrstvu • Různé komponenty na téže vrstvě atyska (Fl MU) PB001: Úvod do informačních techn • Dva rozměry: • Od fyzické po programovou vrstvu • Různé komponenty na téže vrstvě • Příklady: • ISO OSI síťový model: např. linková, transportní a aplikační vrstva Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 5 / 111 • Dva rozměry: • Od fyzické po programovou vrstvu • Různé komponenty na téže vrstvě • Příklady: • ISO OSI síťový model: např. linková, transportní a aplikační vrstva • Vrstvy operačního systému: např. kernel, ovladače, překladače, aplikace Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 5 / 111 • Dva rozměry: • Od fyzické po programovou vrstvu • Různé komponenty na téže vrstvě • Příklady: • ISO OSI síťový model: např. linková, transportní a aplikační vrstva • Vrstvy operačního systému: např. kernel, ovladače, překladače, aplikace • Různé typy procesorů Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 5 / 111 • Dva rozměry: • Od fyzické po programovou vrstvu • Různé komponenty na téže vrstvě • Příklady: • ISO OSI síťový model: např. linková, transportní a aplikační vrstva • Vrstvy operačního systému: např. kernel, ovladače, překladače, aplikace • Různé typy procesorů • Různé programovací jazyky Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 5 / 111 Technické prostředky • Architektura počítačů a sítí Technické prostředky • Architektura počítačů a sítí Programové prostředky • Operační systémy • Programovací jazyky o Aplikace • Procesor(-řadič)-paměť-periferie: von Neumannova architektura Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 7 / 111 • Procesor(-řadič)-paměť-periferie: von Neumannova architektura • Řízené zpracování dat Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 7 / 111 • Procesor(-řadič)-paměť-periferie: von Neumannova architektura • Řízené zpracování dat • Jiné modely architektury: • Tu ringový stroje • Dataflow přístup o Objektově-orientovaná • Deklarativní (funkcionální či logická) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 7 / 111 • Stroj vykonávající instrukce • Vnitřní hodiny: takt procesoru • Základní jednotka sekvenční (ALU) • Může obsahovat více jednotek: vnitřní paralelismus • Instrukční cyklus: výběr a provedení instrukce jednou jednotkou Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 8 / 111 • Univerzální • CISC: Complex Instruction Set Computer • RISC: Reduced Instruction Set Computer » ... • Specializované • Vektorové • Grafické • Embedded a • • • Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 9 / 111 • Uchováva data • Přímo adresovatelná: sloupec a řádek • Rozsah adres: 16, 32, 64, ... bitů • Cyklus paměti: doba nezbytná pro vystavení nebo zápis dat • Vzpamatování se po provedené operaci, prokládání pamětí • Statická vs. dynamická paměť, volatilita • Hierarchie pamětí • Rychlá—pomalá • Drahá—levná Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 10 / 111 • Uchováva data • Přímo adresovatelná: sloupec a řádek • Rozsah adres: 16, 32, 64, ... bitů • Cyklus paměti: doba nezbytná pro vystavení nebo zápis dat • Vzpamatování se po provedené operaci, prokládání pamětí • Statická vs. dynamická paměť, volatilita • Hierarchie pamětí • Rychlá—pomalá • Drahá—levná • Ilustrace ekonomického imperativu v IT Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 10 / 111 Zajišťují vstup/výstup informací: • komunikace s uživatelem • permanentní ukládání dat • komunikace s jinými systémy Interaktivní o Klávesnice: vstup • Myš, tablet, stylus, .. .: vstup • Obrazovka: výstup i vstup • Zvuk: výstup i vstup Dávkové: prostřednictvím jiných zařízení • Paměti (ROM, PROM, EPROM, NVRAM) • Disky • Magnetické • Magnetooptické • Optické • Pásky • Sítě Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 13 / 111 Paměti (ROM, PROM, EPROM, NVRAM) Disky • Magnetické • Magnetooptické • Optické Pásky Sítě Papír: trvanlivost! Počítačové sítě • Drátové • Elektrické • Optické • Počítačové sítě • Drátové • Elektrické • Optické • Bezdrátové • Radiové vlny • Optické Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 14 / 111 • Počítačové sítě • Drátové • Elektrické • Optické • Bezdrátové • Radiové vlny • Optické • Akustické Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 14 / 111 Počítačové sítě • Drátové • Elektrické • Optické • Bezdrátové • Radiové vlny • Optické • Akustické Mechanické Virtuální realita • Brýle a helmy • 3D projekce a prostorový • Haptika (rukavice, . ..) • Detekce polohy a pohybu • Virtuální realita • Brýle a helmy • 3D projekce a prostorový zvuk • Haptika (rukavice, . ..) • Detekce polohy a pohybu • Wearable computers Luděk Matýska (Fl MU) PB001: Úvod do informačních techn Standardní pohled: • Procesor(y) • Paměť a Periferie Možné i jiné pohledy • Buněčné automaty • Neuronové počítače • Úzce propojené (tightly coupled) • Volně propojené (loosely coupled) • Distribuované • Gridy • Často společná paměť • Minimální vliv vzdálenosti procesorů • Speciální propojení procesorů a pamětí • Vhodné pro tzv. jemný paralelismus • Typický výpočetní model: sdílená paměť (i kdyby byla pouze virtuální) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 18 / 111 • Převážně distribuovaná paměť (každý procesor zvlášť) • Vzdálenost procesorů může hrát roli • Speciální propojení procesorů • Výrazně vyšší latence (zpoždění) v mezi procesorové komunikaci (jednotky mus a méně) • Existence operací remote put a remote get pro přístup do paměti vzdáleného procesoru • Typický výpočetní model: zasílání zpráv Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 19 / 111 • Rozšíření předchozího modelu • Vždy distribuovaná paměť • Vzdálenost procesorů hraje významnou roli • Propojení procesorů často formou běžné LAN sítě o Vysoká latence v mezi procesorové komunikaci (100/is až jednotky ms) • Typický výpočetní model: zasílání zpráv Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 20 / 111 • Systém distribuovaný po geograficky rozsáhlých prostorech (země, kontinent, .. .) • Propojeny samostatné počítače (včetně paralelních) • Propojení počítačů WAN sítí • Extrémně vysoká latence v mezi procesorové komunikaci (desítky až stovky ms) • Prakticky jediný výpočetní model: zasílání zpráv Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 21 / 111 Nadstavba technických prostředků Vrstvy operačního systému: • Technické vybavení Správa paměti Správa procesu Správa periferií (1/0) Správa souborů dat Uživatelský prostor (nepřesné) • Operační systém • UNIX, Linux, OS/370, MS Windows, .. . • Programovací jazyky • C, Pascal, Ada, Occam, ML, Prolog, perl, python, Java, • Podpůrné nástroje • debuggery, profilery, . .. • Aplikační programy Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 23 / 111 Rozlišujeme • Styl • Míru abstrakce • „Dialekt" • Imperativní/Procedurální: C, Fortran • Objektově orientované: Java, C++ • Deklarativní/Funkcionální: ML, Lisp, MIRANDA • Deklarativní/Logické: Prolog, GHC • S jediným přiřazením: SISAL • Produkční systémy: 0PS5 • Sémantické sítě: NETL • Neuronové sítě: SAIC ANSpec Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 25 / 111 fac := 1; if n > O then for i:=l to n do fac := i*fac; fac(O) := 1; fac(n>0) := n*fac(n-l); fac(0,1)• fac(N,Fl*N) :- fac(N-l.Fl). Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 26 / 111 • Strojový jazyk: přímo kódy jednotlivých instrukcí • Assembler: jména instrukcí, operandy, pojmenované cílové adresy skoků • Vyšší jazyky: obecné konstrukty, tvoří „ kontinuum " • Agregované datové typy • Cykly namísto skoků • Procedury a funkce • Procesy a vlákna Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 27 / 111 • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení atyska (Fl MU) PB001: Úvod do informačních techn • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení • Interprety • Abstraktní počítač • Vhodné pro složité operace (např. práce s texty, s maticemi a algebraickými objekty) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 28 / 111 • Překladače • Zdrojový kód-mezijazyk-strojový jazyk • Překlad a sestavení • Interprety • Abstraktní počítač • Vhodné pro složité operace (např. práce s texty, s maticemi a algebraickými objekty) • Just-in-time překladače (nejen Java) • Známy již od osmdesátých let (řešil se tak nedostatek paměti) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 28 / 111 • Souvislost mezi architekturou a jazyky • von Neumannova architektura a imperativní jazyky • objektová architektura a objektově orientované jazyky • redukční architektura a funkcionální programování Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 29 / 111 Datově orientovaný (nejpoužívanější) Objektový Funkcionální Logický Dávají počítačům smysl • Vědecko-technické výpočty (vojenství: atomová bomba) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 31 / 111 Dávají počítačům smysl • Vědecko-technické výpočty (vojenství: atomová bomba) • Zpracování informací (Hollerith/IBM: census USA) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 31 / 111 Dávají počítačům smysl • Vědecko-technické výpočty (vojenství: atomová bomba) • Zpracování informací (Hollerith/IBM: census USA) • Zábava (počítačové hry, video-on-demand) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 31 / 111 Dávají počítačům smysl • Vědecko-technické výpočty (vojenství: atomová bomba) • Zpracování informací (Hollerith/IBM: census USA) • Zábava (počítačové hry, video-on-demand) • Řízení (management strojů i lidí, real-time systémy) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 31 / 111 • Výrobní a obchodní procesy • Nástroj vědy • Komunikace • Zábava atyska (Fl MU) PB001: Úvod do informačních techn • Výrobní a obchodní procesy • Nástroj vědy • Komunikace • Zábava • Kriminální činnost Luděk Matýska (Fl MU) PB001: Uvod do informačních techn • Řízení výrobních procesů • Informační a manažerské systémy • Nové formy vývoje (simulace místo fyzických modelů) • Ovlivnění forem spolupráce/komunikace • Mezi institucemi (B2B, Bussiness to Bussiness) • Instituce a zákazník (B2C, Bussiness to Customer) • Mezi zákazníky (C2C) • Zcela nové příležitosti (Google, mapy, GPS, .. .) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 33 / 111 • Původní použití počítačů • Trvale klíčový směr využití • Ovlivňuje způsob vědecké práce • Experimenty versus simulace • Statistické zpracování velkých souborů • Astronomie • Bio-informatika • Virtuální vědecké týmy (spolupráce) • Formule 1 výpočetní techniky • Komunikace mezi počítači • Komunikace mezi lidmi (případně člověk-automat) - opět roste význam • Telefony • Faxy • Mobilní komunikace • Média • Zvýšení fragility společnosti Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 35 / 111 • Televize • Počítačové hry • Fenomén on-line her: specifické prostředí pro spolupráci o Pasivní versus aktivní přístup • Peer to peer sítě (Napster, Gnutella, .. .) • Virtuální realita Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 36 / 111 • Kriminalita bílých límečků • Zneužívání zdrojů na síti (účty, výpočetní výkon, kapacita sítě, poštovní služby, ...) • Krádeže informací (čísla kreditních karet, telefonní linky, špionážní činnost) • Viry • Záměrně špatné informace • Destabilizace společnosti • Specifickým šířením informací • Útoky na infrastrukturu • Útoky na citlivé informační zdroje Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 37 / 111 • V podstatě inženýrská disciplína avšak neinženýrské přístupy (shrink wrap licence, minimální odpovědnost za chyby, .. .) • Kódy/normy správného chování/přístupu • Faktická a právní odpovědnost • IPR (Intellectual Property Rights), autorská ochrana, softwarové patenty Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 38 / 111 • Definovány základem: desítková, dvojková, osmičková, šestnáctková • Volně mezi sebou převoditelné (celá čísla bez ztráty přesnosti) • Celá čísla a zlomky • Reálná čísla • Konečná reprezentace Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 39 / 111 • Definovány základem: desítková, dvojková, osmičková, šestnáctková • Volně mezi sebou převoditelné (celá čísla bez ztráty přesnosti) • Celá čísla a zlomky • Reálná čísla • Konečná reprezentace • První počítače v desítkové soustavě Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 39 / 111 • Základ číslo dvě: • pouze dvě číslice/dva stavy • vhodná pro reprezentaci v elektrických systémech Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 40 / 111 • Konečná reprezentace: interval hodnot • Pro reálná čísla: • Rozlišitelnost (nejmenší zobrazitelné číslo): X + e>XaX + e/2 = X • Přesnost (rozsah) • Zobrazení: mantisa m a exponent e 0 1 proces Proces má interní stav, charakterizovaný • programovým čitačem (program counter) • zásobníkem (volání funkcí a procedur) • vlastní pamětí pro data • Klasické (heawy-weight) procesy (např. UNIX) • Všechna data privátní • Sdílen pouze program (read-only) • Lehké (light-weight) procesy či Vlákna (threads) • Minimum vlastní paměti • Většina dat sdílena Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 57 / 111 • Vytvoření procesu • f ork() a jeho varianty • Přesná kopie původního procesu • Rodič a potomek • První proces v OS vytvářen jinak (init v Unixu) • Stavy • Start/vytvoře ní, připraven (ready), běží (running), je blokován (čeká), skončil Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 58 / 111 _ i-, • Proces-P í LoacL Registr A, X Load RegistrB, Y Add RegistrA, • Kace conartion:LsouperenPv case -, RegistrB Store RegistrA, X # X+=Y } • Dvě instance procesu P, používají stejná X a Y • Nedefinovatelné výsledky • Je-li na začátku X=Y=1, pak na konci může být X—2 nebo X=3 Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 59 / 111 • Kritická sekce o Semafory: celočíselné proměnné • Monitory: vyšší konstrukty programovacího jazyka Je možné semafor implementovat pomocí monitoru a naopak • Smrtelné objetí (deadlock) • Odstranění sdílených zdrojů: zasílání zpráv • Synchronizace na úrovni zasílání a přijímání zpráv • Buffery Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 60 / 111 • Sdílení (timesharing) • časové kvantum • přerušení • Prioritní • Statistické • Real-time • Plánovač (scheduler) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 61 / 111 • Dvě základní operace: • alokuj/přiděl pamět (velikost, vrací počáteční adresu) • dealokuj/uvolni paměť (velikost a počáteční adresa) • Většinou závislé (lze uvolnit jen přesně totéž, co jsme alokovali dříve) • Doplňková operace: změň rozsah alokované paměti (reallocate) • Organizace paměti • Čištění paměti (garbage collection) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 62 / 111 • Virtualizace paměti - nutno uvolnit fyzickou paměť • Swapping • Celých procesů • „Děr" v paměti • Stránkování • Segmentace Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 63 / 111 • Ohrožení: • Přístup (čtení) • Zápis (modifikace) • Znepřístupnění služby (denial of service) • Trojský kůň • Vydává se za něco, co není • Viry Zveřejnění algoritmů Standardní nastavení = žádný přístup Pravidelné kontroly Minimální oprávnění Jednoduchý a uniformní mechanismus Úrovně oprávnění • Distribuované počítaní: rozložení úkolů na více prvků • Client-server model • Speciální případ distribuovaného počítání • Více strukturované • Asymetrické: klient posílá požadavek na zpracování serveru • Server pro jednoho klienta může být klientem pro jiný server. Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 66 / 111 • Klient a server samostatné procesy • Na stejném nebo různých počítacích • Interní informace je „soukromá" pro každý proces • Komunikují tzv. peer-to-peer protokolem Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 67 / 111 • Interoperabilita • Portabilita • Integrace • Transparence • Bezpečnost • telnet • X Window systém na Unixu • Světová pavučina (World Wide Web) Luděk Matýska (Fl MU) PB001: Uvod do informačních techn • Základní rozčlenění • Data • Logika • Prezentace • Sousední možno kombinovat/rozdělit (tj. např. Logika může být součástí datové i prezentační vrstvy, a to i současně) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 70 / 111 • Platí pro server i klient, podstatné zejména v souvislosti s klienty • „Tlustý" (fat) klient: • Značná spotřeba lokálních zdrojů (CPU, pamětí, disk) • Komplexní provedení i instalace • Příklad: Mozilla • „Tenký" (thin) klient: • Jednodušší • Snadná správa • Menší škálovatelnost (příliš mnoho práce dělá server) • Zpravidla vyšší nároky na propustnost sítě Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 71 / 111 • „Zkratka" v rámci protokolů • Komunikace přímo na vyšší abstraktní úrovni • Realizuje jednu (RPC) nebo více (DCE) funkcí Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 72 / 111 • Primitivní: přenos souborů • Základní: RPC (Remote Procedure Call) • Integrované: DCE (Distributed Computing Environment) • Distribuované objektové služby: CORBA, OGSA (Open Grid Service Architecture) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 73 / 111 • Common Object Request Broker Architecture • Základem ORB: vrstva, která zprostředkovává komunikaci (middleware pro middleware) • Kompomenty: • Rozhraní (řetězce) • Pojmenování (naming service) • „Obchodní" služba (trader) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 74 / 111 • Inherentne distribuované • Často klient-server model • Tencí i tlustí klienti • Kompromis mezi výkonem a propustností sítě/připojení • Konvergence • Od notebooků po mobilní telefony Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 75 / 111 • efektivita • robustnost • flexibilita • přenositelnost • kompatibilita • Maximální využití dostupných zdrojů • Použití jednoduchých a jasných principů • Dekompozice návrhu • Objektově orientovaný návrh (pozor na přílišnou fragmentaci) • Agenti • Komponentní programování Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 77 / 111 • Schopnost úspěšně se vzpamatovat po výpadku • Řešeno redundancí (standardní inženýrské řešení): snižuje ovšem pozorovanou efektivitu • První výzkum v ČR koncem 50. a začátkem 60. let (Ing. Svoboda) • Běžné trojnásobné jištění (např. řídící počítače atomových ponorek USA) • V současné době zájem o self-healing programy Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 78 / 111 • Možnost úpravy (adaptace) podle změněných potřeb • Často používána ve významu rozšiřitelnost (extenzibilita) • Definuje a fixuje se rámec (framework) • Přidání nové složky bez změny rámce snadné • Případně hierarchie rámců (přidání či modifikace nového rámce) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 79 / 111 • Úzce souvisí s operačními systémy o Dostatečná abstrakce detailů • Virtuální „disk" namísto konkrétního zařízení • Programy psány bez odkazů na speciální vlastnosti • Využití standardů • Opět možný rozpor s požadavkem efektivity Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 80 / 111 • Odstínění specifických detailů • Využití standardů • Efektivita? • Nemusí být negativně ovlivněna • Stejný (podobný) hw a různé priority • Server: např. stabilita, bezpečnost, propustnost • Pracovní stanice: např. snadnost ovládání, rozumný výkon ve všech oblastech • Specializovaná grafická stanice: maximalizace grafického výkonu • Řídící systém: požadavky real-time, robustnost, Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 82 / 111 • Snižuje snadnost použití • Klade dodatečná omezení na uživatele (disciplina) • Větší nároky na správu systému • Srovnání: MS Windows 95 versus MS Windows NT Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 83 / 111 Monolitický Vrstvený Modulární mikro-kernel • Původní operační systémy (proprietami) 0 Abstrakce nepoužívána příliš dovnitř • Nejasné rozlišení funkcí uvnitř operačního systému • „Velké", špatně rozšiřitelné, špatně udržovatelné • Poplatné době pomalejšího vývoje hardware a jeho vysoké ceny Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 85 / 111 • Vrstvy odpovídají procesům správy: • Správa CPU • Správa paměti • Správa periferií • Správa systému souborů • Lepší abstrakce • Komunikace mezi vrstvami Luděk Matýska (Fl MU) PB001: Uvod do informačních techn Moduly namísto vrstev Zapouzdření (enkapsulace) funkcí Komunikace mezi moduly Příbuzný objektovému přístupu Lepší údržba Riziko vzniku „fatware" • Kernel, též jádro operačního systému: • Základní složka operačního systému o Odpovídá za: • Alokaci a správu zdrojů • Přímé ovládání hardware (nízkoúrovňové interfaces) • Bezpečnost • Mikrokernel: • Malé je pěkné • Modulární přístup, malé moduly odpovídající za konkrétní operace • Rada funkcí až v uživatelském prostoru • Vysoce flexibilní, upravení operačního systému podle potřeby Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 88 / 111 • Definují způsob („calling conventions") přístupu k operačnímu systému a dalším službám • Definováno na úrovni zdrojového kódu • Představuje abstrakci volané služby • Účel: • Přenositelnost • Snadná správa kódu • Další použití a Překlad mezi službami vysoké a nízké úrovně • Převod typů/struktury parametrů • Převod mezi způsoby předávání parametrů (by-value a by-reference) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 89 / 111 • Práce se soubory: • Otevření: int open(char *path, int of lag, ...) • Čtení: int read(int fildes, char *buf, unsigned nbytes) • Zápis: int write(int fildes, char *buf, unsigned nbytes) • Zavření: int close (int fildes) • Práce s pamětí: • Alokace paměti: void *malloc(size_t size) • Uvolnění paměti: void free(void *ptr) • Změna alokace: void *realloc(void *ptr, size_t size) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 90 / 111 • Ovladače na nejnižší úrovni („nejblíže" hardware) • Specifické „jazyky" ovládání periferií na této úrovni • Práce se signály (např. změna stavu periferie) o Příklady • Práce s diskem • Ovládání klávesnice a myši (čtení signálů) • Grafika a ovládání grafických rozhraní • Síťové karty Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 91 / 111 • Zpřístupněny prostřednictvím příslušného API • Abstrakce: možnost výměny konkrétního zařízení (disk, síťová karta) bez vlivu na způsob použití • Příznaky a klíče pro ovládání specifických vlastností: přenositelnost versus efektivita Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 92 / 111 Základní funkce: • Vytvoření souboru • Čtení a psaní z/do souboru • Odstranění (smazání) souboru • Spuštění souboru (soubor=program) Podpora na úrovni operačního systému • Hierarchické systémy: • Kořen (root) • Adresáře jako speciální typ (meta)souboru: drží informace o souborech, nikoliv jejich vlastní data • Databázové systémy: • Soubory (nebo jejich části) jako položka v databázi • Bohatší množina operací • Složitější implementace Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 94 / 111 • Posloupnost bytů - vnitřní struktura pro OS neznáma • Posloupnost záznamů (records) • Strom - každý uzel má vlastní klíč Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 95 / 111 • Typy souborů (v UNIXovém OS) o Rádné: běžné soubory • Adresáře: udržení hierarchické struktury • Speciální: přístup ke konkrétnímu zařízení (/dev/mouse, /dev/audio, /dev/lp); speciální /proč systém • Blokové: náhodný přístup na základní úrovni (/dev/hd, /dev/kmem) • Přístupové metody; příklady: • Sekvenční • Náhodný (random) • Indexsekvenční (není v běžném UNIXu) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 96 / 111 o Možné typy • Souvislé • souvislé posloupnost bloků (složitá alokace, plýtvání místem) • Provázaný seznam: • každý blok odkazuje na další (může růst, vyšší režie - pro ukazatel, složitý náhodný přístup) • Indexové: • Např. FAT (File Allocation Table) v MS DOSu • Tabulka pro všechny bloku na disku • Provázány odkazem na další blok daného souboru • inodes Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 97 / 111 • Podobné indexovému • Pevná délka tabulky pro každý soubor • Kratší soubory adresovány přímo • Pro delší soubory alokována další tabulka • Tabulky provázány hierarchicky (1., 2. a 3. úroveň) • Flexibilní, malá režie Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2011 98 / 111 • V tabulce « Bitový vektor • Provázaný seznam • Většinou zpracovávány podle FCFS (First Come First Served) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 99 / 111 • Obecně přístup pro skrytí zpoždění (latence) • Nejčastěji používané bloky/soubory uloženy v paměti 0 Pouze pro čtení (snazší) nebo i pro zápis • Problém: konzistence při přístupech/zápisech z více míst • Základní typy • Write-through: okamžitě po zápisu i na disk • Write-back: až po určité době (30s) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 100 / 111 • Základní operace: • čtení, zápis (včetně vytvoření), smazání, prodloužení a spuštění souboru • Ochranné domény: o Skupina, která má stejná práva • Např.: Já, moji přátelé, ostatní • Statické versus dynamické • UNIX: user—group—other Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 101 / 111 • Access Control List, ACL (seznamy prístupových oprávnění); připojen ke každému souboru • Základní (z UNIXových systémů): • r: čtení souboru (čtení obsahu adresáře) • w: zápis souboru (včetně vytvoření) • x: spuštění (sestoupení do podadresáře) • Plné ACL: více práv, dynamická práce se skupinami • Capability List, CL • Uspořádání podle domén, nikoliv podle souborů • Vhodné pro distribuované systémy • Schopnost (capability) tj. práva přístupu patří procesu a ten je může předávat dalším procesům Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 102 / 111 • Kernel a uživatelský prostor • Oddělení na hw úrovni • Každá stránka někomu patří • Pouze kernel má přístup k hardware • Kontroluje práva přístupu • Obsluhuje zařízení (pro všechny) • Garantuje serializaci přístupu • Uživatelské procesy používají voláníkernelu (jádra) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 103 / 111 Příslušnost virtuálních stránek k procesu Výpadek stránky: nepovolený přístup Ochrana • Mezi procesem a jádrem o Mezi procesy • Uvnitř procesu Luděk Matýska (Fl MU) PB001: Úvod do informačních techn • Operační systémy obecně reagují na udalosti (events) • Prerušení: mechanismus, jak přerušit vykonávanou práci na základě externí příčiny (nějaké udalosti) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 105 / 111 • Výpadek proudu • Výpadek hardware • Problém v programovém vybavení • Neautorizovaný přístup • Nelegální instrukce nebo operandy • Zásah operátora • Podpora l/O • Požadavek počítačem řízeného systém • Přerušení od časovače (přeplánování procesů, timeout, ...) • Přerušení od periferie (klávesnice, myš, síťová karta, ...) • Přerušení z procesoru (dělení nulou, chybná operace, ...) Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 107 / 111 Přeruší běh aktuálního programu • Nutno schovat stav • a zapamatovat místo návratu Více zdrojů a příčin přerušení • Nutno rozlišit typy (příčinu) přerušení • Nutno zapamatovat zdroj přerušení • Obsluha přerušení realizována v kernelu • Zajištění serializace • Bezpečnost • Vyvolá tzv. přepnutí kontextu Luděk Matýska (Fl MU) PB001: Úvod do informačních techn Maskovaní přerušení • dočasné a trvalé • možná ztráta přerušení/události Priorita přerušení/obsluhy • Základní tři úrovne: • Nemaskovaná přerušení: vyšší priorita • Aktuálně zpracovávané přerušení • Maskovaná přerušení: nižší priorita • Polling = opakované dotazování (na stav/událost) • Možná alternativa pro některá přerušení • Zaměstnává procesor • Může zůstat v uživatelském prostoru Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2011 111 / 111