$title IB002 - Základy informačních technologií Asistentka: pazurikova@mail.muni.cz Midterm exam - ve formě zkoušky koncová známka: 0.2 mid + 0.8 zk = výsl. zn. $date 9/‎18/‎2012 - 01 $1 Historie $2 Babbageův počítací stroj - první programovatelný na základě instrukcí - programy psala sestra lorda Byrona (Augusta Ada King) - zdokumentovala jej a díky tomu 1991 rekonstruován a prokázána funkčnost - měl paměť - oddělenou datovou a programovou paměť - oddělená vstupní jednotka pro data a program - výstup programu - řídící jednotka uměla %*IF - GOTO* (podmíněný skok) $2 Turingův stroj - teoretický výpočetní stroj - logická konstrukce - přechodový graf, množina počátečních a koncových stavů, páska, na které je zapsána zpráva, podle symbolů přechází z jednoho stavu do druhého; důležité je, když dojde do jednoho z koncových stavů, podle toho jsme schopni rozhodnout, jak dlouho se bude nějaký problém počítat / zda má řešení - Turing pracoval - na Enigmě - na řešitelnosti logických problémů $2 Von Neumanovo schéma - 40. léta 20. stol. - dvojková soustava pro počítání - znát schéma (obrázek) $img neuman_scheme.GIF - sekvenční schéma - nelze dělat paralelisaci, mnozí říkají, že to informatiku zpomalilo $1 Technické prostředky $2 ALU - základní sekvenční jednotka - procesor, zařízení vykonávající instrukce, instrukční cyklus (vybrání a provedení instrukce) - lze skákat - výběr instr. - vnitřní hodiny - takt procesoru (udává, jak rychle po sobě je CPU schopen vybírat instrukce a provádět je... víceméně... asi) - pokud je jich více -> vnitřní pararelismus (dnes hlavně GPU) $3 Typy procesorů $4 Universální - CISC: kompletní instrukční sada (Complete Instruction Set Computing) - všechny instrukce, ale problém, že ne na všechny instrukce je potřeba stejně času - RISC: redukovaná instrukční sada (Reduced Instruction Set Computing) - komplikované instrukce má rozdělené na jednodušíí subinstrukce $4 Specialisované - Embedded - vestavěné, velmi specifické využití, zadaný program - žehličky, auta, ... - Vector - masivně pararelní stroje - hodně ALU jednotek a zpracovávají úlohy pararelně - použití - vědeckotechnické výpočty, např. meteorologie $2 Paměť - slouží k uchování dat - deska sloupců a řádek - %*přímá adresace* - (sloupec × řádek) - cyklus - doba potřebná pro vystavení a zápis - vzpamatování po provedené operaci - také sežere nějaký čas - statická × dynamická paměť $3 Hiearchie pamětí - rychlost, cena, ekonomický imperativ v IT - prostředky závisí na penězích, v poslední době důležitý imperativ - energetická náročnost $2 Periferie - vstup / výstup informací základní: komunikace s uživatelem mohou to být různé sofist. zařízení pro virt. realitu (brýle a helmy pro prostorvé vnímání, detekce pohybu, wearable computers) s jinými systémy počítač. síť, speciální sběrnice permanentrní ukládání dat $2 Permanentní ukládání dat - permanence je velmi relativní Paměti jsou rychle, drahé, krátkodobé Disky - pomalejší, levnější Pásky - pomalý přístup, velmi levný a úsporný Sítě - data kolují optickou sítí (200 km) $2 Sítě drátové - metalické (elektrické signály) / optické (optický laserový signál) bezdrátrové radiové optické - IR světlo akustické mechanické ??? $2 Počítač logický přístroj s klascikými komponentami, pomáhají řešit problémy rozložené na výpočty neuronové počítače - model lidského mozku, spojení vznikají a zanikají, training buněčné automaty $2 Pararelní systémy pro případy, kdy nestačí jedna výpočetní jednotka - více jednotek, které spolu komunikují Typy: $3 úzce propojené společná paměť - nutno řešit, aby si nepřepisovaly procesory svá data minimální vzdálenost procesorů - komunikace neovlivňuje výpoč. čas speciální sběrnice velmi jemný pararelismus - pararelně se provádějí instrukce, nikoliv celé programy díky společné paměti nutno ji mítdostatečné velkou, komplikovaný rozklad úloh, ne všechny úlohy jsou vhodné výpočetní model: sdílená paměť $3 volně propojené většinou distribuovaná, vzdálenost procesorů už hraje roli - latence, speciální propojení lze používat vzdálenou paměť výpočetrní model: zasílání zpráv - provádějí se větší kusy kódu, sdílí se výsledky $3 distribuované vždy distribuovaná paměť, vzdálený přístup do paměti nelze latence vysoká, obvykle přes LAN vypočetní model: zasílání zpráv $3 gridy geograficky rozsáhlé, popojují se samostatné počítače WAN Internet extrémní latence - zasílání zpráv zpracování dat např. v LHC (nejde moc o rychlost zpracování) síť výpočetního výkonu ================================================================================ 2. přednáška 25.09.2012 14:03:10 $1 Číselné soustavy dvojková, šestnáctková, osmiková, dvojková nejpřirozenější je desítková $3 Desítková 819 = 8×10^2+ 1×10^1 + 9×10^0 první počátače fungovaly na desítkové, ale nebylo to moc učinné a realisovatelné $3 Dvojková 819 = 1*2^9 + 1*2^8 + 0*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 1*2^0 512 256 128 = 1100110011 $3 Octa & hexa jednoduše převoditelná z binární, podobně hexa $3 Rozlišitelnost neexistuje nekonečný desetinný rozvoj nejdelší desetinný rozvoj, který jsme schopni zapsat X + eps > X X + (eps/2) = X $3 Zápis reálných čísel mantisa 0 =< m =< 1 AND x = m * 2^e $2 Záporná čísla - přímý kód - nula/jednička na začátku - inversní kód - binární negace - dvojkový doplňkový kód (binární negace + 1) - nejčastější $3 Přímý kód - přidává se znaménkový bit - --> máme dvě nuly Rozsah: <-MAX, -0> a <+0, +MAX> $3 Inversní kód - opět jsou dvě nuly Rozsah: <-MAX, -0> a <+0, +MAX> $3 Dvojkový doplň. kód - vychází z inverzního - má jen jednu nulu, ale asymetrický rozsah Rozsah: <-MAX, -1> a <0, +MAX> $2 Rozsahy čísel Podle počtu bitů 8 bitů = 1 Byte $3 Racionální čísla - podle normy IEEE 754 - součásti - znaménko - mantisa (přímý kód) - exponent (kód posunuté nuly) Normalisace mantisy - zapamatovat si, že mantisa je normalisovana (nezapisovaná jednička) Přesnost (rozdíl mezi dvěma po sobě jdoucími dílky): počet bitů mantisy + 1 $1 Operační systémy OS se stará o to, co je pro všechny programy společné - zavádění programů, ukončování programů, etc. $3 Bootstrap loader - smyčka, v níž OS beží a předává řízení jednotlivým procesům $3 Po něm Spooling - program je nezávisle zaveden na vykonání - možno zavést prg, čekal ve frontě (pool) a spooler vybíral prg podle proiority - zaveden Direct Memomry Access a multiprogramování - zpracovávání dávek (neexistuje přímý přístup) $3 Timesharing - všechny zavedené úlohy se přidělují po časových kvantech (virtuálně se počítají současně) - umožnil zpracování interaktivních úloh a zavedení disků - 60. léta (začátek) Úkolem OS je zjednodušení práce, odbourání nutnosti práce s nejnižší úrovní počítače Zajišťuje také sdílení vzácných zdrojů - postarat se o funkčnost sdílení, jeho účinnost, bezchybovost a bezpečnost přístupu (autorizace / autentizace) AAA - autentizace, autorizace, accounty co jsem co smím kolik toho použiju (autentication) $3 Problém časování Ne všechny součásti jsou stejně rychlé, řádové rozdíly (za dobu přečtení 1 Bytu z HDD může CPU udělat cca 10 milionů operací) --> prokládání I/O operací a výpočtů těžkopádně a ne vždy účinné proto se procesoru přiděluje více procesů, prokládání operací nemusí být v rámci jednoho procesu $3 Vybírání procesů: Priority: - statická - dynamická $2 Paměť - OS udržje v paměti pouze ty procesy, které jsou právě aktivni - virtualisace paměti - každý proces si tedy myslí, že má celou paměť - musí se zavést ochrana paměti, aby jeden program nepřepisoval data jiného programu $2 Základní složky OS [slide přednášky] S rozvojem OS se OS zvětšovaly - monolitické operační systémy Velmi těžké opravovat nějaké chyby, téměř nebylo možné vyměnit HW pod monolitickým OS --> Úprava OS - rozdělení na několik částí - kernel (jádro) a další součásti $2 Procesy Programový čítač v CPU ukládá hodnotu, kde CPU skončil u které hodnoty