PB001: Uvod do informačních technologií Luděk Matýska Fakulta informatiky Masarykovy univerzity podzim 2013 INVESTICE DO ROZVOJE VZDĚLÁVÁNI Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií podzim 2013 1 / 37 Q Programové vybavení Q Číselné soustavy Q| Operační systémy Luděk Matýska (Fl MU) PB001: Úvod do informačních technologií I podzim 2013 2 / 37 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é) Programové vybavení • 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 2013 4/37 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 2013 6/37 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 2013 7/37 • 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 2013 8/37 • 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 2013 9/37 • 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 2013 9/37 Programové vybavení • 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 2013 10 / 37 Datově orientovaný (nejpoužívanější) Objektový Funkcionální Logický Programové vybavení 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 2013 12 / 37 Programové vybavení 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í I podzim 2013 12 / 37 Programové vybavení 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 2013 12 / 37 Programové vybavení 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 2013 12 / 37 • 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 2013 13 / 37 • 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 2013 13 / 37 • 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 2013 14 / 37 ocitá i • 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 Luděk Matýska (Fl MU) PB001: Úvod do informačních techn Operační systémy • Klasické (heavy-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 2013 31 / 37 Operační systémy • 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 2013 32 / 37 Operační systémy • Race condition: soupeření v čase • Proces P { Load RegistrA, X Load RegistrB, Y Add RegistrA, 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 2013 33 / 37 Operační systémy • Kritická sekce • Semafory: celočíselné proměnné (čitače) • 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 2013 34 / 37 Operační systémy • 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 2013 35 / 37 Operační systémy • Dvě základní operace: • alokuj/přiděl paměť (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 2013 36 / 37 Operační systémy • 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 2013 37 / 37