čtení - Publi.cz
Transkript
POČÍTAČOVÉ SYSTÉMY URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH CYRIL KLIMEŠ ČÍSLO OPERAČNÍHO PROGRAMU: CZ.1.07 NÁZEV OPERAČNÍHO PROGRAMU: VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST OPATŘENÍ: 7.2 ČÍSLO OBLASTI PODPORY: 7.2.2 INOVACE VÝUKY INFORMATICKÝCH PŘEDMĚTŮ VE STUDIJNÍCH PROGRAMECH OSTRAVSKÉ UNIVERZITY REGISTRAČNÍ ČÍSLO PROJEKTU: CZ.1.07/2.2.00/28.0245 OSTRAVA 2013 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Recenzent: Prof. Ing. Radim Farana, CSc. Název: Autor: Vydání: Počet stran: Počítačové systémy doc. Ing. Cyril Klimeš, CSc. první, 2013 300 Jazyková korektura nebyla provedena, za jazykovou stránku odpovídá autor. © Cyril Klimeš © Ostravská univerzita v Ostravě OBSAH 1. PRINCIPY ČINNOSTI PRÁCE ČÍSLICOVÉHO POČÍTAČE ..........8 1.1 ÚVOD ...................................................................................................8 1.2 VON NEUMANNOVO SCHÉMA POČÍTAČE ...............................................9 1.3 ZOBRAZENÍ INFORMACE V POČÍTAČI ..................................................15 1.3.1 Číselné soustavy a kódy.................................................................15 1.3.2 Kódování ve dvojkové soustavě .....................................................20 1.3.3 Zobrazení instrukcí ........................................................................22 1.3.4 Zobrazení abecedně-číslicových znaků .........................................25 1.3.5 Pevná a pohyblivá řádová čárka ...................................................26 1.4 METODY URČOVÁNÍ OPERANDŮ .........................................................27 1.4.1 Přímé adresování ..........................................................................27 1.4.2 Přímý operand ...............................................................................27 1.4.3 Nepřímé adresování ......................................................................28 1.4.4 Implicitní adresování.....................................................................28 1.4.5 Implicitní operand .........................................................................29 1.4.6 Modifikované adresování ..............................................................29 1.4.7 Relativní adresování ......................................................................29 1.4.8 Výběr podle obsahu (asociativní výběr) ........................................30 1.5 ODLIŠNÁ SCHÉMATA POČÍTAČŮ..........................................................31 2. BOOLEOVA ALGEBRA .......................................................................36 2.1 LOGICKÉ PROMĚNNÉ A LOGICKÉ FUNKCE ...........................................37 2.1.1 Základní logické operátory ...........................................................37 2.1.2 Zákony a pravidla Booleovy algebry ............................................39 2.2 DEFINICE LOGICKÉ FUNKCE ................................................................40 2.2.1 Pravdivostní tabulka .....................................................................40 2.2.2 Zápis logické funkce ......................................................................41 2.3 LOGICKÁ FUNKCE N-PROMĚNNÝCH ....................................................43 2.3.1 Funkce jedné proměnné ................................................................43 2.3.2 Funkce dvou proměnných..............................................................43 2.3.3 Funkce více proměnných ...............................................................45 2.4 ZJEDNODUŠOVÁNÍ ZÁPISU LOGICKÉ FUNKCE ......................................46 2.4.1 Algebraická minimalizace .............................................................46 2.4.2 Grafická – Karnaughova metoda ..................................................46 2.4.3 Zjednodušení úplně zadané funkce ................................................47 2.4.4 Zjednodušení neúplně zadané funkce ............................................49 2.5 OBVODOVÉ ZNÁZORNĚNÍ BOOLEOVY ALGEBRY .................................50 2.5.1 Shefferova algebra ........................................................................51 2.5.2 Pierceova algebra .........................................................................51 2.5.3 Převod Booleovy algebry na Shefferovu algebru ..........................52 3. REPREZENTACE ZÁKLADNÍCH LOGICKÝCH FUNKCÍ ELEKTRONICKÝMI OBVODY ..................................................................53 3.1 3.2 3.3 3.4 FYZIKÁLNÍ PODSTATA SIGNÁLŮ..........................................................53 TECHNOLOGIE TTL (TRANZISTOR-TRANZISTOR LOGIC) .....................55 SYSTÉMY MOS/CMOS ......................................................................59 LOGICKÁ HRADLA S TŘEMI STAVY .....................................................63 Počítačové systémy 4. ZÁKLADNÍ LOGICKÉ ČLENY.......................................................... 65 4.1 INVERTOR .......................................................................................... 65 4.2 AND.................................................................................................. 66 4.3 OR ..................................................................................................... 66 4.4 NAND ............................................................................................... 67 4.5 NOR .................................................................................................. 67 4.6 OSTATNÍ LOGICKÉ ČLENY .................................................................. 68 4.6.1 Nonekvivalence – XOR ................................................................. 68 4.6.2 Ekvivalence - NOXOR .................................................................. 68 5. KOMBINAČNÍ LOGICKÉ OBVODY ................................................ 70 5.1 KÓDOVÁNÍ, DEKÓDOVÁNÍ A PŘEVODY KÓDŮ ..................................... 70 5.1.1 Převod desítkových číslic do kódu 8421 ....................................... 70 5.1.2 Převod z kódu 8421 na desítkové číslice ...................................... 72 5.1.3 Převod do Grayova kódu .............................................................. 74 5.1.4 Multiplexor ................................................................................... 76 5.1.5 4-vstupý multiplexor ..................................................................... 76 5.1.6 Dekodér......................................................................................... 77 5.2 POROVNÁNÍ DVOJKOVÝCH INFORMACÍ .............................................. 78 5.2.1 Rovnost dvou proměnných ............................................................ 78 5.2.2 Jednobitový porovnávací obvod ................................................... 79 5.2.3 Dvoubitový porovnávací obvod .................................................... 79 5.3 PARITA .............................................................................................. 80 5.4 SEČÍTAČKY A ODEČÍTAČKY................................................................ 82 5.4.1 Sčítačka MODULO 2.................................................................... 82 5.4.2 Jednobitová neúplná sečítačka ..................................................... 83 5.4.3 Jednobitová úplná sečítačka ......................................................... 83 5.4.4 Jednobitová úplná odečítačka ...................................................... 84 5.4.5 Polosčítačka .................................................................................. 85 5.4.6 Úplná sčítačka .............................................................................. 86 6. SEKVENČNÍ LOGICKÉ OBVODY .................................................... 87 6.1 KLOPNÝ OBVOD RS ........................................................................... 88 6.2 KLOPNÝ OBVOD J-K .......................................................................... 90 6.3 KLOPNÝ OBVOD TYPU T(RS-T) ......................................................... 91 6.4 KLOPNÝ OBVOD TYPU D .................................................................... 91 6.5 DVOJČINNÝ KLOPNÝ OBVOD J-K TYPU MASTER-SLAVE ..................... 92 6.6 FUNKCE POSOUVÁNÍ A ČÍTÁNÍ ........................................................... 93 6.6.1 Čítače kmitočtu ............................................................................. 93 6.6.2 Posuvné registry ........................................................................... 97 6.6.3 Kruhový registr ............................................................................. 99 7. ÚLOHA OPERAČNÍCH SYSTÉMŮ ................................................. 100 7.1 SLUŽBY OPERAČNÍHO SYSTÉMU ....................................................... 101 7.2 STRUKTURA OPERAČNÍHO SYSTÉMU ................................................ 103 7.2.1 Monolitická architektura operačního systému ........................... 104 7.2.2 Víceúrovňová architektura operačních systémů ......................... 105 7.2.3 Architektura operačního systému s virtuálními počítači ............ 108 7.2.4 Architektura operačního systému s modelem klient-server ........ 109 7.2.5 Charakteristiky moderních operačních systémů ......................... 110 4 Počítačové systémy 7.3 HISTORIE OPERAČNÍCH SYSTÉMŮ .....................................................110 7.3.1 Operační systémy Windows .........................................................111 7.3.2 Operační systémy UNIX ..............................................................113 7.3.3 Operační systémy Mac OS a Mac OS X ......................................114 7.3.4 Operační systémy Linux ..............................................................116 ARCHITEKTURA OPERAČNÍCH SYSTÉMŮ ...............................119 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 SPRÁVA PROCESORŮ/PROCESŮ .........................................................121 SPRÁVA (HLAVNÍ, OPERAČNÍ) PAMĚTI ..............................................121 SPRÁVA I/O SYSTÉMU ......................................................................122 SPRÁVA SOUBORŮ ............................................................................122 NETWORKING, DISTRIBUOVANÉ SYSTÉMY ........................................123 SYSTÉM OCHRAN ..............................................................................123 UŽIVATELSKÉ ROZHRANÍ - INTERPRET PŘÍKAZŮ ...............................123 VNITŘNÍ SLUŽBY OPERAČNÍHO SYSTÉMU .........................................124 9. ALGORITMY ČINNOSTI JEDNOTLIVÝCH SPRÁVCŮ OPERAČNÍHO SYSTÉMU .........................................................................126 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. SPRÁVA PROCESORŮ/PROCESŮ .........................................................127 SPRÁVA (HLAVNÍ, OPERAČNÍ) PAMĚTI ..............................................138 SPRÁVA I/O SYSTÉMU ......................................................................143 SPRÁVA SOUBORŮ ............................................................................149 NETWORKING, DISTRIBUOVANÉ SYSTÉMY ........................................150 SYSTÉM OCHRAN ..............................................................................150 INTERPRET PŘÍKAZŮ .........................................................................151 VNITŘNÍ SLUŽBY OPERAČNÍHO SYSTÉMU .........................................153 HIERARCHICKÁ VRSTVOVÁ ARCHITEKTURA .....................................153 HARDWARE OSOBNÍHO POČÍTAČE PC .................................156 10.1 ZÁKLADNÍ DESKA .............................................................................158 10.1.1 Sběrnice ...................................................................................159 10.1.2 Sériový a paralelní přenos ......................................................161 10.1.3 Další rozhraní .........................................................................161 10.1.4 Procesor ..................................................................................164 10.1.5 Části procesoru .......................................................................164 10.1.6 Charakteristiky procesoru .......................................................165 10.1.7 CISC a RISC ............................................................................166 10.1.8 Další zvyšování výkonu ...........................................................168 10.1.9 Vývoj procesorů.......................................................................169 10.1.10 Využití procesorů.....................................................................170 10.2 PAMĚTI.............................................................................................170 10.2.1 Vnitřní paměti ..........................................................................171 10.2.2 RAM .........................................................................................172 10.2.3 ROM ........................................................................................173 10.2.4 BIOS ........................................................................................173 10.2.5 Vnější paměti ...........................................................................175 10.2.6 Pevný disk ................................................................................175 10.2.7 Fyzická struktura disku ...........................................................177 10.2.8 Diskové souborové systémy .....................................................178 10.2.9 Formátování ............................................................................179 10.2.10 Fragmentace............................................................................180 5 Počítačové systémy 10.2.11 Kontrola a bezpečnost údajů .................................................. 180 10.2.12 Kompaktní disky (CD) ............................................................ 181 10.2.13 DVD ........................................................................................ 183 10.2.14 Disketa .................................................................................... 184 10.2.15 Flash paměti ........................................................................... 185 10.2.16 Ostatní paměťová média ......................................................... 186 10.2.17 Cenová dostupnost .................................................................. 188 10.3 VSTUPNÍ ZAŘÍZENÍ ........................................................................... 188 10.3.1 Klávesnice ............................................................................... 188 10.3.2 Myš .......................................................................................... 190 10.3.3 Mikrofon ................................................................................. 191 10.3.4 Skener ..................................................................................... 191 10.4 VÝSTUPNÍ ZAŘÍZENÍ ......................................................................... 195 10.4.1 Zobrazování údajů .................................................................. 195 10.4.2 Grafická karta......................................................................... 195 10.4.3 3D grafické karty (akcelerátory) ............................................ 198 10.4.4 Videokarta............................................................................... 200 10.4.5 Televizní karta ........................................................................ 201 10.4.6 Monitory ................................................................................. 201 10.4.7 Vlastnosti monitorů................................................................. 202 10.4.8 Dataprojektory........................................................................ 204 10.4.9 Tiskárny .................................................................................. 207 10.4.10 Parametry tiskáren ................................................................. 212 10.4.11 Zvuková karta ......................................................................... 213 10.5 OSTATNÍ VSTUPNĚ-VÝSTUPNÍ ZAŘÍZENÍ ........................................... 215 10.6 ZAŘÍZENÍ UMOŽŇUJÍCÍ PŘIPOJENÍ K POČÍTAČOVÉ SÍTI ...................... 218 10.7 CHLAZENÍ ........................................................................................ 218 10.8 TYPY POČÍTAČOVÝCH SYSTÉMŮ ...................................................... 219 10.8.1 Stolní počítače ........................................................................ 219 10.8.2 Přenosné počítače ................................................................... 221 10.9 VYSOKOVÝKONNÉ POČÍTAČE........................................................... 222 10.10 PRŮMYSLOVÉ POČÍTAČE .............................................................. 223 11. SOFTWARE OSOBNÍCH POČÍTAČŮ PC .................................. 225 11.1 OPERAČNÍ SYSTÉM........................................................................... 226 11.2 DĚLENÍ OPERAČNÍCH SYSTÉMŮ ........................................................ 227 11.3 POROVNÁNÍ OPERAČNÍCH SYSTÉMŮ................................................. 228 11.3.1 Unix......................................................................................... 228 11.3.2 Linux ....................................................................................... 230 11.3.3 Mac OS ................................................................................... 231 11.3.4 MS DOS .................................................................................. 231 11.3.5 Ostatní operační systémy ........................................................ 232 11.4 WINDOWS ........................................................................................ 232 11.4.1 Souborový systém.................................................................... 234 11.4.2 Objekty a nastavení................................................................. 236 11.4.3 Nejpoužívanější systémové nástroje ....................................... 241 11.5 APLIKAČNÍ SOFTWARE ..................................................................... 242 11.5.1 Rozdělení aplikačního softwaru.............................................. 243 11.5.2 Kancelářské balíky.................................................................. 244 12. 6 KOMPRIMACE DAT ...................................................................... 272 Počítačové systémy 12.1 KOMPRIMAČNÍ PROGRAMY ...............................................................273 12.2 PARAMETRY KOMPRIMAČNÍCH PROGRAMŮ A JEJICH TESTY ..............274 12.3 ZÁKLADNÍ DRUHY A PŘÍSTUPY V KODOVÁNÍ ....................................276 12.4 BEZZTRÁTOVÁ KOMPRIMACE ...........................................................279 12.4.1 RLE (Run – length Encoding) .................................................279 12.4.2 Lempel-Ziv-Welch algoritmus .................................................281 12.4.3 Huffmanovo kódování a jemu podobné algoritmy ..................284 12.4.4 Shannon-Fanovo kódování ......................................................286 12.4.5 Aritmetické kódování ...............................................................287 12.5 ZTRÁTOVÁ KOMPRIMACE .................................................................290 12.5.1 Metody ztrátové komprese obrazu...........................................290 12.5.2 Druhy obrázků JPEG ..............................................................292 12.5.3 Kompresní algoritmus JPEG ..................................................292 12.5.4 Vlnková transformace (wavelet transfomation) .....................294 12.5.5 Fraktální komprese (Fractal Image Compression) .................295 12.5.6 Skalární a vektorová kvantifikace ...........................................296 12.5.7 Metody ztrátové komprese videa a audiosignálu ....................296 13. POUŽITÁ LITERATURA A DALŠÍ ZDROJE .............................299 7 Počítačové systémy 1. Principy činnosti práce číslicového počítače V této kapitole se dozvíte: • • • • Z jakých podsystémů se skládá číslicový počítač? Jaké jsou hlavní funkce jednotlivých podsystémů počítače? Jak se zobrazují jednotlivé informace v počítači? Jakými metodami se určují operandy v instrukcích počítače? Po jejím prostudování byste měli být schopni: • • • Charakterizovat činnost počítače, rozumět samočinnému způsobu zpracování programů v číslicovém počítači. Znát způsob zobrazování jednotlivých typů informací ukládaných v paměti počítače. Porozumět dvojkové soustavě a základním operacím v této soustavě, pochopit zobrazování v pevné a pohyblivé řádové čárce. Popsat různé metody určování operandů instrukcí což je velmi důležité pro pochopení některých algoritmů operačních systémů. Klíčová slova této kapitoly: Von Neumannovo schéma počítače, operační paměť, operační jednotka, řadič, vstupní a výstupní zařízení, instrukční cyklus řadiče, dvojková soustava, instrukce, operand. Doba potřebná ke studiu: 6 hodin Průvodce studiem Studium této kapitoly je poměrně náročné zejména pro ty z Vás, kteří dosud nemají žádné znalosti z oblasti architektury číslicových počítačů. V takovém případě Vám zřejmě některé principy činnosti počítače budou připadat obtížně pochopitelné, ovšem nenechte se tím odradit, neboť pochopením této části se Vám usnadní studium následujících kapitol. Na studium této části si vyhraďte alespoň 6 hodin. Doporučujeme studovat s přestávkami vždy po pochopení jednotlivých podkapitol. Po celkovém prostudování a vyřešení všech příkladů doporučujeme dát si pauzu, třeba 1 den, a pak se pusťte do vypracování korespondenčních úkolů. 1.1 Úvod Číslicové počítače zpravidla chápeme jako stroje na zpracování informace. Obecně počítače jsou především matematickými stroji, jejichž úkolem je transformace číselných (diskrétních) vstupních hodnot, vstupních údajů. Jsou dále stroji elektronickými, což určuje fyzikální podmínky realizace úkolů transformace číselných údajů. Konečné jsou stroji samočinnými, což znamená, že uvedený úkol realizují bez přímé účasti člověka. Základem pro samočinnost funkce je existence paměti počítače, v níž je uchován návod pro řešení (program) a řídící jednotky, která dokáže tento návod interpretovat v postup. 8 Počítačové systémy Činnost počítače lze charakterizovat principiálně takto: • Počítač přijímá na svém vstupu texty nad vstupní abecedou, transformuje je na texty nad vnitřní abecedou (kódování vstupní informace do vnitřní reprezentace) a ukládá je do paměti. • V paměti provede zpracování. • Zpracované texty transformuje do výstupní abecedy (interpretace informace zachycené ve vnitřní reprezentaci) a vydává je na svém výstupu. Okolí počítače Text nad vstupní abecedou Počítač Text nad výstupní abecedou Text nad vnitřní abecedou Vazba počítače s okolím K tomu, aby počítač mohl komunikovat s okolím je nutný společný jazyk počítače a jeho okolí. Jedná se o jazyk, kterému obě strany jednoznačně a shodně rozumějí, tzv. formální jazyk. Vymezíme tři jeho určující složky: • abecedu, tj. výběr přípustných základních symbolů, • syntaxi, skladbu, tj. soubor pravidel, podle nichž lze ze symbolů abecedy tvořit přípustné vyšší tvary (výrazy, slova, věty), • sémantiku, tj. význam, který shodně obě komunikující strany syntaktickým tvarům přiřazují. Poznamenejme zde, že i počítače s grafickým uživatelským rozhraním pracují shodně. Jejich řídícím jazykem může být kliknutí myši nad ovládacím prvkem s následnou akcí, např. rozbalení nabídky či zavření okna. 1.2 Von Neumannovo schéma počítače Von Neumannovo schéma bylo navrženo roku 1945 americkým matematikem (narozeným v Maďarsku) Johnem von Neumannem jako model samočinného počítače. Tento model s jistými obměnami zůstal zachován dodnes. 9 Počítačové systémy Vstupní jednotka Operační paměť Výstupní jednotka ALU Řadič Procesor Von Neumannovo schéma Podle tohoto schématu se počítač skládá z pěti hlavních modulů: • Operační paměť: slouží k uchování zpracovávaného programu, zpracovávaných dat a výsledků výpočtu. • ALU – Arithmetical and logical Unit (aritmetickologická jednotka): jednotka provádějící veškeré aritmetické výpočty a logické operace. Obsahuje sčítačky, násobičky (pro aritmetické výpočty) a komparátory (pro porovnávání). • Řadič: řídící jednotka, která řídí činnost všech částí počítače. Toto řízení je prováděno pomocí řídících signálů, které jsou zasílány jednotlivým modulům. Reakce na řídící signály, stavy jednotlivých modulů, jsou naopak zasílány zpět řadiči pomocí stavových hlášení. • Vstupní jednotka: zařízení určená pro vstup programu a dat. • Výstupní jednotka: zařízení určené pro výstup výsledků, které počítač zpracoval. Ve von Neumannově schématu je možné ještě vyznačit další modul vzniklý spojením předcházejících modulů. Jedná se o procesor (CPU - Central Processing Unit - centrální procesorová jednotka), který vznikne spojením řadiče a aritmetickologické jednotky. Princip činnosti počítače podle von Neumannova schématu: 1. Do operační paměti se pomocí vstupních zařízení přes ALU umístí program, který bude provádět výpočet. 2. Stejným způsobem se do operační paměti umístí data, která bude program zpracovávat. 3. Proběhne vlastní výpočet, jehož jednotlivé kroky provádí ALU. Tato jednotka je v průběhu výpočtu spolu s ostatními moduly řízena řadičem počítače. Mezivýsledky výpočtu jsou ukládány do operační paměti a nebo registrů procesoru. 4. Po skončení výpočtu jsou výsledky poslány přes ALU na výstupní zařízení. Z hlediska systémového se počítač skládá z: 1. paměťového podsystému, 10 Počítačové systémy 2. operačního podsystému, 3. řídícího podsystému, 4. vstupního a výstupního podsystému. Centrálním podsystémem je paměť. Přejímá informace od vstupního podsystému a předává je výstupnímu podsystému. Řídící podsystém (řadič) získává z paměti instrukce programu a přiděluje ostatním podsystémům postupně úkoly. Operační podsystém získává podle pokynů řídícího podsystému z paměťového podsystému data, zpracovává je a vrací zpět do paměti. Paměťový podsystém je schopen si zapamatovat, tj. uchovat beze změny určité množství informací. Podsystém tvoří: • blok adresovatelných paměťových buněk, • adresový registr paměti (registr adresy paměti – RAP), • údajový registr paměti (registr dat paměti – RDP), • řadič paměti. PAMĚŤOVÉ BUŇKY NAJDI ADRESU ŘADIČ PAMĚTI ADRESOVÝ REGISTR PAMĚTI - RAP NASTAV ADRESU HOTOVO VYBER ULOŽ ADRESA ÚDAJOVÝ REGISTR PAMĚTI - RDP NASTAV ÚDAJ START ÚDAJ Paměťový podsystém počítače Funkce každé paměťové buňky je dána následujícími předpoklady: • Obsahuje jedno slovo – slabiku – byte. • Při získání údaje čtením se obsah neporuší. • Lze do ní zapsat novou informaci s podmínkou že se zruší existující informace. • Má jednoznačně přidělenou adresu. Adresový registr paměti (RAP) uchovává adresu buňky, se kterou paměť v daném okamžiku pracuje. Tyto adresy získává z některých jiných podsystémů. Na základě signálu „NASTAV ADRESU“ od zdrojového podsystému se paralelně (najednou celá adresa) zapíše do RAP. Údajový registr paměti (RDP) uchovává data. Při výběru informace z paměti zde řadič 11 Počítačové systémy paměti dočasně uchovává údaj z buňky, na kterou odkazuje adresový registr paměti. Údaj zde uchovaný je dostupný pro žádající podsystém v okamžiku, kdy řadič vyšle signál "HOTOVO". Při ukládání informace do paměti se údaj ze zdrojového podsystému posílá do registru dat paměti na základě signálu "NASTAV ÚDAJ". Jakmile se nalezne místo, na které odkazuje adresa v adresovaném registru paměti, odešle se řadičem paměti obsah registru dat do této buňky. Řadič paměti řídí cyklus paměti. Jednotka, požadující spolupráci s pamětí, informuje, zda jde o výběr nebo vkládání informace, při čemž je do RAP uložena adresa korespondující buňky. Při ukládání do paměti se naplní RDP požadovanou informací. Řadič paměti uzavře přístup k oběma registrům RAP i RDP, najde buňku a sleduje tok informace mezi registrem dat paměti a zvolenou buňkou. Jakmile je úkol paměti hotov, řadič paměti generuje signál o ukončení "HOTOVO" a může začít další cyklus paměti. Požadavky, které se v počítačovém systému kladou na paměť se nedají ekonomicky splnit jedinou pamětí. Čím větší je kapacita paměti, tím větší je totiž i její cena. Podobně roste cena i se zkracováním vybavovací doby. Proto rychlé paměti (s krátkou vybavovací dobou) mají obvykle malou kapacitou, pomalé paměti (s delší vybavovací dobou) mají velkou kapacitu. Začlenění jednotlivých úrovní paměti do hierarchie je naznačeno na obrázku. ŘADIČ ŘÍDÍCÍ PAMĚŤ ZÁPISNÍKOVÁ PAMĚŤ ALU OPERAČNÍ (HLAVNÍ) PAMĚŤ VSTUP / VÝSTUP VNĚJŠÍ VELKOKAPACITNÍ PAMĚŤ • • • VNĚJŠÍ VELKOKAPACITNÍ PAMĚŤ • • • Hierarchie paměťového podsystému Operační podsystém provádí všechny aritmetické a logické operace. Přitom spolupracuje s pamětí, z níž vybírá operandy a ukládá do ní výsledky. Operaci, 12 Počítačové systémy která se má provádět, určuje řídící jednotka. Typické složení operační jednotky je na následujícím obrázku. REGISTR A - STŘADAČ Z PAMĚTI 1. operand P Ř E P Í N A Č RESITR B - BÁZE 2. operand REGISTR Q - PODÍL P Ř E P Í N A Č sčíta čka DO PAMĚTI VÝSLEDEK řízení posunů řízení přepínačů ŘADIČ ALU Operační podsystém (ALU) počítače Tři registry, každý na jedno slovo, tvoří zápisníkovou paměť. Registry uchovávají operandy, mezivýsledky i konečné výsledky. Označení registrů vychází z jejich funkce: • RA - střádač (acumulator), • RB - báze (base), • RQ - podíl (quotient). ALU obsahuje dále sčítačku, která má i prostředky pro vytváření doplňkových kódů, čímž umožňuje odčítání. Přepínač řídí tok informací a umožňuje přímý zápis informace z jednoho registru do druhého, průchod informace ze dvou registrů sčítačkou, přesun údaje z paměti do některého registru apod. Řadič ALU je autonomní. Dohlíží na činnost ALU. Jakmile se mu předá instrukce, která se má provést, řídí a časově sleduje provádění příslušného algoritmu. (Pozn. ALU současných procesorů obsahují podstatně větší počet registrů.) Řídící podsystém (řadič) řídí, resp. dohlíží na veškerou činnost a spolupráci všech podsystémů počítače tak, aby celý systém počítače pracoval podle zadaného programu. Dostává instrukce programu, zpracovává je a transformuje je na posloupnost příkazů pro ostatní části počítače. Těmito příkazy přiděluje úkoly jiným podsystémům. Přitom je stále informován o okamžitém stavu všech podsystémů. Základní funkční jednotky řídícího podsystému jsou uvedeny na obrázku. 13 Počítačové systémy RAP RDP RAP ŘÍDÍCÍ REGISTR OK ČÍTAČ INSTRUKCÍ ADRESA Ústřední řadič Dekodér instrukcí ČASOVÁNÍ A ŘÍZENÍ PŘEPÍNAČŮ (PŘENOSŮ) Řídící podsystém počítače Řídící podsystém pracuje ve dvou fázích: výběrové a prováděcí. START Výběrová fáze řadiče Prováděcí fáze řadiče STOP Výběrová a prováděcí fáze řadiče Výběrová fáze (fetch): Obsah čítače instrukcí se přepíše do adresovaného registru paměti (RAP). V paměti se najde specifikovaná adresa, na níž je uložena instrukce. Instrukce se z tohoto místa přepíše do registru dat (RDP) a odtud se uloží do řídícího registru. Prováděcí fáze (execute): Vybraná instrukce, uložená v řídícím registru, se analyzuje, čímž se určí, co se má dělat. Pokud se při zpracování požaduje operand, přepíše se adresová část instrukce do adresového registru paměti. Vybraný údaj se pak odesílá registru dat paměti na místo určení, např. do operační jednotky. Jakmile se operand dostane na místo svého určení, řídící podsystém odešle příslušnému podsystému požadavek na zpracování úkolu a kontroluje jeho provádění. 14 Počítačové systémy Nakonec připraví adresu další instrukce, např. zvětšením obsahu čítače instrukcí o jedničku a zahájí se nová výběrová fáze. V případě provádění instrukce skoku se adresová část instrukce přepíše do čítače instrukcí a tím se určí nová adresa vybírané instrukce Vstupní a výstupní podsystém počítače je spojovacím článkem mezi přídavnými zařízeními a ostatními podsystémy počítače a zahrnuje v sobě logiku řízení vstupů a výstupů. Požadavky na připojení vstupních a výstupních zařízení nejsou vždy známé nebo se nedají dostatečně přesně předvídat při návrhu počítače, a proto se základní vstupní a výstupní funkce z hlediska organizace a připojení přídavných zařízení zajišťují univerzálně. 1.3 Zobrazení informace v počítači Informace, které číslicové počítače zpracovávají, musí být kódovány a s ohledem na technickou realizaci je nutné k jejich vyjádření nalézt levné a spolehlivé prvky. Z tohoto hlediska jsou zatím stále nejvhodnější prvky se dvěma jednoznačně rozlišitelnými stavy. Tak se dostáváme k dvojkové číselné soustavě, která je dominující soustavou strojového zpracování informací. Dvojková číslice (0 nebo 1) je bit (elementární informace). Znaky (alfabetické a numerické) se vyjadřují většinou osmibitovou skupinou. Pro tyto několikabitové skupiny se používá termín slabika nebo byte. Nejbližší větší skupina s pevně stanoveným počtem bitů je slovo. Délka slov bývá 4 slabiky, tj. 32 bitů nebo 8 slabik, tj. 64 bitů. Je-li v počítači pro všechny operace slovo uložené vždy v jedné buňce paměti, pak jde o počítač slovně orientovaný. 1.3.1 Číselné soustavy a kódy Zobrazení čísla v poziční číselně soustavě o základu b je dána pravidlem (...a3a2a1a0a-1a-2...)b = ... a3b3+ a2b2+ a1b1+ a0b0+ a-1b-1+ a-2b-2... Pro b=10 dostáváme tradiční desítkovou (dekadickou) soustavu. Méně obvyklé jsou soustavy se základem b>1, b je přirozené a různé od 10. Ve výše uvedeném zápisu znamená každé ak "číslici", představující celé číslo 0 ≤ ak < b . Čárka mezi a0 a a-1 se nazývá „řádová poziční čárka“ (v angličtině se užívá tečky). Dále se budeme zabývat zejména soustavami: - dvojkovou (binární) kde b=2, - osmičkovou (oktalovou) kde b=8, - šestnáctkovou (hexadecimální) kde b=16. Ve dvojkové soustavě vystačíme se dvěma číslicemi: 0,1. V osmičkové soustavě potřebujeme 8 číslic: 0,1,2,3,4,5,6,7. V šestnáctkové soustavě potřebujeme 16 číslic: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. 15 Počítačové systémy Z číselných soustav je nejběžnější dvojková, která jak z hlediska technického, tak i programového vybavení stroje má značné výhody. Z hlediska technického jsou to např. jednoduché algoritmy aritmetických a logických operací a jejich realizace, ve srovnání s jinými soustavami se jedná o menší požadovaný rozsah paměti apod. Z programového hlediska je třeba ocenit možnost dělení a násobení mocninami dvou prostým bitovým posunem čísla. Hlavní nevýhodou dvojkové soustavy je nutnost převodu při vstupu a výstupu z desítkové soustavy do dvojkové a naopak. Desítková soustava má přednost právě v tom, že zmíněné převody odpadají. Proto se u řady počítačů jednotlivé desítkové číslice kódují do dvojkové soustavy, tzv. dvojkovědesítkovým kódem (BCD). 1.3.1.1 Převody mezi číselnými soustavami Pracujeme-li s různými číselnými soustavami (o různých základech), musíme vědět, jak se číslo, vyjádřené v jedné soustavě, např. se základem k převede do soustavy se základem m. Jde-li o celé číslo >1, potom číslo v soustavě o základu k dělíme základem m, vyjádřeným v soustavě k, zbytek h <0, m-1> je nejnižší řád daného čísla v soustavě m, vyjádřený ovšem opět v soustavě o základu k. Získaný podíl se dělí znovu základem m. Tak dostaneme další řád čísla v soustavě m atd. Poslední podíl, který je h <0, m-1>, je nejvyšší řád převáděného čísla v soustavě o základu m. Příklad: Převeďme desítkové číslo 287 do soustavy dvojkové, osmičkové a šestnáctkové. Ve dvojkové soustavě dostáváme: 287 : 2 = 143 143 : 2 = 71 71 : 2 = 35 35 : 2 = 17 zbytek 1 zbytek 1 zbytek 1 zbytek 1 17 : 2 = 8 zbytek 1 zbytek 1 8:2=4 zbytek 0 4:2=2 zbytek 0 2:2=1 zbytek 0 Zbytky sepíšeme od konce. Číslo 28710 je tedy vyjádřeno ve dvojkové soustavě takto: (100011111)2 = 1.28+0.27+0.26+0.25+1.24+1.23+1.22+1.21+1.20 256+16+8+4+2+1 = (287)10 V soustavě osmičkové dostaneme: 287 : 8 = 35 35 : 8 = 4 7 3 4 Tedy: (437)8 = 4.82 + 3.81 + 7.80 = 256 + 16 + 15 = (287)10 Při převodu do šestnáctkové soustavy obdržíme: 287 : 16 = 17 17 : 16 = 1 zbytek 15 (F) zbytek 1 zbytek 1 Obdobně zbytky sepíšeme od konce a obdržíme: 16 = Počítačové systémy (11F)16 = 1.162 + 1.161 + 15.160 = 256 + 16 + 15 = (287)10 Máme-li převést číslo <1 ze soustavy o základu k do soustavy o základu m postupujeme takto: číslo v soustavě k se násobí základem m, vyjádřeným v soustavě o základu k. Celočíselná část výsledku (před řádovou čárkou) je prvá číslice za řadovou čárkou čísla, převedeného do soustavy o základu m vyjádřená ovšem ještě v soustavě o základě k. Zbývající část výsledku za řádovou čárkou násobíme znovu základem m atd. Příklad: Převeďme číslo (0,960375)10 ze soustavy desítkové do soustavy dvojkové, osmičkové a šestnáctkové. Ve dvojkové soustavě dostáváme: 0,960375 . 2 1,92075 celá část je 1 0,92075 . 2 1,8415 celá část je 1 0,8415 . 2 1,683 celá část je 1 0,683 . 2 1,366 celá část je 1 0,366 . 2 0,732 celá část je 0 0,732 . 2 1,464 celá část je 1 Celé části (přetečení přes řádovou čárku) sepíšeme a dostáváme: (0,960375)10 = (0,111101)2 = 1.2-1+1.2-2+1.2-3+1.2-4+0.2-5+1.2-6... = 0,5+0,25+0,125 +0,0625+0,03125 + ….. Při převodu do osmičkové soustavy dostáváme: 0.960375 . 8 . 8 7,683 celá část je 7 0.683 . 8 5,464 celá část je 5 0,464 3,712 celá část je 3 Celé části opět sepíšeme a dostáváme: (0,960375)10 = (0,753...)8 = 7.8-1 + 5.8-2 + 3.8-3 + ... = 0.875 + 0,078125 + 0,005859375 + .., V šestnáctkové soustavě obdržíme: 17 Počítačové systémy 0,980375 . 16 . 16 15,366 13,895 celá část je 15 (F) 13 (D) 0,366 . 16 0,856 5,856 celá část je 5 celá část je Tedy: (0,960375)10 = (0,F5D...)16 = 15.16-1 + 5.16-2 + 13.16-3...= 0,9375 + 0,01953125 + 0,003173828 + …. Všimněte si, že existuje prostý vztah mezi zápisem čísel v soustavách o základu b a bk: (...a3a2a1a0.a-la-2...)b = (...A3A2A1A0.A-l A-2….)bk kde Aj=(akj+k-1 …….akj+l akj )b Slovy lze tento vztah zhruba vyjádřit tak, že v zápise čísla v soustavě o základu b vytvoříme k-tice číslic nalevo i napravo od řádové tečky, a každou tuto k-tici číslic vyjádříme jednou číslicí v soustavě o základu bk. Příklad: Převeďte dvojkové číslo 10100110011001,10011101 do osmičkové a šestnáctkové soustavy. Při převodu do osmičkové soustavy platí b=2, k=3, 2k=23=8 Tedy vytvoříme trojice dvojkových číslic, které nahradíme osmičkovými číslicemi dle následující tabulky. osmičkové 0 1 2 3 4 5 6 7 dvojkové 000 001 0l0 011 100 101 110 111 šestnáctkové dvojkové 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 šestnáctkové dvojkové 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Převodní tabulka mezi osmičkovou a šestnáctkovou do dvojkové soustavy 18 Počítačové systémy Vytvořené trojice dvojkových čísel jsou: 010 100 110 011 001 , 100 111 010 2 4 6 3 1 4 7 2 Osmičkový zápis výše uvedeného čísla je (24631,472)8. Převádíme-li číslo do šestnáctkové soustavy, platí: b=2, k=4, 2k=24=16 Zde vytváříme čtveřice dvojkových číslic, které nahradíme šestnáctkovými číslicemi dle výše uvedené tabulky. 0010 1001 1001 1001 , 1001 1101 2 9 9 9 9 D Šestnáctkový zápis daného čísla je (2999,9D)16. Pozn.: při obráceném převodu z osmičkové (resp. šestnáctkové) soustavy do dvojkové, každou osmičkovou (resp. šestnáctkovou) číslici nahradíme trojicí (resp. čtveřicí) dvojkových číslic. 1.3.1.2 Kódy V řadě počítačů se používá dvojkově kódovaná desítková soustava. Každá desítková číslice se přitom musí vyjádřit dvojkově. Je zřejmé, že musíme použít pro každou číslici v desítkové soustavě nejméně 4 číslice dvojkové soustavy. Volba konkrétního kódu závisí na jeho použití. Jiné požadavky se kladou na kódy, s nimiž se mají provádět aritmetické operace a jiné požadavky na kódy, používané při přenosu informaci apod. Pro aritmetické operace jsou vhodné kódy, které vyhovují tzv. Aikenovým podmínkám: 1. Každé místo v kódu má mít určitou váhu. 2. Součet vah míst, v nichž je dvojková číslice kódu rovna 1, má dát hodnotu přiřazené desítkové číslice nebo alespoň, větší desítkové číslici má odpovídat větší dvojkové číslo příslušného váhového kódu. 3. Vztah mezi lichými a sudými kódy a přiřazenými desítkovými číslicemi může být sice libovolný, ale u zvoleného kódu má být neměnný. 4. Desítkovým doplňkům desítkových číslic mají odpovídat doplňkové kódy, vzniklé inverzí jednotlivých bitů původních kódů. U kódů určených pro přenos nás zajímá především odolnost kódů vůči poruchám, možnost zajištění vzniklých chyb a příp. jejich odstranění. V následující tabulce jsou uvedeny některé známé kódy, z nichž však všechny nesplňují výše uvedené podmínky. 19 Počítačové systémy 8421 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 2421 (8421)+3 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 5421 3n+2 5043210 Bikvinární 0000 0001 0010 0011 0100 1000 1001 1010 1011 1100 00010 00101 01000 01011 01110 10001 10100 10111 11010 11101 0100001 0100010 0100100 0101000 0110000 1000001 1000010 1000100 1001000 1010000 Tabulka dvojkových kódů pro desítkové číslice Z více možných způsobů zabezpečení informace (kódů) se stručně zmíníme jen o jedné, tzv. kontrole paritou. Podstata zabezpečení spočívá v tom, že v nejjednodušším případě se k informaci, která je v n-řádech, přidružuje informace n(n+1)-tém řádu, kterou se doplňuje počet jednotkových bitů na sudý nebo lichý počet (sudá nebo lichá parita). V následující tabulce jsou naznačeny n=5 bitové informace se sudou paritou v 6. řádu. n 10110 01001 01111 01011 01001 n+1 1 0 0 1 0 Příklad zabezpečení informace sudou paritou Při přenosu informace se po každém přepisu kontroluje, zda počet jedniček v informaci je sudý. V případě lichého počtu se signalizuje chyba. Je třeba připomenout, že paritní bit se k informaci přidává při tvorbě informace, např. na paměťové médium. 1.3.2 Kódování ve dvojkové soustavě Způsob zobrazeni čísel v počítači nazýváme číselný kód. Ukážeme si tři způsoby kódování čísel ve dvojkové soustavě. Je zřejmé, že kladná a záporná čísla jsou zobrazena v počítači stejně, až na znaménko. Aby počítač pracující ve dvojkové soustavě poznal znaménko čísla, musíme tato znaménka vyjádřit znakem, který počítač dovede rozlišit, tj. v našem případě nulou nebo jedničkou (pozn., pracujeme-li s jinou číselnou soustavou, kóduje se znaménko zvláštním znakem). Kvůli zjednodušení budeme uvažovat o zobrazení čísla s pevnou řádovou čárkou (s čárkou před nejvyšším řádem, což značí |x| <1). 1.3.2.1 Přímý kód Kladné číslo bude mít v přímém kódu před pevnou řádovou čárkou, tj. ve znaménkovém řádu, nulu, číslo záporné jedničku. Čísla kladná jsou tedy 20 Počítačové systémy vyjádřena v rozmezí od nuly do jedné, čísla záporná od jedné do dvou, což lze psát: (x)přímý kód = x pro x ≥ 0 (x)přímý kód = 1-x pro x < 0. Zapíšeme tedy číslo + 0,21875 jako 0,00111, ale číslo -0,21875 jako 1,00111 = (1-(-0.00111)). 1.3.2.2 Doplňkový kód Doplňkový kód nezáporného čísla (kladné a nula) x je stejně jako u přímého kódu roven číslu x. Doplňkový kód záporného čísla x dostaneme tak, ze před pevnou řádovou čárku napíšeme znaménkový znak 1, na všech ostatních místech nahradíme nuly jedničkami. Obecně můžeme psát: (x)doplňkový kód = x pro x ≥ 0 (x) doplňkový kód = 2 + x pro x < 0. Zapíšeme tedy + 0,75 jako 0,110 ale číslo - 0,75 jako 1,010 protože 210 v binární soustavě je 102 pak 10,000 - 0,110 1,010 nebo 1,001 +1 1,010 Nula má jediné vyjádření 0,000 ... 0. Maximální záporné číslo 1,000 ... 0 nemá tedy kladný ekvivalent (jeho dvojkový doplněk je totiž zase 1,000 ... 0). 1.3.2.3 Inverzní kód Inverzní kód kladného čísla x je roven číslu x. Inverze záporného čísla vznikne tak, že se do znaku napíše jednička a v číslicových řádech se zamění jedničky za nuly a naopak. Je tedy záporné číslo v inverzním kódu v posledním číslicovém řádu o jedničku menší než číslo v doplňkovém kódu. Tedy: (x)inverzní kód = x pro x >= 0 (x) inverzní kód = 10 + x – 10-n pro x < 0. Př. + 0,8128 je ve dvojkové soustavě 0,1101 a - 0,8125 je v inverzním kódu 1,0010 1.3.2.4 Modifikovaný doplňkový kód Modifikovaný doplňkový kód je obecnější verzí doplňkového kódu. Je definován (x)modifikovaný doplňkový kód = x pro x >= 0 21 Počítačové systémy (x) modifikovaný doplňkový kód = z2 + x pro x < 0. Ve dvojkové soustavě je z2 = (100)2 Př. (+ 11/16)10 = (00,1011)2 (- 11/16)10 = (11,0101)2 protože 100,0000 nebo 11,0100 - 00,1011 + 1 11,0101 11,0101 Modifikovaný doplňkový kód nezáporného čísla x je roven tomuto číslu x, přičemž ve znaménkových řádech jsou dvě nuly; u záporného čísla se před pevnou řádovou čárku napíší dvě jedničky, na všech ostatních místech nahradíme nuly jedničkami a jedničky nulami a pak k nejnižšímu řádu přičteme jedničku. 1.3.2.5 Modifikovaný inverzní kód Je definován (x) modifikovaný inverzní kód = x pro x >= 0 (x) modifikovaný inverzní kód = 100 + x – 10-n pro x < 0. Modifikovaný inverzní kód nezáporného čísla x je roven číslu x; u záporného čísla se před pevnou řádovou čárku napíší dvě jedničky a v číslicových řádech se zamění jedničky za nuly a naopak. Např. (+ 11/16)10 = (00,1011)2 (- 11/16)10 = (11,0100)2 1.3.3 Zobrazení instrukcí Požadavek na provedení operace operační jednotkou, případně jinými podsystémy počítače je zakódován do instrukce. Instrukce určuje, o kterou z operací jde (tzn. operační kód) a kde jsou uloženy operandy v paměti, registrech apod. (tzn. adresy) . Obecná struktura instrukce je na následujícím obrázku. Operační kód Adresová část Obecná struktura instrukce Adresová část obsahuje tolik samostatných částí, kolik má instrukce adres (většinou 1,2 nebo 3) - hovoříme potom o jednoadresní, dvouadresní nebo tříadresní instrukci. 22 Počítačové systémy Instrukce s k = 1,2 ..... adresami mají formát dle následujícího obrázku. Operační kód A1 A2 Ak Obecná struktura instrukce s k adresami Porovnání efektivnosti instrukcí s různým počtem adres budeme ilustrovat na příkladu výpočtu výrazu: Y = A * B + (C – D) * E / F, kde A,B,C.D,E,F,Y - proměnné, uložené v buňkách s adresami a,b,c,d,e,f,y. Budeme předpokládat, že výsledek libovolné operace se ukládá v registru R operační jednotky, a může být použit v roli operandu v následující operaci. Pro uložení mezivýsledků P1, P2, ... máme k dispozici pracovní paměťové buňky p1, p2, ... Nejpřirozenější pro výpočet aritmetických a logických výrazů je tříadresní systém instrukcí. OK A1 A2 A3 Struktura tříadresní instrukce OK = operační kód, A1, A2 = adresa dvou operandů, A3 = adresa výsledku. Program výpočtu výrazu bude: Zde Instrukce Násob a Odečti c Násob Děl Sečti - b d e f p1 p1 y Význam A * B → P1 C-D → R R*E → R R/F → R R + P1 → Y Pomlčka v poli adresy označuje, že tato adresa se nepoužije, i když v poli adres v instrukci se nachází. Protože každá instrukce potřebuje tři m-bitová pole adres, tak pro adresaci informace je potřebné K3 = 3 x 5 = 15 adres, i když pouze 9 je jich využito efektivně. Při vykonání programu se T3 = 14 krát obracíme k paměti: - 5x výběr instrukce, 9x čteni i zápis operandů. Při použití dvouadresních instrukcí: 23 Počítačové systémy OK A1 A2 Struktura dvouadresní instrukce Proces výpočtu výrazu je popsán následujícím programem: Instrukce Násob a Zapiš p1 Odečti c Násob Děl Sečti P1 Význam A*B → R R → P1 R-D → R R*E → R R/F → R R + P1 → Y b d e f y Zde Zapiš je operace zápisu výsledku R do paměti. Program je sestaven ze šesti instrukcí, zabírajících K2 = 2x6 = 12 adres a 9 z nich je využito efektivně. Při provádění programu se T2 = 15x obracíme k paměti: - 6x výběr instrukce, 9x čtení / zápis operandů. Při práci s jednoadresní instrukcí: OK A1 Struktura jednoadresní instrukce Program výpočtu výrazu bude: Instrukce Ulož a Násob b Zapiš p1 Ulož c Odečti d Násob e Děl f Sečti p1 Zapiš y Význam A→R R*B → R R → P1 C→R R-D → R R*E → R R/F → R R + P1 → R R→Y Program je sestaven z 9 instrukcí zabírajících 9 adres. Při provádění programu T1 = 18x obrací k paměti: - 9x výběr instrukce, - 9x čtení / zápis operandů. Počet adres instrukcí k 24 1 2 3 Počítačové systémy Počet adres v programu K Počet přístupů k paměti T 9 18 12 15 15 14 Z tabulky je vidět, že s větším počtem adres v instrukci se zvětšují požadavky na velikost paměti pro adresu, ale snižuje se počet přístupů k paměti, tj. snižuje se celková doba výpočtů. Se zvyšováním počtu operandů ve výrazu odpadá nutnost každou operaci provádět třemi adresami; výsledek operace může být uložen v procesoru a může být použit jako operand v následující operaci. Ve vědecko-technických úlohách, na jednu operaci, přísluší v průměru 1,2 až 1,4 operandů, uložených v operační paměti a v úlohách zpracování hromadných dat 1,6 až 1,8 operandů. Proto pro vědecko-technické úlohy jsou výhodné 1-adresní instrukce a pro zpracováni dat 2-adresní instrukce. 1.3.4 Zobrazení abecedně-číslicových znaků Současné počítače (až na výjimky) mohou pracovat s úplnou abecedou písmen, číslic a různých symbolů, (tzn. 26 písmen mezinárodní abecedy, 10 číslic a interpunkční znaménka, panelové znaky pro některé vstupní a výstupní zařízení). Základní abeceda zejména ve slovanských zemích bývá doplněna písmeny národní abecedy. V paměťových médiích samočinného počítače se zpravidla uchovává až dvakrát tolik číselné informace jako alfabetické informace. Proto je žádoucí, aby vybraný kód byl efektivnější pro vyjadřování číslic. Tuto podmínku splňuje např. osmibitový kód EBCDIC (Extended Binary Coded Decimal Interctange Code), jenž umožňuje vyjádřit 206 různých znaků. Každý znak tedy představuje skupina osmi bitů. Výhoda osmibitového kódu spočívá v tom, že umožňuje v jedné osmibitové skupině uchovávat kódy dvou desítkových číslic. Tyto číslice vstupují do stroje zakódovány osmi bity; čtyři bity levé části tvoří tzv. zónu, která svou hodnotou (1111) určuje, že znak je číslice. Znaky se dají zřetězit a v poslední osmibitové kombinaci se místo zóny udává znaménko čísla. Desítkové číslice 0, 1, 2, ... 9 jsou zakódovány v přímém dvojkovém kódu 8421. Uvedený tvar je "rozvinutý" a používá se pro styk s periferními zařízeními. Číselná informace se před uložením do paměti přeskupí do zhuštěného tvaru. Zhuštěný tvar se uplatňuje při vnitřních operacích s desítkovými čísly. 01234567-0 NUL DLE SP 0 @ P ` p -1 SOH DC1 ! 1 A Q a q -2 STX DC2 " 2 B R b r -3 ETX DC3 # 3 C S c s -4 EOT DC4 $ 4 D T d t -5 ENQ NAK % 5 E U e u -6 ACK SYN & 6 F V f v -7 BEL ETB ' 7 G W g w -8 BS CAN ( 8 H X h x -9 HT EM ) 9 I Y I y -A LF SUB * : J Z j z -B VT ESC + ; K [ k { -C FF FS , < L \ l | -D CR GS = M ] m } -E SO RS . > N ^ n ~ 25 Počítačové systémy -F SI US / ? O _ o DEL Znaková sada ASCII 1.3.5 Pevná a pohyblivá řádová čárka Většina moderních počítačů umožňuje zpracovávat čísla ve dvojím tvaru, a to v pevné a pohyblivé řádové čárce, viz následující obrázek. Znaménko Číslo Řádová čárka Obecné uspořádání čísla v pevné řádové čárce Znaménko Exponent Znaménko Mantisa Obecné uspořádání čísla v pohyblivé řádové čárce Pro zobrazení čísel v pevné řádové čárce je charakteristické pevné umístění řádové čárky na určité místo. Zpravidla se umísťuje před nejvyšším řádovým místem. Můžeme tedy zobrazit čísla v intervalu <0,1>. Zápis čísla v pohyblivé řádové čárce má dvě části: mantisu a exponent. Obecný zápis je x = m. ze kde x - zobrazované číslo, m – mantisa, e – exponent, z - základ použité číselné soustavy. Lze tak zobrazit čísla v rozsahu <z –(emax+m); zemax> kde emax je maximální hodnota exponentu, která je dána počtem řádových míst exponentu v daném zobrazení, m je počet řadových míst mantisy. Rozsah zobrazení informace v pevné řádové čárce úzce souvisí s délkou slova počítače. 26 Počítačové systémy 1.4 Metody určování operandů V číslicových počítačích se setkáváme s různými typy určování operandů. Jsou to: • Přímé adresování. • Přímý operand. • Nepřímé adresování. • Implicitní adresování. • Implicitní operand. • Modifikované adresování. • Relativní adresování. • Asociativní adresování. 1.4.1 Přímé adresování Přímé adresování je základní způsob adresování, kdy se pracuje s operandem na adrese uvedené přímo v instrukci. OP. ZNAK PŘÍMÁ ADRESA PAMĚŤ OPERAND 543 ADD 543 + 987654 5 4 3 + 987654 RAP RQ RDP + 987654 OPERAČNÍ REGISTR OPERAČNÍ JEDNOTKY URČEN IMPLICITNĚ OPERAČNÍM ZNAKEM JEDNOTKA Přímé adresování 1.4.2 Přímý operand V tomto případě je (obvykle na místě adresy) v instrukci zapsán vlastní operand. Rozlišení, zda jde o adresu nebo operand, musí být dáno operačním kódem. Provedením instrukce na následujícím obrázku se přesune přímý operand 327 do indexregistru číslo 3. 27 Počítačové systémy PŘÍMÝ OPERAND OP. ZNAK XPN, 3 RX1 327 RX2 RX3 327 INDEXREGISTRY Přímý operand 1.4.3 Nepřímé adresování Adresová část instrukce udává adresu, na níž je zaznamenána adresa vlastního operandu. Ve srovnání s přímým adresováním to vyžaduje přídavný cyklus paměti, což je nevýhodné. Uplatní se jen tehdy, jestliže řada instrukcí odkazuje na týž operand, jehož umístění v paměti se však během zpracování programu mění. OP. ZNAK MUL,I NEPŘÍMÁ ADRESA 333 333 Příznak nepřímého adresování UKAZATEL OPERAND 272 0272 2345678 3 1 6 2 5 RAP RDP 3 3 3 (272) 0272(2345678) RQ 1.FÁZE (2. FÁZE) 4 2345678 7 Nepřímé adresování 1.4.4 Implicitní adresování S implicitním adresováním se setkáváme u všech jednoadresových počítačů, které vyžadují, aby pro všechny operace pracující se dvěma operandy bylo umístění jednoho z nich dáno vlastní operací. Místo pro výsledek je ve většině případů určeno také implicitně. Příkladem může být instrukce přenosu mezi 28 Počítačové systémy dvěma registry, kdy adresy obou registrů jsou implicitně určeny operačním kódem. 1.4.5 Implicitní operand Jde o případ, kdy operand je určen operačním kódem, např. kód operace „posuň řádovou čárku o jeden bit“ v sobě zahrnuje operaci násobení dvěma (u dvojkového počítače s pevnou řádovou čárkou). 1.4.6 Modifikované adresování Adresová část instrukce se před vložením do adresového registru paměti RAP modifikuje konstantou uloženou v indexregistru, jehož číslo je dáno příznakem instrukce. PAMĚŤ 0 INDEXOVÉ REGISTRY 1 OPERAND 149 + 876543 2 3 012 RAP RDP 149 SČÍTAČKA +876543 MODIFIKOVANÁ ADRESA OP. ZNAK RA ADD, 3 137 +876543 ADR. ZÁKLADNÍ ADR. X Modifikace základní adresy 1.4.7 Relativní adresování Adresová část instrukce neurčuje při relativním adresování přímo místo v paměti, ale adresu uloženou k nějaké jiné adrese, označené jako uložená adresa (bázová adresa). 29 Počítačové systémy 137 ADD, R, 3 0 D 2100 1. FÁZE <B> ZÁKLADNÍ ADRESA <B> D SČÍTAČKA <X> RŘ 2. FÁZE ADD, 3 2237 <B>+D SČÍTAČKA RAP RDP 2560 OBSAH BUŇKY 2560 RX0 <B> + D + <X> RX1 RX2 RX3 323 <X> Modifikace relativní adresy 1.4.8 Výběr podle obsahu (asociativní výběr) Metody adresování, které jsme probrali, se týkají paměti, které jsou adresovány pozičně, tj. každé paměťové místo má svou adresu, což odpovídá Von Neumannově modelu počítače. U asociativních pamětí se vyhledává informace s určitou vlastností. Tato vlastnost bývá určena tzv. klíčem, což je určitá podmnožina bitů slova obsahující uvedený vzorek jedniček a nul. Zbylé bity jsou lhostejné a jsou při hledání maskovány. Každá buňka paměti má údajovou část (uložená informace) a klíčovou část. Obsah registru klíče se najednou srovná se všemi uloženými klíči. V té buňce, kde nastane shoda klíčů, se vyšle obsah údajové části buňky do údajového registru asociativní paměti. Klíčové části slov Údajové části slov Výběrová cesta Registr klíče Asociativní adresování 30 Údajový registr Počítačové systémy 1.5 Odlišná schémata počítačů Základní odlišnosti dnešních počítačů od von Neumannova schématu: • Podle von Neumannova schématu počítač pracuje vždy nad jedním programem. Toto vede k velmi špatnému využití strojového času. Je tedy obvyklé, že počítač zpracovává paralelně více programů zároveň tzv. multitasking. • Počítač může disponovat i více než jedním procesorem. • Počítač podle von Neumannova schématu pracuje pouze v tzv. diskrétním režimu. • Existují vstupní / výstupní zařízení (I/O devices), která umožňují jak vstup, tak výstup dat (programu). • Program se do paměti nemusí zavést celý, ale je možné zavést pouze jeho část a ostatní části zavádět až v případě potřeby. Jednou z nejpodobnějších architektur k von Neumanově je hardwardské schéma počítače, lišící se oddělenou pamětí pro program a pro data (používají některé jednočipové mikropočítače). Paměť programu Registr instrukcí programu Paměť dat ALU Vstupy/ výstupy Řadič Hardwardské schéma počítače V poslední době se uplatňují víceprocesorové počítače, tj. počítače s několika CPU. Dělí se podle toho, zda mají sdílenou paměť na : • multiprocessors (multiprocesory) mají sdílenou paměť, • multicomputers (multipočítače) nemají sdílenou paměť, procesory komunikují například pomocí mechanismu zasílání zpráv. Podle počtu instrukčních a datových proudů se počítače dělí na: • SISD (single instruction, single data) - běžné jednoprocesorové počítače, • SIMD (single instruction, multiple data) - jedna instrukce se provádí na větší množství dat (například sčítání dvou vektorů) - tzv. vektorové počítače, některé superpočítače jsou SIMD, • MISD (multiple instruction, single data) - někdy označované jako řetězené (pipeline) procesory, 31 Počítačové systémy • MIMD (multiple instruction, multiple data) - víceprocesorové systémy; podle toho zda mají nebo nemají sdílenou paměť se rozdělují na multiprocesory (se sdílenou pamětí) a multipočítače (multicomputers spolupracující počítače propojené sítí). Na následujících obrázcích jsou naznačeny principiální vazby procesoru event. procesorů s operační pamětí. Procesor Data Instrukce Data Paměť Počítačový systém SISD (single instruction, single data) Uvedený počítač je shodný s architekturou Von Neumanna. Procesor postupně přebírá instrukce, dekóduje je a provádí. Paměť programů Řídící jednotka systému Instrukce Instrukce Data Data Paměť dat Počítačový systém SIMD (single instruction, multiple data) Tento počítačový systém se někdy také označuje jako maticový procesor (array procesor). Operace v procesorech se provádějí podle příkazů centrálního řadiče maticového procesoru. Kvůli efektivnímu zpracování je hlavní paměť rozdělena na dva fyzicky samostatné celky: paměť programů, která 32 Počítačové systémy spolupracuje s řídící jednotkou maticového procesoru a paměť dat, která komunikuje se všemi procesory. Všechny procesory mohou vykonávat současně tutéž operaci s daty, uloženými v paměti. Proto je maticový procesor užitečný pro operace s maticemi a vektory. Procesor Data Data Instrukce Paměť Počítačový systém MISD (multiple instruction, single data) Tento procesor realizuje základní funkce řetězením operačních modulů, které pracují autonomně. Tím se dosahuje potřebný paralelismus. Procesor Data Data Instrukce Instrukce Paměť Počítačový systém MIMD (multiple instruction, multiple data) Uvedené multiprocesory mají tyto základní rysy: 33 Počítačové systémy • • • • systém obsahuje dva nebo více fyzicky úplně nezávislé procesory, každý s vlastním tokem instrukcí, procesory sdílejí společnou operační paměť, systém disponuje společným souborem vstupních/výstupních zařízení, celý počítačový systém je řízen jedním operačním systémem (jedna řídící autorita). Každý procesor je schopen samostatně vybírat a provádět instrukce. Multiprocesor tedy může zpracovávat současně více programů, resp. samostatných částí jednoho programu, což se nazývá souběžné zpracování (multiprocessing). Přitom procesory nemusí být stejného typu – pak mluvíme o nehomogenním multiprocesoru. Sdílení hlavní paměti se rozumí ve smyslu možnosti fyzického přístupu každého procesoru do libovolného paměťového místa. Příklady konkrétní architektury počítačů SIMD a MIMD se 4 výpočetními uzly jsou naznačeny na následujících obrázcích. SIMD a MIMD se typicky liší v složitosti a výkonu výpočetních uzlů. Uzly v MIMD jsou výkonné samostatné počítače, kdežto SIMD uzly jsou obvykle mnohem jednodušší, což je důsledkem jejich podřízenosti v systému. Podřízené počítače Mikro řadič Hlavní program Nadřazený počítač Tok makroinstrukcí Centrální řadič a multiplexer Lokální paměť dat Sdílená paměť Mikro řadič Lokální paměť dat Mikro řadič Lokální paměť dat Mikro řadič Lokální paměť dat nebo propojovací Synchronní toky identických mikroinstrukcí Architektura SIMD se 4 výpočetními uzly 34 síť Počítačové systémy Výpočetní uzly Lokální paměť programu Tok instrukcí 1 Řadič a CPU Lokální paměť dat Tok dat 1 Sdílená Lokální paměť programu Tok instrukcí 2 Řadič a CPU Lokální paměť dat Tok dat 2 paměť nebo Lokální paměť programu Tok instrukcí 3 Řadič a CPU Lokální paměť dat Tok dat 3 propojovací síť Lokální paměť programu Tok instrukcí 4 Řadič a CPU Lokální paměť dat Tok dat 4 Architektura MIMD se 4 výpočetními uzly Kontrolní otázky: 1. Čím se liší von Neumannova koncepce počítače od harwardské koncepce? 2. Kde je uložena adresa právě prováděné instrukce? 3. O kolik míst se posune řádová čárka binárního čísla násobíme-li jej číslem 16? Úkoly k zamyšlení: 1. U jakých typů instrukcí se nezvyšuje obsah čítače instrukcí o 1? 2. Vedle relativního adresování existuje i samorelativní adresování, kdy bázovou adresou je adresa právě prováděné instrukce. Nakreslete způsob výpočtu konečné adresy. Korespondenční úkol: 1. Napište program pro výpočet výrazu Y = A2 + B3 - C * D + E / F s jednoadresními, dvouadresními a tříadresními instrukcemi. Operační jednotka vykonává jen základní operace sečítání, odčítání, násobení a dělení. Shrnutí obsahu kapitoly V této kapitole jste se seznámili s architekturou číslicových počítačů. Důraz byl kladen na pochopení instrukčního cyklu řadiče a návaznost a hlavní funkce jednotlivých podsystémů počítače. Velká pozornost byla věnována zobrazování jednotlivých informací v počítači a metodám určování operandů instrukcí. 35 Počítačové systémy 2. Booleova algebra V této kapitole se dozvíte: • • • • • Proč je Booleova algebra základem popisu logických funkcí počítačů? Jaké jsou základní logické proměnné a funkce Booleovy algebry? Jak jsou definovány logické funkce? Jaké jsou metody zjednodušování zápisů logických funkcí? Z jakých značek se vytváří obvodové značení logických funkcí? Po jejím prostudování byste měli být schopni: • • • • • • Charakterizovat Booleovu algebru. Definovat zákony Booleovy algebry. Porozumět základním logickým proměnným a funkcím. Znát způsoby zápisu logických funkcí pomocí pravdivostních tabulek a Karnaughových map. Popsat obvodové znázorňování logických funkcí. Znát způsoby zjednodušování (minimalizaci) zápisu logických funkcí. Klíčová slova této kapitoly: Booleova algebra, logická negace, logický součn, logický součet, zákony Booleovy algebry, Karnaughova mapa, minimalizace. Doba potřebná ke studiu: 8 hodiny Průvodce studiem Studium této kapitoly je poměrně náročné zejména pro ty z Vás, kteří dosud nemají žádné znalosti z logiky a Booleovy algebry. V takovém případě Vám zřejmě některé příklady budou připadat obtížně pochopitelné, ovšem nenechte se tím odradit, neboť pochopením této části se Vám usnadní studium následujících kapitol. Na studium této části si vyhraďte alespoň 8 hodin. Doporučujeme studovat s přestávkami vždy po pochopení jednotlivých podkapitol. Po celkovém prostudování a vyřešení všech příkladů doporučujeme dát si pauzu, třeba 1 den, a pak se pusťte do vypracování korespondenčních úkolů. Matematický prostředek vytvořil George S. Boole jako pomůcku pro znázornění filozofických problémů pomocí matematického aparátu, založeného na dvou pravdivostních hodnotách. V technice bylo první využití Booleho algebry při popisu a návrhu reléových obvodů. Značného uplatnění však dosáhla Booleova algebra při návrhu logických obvodů sestavených z hradel „logický součin “, „logický součet “ a „ negace “ jimiž lze základní operace Booleovy algebry přímo realizovat. Boolova algebra nám slouží k matematickému popisu zákonů a pravidel výrokové logiky, která řeší vztahy mezi pravdivými (I) a nepravdivými (0) výroky. Jiná tvrzení nejsou povolena. Pravdivý výrok označujeme logickou hodnotou I a nepravdivý výrok logickou hodnotou 0. Nositelem elementární informace o pravdivosti a nepravdivosti výroků je logická proměnná, která 36 Počítačové systémy může nabývat hodnoty I nebo 0. Boolova algebra studuje dvě proměnné a funkce těchto proměnných. Je to algebra vztahů, nikoliv čísel. 2.1 Logické proměnné a logické funkce Logická proměnná je veličina, která může nabývat pouze dvou hodnot, označených 0 a I (tedy dvojková proměnná), a nemůže se spojitě měnit.Tuto proměnnou označujeme x. Platí : Logická funkce n proměnných x1, x2, x3,… xn je funkce, která může nabývat, stejně jako všechny logické proměnné, pouze dvou hodnot. y1 = x1, x2, x3,… xn V = y1, y2 y2 = a1, a2, a3,… an Funkce rovnosti platí, když dvě logické proměnné A, B se sobě rovnají, tzn., jestliže A = I, B = I nebo A = 0, B = 0, což zapisujeme A = B. Dvě veličiny A = a1, a2, a3,… an ; B = b1, b2, b3,… bn se sobě rovnají, když platí ai = bi pro všechna i. 2.1.1 Základní logické operátory V Booleově algebře jsou definovány tři základní operace, jimiž můžeme vyjádřit libovolnou logickou operaci. Jsou to : 5. logická negace, 6. logický součin, 7. logický součet. Hodnoty proměnné, kterou značíme Y, závislé na jednotlivých kombinací nezávisle proměnných A, B budeme znázorňovat pro základní logické operace (operátory) pravdivostní tabulkou. Počet řádků v pravdivostní tabulce je dán všemi možnými kombinacemi nezávisle proměnných hodnot. Ve sloupci, který je napravo, jsou zapsány stavy hodnot výstupně proměnných Y. 2.1.1.1 Logická negace Tato operace, která se také velmi často nazývá inverze, dává výsledek zvaný negace. Je aplikována jen na jednu proměnnou. Mění hodnotu nezávisle proměnné na opačnou. Označuje se přidáním „ pruhu “ nad proměnnou x. Jejím výsledkem je hodnota Y = 1, jestliže A = 0, a naopak Y = 0, jestliže A = 1. Negace je vyjádřena zápisem „ NE “ (NOT). Tabulka funkce negace : A A 0 1 1 0 Tato definice vede ke vztahům : 0=I I=0 37 Počítačové systémy 2.1.1.2 Logický součin Tato operace, nazývána také průnik nebo konjunkce, aplikovaná na dvě proměnné, vytváří součin neboli funkci AND těchto dvou proměnných. Logický součin nabývá hodnotu I jen tehdy, když všechny nezávislé proměnné mají hodnotu I. Jestliže je alespoň jedna hodnota rovna O, potom výsledná hodnota se rovná 0. Značí se symbolem ∧ mezi dvěma proměnnými (A ∧ B). V praxi se však používá zápis : Y=A.B Logický součin je vyjádřen spojkou „ a “ (v angličtině „AND“ nebo „ & “). Definice logického součinu může být vyjádřena vztahy : Tabulka funkce logického součinu : A B A. B 0 0 0 0 I 0 I 0 0 I I I 0.0 = 0 0.I = I.0 = 0 I.I = I 2.1.1.3 Logický součet Tato operace, nazývána také sjednocení nebo disjunkce, aplikovaná na dvě proměnné, vytváří součet neboli funkci OR těchto dvou proměnných. Logický součet má hodnotu I, jestliže jedna nezávisle proměnná nebo druhá nezávisle proměnná nebo obě mají hodnotu I. Označuje se symbolem ∨ mezi dvěma proměnnými (A ∨ B). V praxi se používá ovšem zápis : Y = A + B Logický součet je vyjádřen „ nebo “ (v angličtině „OR“). Definice logického součtu může být vyjádřena vztahy : A B A+B 0 0 0 0 I I I 0 I I I I 0+0=0 0+I=I+0=I I+I=I 38 Počítačové systémy 2.1.2 Zákony a pravidla Booleovy algebry Pro vyhodnocení logických výrazů, různé úpravy a zjednodušení logických výrazů je nutné znát zákony Booleovy algebry : 1. Komutativní zákon : A+B=B+A 2. Asociativní zákon : A + (B + C) = (A + B) + C A . (B . C) = (A . B) . C A .B = B.A 4. Zákon o agresívnosti prvku I a O : 3. Distributivní zákon: A + B . C = (A + B) . (A + C) A . (B + C) = A . B + A . C 5. Zákon o neutrálnosti prvku I a O: A+0=A A.I = A A+I=I A.0=0 6. Zákon o vyloučení třetího : 7. Zákon dvojité negace : A+A=I A=A A.A =0 8.Zákon absorpce: 9.Zákon absorpce negace: A+A=A A.A = A A + A.B= A A . (A + B) = A A+A=I A.A =0 A+ A.B=A+ B A . (A + B) = A . B A + A.B = A + B A(A + B) = A.B Některé zákony vyplívají přímo z definic základních logických operací – jsou to operace součtu a součinu s hodnotami 0 a I. Ze všeobecných zákonů je nejvýznamnější de Morganův zákon, který se vyjadřuje dvěma rovnostmi. 10. De Morganův zákon : A + B + C + ... = A . B . C . . .. A . B . C . ... = A + B + C + ... Tento zákon lze tedy vyjádřit tak, že negaci funkce získáme nahrazením každé proměnné její negací a záměnou značek součtu a součinu navzájem. Při použití tohoto zákona je třeba věnovat velkou pozornost implicitním závorkám : A + B . C = A + (B . C) Tedy : A + B . C = A . (B + C ) a neplatí : A.B+ C 39 Počítačové systémy 2.2 Definice logické funkce 2.2.1 Pravdivostní tabulka Pravdivostní tabulka je tabulka, do které se zapisuje logická (Booleovská funkce). Pravdivostní tabulka má r + n sloupců a 2n řádků. Číslo r je počet sloupců výsledných funkcí (obyčejně bývá jedna výsledná funkce – tedy jeden sloupec). Číslo n udává počet proměnných. Číslo 2n udává počet všech možných kombinací proměnných, kde číslo n je počet proměnných. Tyto kombinace reprezentuje počet řádků. Příklad : Pokud je dána logická funkce, která má tři proměnné a jednu výslednou funkci, tak pravdivostní tabulka bude mít čtyři sloupce ( r + n = 1 + 3 = 4) a osm řádků (2n = 23 = 8). 2.2.1.1 Úplně zadaná funkce Logická funkce je úplně zadaná, jestliže je známa její hodnota I nebo 0 pro všechny možné kombinace hodnot proměnných. Těchto kombinací je pro n proměnných 2n. Lze tak sestavit pravdivostní tabulku. Příklad : Je dána funkce tří proměnných f (A, B, tedy vypadat následovně : A B C 0 0 0 0 0 I 0 I 0 0 I I I 0 0 I 0 I I I 0 I I I C), pravdivostní tabulka bude f 0 I I 0 0 I 0 I 2.2.1.2 Neúplně zadaná funkce Logická funkce je neúplně zadaná, když její hodnota pro některé kombinace hodnot proměnných je libovolná nebo není určena. S tímto případem se setkáváme, když některé kombinace hodnot jsou fyzikálně nemožné. Hodnotu funkce poté značíme x nebo ∅. Pravdivostní tabulka může vypadat následovně: A B C f 0 0 0 0 0 0 I I 0 I 0 x 0 I I x I 0 0 0 I 0 I I I I 0 0 I I I x 40 Počítačové systémy 2.2.2 Zápis logické funkce 2.2.2.1 Základní tvary funkce Logickou funkci můžeme zapsat ve dvou tvarech, nazývaných základní součtový a základní součinový tvar. V praxi se ale často používají názvy úplná disjunktivní normální forma – ÚDNF a úplná konjunktivní normální forma – ÚKNF. ÚDNF – je to součet základních součinů přímých nebo negovaných proměnných. Každý základní součin (minterm – z ang. minimal polynomial term) nabývá hodnoty I pro určitou kombinaci, kdy funkce má hodnotu I, a hodnoty 0 pro všechny ostatní kombinace. ÚDNF vyjadřuje funkci jako součet případů, kdy má hodnotu I. ÚKNF – je to součin základních součtů přímých nebo negovaných proměnných. Každý základní součet nabývá hodnoty 0 pro určitou kombinaci, kdy funkce má hodnotu 0, a hodnoty I pro všechny ostatní kombinace. ÚKNF vyjadřuje funkci jako součin případů, kdy má hodnotu 0. 2.2.2.2 Výpis logických funkcí z pravdivostní tabulky Tabulka funkce tří proměnných (příklad – libovolná funkce) A 0 0 0 0 I I I I B 0 0 I I 0 0 I I C 0 I 0 I 0 I 0 I f I 0 I 0 I 0 I 0 a) ÚDNF – základní součtový tvar Případy, kdy logická funkce je rovna I: 0 0 0 0 I 0 kombinace A, B, C I 0 0 I I 0 Odpovídající součiny: A.B.C A .B. C A.B.C A .B. C Výslednou funkci dostáváme jako součet základních součinů (algebraicky) : f =ABC+ABC+ABC+ABC 41 Počítačové systémy b) ÚKNF – základní součinový tvar Případy, kdy logická funkce je rovna 0 : Odpovídající součty : A+B+ C 0 0 I 0 I I kombinace A, B, C I 0 I I I I A+B+C A+B+ C A+B+C Výslednou funkci dostáváme jako součin základních součtů (algebraicky) : f = (A + B + C ) . (A + B + C ) . (A + B + C ) . (A + B + C ) V praxi se častěji používá součtový tvar, tedy ÚDNF. 2.2.2.3 Zápis logické funkce do Karnaughovy mapy Karnaughova mapa umožňuje přehledný zápis všech hodnot logické funkce. Porovnáme-li pravdivostní tabulky (např. tří proměnných), zjistíme, že levá strana tabulky je vždy stejná a nepřináší nové informace. Každé kombinaci nezávisle proměnných je v Karnaughově mapě přidělen jeden čtverec, do kterého zapisujeme výstupní hodnotu funkce. Počet čtverců je tedy roven počtu řádků v pravdivostní tabulce. Přiřazení vstupních proměnných jednotlivým řádkům a sloupcům se provádí úsečkami, někdy algebraickým označením. Zápisu funkce do Karnaughovy mapy se také někdy říká grafická metoda. Příklad : Pro příklad použijeme dříve uvedenou pravdivostní tabulku tří proměnných. A 0 0 0 0 I I I I B 0 0 I I 0 0 I I C 0 I 0 I 0 I 0 I f I 0 I 0 I 0 I 0 Postup : Nejprve si nakreslíme tabulku (Karnaughovu mapu), která bude mít počet políček (čtverců) stejný, jako počet řádků v pravdivostní tabulce (v našem případě 8). Potom přiřadíme vstupní proměnné jednotlivým řádkům a sloupcům např. pomocí úseček (tento způsob je více přehledný). Mapa by měla vypadat následovně : A B C 42 Počítačové systémy Poté na základě pravdivostní tabulky, respektive na základě vstupních proměnných, zapíšeme do tabulky hodnotu výstupní funkce. Konečná Karnaughova mapa by měla vypadat následovně (je použita forma ÚDNF): A I I 0 0 0 0 I I B C 2.3 Logická funkce n-proměnných Logická funkce fn n-proměnných nabývá všech možných hodnot, pro všechny možné kombinace n-proměnných. Počet funkcí je (22) n. Toto číslo roste velmi rychle např. pro n = 3 je počet 256 možných kombinací. Funkce rozdělujeme takto : 8. Funkce jedné proměnné, kde je počet funkcí ( 22)1 = 4. 9. Funkce dvou proměnných, kde je počet funkcí ( 22)2 = 16. 10. Funkce více než dvou proměnných. 2.3.1 Funkce jedné proměnné Funkce jedné proměnné je kombinace hodnot A. Pro jednu proměnnou jsou funkce uvedeny v následující tabulce : A 0 I f0 0 0 f1 0 I f2 I 0 f3 I I Funkce jsou označeny f0 až f1, kde index představuje hodnotu dvojkového čísla umístněného v odpovídajícím sloupci, přičemž váhy rostou po řádcích směrem nahoru. Platí: Konstanty : f0 = 0 a f3 = I Proměnná sama : f1 = A Negace proměnné : f2 = A 2.3.2 Funkce dvou proměnných Pro dvě proměnné je počet funkcí 16. Jsou dány pravdivostní tabulkou, kde 16 funkcí fn nabývá všech možných hodnot pro všechny možné kombinace dvou proměnných. Funkce jsou označeny f0 až f15 , kde index představuje hodnotu dvojkového čísla umístněného v odpovídajícím sloupci, přičemž váhy rostou po řádcích směrem nahoru. A 0 0 I I B 0 I 0 I f0 0 0 0 0 f1 0 0 0 I f2 0 0 I 0 f3 0 0 I I f4 0 I 0 0 f5 0 I 0 I f6 0 I I 0 f7 0 I I I f8 I 0 0 0 f9 I 0 0 I f10 I 0 I 0 f11 I 0 I I f12 I I 0 0 f13 I I 0 I f14 I I I 0 f15 I I I I 43 Počítačové systémy Funkce jedné proměnné : Proměnná sama : f0 = 0 a f15 = I f3 = A a f5 = B Negace proměnné : f12 = A a f10 = B Konstanty : Funkce odpovídající základním operátorům : Logický součet ve významu slučovacím : L Lgický součin : f7 = A + B f1 = A . B Osm nových funkcí : Součet ve významu vylučovacím neboli součet modulo 2 neboli nonekvivalence, též XOR, běžně zapisována A⊕B f6 = AB + AB Funkce ekvivalence, zapisovaná A ≡ B, nebo též A⊗B f9 = AB + A B Funkce ani jeden není nebo také NOR (negace logického součtu) – Piercova funkce f8 = A B = A + B Funkce alespoň jeden není neboli Schefferova funkce, nazývaná také NAND (negace logického součinu) f14 = A + B = AB Negace implikace – inhibice, zábrana f2 = AB Negace obrácené implikace f4 = AB Obrácená implikace f11 = A + B Implikace f13 = A + B Znalost logických funkcí je nutná zejména při návrhu, minimalizaci a konstrukci logických obvodů. Vynecháním některé funkce může dojít ke konstrukční závadě. Pomocí funkcí NAND a NOR lze vyjádřit jakoukoliv funkci. 44 Počítačové systémy 2.3.3 Funkce více proměnných Pro n proměnných je možné napsat (22)n určitých logických funkcí Například když si vezmeme funkci tří proměnných. Pro tři proměnné existuje 256 funkcí. Vyjádření takové funkce by bylo již nepřehledné. Pro vyjádření můžeme však využít již známých funkcí dvou proměnných, protože : f (A, B, C) = A . f (I, B, C) + A . f (0, B, C) Kontrola : Pro ověření tohoto vztahu stačí položit A = I nebo A = 0. Z toho plyne, že f (I, B, C) a f (0, B, C) jsou funkce dvou proměnných. Stejná úvaha se může použít pro případ více než tří proměnných. Příklad: Chceme určit logickou funkci zařízení které: • rozsvítí zelenou žárovku – F1, když v nějakém výrobním procesu překročí kritickou hodnotu pouze jedna ze sledovaných veličin, např. tlak (x), nebo teplota (y), nebo vlhkost (z), nebo žádná, • rozsvítí červenou žárovku - F2, když je překročena kritická hodnota kterýchkoli dvou veličin současně, • zapne sirénu - F3, když jsou překročeny kritické hodnoty všech tří veličin současně. Přiřazení hodnot 0 a 1 veličinám x,y,z (které budeme považovat logické proměnné) provedeme následovně. Když se překročí kritická hodnota veličiny je proměnná rovna 1, když se nepřekročí je rovna 0. Jde tedy o tři samostatné funkce, které podle slovního zadání lze přepsat do tabulky pro všechny kombinace hodnot x,y,z tak, že do příslušného řádku dosadíme za F=1 jestliže má žárovka svítit a 0 jestliže ne. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 F1 1 1 1 0 1 0 0 0 F2 0 0 0 1 0 1 1 0 F3 0 0 0 0 0 0 0 1 Každou funkci vyjádříme samostatně známým zápisem (ÚDNF): F1 = xyz + xyz + xy z + x yz F2 = xyz + x yz + xy z F3 = xyz 45 Počítačové systémy 2.4 Zjednodušování zápisu logické funkce Zjednodušování, často také minimalizace, logické funkce je určitý postup, kterým lze získat jednodušší vyjádření logické funkce. Minimalizací získáme jednodušší strukturu logické funkce při zachování stejného výsledku. Minimalizace se proto používá k nejjednodušší technické realizaci, tzn., že minimalizace je důležitá při konstrukci logických obvodů – stejná funkce může být zhotovena z menšího počtu logických členů = ekonomičnost. Nejpoužívanější jsou dva způsoby, a to algebraická minimalizace – pomocí Booleovy algebry, nebo grafická minimalizace. Grafických metod je více, například Quinova-McCluskeyho – metoda, ale nejpoužívanější je Karnaughova metoda. 2.4.1 Algebraická minimalizace Algebraická minimalizace logických funkcí je upravování logického výrazu podle zákonů a pravidel Booleovy algebry. Výsledná funkce je vyjádřená co nejjednodušeji se stejným chováním, což při realizaci znamená jednodušší konstrukci logického obvodu. Příklad algebraické minimalizace demonstrujeme na jednoduchém příkladě : A 0 0 I I B 0 I 0 I f I 0 I I Podle již uvedených a tedy i známých pravidel určíme výslednou funkci (ÚDNF): f = A B + AB + AB Tuto funkci dle Booleových zákonů a pravidel můžeme upravit na tvar: f = A B + A B + AB = A(B + B) + A B = A + A B = A + B Jak vidíme, výsledná zjednodušená logická funkce je omnoho jednodušší než předešlá funkce. Ovšem tato metoda je velice riskantní a úpravy pomocí této metody jsou obtížné. Pro více než tři proměnné je téměř nepoužitelná. 2.4.2 Grafická – Karnaughova metoda Pro zjednodušení funkce pomocí algebraické minimalizace spojujeme součiny (mintermy), které se liší v jediné proměnné. Tyto součiny se nazývají sousední. Příklad: 46 A B C D + A B C D = A B C (D + D) = A B C Počítačové systémy Karnaughova metoda se díky jasnému geometrickému postupu vyhýbá hledání sousedním součinů složitým algebraickým způsobem, který je navíc velmi nespolehlivý. Tato metoda se používá velmi dobře pro 3, 4 a 5 proměnných. Minimální logickou funkci stanovíme tak, že v Karnaughově mapě vytváříme tzv. podmapy. Podmapou rozumíme sjednocení 2k sousedních stavů, ve kterých nabývá logická funkce hodnoty 1 pro k = 0, 1, 2, ... , n-1. Každou podmapou vyloučíme k proměnných z dvou, čtyř až 2n-1 základních součinů. Snažíme se vytvářet co největší podmapy, abychom vyloučili co největší počet proměnných. Využíváme k tomu také neurčité stavy. Výběr podmap provádíme podle následujících pravidel: • vybranými podmapami musí být pokryty všechny jednotkové stavy logické funkce, • do podmapy spojujeme stejné stavy, které spolu sousedí hranou, a to i přes okraje mapy. Rohy mapy jsou též sousedními stavy. Členy dvou sousedních polí se od sebe liší jednou proměnnou a tuto proměnnou můžeme vyloučit, • podmapu pravidelného tvaru (čtverec, obdélník) vytváříme co největší, aby se ze skupiny stavů vyloučilo co nejvíce proměnných, • podmapy se mohou prolínat, • nevytváříme zbytečné podmapy, tzn. Že nespojujeme ty stavy, které už byly předtím pokryty jinou podmapou, • čím větší bude podmapa, tím jednodušší bude výsledný výraz. Příklad : Hledání sousedních součinů pomocí Karnaughovy metody, příklad je pro čtyři proměnné. A x D x x H x B C Jak vidíme, najít sousední součiny x zadaného políčka H je pomocí Karnaughovy metody jednoduché. 2.4.3 Zjednodušení úplně zadané funkce Do políčka zapíšeme pomocí logických hodnot I a 0 pro všechny kombinace proměnných odpovídající hodnoty funkce. Zjednodušování spočívá v hledání pro funkci v disjunktivním tvaru smyčky dvou, čtyř a osmi sousedních políček tak, aby se ze skupiny součinů (mintermů) vyloučila jedna, dvě nebo tři proměnné. Pro vyjádření smyček se používají pouze jen políčka obsahující I. 47 Počítačové systémy Příklad : Libovolná pravdivostní tabulka úplně zadané funkce čtyř proměnných A 0 0 0 0 0 0 0 0 I I I I I I I I B 0 0 0 0 I I I I 0 0 0 0 I I I I C 0 0 I I 0 0 I I 0 0 I I 0 0 I I Karnaughova mapa této funkce : D I 0 0 I D 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I f I 0 I 0 0 I 0 0 I I I I 0 I 0 0 A 0 I 0 0 0 I 0 0 I I I I C B Úplná disjunktní normální forma této funkce je : f = A B C D + A B C D + A B C D + A B C D + AB CD + A B C D + A B C D + A B C D Z této mapy můžeme udělat tři smyčky : Smyčka se dvěma políčky A B C D + A B C D = B C D (A + A) = B C D Smyčka se čtyřmi políčky na pravé straně A B C ( D + D) + A B C ( D + D ) = A B C + A B C = A B ( C + C) = A B Smyčka s políčky v rozích mapy A B D ( C + C ) + A B D ( C + C ) = A B D + A B D = B D (A + A) = B D Celkový výsledek logické funkce po minimalizaci – zjednodušení je tedy : f =BCD+AB+BD 48 Počítačové systémy Tento způsob upravování je náročný a zbytečně zdlouhavý. Nejpoužívanější způsob je vyloučit proměnné, které mění svůj stav a ponechají se pouze proměnné, které se nemění. Příklad: Smyčka se čtyřmi políčky v rozích mapy A – mění stav, takže se vyloučí B – zůstává stejná s hodnotou 0, zapíšeme C – mění svůj stav, takže se vyloučí D – zůstává stejná s hodnotou 0, zapíšeme Dostáváme tedy součin BD B D Jak je vidět, tento součin je naprosto shodný se součinem s předešlé metody. Z toho plyne, že obě metody jsou správné, ale poslední metoda je jednodušší, protože se vyhneme upravování členů. 2.4.4 Zjednodušení neúplně zadané funkce Pro zjednodušení neúplně zadané funkce použijeme funkci stejnou jako pro zjednodušování úplně zadané funkce. Neúplně zadaná funkce může v určitých políčcích mapy nabývat libovolné hodnoty 0 nebo 1 – zapisujeme ji symbolem X. Při minimalizaci funkce se této skutečnosti využívá tak, že vytváříme podmapy s využitím neurčitých stavů, které považujeme za jednotkové, nebo za nulové, jak je to z hlediska minimalizace nejvýhodnější. Pro usnadnění smyček zapíšeme X do políček místo hodnoty I, v ostatních případech 0. Zápis bude tedy vypadat následovně: f =BD+CD+AD Pravdivostní tabulka neúplně zadané funkce: A 0 0 0 0 0 0 0 0 I I I I I I I I B 0 0 0 0 I I I I 0 0 0 0 I I I I C 0 0 I I 0 0 I I 0 0 I I 0 0 I I D 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I f I X I 0 0 I X 0 I I I I 0 I 0 X 49 Počítačové systémy Karnaughova mapa neúplně zadané funkce: A D I X 0 I 0 I 0 X 0 I X 0 I I I I C B f = B D + C D + AD Tyto metody jsou použitelné pro zjednodušování logických obvodů realizovaných pouze pomocí základních logických operátorů – logického součinu a součtu. Pro systémy realizované pomocí složitějších funkcí jsou nepoužitelné. 2.5 Obvodové znázornění Booleovy algebry Pravidla pro kresbu značek: • • • 50 Vstup je vždy zleva, výstup zprava. Značky se nesmějí otáčet. Spoje mají být rovnoběžné s okraji listu. Počítačové systémy 2.5.1 Shefferova algebra Je vybudovaná na jedné logické funkci = negace logického součinu NAND. • Pro libovolný počet proměnných Pravidla: • • Pomocí operace NAND lze realizovat všechny operace Booleovy algebry. Neplatí zákon asociativní: Obvodové znázornění Shafferovy algebry: 2.5.2 Pierceova algebra Vystavěna na operaci NOR (negace logického součtu) - obdobné jako Shefferova algebra. Obvodové znázornění Pierceovy algebry: 51 Počítačové systémy 2.5.3 Převod Booleovy algebry na Shefferovu algebru Opakovanou aplikací de Morganových pravidel: Př.: Kontrolní otázky: 4. Čím se liší zápis logické funkce pomocí úplné disjunktivní normální formy od úplné konjunktivní normální formy. 5. Jaký bude počet logických funkcí pro 4 proměnné? 6. Proč je algebraická minimalizace neúplně zadaných funkcí velmi obtížná a téměř nepoužitelná? Úkoly k zamyšlení: 3. Zamyslete se nad postupem návrhu logických funkcí reálných řídících systémů od popisu funkce slovním zadáním, přes pravdivostní tabulku, Karnaughovu mapu, minimalizaci funkce až po převod minimalizované funkce do Shefferovy algebry a výsledné zapojení logických obvodů realizovaných ze členů NAND. Korespondenční úkol: 2. Navrhněte zapojení logických obvodů ze členů NAND realizující řízení výtahu. Motor výtahu je zapnut, když dveře v 1. poschodí a 2. poschodí jsou zavřeny, cestující jsou v kabině a je stlačeno tlačítko v kabině., nebo dveře v 1. poschodí a 2. poschodí jsou zavřeny, cestující nejsou v kabině a je stlačeno odesílací tlačítko. Shrnutí obsahu kapitoly V této kapitole jste se seznámili se základními principy návrhu logických funkcí pomocí Booleovy algebry. Důraz v této kapitole byl kladen na pochopení způsobu zápisu logických funkcí a jejich minimalizaci. Velká pozornost byla věnována realizaci těchto funkcí pomocí logických obvodů. 52 Počítačové systémy 3. Reprezentace základních logických funkcí elektronickými obvody V této kapitole se dozvíte: • • Jaké jsou základní interpretace logických hodnot pomocí elektrického napětí a proudu? Jaké konkrétní hodnoty napětí jsou přiřazeny logickým úrovním v logice TTL? Po jejím prostudování byste měli být schopni: • • Znát způsob interpretace logických hodnot pomocí elektrických signálů. Porozumět základům TTL logiky. Klíčová slova této kapitoly: Hladinové signály, impulsové signály, TTL, zakázané pásmo. Doba potřebná ke studiu: 1 hodina Průvodce studiem Studium této kapitoly je jednoduché a popisným způsobem zde nastudujete principy zobrazení logických úrovní elektrickými signály. Na studium této části si vyhraďte 1 hodinu. 3.1 Fyzikální podstata signálů HLADINOVÉ IMPULSOVÉ RELÉ 53 Počítačové systémy AMPLITUDA KMITOČET FÁZE Časová závislost logických úrovní Zakázané pásmo v logických úrovních Hodnoty jsou stanoveny pro každou výrobní technologii zvlášť. L ~ 0 H ~ 1.........................pozitivní logika L ~ 1 H ~ 0.........................negativní logika Vzhledem k tomu, že parametry reálného logického členu se různí kus od kusu (užívají se odpory s určitou tolerancí, tranzistory a diody, které mohou mít různé parametry), není možné stanovit přesnou hodnotu napětí odpovídající logické “0” resp. “1” v té které logické síti. Místo toho se logické členy 54 Počítačové systémy konstruují tak, aby nebyly citlivé na změnu napětí vstupních parametrů pokud tyto leží v určitém intervalu napětí. Tolerance logických hodnot pro negativní a pozitivní logiku Například pro hradla TTL (transistor-transistor-logic) jsou příslušné intervaly následující: Uvst(0) = max. 0,8 V Uvst(1) = min. 2 V neboli pro logickou “0” je povolený interval vstupních napětí 0 - 0.8V pro logickou “1” 2 - 5 V. Hradlo samo má zaručovaná výstupní napětí: Uvýst(1) = min. 2,4 V Uvýst(0) = max. 0,4 V tj. hluboce v povolené toleranci napětí vstupních. Napájecí napětí je (5± 0,25) V. Uvedené hodnoty jsou typické pro tzv. tranzistorovou logiku a byly implementovány u celé řady výrobců logických obvodů. 3.2 Technologie TTL (tranzistor-tranzistor logic) Největšího rozšíření dosáhly ve své době integrované logické systémy TTL (Transistor-Transistor-Logic). V dnešní době jsou však nahrazovány systémy STTL, MOS a CMOS, které mají nižší spotřebu a srovnatelnou rychlost. Zachovala se však definice logických úrovní; pokud má moderní logický systém stejně definované napěťové úrovně logické nuly a jedničky, nazývá se kompatibilní s TTL na logických úrovních (logic level TTL compatible). Parametry TTL: - napájecí napětí + 5V - L < 0,8V L ~ 0,4V - H > 2,0V H ~ 2,4V Základní funkce jsou zřejmé z následujících obrázků. 55 Počítačové systémy Invertor v TTL NAND pomocí dvou tranzistorů NOR pomocí dvou tranzistorů 56 Počítačové systémy x1 x2 NAND x1 x2 NOR 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 Na následujícím obrázku je naznačena praktická realizace hradla NAND. Vstupem je víceemitorový tranzistor. Základní hradlo NAND Aby byla umožněna vyšší zatížitelnost hradla, je na konci hradla zabudován koncový stupeň. Z důvodů omezení záporných napěťových špiček na vstupech hradla byly vstupy opatřeny ochrannými diodami, které nedovolí vyšší záporné napětí na vstupech než cca -0,6V. Funkce obvodu je následující: a. Všechny vstupy jsou ve stavu logické jedničky. V tomto případě tranzistor T2 pracuje v inverzním režimu. Tranzistor T4 je saturován a tranzistor T3 je vybuzen. Napětí na kolektoru tranzistoru T4 je přibližně UD + Ukesat. Aby byl tranzistor T5 uzavřen (má na bázi napětí Uk4) je do obvodu vložena dioda D, která posunuje napětí emitoru T5 na napětí Ukesat+UD. Tranzistor T3 je tedy otevřen a T5 uzavřen. Na výstupu je napětí Ukesat, což je napětí logické 0. b. Jeden nebo více vstupů jsou ve stavu logické nuly. Pak je tranzistor T4 a rovněž T3 uzavřen a odpor R1 zaručuje nasycení tranzistoru T5. Ten slouží nyní jako emitorový sledovač pro výstupní napětí, takže může do zátěže dodat podstatně větší proud než tomu bylo u předchozího zapojení. Napětí na výstupu je menší než E o spád na diodě báze-emitor tranzistoru T5 a na diodě D, je tedy U1 ≈ E - 2 UD. Je užitečné si všimnout, že 57 Počítačové systémy napájecí napětí E nemůžeme libovolně zmenšovat. Je-li totiž T3 otevřen, je napětí na bázi T2 napětí UB2 ≈ 3UD. Aby T2 pracoval v inverzním režimu, je třeba, aby napětí na emitoru T2 bylo větší než toto napětí. Vzhledem k tomu, že emitorové napětí T2 je vlastně výstupní napětí předcházejícího hradla stejného typu (ve stavu logické jedničky), musí být U1> UB2 neboli E > 5UD. Minimální napětí logické jedničky musí tedy být U1 > 3UD. Na TTL hradlo v uvedeném zapojení může být zapojeno až 15 dalších hradel stejného typu. Typické zpoždění při průchodu hradla je ≥ 10 ns a výkonová ztráta ≥ 15 mW. Dvojčinný stupeň neumožňuje propojení několika výstupů popsaných hradel NAND paralelně. K tomu je zapotřebí dalšího hradla typu OR. Toto hradlo však můžeme vypustit, jestliže použijeme hradel s tzv. otevřeným kolektorem. Principiální zapojení hradla NAND s otevřeným kolektorem Do výstupního obvodu je nutné zapojit vnější odpor, na který však můžeme připojit další hradlo s otevřeným kolektorem. Spojením několika výstupů s otevřeným kolektorem přes vnější odpor vznikne funkce “montážního AND”. Protože však většinou spojujeme negované výstupy hradel (funkce NAND) vytvoří se (použitím transformace pomocí de Morganova teorému) funkce “montážního OR” (wired OR). Příklad paralelního zapojení dvou hradel a ekvivalentní schema zapojení je na následujícím obrázku.Logická funkce je dána následujícím Booleovským výrazem: . 58 Počítačové systémy Příklad paralelního zapojení dvou hradel a ekvivalentní schema zapojení 3.3 Systémy MOS/CMOS Jednou z podmínek k opravdu masovému rozšíření mikroelektroniky je malá spotřeba zařízení, která umožňuje napájet přístroj z baterií. Možnost malé spotřeby otevřely logické systémy s tranzistory řízenými polem MOSFET a zejména systémy CMOS. Základem systémů MOS je opět invertor, ovšem s tranzistorem řízeným elektrickým polem. Používají se tranzistory s indukovaným kanálem, které mají vhodnou polaritu tzv. prahového napětí. Prahové napětí Up je napětí na řídicí elektrodě G (hradlu) tranzistoru, při kterém protéká transistorem určitý malý definovaný proud (např. 10 nA); tranzistor je při tom napájen definovaným napětím, např. 10 V. Je zřejmé, že v zájmu zjednodušení napájení zařízení je třeba, abychom tranzistor “zavřeli” napětím stejné polarity, jako je napětí zdroje. Tuto vlastnost mají právě MOS tranzistory s obohaceným kanálem. Invertor je možné realizovat s odporovou zátěží, jak je znázorněno na následujícím obrázku, avšak z hlediska jednoduchosti technologie výroby je mnohem jednodušší realizovat zátěž pomocí dalšího tranzistoru MOS, jehož elektroda G je na pevném napětí UG, které může být menší nebo rovno napětí zdroje E. Invertor s odporovou zátěží 59 Počítačové systémy Invertor se dvěma tranzistory MOS Napájecí napětí bývá 12 V, což je dáno velikostí prahového napětí - okolo 4 V. Aby bylo možno snížit napájecí napětí, byla vypracována řada technologií, které snižují prahové napětí až na 1.5 - 2V (např. technologie MNOS, která pro izolací G elektrody užívá kombinace vrstev nitridu a kysličníku křemíku, technologie "silicon gate MOS", kde se pro ovládací elektrodu používá polykrystalický křemík obohacený bórem, technologie RMOS s molybdenovou ovládací elektrodou apod.). Kombinací MOSFETových spínačů je možné konstruovat jak hradlo NAND, tak hradlo NOR. 60 Počítačové systémy MOS hradlo NAND MOS hradlo NOR Obvody s tranzistory MOS sice nevyžadují k ovládání prakticky žádný proud (kromě proudu nabíjejícího parazitní kapacity mezi řídicí elektrodou a kanálem), avšak v sepnutém stavu odebírají ze zdroje proud, který se bezúčelně tratí v zátěži. Významným krokem ke snížení spotřeby, umožněným zejména rozvojem technologie výroby integrovaných MOSových obvodů proto byla možnost realizace tranzistorů MOS s obohacenými kanály typu P a typu N na jediném čipu a tím i možnost realizace komplementárních MOSových obvodů (CMOS). Invertor CMOS se liší od invertoru typu MOS tím, že jeho zátěž je tvořena MOS tranzistorem opačné polarity a řídicí elektrody obou tranzistorů jsou spojeny. Prahová napětí jsou volena tak, aby při vstupním napětí rovném logické nule nebo jedničce byl vždy otevřen pouze jeden z obou 61 Počítačové systémy tranzistorů. Tranzistory tak fungují prakticky jako spínače, které připínají výstup buď na napájecí napětí E, nebo k zemi. Je zřejmé, že pokud nezatěžujeme výstup takového obvodu, je jeho spotřeba v klidovém stavu prakticky nulová. Výstup obvodu má relativně velice malou impedanci v obou stavech (řádově stovky ohmů), což umožňuje propojovat jednotlivá pouzdra s obvody běžnou technikou tištěných spojů. Jednoduchost obvodů je umožňuje sdružovat ve značné hustotě na čipu a vytvářet tak obvody velké a extrémně velké integrace. Např. operační paměti počítačů se dnes vyrábějí téměř výhradně technologií MOS nebo CMOS (průměrná doba vybavení informace z paměti MOS je okolo 20-100 ns). Rovněž naprostá většina dnes vyráběných mikroprocesorů využívá systému MOS nebo CMOS. Jako příklad uvádíme na obr. 7.18.a,b hradla NAND a NOR v systému CMOS. CMOS hradlo NAND CMOS hradlo NOR Je třeba ještě poznamenat, že ve skutečných obvodech MOS a CMOS je nutno chránit vstupní elektrodu před průrazem vysokým statickým napětím. Nejběžnější ochrana je pomocí Zenerovy diody, která je zapojena mezi substrát (normálně uzemněný) a řídící elektrodu. Tato dioda v normálním režimu nevede a otevírá se pouze dosáhne-li napětí na řídící elektrodě určité hodnoty. 62 Počítačové systémy V integrovaném obvodu je ochrana nutná ovšem pouze pro vstup těch hradel, které jsou vyvedeny ven z pouzdra. 3.4 Logická hradla s třemi stavy V některých případech při spojování výstupů hradel je výhodné používat tzv. třístavových logických členů, kdy vedle výstupních aktivních stavů na úrovni logické nuly a jedničky existuje ještě třetí stav, kdy výstup hradla je v podstatě od sběrnice odpojen (připojen ke sběrnici přes velkou impedanci). Tento stav umožňuje stejně jako hradlo s otevřeným kolektorem připojení výstupů hradel do jednoho bodu. Vedle dvou aktivních vstupů A a B má hradlo blokovací vstup UB. Vybuzením tranzistoru T1 se uzavřou tranzistory T3 až T5 a hradlo má velkou výstupní impedanci. Principiální zapojení třístavového hradla NAND Kontrolní otázky: 7. Proč musí být mezi logickými úrovněmi určité zakázané pásmo? 8. Lze kombinovat v jenom logickém obvodu použití pozitivní a negativní logiky? Úkoly k zamyšlení: 4. Zamyslete se nad použitím amplitudového a kmitočtového způsobu kódování logických úrovní? 63 Počítačové systémy Shrnutí obsahu kapitoly V této kapitole jste se seznámili s principy zobrazení logických úrovní pomocí elektrických signálů. Důraz v této kapitole byl kladen na pochopení možnosti různých způsobů kódování logických úrovní. 64 Počítačové systémy 4. Základní logické členy V této kapitole se dozvíte: • Jaké jsou základní logické členy a jejich schematické značky? Po jejím prostudování byste měli být schopni: • • Charakterizovat funkce základních logických členů. Porozumět způsobu kreslení schematických značek logických členů. Klíčová slova této kapitoly: Invertor, AND, OR, NAND, NOR, XOR, NOXOR. Doba potřebná ke studiu: 1 hodina Průvodce studiem Studium této kapitoly je jednoduché a seznámíte se s logickými členy a jejci způsobu kreslení ve schematech. Na studium této části si vyhraďte 1 hodinu. 4.1 Invertor USA DIN 65 Počítačové systémy 4.2 AND 4.3 OR 66 Počítačové systémy 4.4 NAND 4.5 NOR Př.: NOR x1 x2 y 0 0 1 0 1 0 1 0 0 1 1 0 67 Počítačové systémy 4.6 Ostatní logické členy 4.6.1 Nonekvivalence – XOR 0 0 1 1 x1 x2 y y = x1 x2 0 0 1 1 0 1 1 0 Př. Generátor parity: y = a Schématická značka: 4.6.2 Ekvivalence - NOXOR 68 b c d = (a b) (c d) Počítačové systémy Kontrolní otázky: 9. Odvoďte pravdivostní tabulku generátoru parity 4 vstupních proměnných z předchozího příkladu? Úkoly k zamyšlení: 5. Zamyslete se, které typy základních logických členů stačí pro vytváření logických sítí? Korespondenční úkol: 3. Nakreslete logické schema obvodu realizující funkci f =BCD+AB+BD Využijte a. členů NOT, OR, AND b. členů NAND Shrnutí obsahu kapitoly V této kapitole jste se seznámili se základními logickými členy a jejich schematickými značkami. 69 Počítačové systémy 5. Kombinační logické obvody V této kapitole se dozvíte: • Jak jsou realizovány a jaké mají funkce vybrané kombinační logické obvody? Po jejím prostudování byste měli být schopni: • • • Charakterizovat logické funkce základních kombinačních logických obvodů. Znát pravdivostní tabulky a zapojení těchto kombinačních logických obvodů. Porozumět způsobu vytváření kombinačních logických obvodů. Klíčová slova této kapitoly: Multiplexor, dekodér, sčítačka. Doba potřebná ke studiu: 2 hodiny Průvodce studiem Studium této kapitoly je důležité pro pochopení funkcí základních částí logiky počítače a proto si na studium této části si vyhraďte 2 hodiny.Po celkovém prostudování a vyřešení všech příkladů doporučujeme vypracovat korespondenční úkol. Kombinační logické obvody provádí přímou transformaci vstupních logických proměnných na výstupní. Realizují určitou logickou funkci kterou můžeme popsat např. pomocí pravdivostní tabulky. Definujme si základní rozdíly mezi kombinačními a sekvenčními obvody: Kombinační obvod: – výstupy jsou závislé pouze na vstupních kombinacích a ne na jejich předchozích hodnotách, – jediné kombinaci vstupních hodnot odpovídá jediná výstupní kombinace. Sekvenční obvod: – hodnota výstupní veličiny závisí nejen na okamžité kombinaci hodnot vstupních veličin , ale i na posloupnosti hodnot vstupních veličin jenž jsou uchovány v paměťových členech, v podobě vnitřních signálů logických obvodů, nebo-li v předcházejících časových okamžicích. 5.1 Kódování, dekódování a převody kódů 5.1.1 Převod desítkových číslic do kódu 8421 70 Počítačové systémy kód 8 4 2 1 kód 1 z 10 D C B A 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 10 11 12 13 14 15 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 } 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 nepoužité kombinace Obr. Kombinační tabulka NOR 1 3 5 7 9 >=1 A A 2 3 >=1 B 6 7 B 4 5 >=1 C 6 7 C 8 >=1 D 9 D Obr. Výsledné zapojení s obvody NOR 71 Počítačové systémy NAND & 1 3 5 7 9 A A & 2 3 B 6 7 B & 4 5 C 6 7 C & 8 D 9 D Obr. Výsledné zapojení s obvody NAND 5.1.2 Převod z kódu 8421 na desítkové číslice AB AB 00 01 11 10 CD 00 AB 00 01 11 10 00 CD 00 01 11 10 00 0 2 3 1 9 01 X X 01 1 X X 01 8 X X 11 X X X X 11 X X X X 11 X X X X 10 1 10 4 10 4 = ABC Obr. Minimalizace funkcí 72 CD 8 = AD 6 7 0 = ABCD 1 = ABCD 2 = ABC 3 = ABC 4 = ABC 5 = ABC 6 = ABC 7 = ABC 8 = AD 9 = AD 5 Počítačové systémy A & B 0 C D A & B 1 C D A & 2 B C A & 3 B C A & 4 B C A & 5 B C A & 6 B C A & 7 B C A & 8 D A & 9 D Obr. Realizace zapojení s obvody NAND 73 Počítačové systémy & 0 & B C D & 1 & 2 & B & 3 C & 4 & B & 5 C & 6 & B & 7 C & 8 & 9 D A A Obr. Upravené zapojení pro obvody NAND s menším počtem vstupů 5.1.3 Převod do Grayova kódu Grayův kód má tu vlastnost , že se při přechodu od jednoho kódového slova ke druhému mění vždy jen hodnota jednoho bitu. 74 Počítačové systémy 8 4 2 1 D1 C1 B1 A1 0 1 2 3 4 5 6 7 8 9 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 D1 Gray C1 B1 A1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 Obr. Kombinační tabulka & C2 & & C1 & D2 C2D2 Obr. Upravený obvod EXL-OR použitý ve výsledném zapojení = A2 A1 = [(D2 + C2) + B2] + A2 = B2 & B1 = [(D2 + C2) + B2] C2D2 C2 = & D2 C1 = (D2 + C2)C2D2 D2 D1 Obr. Výsledné zapojení s obvody EXL-OR 75 Počítačové systémy 5.1.4 Multiplexor Z = A. X + .Y 5.1.5 4-vstupý multiplexor 4 datové vstupy, 2 adresové vstupy A1 A2 Q Q = . . D0 + . A2. D1 + 0 0 D0 + A1. . D2 + A1. A2. D3 0 1 D1 1 0 D2 1 1 D3 76 Počítačové systémy 5.1.6 Dekodér D0 = . D1 = . A2 D2 = A1. D3 = A1. A2 Realizace MPX pomocí dekodéru: 77 Počítačové systémy 5.2 Porovnání dvojkových informací 5.2.1 Rovnost dvou proměnných B2 B1 A2 A1 F1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Obr. Kombinační tabulka a minimalizace 78 A 1A 2 B 1B 2 00 01 11 10 00 1 0 0 0 01 0 1 0 0 11 0 0 1 0 10 0 0 0 1 F1 = A1B1+A1B1+A2B2+A2B2 F1 = (A1B1+A1B1)(A2B2+A2B2) Počítačové systémy & A1 A1B1 B1 & A1B1+A1B1 & & A1B1 F1 = (A1B1+A1B1)(A2B2+A2B2) & A2 A2B2 B2 & A2B2+A2B2 & A2B2 Obr. Výsledné zapojení 5.2.2 Jednobitový porovnávací obvod F2 F1 B A A=B 0 0 1 1 0 1 0 1 1 0 0 1 F3 A>B A<B F1 = AB + AB 0 1 0 0 0 0 1 0 F2 = AB F3 = AB & A A>B AB & A+B B & A=B & AB A<B Obr. Kombinační tabulka a zapojení 5.2.3 Dvoubitový porovnávací obvod 79 Počítačové systémy & A1 A1B1 & A1B1A2B2 & & F2 A1 + B1 & A1B1 A1B1A2B2 & B1 & F3 A2 & A2B2 & A2B2 & A1 + B1 B2 F1 B2 B1 A2 A1 A 1A 2 B 2B 2 00 01 11 10 00 01 11 10 00 0 1 1 1 0 0 0 0 01 0 0 1 0 1 0 0 1 11 0 0 0 0 1 1 0 1 10 0 1 1 0 1 0 0 0 F2 F3 F2 = A2B2 + A1A2B1 + A1B1B2 F3 = A2B2 + A1A2B1 + A1B1B2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 F2 F3 A=B A>B A<B 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 Obr. Kombinační tabulka, minimalizace a výsledné zapojení 5.3 Parita & A1 & & A1 A1 + A2 = PL & A2 Obr. Zapojení a schematická značka základního zapojení liché parity 80 = PL A2 Počítačové systémy A1 =1 =1 A2 PL A1 A3 =1 A2 A1 A2 A3 =1 =1 =1 A4 PL A3 =1 =1 PL =1 A5 A4 =1 =1 A6 A1 =1 A2 A3 =1 =1 A1 =1 PL A4 A5 A1 A2 A3 =1 =1 PL A5 =1 =1 =1 A6 =1 PL A4 A5 =1 A4 =1 A2 A3 =1 A7 =1 =1 A8 =1 A6 Obr. Zapojení pro různý počet bitů A1 A1 A2 A1 & & & & & PL A3 & A1 A2 A3 & lichý A2 A3 & A3 Obr. Základní obvod pro kontrolu liché parity tří bitů 81 PL Počítačové systémy A2 A2 & & & & A3 & PS & & A3 A1 A1 A2 A3 & sudý A1 Obr. Základní obvod pro kontrolu sudé parity tří bitů 5.4 Sečítačky a odečítačky 5.4.1 Sčítačka MODULO 2 Činnost sčítačky modulo 2 je dána následující tabulkou. Jednotlivé číslice vstupující do součtu jsou x a y, z je číslice dvojkového aritmetického (nikoli logického) součtu x + y = z. xyz 000 011 101 110 Vzhledem k tomu, že číslice x a y považujeme za logické proměnné, můžeme z považovat za výstupní funkci a vytvořit úplnou disjunktní normální formu z = xy + x y Při realizaci sčítačky z logických členů NAND je vhodné výraz pomocí algebraických úprav změnit na: z = (x + y)xy 82 PS Počítačové systémy 0 & 0 0 & 0 & 0 0 0 0 0 0 & 0 0 5.4.2 Jednobitová neúplná sečítačka součet přenos & A & & S & A B S C 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 1 B C C =1 A S C B S = AB + AB C = AB 5.4.3 Jednobitová úplná sečítačka A B 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Ci AB S C0 Ci 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 00 01 11 10 0 0 1 0 1 1 1 0 1 0 S = ABCi + ABCi + ABCi + ABCi = = A(B + Ci) + A(B + Ci) = = A + B + Vi AB Vi 00 01 11 10 0 0 0 1 0 C0 = AB + Ci A + CiB = 1 0 1 1 = AB + Ci (A + B) 1 Obr. Kombinační tabulka a minimalizace 83 Počítačové systémy A B Ci & A B Ci & A B & A B Ci & A B Ci & A S & & C0 C0 & Ci B & Ci Obr. Zapojení s obvody NAND =1 Ci S0 C =1 A S & C0 B Obr. Zapojení s neúplnými sečítačkami & A & & & S0 & & B S0 Ci & C0 Obr. Příklad zapojení 5.4.4 Jednobitová úplná odečítačka 84 Počítačové systémy A B V1 AB D V0 Vi 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 1 00 01 11 10 0 0 1 0 1 1 1 0 1 0 D = ABVi + ABVi + ABVi + ABVi = = A + B + Vi AB Vi 00 01 11 10 0 0 1 0 0 1 1 1 0 1 V0 = AB + AVi + BVi Obr. Kombinační tabulka a minimalizace A B & Vi & AB Vi Vi >=1 Vi(AB + AB) AB + AB A B & AB + AB V(AB + AB) Vi AB = >=1 AB + AB Vi A B >=1 D D >=1 Vi(AB + AB) & AB Obr. Příklad zapojení 5.4.5 Polosčítačka xySP 0000 S = . y + x. 0110 1 0 1 0 P = x. y 1101 85 Počítačové systémy 5.4.6 Úplná sčítačka xi yi pi-1 si pi 0 0 0 00 0 0 1 10 0 1 0 10 0 1 1 01 1 0 0 10 1 0 1 01 1 1 0 01 1 1 1 11 Kontrolní otázky: 10. Nakreslete logické schema úplné sčítačky? 11. Proč má úplná sčítačka 3 vstupy a 2 výstupy? Korespondenční úkol: 4. Navrhněte kombinační logický obvod realizující sedmisegmentového zobrazovače hexadecimálních znaků. dekodér Shrnutí obsahu kapitoly V této kapitole jste se seznámili se základními kombinačními logickými obvody. Důraz v této kapitole byl kladen na pochopení vytváření logických obvorů. Velká pozornost byla věnována funkcím sčítačky. 86 Počítačové systémy 6. Sekvenční logické obvody V této kapitole se dozvíte: • • • • Jaké jsou základní sekvenční logické obvody? Z jakých logických prvků se sestavují registry? Jaké funkce a složení mají čítače? Jaké jsou realizovány seriové a paralelní vstupy a výstupy? Po jejím prostudování byste měli být schopni: • • • Charakterizovat základní typy klopných obvodů. Znát způsob návrhu sekvenčních logických obvodů. Porozumět funkcím registrů a čítačů. Klíčová slova této kapitoly: Klopný obvod, registr, čítač, seriový vstup, paralelní vstup. Doba potřebná ke studiu: 4 hodiny Průvodce studiem Studium této kapitoly je složitější oproti předchozím kapitolám. Pochopení funkce sekvenčních logických obvodů je důležité pro znalost dalších částí počítače. Na studium této části si vyhraďte alespoň 4 hodiny.Po celkovém prostudování a vyřešení všech příkladů doporučujeme vypracovat korespondenční úkol. Sekvenční obvod Sekvenční obvody se dělí na: • Synchronní - Jsou synchronizovány samostatnými signály , které se nazývají synchronizační , nebo hodinové a určují jednotlivé takty ( časové intervaly ) tj. diskrétní čas 87 Počítačové systémy • Asynchronní - U asynchronních logických obvodů nastává okamžitá změna stavu na vstupu . Ze vstupních hodnot se vygeneruje výstupní signál 6.1 Klopný obvod RS Základním obvodem, který je schopen setrvat v určitém stavu (logické 0 nebo 1) bez aplikace vnějších logických úrovní (mimo napájecí napětí ovšem) je tzv.paměťová buňka, neboli klopný obvod. Nejjednodušší klopný obvod vytvoříme pomocí dvou NAND členů, kterým křížem propojíme vstupy a výstupy. Pravdivostní tabulka takového klopného obvodu je uvedena na následujícím obrázku. R 0 1 0 1 S 1 0 0 1 Qi 1 0 0 1 Qi-1 Zakázaný stav Zapojení RS klopného obvodu je uvedeno na následujícím obrázku. S R 1 & Q & Q 1 RS klopný obvod V sekvenčním logickém systému je třeba, aby se nastavení nebo nulování klopných obvodů dále v synchronismu s hodinovými impulsy. To lze zabezpečit tak, že místo invertorů na předchozím obrázku použijeme 88 Počítačové systémy dvoustupová hradla NAND, která otevíráme hodinovými impulsy. Je zřejmé, že je-li úroveň na hodinovém vstupu log 0 (stav mezi dvěma impulsy), nezmění klopný obvod svůj stav ; pamatuje si jej po dobu mezi dvěma hodinovými impulsy. Jsou-li vstupy R a S uzemněny (je-li na nich logická nula), pak na výstupech řídících hradel je logická jednička nezávisle na úrovni hodinového vstupu. Výstupy Q a zůstávají proto na úrovni, do které se dostaly před tím, než jsme na oba vstupy R a S logickou nulu přivedli. Přivedením logické nuly na oba vstupy R i S zablokujeme tedy stav výstupů Q a , které jsou nyní nezávislé na hodinových impulsech. S & & A3 Q A1 C & R & Q A2 A4 RS klopný obvod s hodinovým vstupem Q Q S C R T Předpokládejme nyní, že S = 1, R = 0. Po příchodu hodinového impulsu je pak na výstupu hradla A3 logická 0 a na výstupu hradla A4 logická jednička. Prostudujeme-li logické úrovně zapojení uvidíme, že obvod nastavíme do stavu, kdy Q = 1 a = 0. Tento stav setrvává do té doby, dokud v době příchodu hodinového impulsu je na vstupech S = 1 a R = 0, Ze symetrie obvodu okamžitě plyne, že pro S = 0 a R = 1, nastavíme obvod po příchodu hodinového impulsu do stavu Q = 0 a = 1. Je-li S = 1 = R, nastaví se výstupy hradel A3 a A4 po příchodu hodinového impulsu do stavu logické nuly. Tento stav by opět implikoval, že oba výstupy hradel A1 a A2 by měly být ve stavu logické jedničky, což je neslučitelné se zapojením klopného obvodu. Ve skutečnosti se stane to, že v závislosti na tom, 89 Počítačové systémy který z výstupů hradel A3 a A4 stoupá po ukončení hodinového impulsu rychleji, nastaví se na výstupech a Q buď stav Q = 1 nebo Q = 0. Stav výstupů proto nezáleží ani na stavech vstupů ani na úrovni hodinového impulsu, ale na vnitřních parametrech obvodu ; je to tedy neurčitý stav a v tabulce je znázorněn otazníkem. Proto se při buzení tohoto klopného obvodu musí pamatovat na to, aby stav R = S = 1 nemohl nastat. Kromě právě popsaného klopného obvodu R-S jsou používány tři další typy klopných obvodů : dvojčinné klopné obvody J-K, T a D. Dvojčinné klopné obvody J-K, D a T odstraňují neurčitý stav obvodu R-S. Obvod T pracuje jako binární obvod, který mění svůj stav po každém hodinovém impulsu. 6.2 Klopný obvod J-K J K Qi 0 1 0 1 1 0 0 1 0 1 Qi-1 RealizaceJK klopného obvodu z RS klopného obvodu 90 Počítačové systémy Schematická značka JK klopného obvodu s hodinový vstupem 6.3 Klopný obvod typu T(RS-T) Mění svůj stav při každém hodinovém impulsu. Je tedy Qn+1 =Qn. Z pravdivostní tabulky obvodu J-K můžeme vidět, že tuto funkci plní obvod J-K pro J = K = 1. Obvod typu T má tedy dva vstupy - vstup T (spojené vstupy JK) a vstup pro hodinové impulsy. Je-li T = 1, obvod se překlápí, Qn+1 = Qn, jeli T = 0, obvod zůstává překlopen do původního stavu; Qn+1 = Qn. Tato funkce obvodu T je využita v synchronních čítačích - viz níže. Pokud nepotřebujeme obvod T elektricky ovládat, vystačíme s obvodem typu D, u něhož spojíme výstup se vstupem D. Snadno nahlédneme, že je pak Qn+1 = Q n. 6.4 Klopný obvod typu D Pravdivostní tabulka funkce D klopného obvodu je zřejmá z následujícího obrázku D C 1 0 ? __ Qi 1 0 Qi-1 Realizace s využitím RS klopného obvodu je naznačena na následujícím obrázku Realizace D klopného obvodu z RS klopného obvodu 91 Počítačové systémy D klopný obvod také vznikne z obvodu typu J-K, vložíme-li invertor mezi vstupy J a K tak, že K je komplementem J (následující obr. ). Z pravdivostní tabulky obvodu J - K plyne, že Qn+1 = 1 pro Dn = Jn = n = 1 a Qn+1 = 0 pro Dn = Jn = n = 0. Tedy Qn+1 = Dn. Vzhledem k tomu, že pravdivostní tabulka obvodu J-K pro J = se neliší od tabulky obvodu R-S pro R = , můžeme obvod tohoto typu rovněž sestavit z řízeného obvodu R-S (v tom případě hovoříme o jednoduchém nebo jednočinném klopném obvodu). Takový obvod mění svůj stav při náběžné hraně hodinového impulsu; v případě, že D obvod sestavíme z obvodu J-K typu master - slave, mění se stav s týlovou hranou hodinového impulsu. Klopné obvody typu D mohou sloužit jako paměti binární informace, která se vybaví hodinovým impulsem k dalšímu zpracování. Příkladem jednoduchého obvodu typu D je integrovaný obvod 7474 (dva jednoduché Dobvody v jednom pouzdru). D hodiny J C Q C 1 K Q 6.5 Dvojčinný klopný obvod J-K typu master-slave Pro odstranění neurčitého stavu klopného obvodu R-S byl vyvinut tzv. dvojčinný klopný obvod J-K. Principiální zapojení je na následujícím obrázku. Principiální schéma: Nastavení S2 S R1 R2 Q & & & & & & & & Q t1 t2 generování t1 a t2 Nastavení Hodinový signál Obr. J-K KO M-S S J C K 92 T Q Počítačové systémy Zapojení obsahuje dva řízené klopné obvody R-S, u nichž výstupy Q a prvního jsou navázány na vstupy S a R (po řadě) druhého. Druhý klopný obvod se řídí invertovanými hodinovými impulsy a zpětná vazba je vedena z výstupu druhého klopného obvodu na vstup prvního. První klopný obvod se nazývá řídicí (master), druhý klopný obvod je řízený (slave). S náběžnou hranou hodinového impulsu se nastavuje úroveň na výstupech řídícího obvodu ; řízený obvod je uzavřen, neboť úroveň na jeho hodinovém vstupu = 0. S úběžnou hranou hodinového impulsu se uzavírá vstup řídícího klopného obvodu a stav na jeho výstupu je kopírován řízeným klopným obvodem. Jeho výstupní úrovně jsou vedeny zpětnou vazbou na vstup řídícího obvodu, tam však nezpůsobí žádnou změnu, neboť tentokrát je řídící obvod uzavřen (C = 0). Asynchronní vstupy jsou zavedeny do řídicího klopného obvodu. Nastavíme-li asynchronními vstupy řídící klopný obvod, přesune se tato informace do řízeného klopného obvodu okamžitě (je-li C = 0), neboť mezi hodinovými impulsy je C = 0, tedy = 1; řízený klopný obvod, ovládaný signálem , je tedy otevřen. 6.6 Funkce posouvání a čítání 6.6.1 Čítače kmitočtu Kombinaci klopných obvodů schopnou čítat počet vstupních impulsů a vyjádřit jejich počet pomocí buď binárního nebo jiného kódu, nazýváme čítače. 6.6.1.1 Asynchronní čítač vpřed Asynchronní čítač vpřed je znázorněn na následujícím obrázku: Realizace čítače řízeného sestupnou hranou impulsu Sestává se z řetězce (v našem případě čtyř) klopných obvodů T. Klopné obvody byly vytvořeny pomocí obvodu J-K připojením obou vstupů na logickou 1. Jednotlivé klopné obvody mění stav výstupu při každé úběžné hraně na svém hodinovém vstupu. Překlápění obvodů se tedy řídí v podstatě dvěma pravidly: 1. Výstup Q0 obvodu T1 mění svůj stav při každé úběžné hraně vstupních impulsů, 93 Počítačové systémy 2. Všechny ostatní výstupy mění svůj stav právě když předcházející klopný obvod mění stav výstupu Q z 1 do 0. Aplikací těchto pravidel dostáváme tvar signálu na výstupech Q0 - Q3 tak, jak je uvádí následující obrázek. Vidíme, že stav výstupů Q0 - Q3 je přesně binární reprezentace čísla, udávajícího pořadí vstupního hodinového impulsu. Takovýto řetězec klopných obvodů čítá tedy v binární soustavě. Pro názorné zobrazení příslušného čísla je však třeba užít dekodéru, tj. logické sítě s 16 výstupy tak, aby při každé kombinaci jednotlivých bitů byl na logické úrovni 1 právě jeden z výstupů. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Q0 Q1 Q2 Q3 číslo výstupního impulsu 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 94 výstupy klopných obvodů Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 Počítačové systémy 6.6.1.2 Synchronní čítače Z rozboru funkce asynchronních čítačů je zřejmé, že změna stavu z 1 do 0 předcházejícího obvodu teprve působí změnu stavu následujícího obvodu. V případě, že všechny obvody jsou na logické úrovni 1, vybuzují postupně jeden druhý a doba potřebná k tomu, aby celý čítač vykonal odezvu na vstupní impuls, může být srovnatelná s dobou mezi jednotlivými impulsy. To je nebezpečné zvláště tehdy, je-li řada obvodů dlouhá, neboť dokud celý řetězec nedosáhne ustáleného stavu, nelze jeho výstupy synchronně (v jednom okamžiku) odečíst a zařízení tak ztrácí smysl. Aby se doba odezvy čítače na vstupní impuls snížila, byla opět poněkud modifikována topologie zapojení čítače tak, aby na klopné obvody byl přiveden vstupní impuls synchronně. V tom případě je však třeba zabezpečit, aby měnily stav jen ty klopné obvody, u kterých je to požadováno. Zde se plně využívá funkce obvodu typu T. Pomocí řídící logiky se ze stavu výstupů předcházejících obvodů určuje logická úroveň vstupu T a tedy skutečnost, zda klopný obvod změní nebo nezmění stav při aplikaci následného hodinového impulsu. Čítač se tak v době mezi impulsy “připravuje” na zpracování následného hodinového impulsu. Příklad binárního synchronního čítače je na následujícím obr. Použitím tohoto zapojení lze zhruba zdvojnásobit pracovní frekvenci čítače ve srovnání s asynchronním. Využitím asynchronních vstupů klopných obvodů lze před započetím čítání nastavit počáteční stav čítače, tj. provést předvolbu. & J C K J C K & J C K J C K 6.6.1.3 Vratný čítač Zařízení, které jsme právě rozebrali zobrazují počet vstupních impulsů v binárním tvaru, tj. každý další impuls způsobí zvýšení stavu čítače o 1. Často je třeba, aby čítač počet impulsů odečítal. Čítač, který toto provádí, se nazývá čítačem vzad. Asynchronní čítač vzad realizujeme tak, že místo výstupu předchozího klopného obvodu (Qn) připojíme na hodinový vstup následujícího obvodu (Qn+1) předchozí negovaný výstup (). Čítače, které umožňují podle řídícího povelu čítání buď vpřed nebo vzad nazýváme vratnými. Asynchronní čítač vzad realizujeme tak, že místo výstupů i propojíme s hodinovými vstupy následujících obvodů výstupy. Chceme-li tedy realizovat vratný asynchronní čítač, musíme sestrojit přepínač, který bude přepínat do hodinových vstupů buď výstup nebo předchozího klopného obvodu. Příklad realizace takového přepínače je na následujícím obr. A B C D Hodin vstup H J C K J C K J C K J C K 95 Počítačové systémy U tohoto obvodu se v prvním kroku KO nastaví do 1. Čítač čítá P 1 vpřed 0 vzad Obdobně jako se konstruují synchronní čítače vpřed lze vytvořit i vratné synchronní čítače se zachováním jejich výhody oproti asynchronním podstatně kratší doby odezvy na vstupní impuls. Jejich schéma je podstatně složitější, než u asynchronních vratných čítačů, neboť je nutné hradlovat hodinový signál v každém stupni; proto si je nebudeme uvádět. Vratné čítače se vyrábějí buď jako samostatné integrované obvody střední integrace, nebo jsou na jednom čipu integrovány s obvody plnícími další funkce (například programovatelný čítač/časovač 8253-4, využívaný v osobních počítačích ke generaci časových signálů, obsahuje tři 16bitové vratné čítače, obvody-registry umožňující nastavit a zapamatovat si jejich funkci, a některé další obvody). 6.6.1.4 Binární čítač v před ( nahoru ) - dělič I Q hodiny C J C K Q U KO s přivedením hodinového signálu KO překlopí, když hodinový signál přechází z 1 do 0. Z časového diagramu je názorné, že v poměru hodinového signálu a signálu na výstupu Q je 2:1. Přechod z 1 do nuly nejdříve přivede KO do 1 a až po druhém signálu při přechodu z 1 do 0 dojde k překlopení výstupu do 0 odtud poměr 2:1 Této vlastnosti využijeme v kaskádním zapojení č KO. A B C D I hodinový sig.H J C K J C K J C K J C K Na vstupy JK přivedeme logickou úroveň 1. Přivedeme hodinový signál na první vstup. Výstup prvního KO se připojí na hodinový vstup druhého KO atd. až zapojíme takto čtyři KO. Tím docílíme poměr mezi hodinovými signály a jednotlivými výstupy v poměru: H/A 2:1, H/B 4:1, H/C 8:1, H/D 16:1 96 Počítačové systémy Časový diagram: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C D Pravdivostní tabulka vzestupného čtyřbitového binárního čítače je naznačena na dalším obrázku Výstupy H A B C D 1 1 0 0 0 2 0 1 0 0 3 1 1 0 0 4 0 0 1 0 5 1 0 1 0 6 0 1 1 0 7 1 1 1 0 8 0 0 0 1 9 1 0 0 1 10 0 1 0 1 11 1 1 0 1 12 0 0 1 1 13 1 0 1 1 14 0 1 1 1 15 1 1 1 1 Po šestnáctém taktovacím pulsu se všechny KO vynulují. Často tohoto zapojení se používá jako děliče kmitočtu: Přivedeme-li na vstup frekvenci f dostaneme na výstupu binárního čítače frekvenci f/2, f/4,f/8 atak dále. 6.6.2 Posuvné registry Kombinací n klopných obvodů, schopnou zapamatovat si n-bitovou informaci, nazýváme registrem. Spojíme-li výstup klopného obvodu se vstupem následujícího klopného obvodu etc., dostáváme sestavu tzv. posuvného registru. Sériový registr (posuvný registr) Jedním taktem signálu CLK se informace posune o jeden D-KO 97 16 0 0 0 0 Počítačové systémy 6.6.2.1 Sériový vstup dat Předpokládejme,že máme realizovaný posuvný registr z 5 klopných obvodů a že chceme zapsat do registru binární číslo 01011. Číslo zapisujeme způsobem obvyklým u decimálních čísel tak, že nejméně významný bit je vpravo. Sledujme při tom následující tabulku. Nejprve je třeba vynulovat všechny klopné obvody aplikací logické úrovně 0 na mazací vstup registru. Pak všechny výstupy Q0 - Q4 jsou 0. Číslo impulsu 1 2 3 4 5 hod. Bit 0 0 0 1 0 Q4 Q3 Q2 Q1 Q0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 Nastavovací vstup registru je na úrovni logické 0, což má za následek, že všech pět nastavovacích vstupů jednotlivých klopných obvodů je na úrovni logické jedničky. Data na sériovém vstupu registru musí být synchronizována s hodinovými impulsy tak, že při aplikaci hodinového impulsu do registru je na sériovém vstupu nastaven jeden z datových bitů počínaje od nejméně významného (LSB). Při prvním hodinovém impulsu je tedy na vstupu registru (KO4) nejméně významný bit, který se úběžnou hranou impulsu přesune na výstup Q4, tedy na vstup S3 a jeho komplement na R3. Proto při aplikaci druhého hodinového impulsu se nejméně významný bit přesune na výstup Q3 event. komplementovaný na , zatímco do K04 se načte další bit digitálního slova. Po pěti bitech se musí hodiny zastavit a podle tabulky vidíme, že v každém z klopných obvodů je po řadě informace o jednom z bitů zadaného dvojkového čísla. Tuto informaci můžete přečíst najednou z výstupů Q4 - Q0; v tom případě mluvíme o převodníku sériového na paralelní kód, nebo opět sériově z výstupu Q0; například při značně větší rychlosti hodinových impulsů. To je tzv. metoda vyrovnávací paměti (registr FIFO, first in, first out). Např. při spojení terminálu s počítačem není možné, aby terminál byl k počítači připojen po celou dobu, kdy vkládáme klávesnicí data. Proto se data z klávesnice ukládají do vyrovnávací paměti (např. jeden řádek obsahující max. 80 znaků), která se rychle vyprázdní na povel k odeslání dat. 6.6.2.2 Paralelní vstup dat Všimněme si nyní nastavovacích vstupů PS0 - PS4. Tyto vstupy jsou od vlastních nastavovacích vstupů klopných obvodů odděleny hradly NAND, které umožňují blokovat vnější vstupy a zapsat informaci jediným impulsem do vstupu nastavení registru. To je vhodné např. při přenosu dat od digitálních měřících přístrojů,kde je informace v paralelní formě, tj. všechny bity jsou dostupné najednou. K propojení měřícího přístroje s řídícím počítačem však někdy není možné použít velkého množství vodičů, proto je třeba převést tuto paralelní informaci na sériovou. Po ukončení měření, kdy je na vstupech PS0 PS4 informace např. o jednom z decimálních čísel zobrazovací jednotky, 98 Počítačové systémy aplikujeme logickou úroveň 1 na vstup nastavení registru, čímž nastavíme výstupy jednotlivých klopných obvodů Q0 - Q4 do odpovídajících pozic (registr je třeba nejprve vynulovat). Proto se vstupu nastavení registru někdy říká zapisovací vstup (write). Informace shromážděná v registru se nyní může přečíst buď opět paralelně; v tom případě je třeba opatřit výstupy Q0 - Q4 obdobnými hradly NAND jako nastavovací vstupy. Druhý vstup hradel pak umožňuje oddělit výstupy registru od dalšího zařízení. Informaci však můžeme přečíst též sériově z výstupu Q0 při synchronní aplikaci hodinových impulsů. V tomto případě hovoříme o převodníku paralelního na sériový kód. 6.6.3 Kruhový registr Spojíme-li výstup Q0 se sériovým vstupem registru, opakuje se na výstupech Q0 - Q4 táž informace vždy po pěti hodinových impulsech. Takovému uspořádání říkáme kruhový registr. Lze si např. představit desetibitový kruhový registr,do jehož MSB byla na počátku uložena jednička a jinak byl registr vynulován. Je zřejmé, že vždy po deseti hodinových impulsech bude na MSB opět jednička a podle toho, na kterém bitu je právě jednička poznáme, kolik impulsů (v rozmezí od 0 do 9) přijal hodinový vstup registru. Takový registr tedy tvoří dekadický čítač (dělič deseti), kde není nutný dekodér binární informace na dekadickou; komplikaci však tvoří skutečnost, že je třeba vždy po zapnutí přístroje vložit do registru jedničku, která pak v registru "obíhá". Pro dělení větším číslem potřebujeme rovněž značný počet klopných obvodů, takže cena zařízení neúměrně stoupá. Kontrolní otázky: 12. Popište odlišnosti jednotlivých typů klopných obvodů. 13. Proč se využívají v realizaci prvků počítačů klopné obvody typu Master Slave? 14. Proč musí být posuvný registr realizován dvojčinným klopným obvodem? Úkoly k zamyšlení: 6. Zamyslete se nad obecnou architekturou počítače a určete, které sekvenční logické obvody se využívají v jednotlivých částech počítače? Korespondenční úkol: 5. Navrhněte posuvný registr z klopných obvodů typu D a nakreslete schema zapojení. Shrnutí obsahu kapitoly V této kapitole jste se seznámili s realizací základních klopných obvodů, jako stavebních prvků složitějších sekvenčních obvodů. Důraz v této kapitole byl kladen na pochopení konstrukce čítačů a registrů. Velká pozornost byla věnována vysvětlení principů výstavby seriových a paralelních obvodů vstupu dat do posuvných registrů. 99 Počítačové systémy 7. Úloha operačních systémů V této kapitole se dozvíte: • • • • • • Proč studujeme operační systémy? Jaké jsou základní funkce operačních systémů? Jakou úlohu mají operační systémy z hlediska komunikace člověka s počítačem? Jaké je typické rozhraní operačních systémů s aplikačními programy? Z jakých generických komponent se skládají operační systémy? Jaké jsou hlavní funkce jednotlivých komponent operačních systémů? Po jejím prostudování byste měli být schopni: • • • • • Charakterizovat základní funkce operačních systémů. Znát způsob komunikace operačního systému s člověkem s aplikačními programy. Porozumět vrstvené architektuře operačních systémů. Popsat oblasti zájmů operačních systémů. Definovat funkce jednotlivých částí operačních systémů. a Klíčová slova této kapitoly: Správce zdrojů, virtuální počítač, multiprogramování, rozhraní člověk/stroj, rozhraní proces/operační systém, generické komponenty. Doba potřebná ke studiu: 2 hodiny Průvodce studiem Studium této kapitoly je jednoduché a popisným způsobem zde nastudujete základní úlohy a funkce operačních systémů. Na studium této části si vyhraďte 4 hodiny.Po celkovém prostudování a vyřešení všech příkladů doporučujeme vypracovat korespondenční úkol. Operační systémy jsou jedny z nejrozsáhlejších a nejsložitějších programových systémů ve kterých se uplatňují mnohé vědecké poznatky z oblasti softwarového inženýrství, struktur dat, sítí, algoritmů apod. Během posledních let byly při konstrukci operačních systémů objeveny řady nových metod, které jsou stejně užitečné i v jiných programových aplikacích. Problémy a těžkosti, které se vyskytují při tvorbě efektivních a spolehlivých operačních systémů jsou stejné jako ty, s nimiž se setkávají programátoři či autoři jiných rozsáhlých programů. Čas od času je potřeba operační systém upravit, modifikovat či parametrizovat. Pak je ovšem potřeba jim rozumět a znát algoritmy základních funkcí. Detailní znalost principů operačních systémů je naprosto nezbytná při vytváření těch částí, které jsou závislé na funkčnosti nestandardních technických prostředků. Příkladem jsou ovladače periferních zařízení. Techniky a metodiky tvorby operačních systémů lze s výhodou uplatnit i v jiných oblastech tvorby rozsáhlých programových systémů. Účelem vzniku operačních systémů bylo zabezpečit programové sdílení prostředků, plánování úloh, plánování a přidělování paměti, ochrana dat 100 Počítačové systémy a programů, odhalování chyb při běhu programů. Takto vzniklé operační systémy byly tvořeny množinou automatických a manuálních procedur, umožňující skupině lidí sdílet výpočetní systém, tj. sdílet čas procesoru(ů), operační paměti, periferních zařízení a procesů. 7.1 Služby operačního systému Jedna z prvních definic operačního systému jej charakterizovala jako programové vybavení nezbytné pro provoz počítače. Tato definice však nic neříká, co je nezbytné pro provoz počítače. Proto si raději definujme operační systém na funkcích a to jako: • správce zdrojů - resource manager, • virtuální počítač - virtual machine. Správce zdrojů. Zdroje jsou vstupní/výstupní (I/O) zařízení, soubory, procesor, paměť apod. Operační systém vlastní jednotlivé systémové zdroje přiděluje a odebírá je jednotlivým procesům. Virtuální počítač. Operační systém skrývá detaily ovládání jednotlivých zařízení (transparentnost), definuje standardní rozhraní pro volání systémových služeb. Programátor se může věnovat vlastní úloze a nemusí znovu programovat I/O operace. Program může díky "odizolování" od konkrétních zařízení pracovat i se zařízeními, o kterých jeho autor v době vytváření programu neměl ani ponětí (program se o ovládání I/O nestará). Další definice operačního systému jej charakterizuje jako: • Správce prostředků – spravuje a přiděluje zdroje systému. • Řídicí program – řídí provádění uživatelských programů a operací I/O zařízení. • Jádro – trvale běžící program – všechny ostatní programy lze chápat jako aplikační. Všechny tyto definice operačního systému oddělují striktně jednotlivé komponenty výpočetního systému, jak je zřejmé z následujícího obrázku. 101 Počítačové systémy Uživatel 1 Uživatel 2 Uživatel n Kompilátor textový editor databázový systém Operační systém Hardware počítače Abstraktní pohled na systémové komponenty Z předchozích definic vyplývají oblasti služeb operačních systémů, které jsou zřejmé z následujícího obrázku. Procesy, správa procesů Souběžnost Plánování Správa paměti, virtualizace paměti Vstup/výstup Správa souborů Počítačové sítě Bezpečnost Zájmy operačních systémů Základním účelem operačního systému je využití sdílených prostředků. Znamená to, že jeden nebo více uživatelů výpočetního systému se budou ucházet o používání fyzických prostředků, konkrétně o sdílení času procesoru event. více procesorů, operační paměti, periferních zařízení apod. Operační systém je z tohoto pohledu množina automatických a manuálních procedur umožňující skupině lidí sdílet výpočetní systém. Každý uživatel získává iluzi, že pracuje s počítačem, který umí prováděl jakékoliv programy, tj. že pracuje na virtuálním počítači. Operační systém pak poskytuje každému uživateli vlastní virtuální počítač a navíc chrání každý z těchto počítačů proti 102 Počítačové systémy destruktivnímu zásahu ostatních. Operační systém přitom nabízí uživateli daleko atraktivnější rozhraní než poskytuje vlastní hardware. Operační systémy jsou rozsáhlé programy zabezpečující multiprogramování, plánování a přidělování paměti, plánování úloh, ochranu dat a programů a odhalování chyb při běhu programů. Operační systém je z tohoto pohledu program, který řídí běh ostatních procesů tzn. ostatním procesům bezpečně a efektivně předává řízení a získává je zpět, sděluje procesoru, kdy má spouštět ostatní procesy. Přitom vytváří rozhraní mezi uživatelem a hardware a skrývá ostatním procesům detaily o hardware tj. musí zvládnout správu detailů hardware ve své režii. 7.2 Struktura operačního systému Cílem operačního systému je rovněž zajištění pohodlnosti používání počítače, tzn. že operační systém je správcem rozhraní člověk/stroj a správcem rozhraní proces/operační systém. Operační systém je z tohoto pohledu tvůrcem virtuálního počítače a skrývá tak detailní pravdu o holém počítači (hardware). Koncový uživatel Programátor Návrhář OS, systémový programátor APLIKACE Pomocné programy Operační systém HARDWARE Rozhraní člověk stroj Operační systém z hlediska rozhraní člověk/stroj typicky poskytuje služby pro: • vytváření programů na uživatelském rozhraní (editory, kompilátory, sestavovací programy, ladící programy, apod.), • provádění programů, tj. zavádění programů do operační paměti a jejich spouštění, • běh procesů, podpora komunikace a synchronizace procesů, • zpřístupňování vstupních/výstupních zařízení a operací na nich, • řízení přístupů k souborům, • řízení přístupu k systému, • detekce chyb a chybové řízení (chyby hardware, programové), • protokolování činností. Rozhraní proces/operační systém je typickým rozhraním služeb jádra, což jsou služby: • unifikace vstupních a výstupních operací, • virtualizace paměti, • ochrana a reakce na chyby, 103 Počítačové systémy • • • protokolování a řízení přístupu ke zdrojům, synchronizace procesů, komunikace mezi procesy. Dalším cílem operačního systému je zajištění dostatečné výkonnosti a efektivity. Operační systém je tak správcem systémových prostředků (procesorů, paměti, vstupních a výstupních zařízení a souborů) a správcem jejich užívání. Operační systém tak řídí přístup k vstupním a výstupním zařízením a souborům, provádí správu paměti a určuje, který program bude používat procesor. Operační systém konečně musí zajistit schopnost vývoje tj. doplňování a vývoj hardware, doplňování nových služeb do počítačového systému. Operační systém musí být schopen reagovat na inovace v technických prostředcích, na nové komponenty počítačů. Operační systémy, z hlediska své struktury, lze popsat architekturou: • monolitickou, • víceúrovňovou, • virtuální, • klient-server. 7.2.1 Monolitická architektura operačního systému Monolitickou architekturu operačního systému lze vyjádřit následujícím obrázkem. Uživatelský program 2 Uživatelský program 1 Servisní procedury Uživatelské programy běžící v uživatelském módu Operační systém běžící v módu jádra Plánovací tabulka Služby monolitického operačního systému v operační paměti Z obrázku vyplývá určitá „vnitřní strukturovanost“, kdy hlavní program volá obslužné procedury pro jednotlivá systémová volání. Systémová volání přepínají zpracování z uživatelského módu do módu servisního (mód jádra operačního systému). Systémová volání u obecného operačního systému lze rozdělit do několika skupin: • řízení procesů (vytvoření procesu, výměna procesů v paměti, ukončení zpracování procesu apod.), 104 Počítačové systémy • • • • • programová přerušení (nastavení přerušení pro jeho zachycení nebo ignoraci, přerušení procesu, plánování přerušení v čase, suspendace volaného procesu až do příštího přerušení), řízení souborů (vytvoření nebo zrušení souboru, vytvoření adresáře, otevření souboru pro čtení nebo zápis, zavření souboru,čtení dat ze souboru do vyrovnávací paměti, zápis dat do souboru z vyrovnávací paměti apod.), řízení adresářů a systému řízení souborů (vytvoření nového vstupu adresáře, přemístění vstupu adresáře, připojení systému souborů, přesun diskových bloků ze zásobníku v paměti na disk, změna pracovního adresáře, změna kořenového adresáře), ochrana (změna bitů ochrany souboru, získání identifikace uživatele, získání identifikace skupiny, nastavení identifikace uživatele, nastavení identifikace skupiny, změna vlastníka souboru nebo skupiny, nastavení nebo zrušení masky ochrany), řízení v čase (nastavení času ukončení, získání času ukončení, nastavení času posledního přístupu k souboru, získání uživatelského a systémového času pro další použití). Nevýhodou monolitické architektury operačního systému je realizace jádra jako velkého programového celku, ve kterém lze snadno implementovat chyby, tím je obtížné ladění funkčnosti a složitá rozhraní procedur mající jednoznačnou vazbu na použitý hardware počítače. Výhodou je relativně snadná implementace operačního systému a zabezpečení velkého výkonu i na poměrně nevýkonném hardware. 7.2.2 Víceúrovňová architektura operačních systémů Řada moderních operačních systémů je vytvářena na principu hierarchického uspořádání služeb dle příkladu na následujícím obrázku. 5 uživatel 4 uživatelské programy 3 správa I/O zařízení 2 komunikace s procesy 1 správa paměti 0 přidělování procesoru Struktura víceúrovňového operačního systému Hierarchické uspořádání služeb operačního systému je založeno na následujících principech: • operační systém se dělí do jistého počtu vrstev (úrovní), 105 Počítačové systémy • • • • každá vrstva je budována na funkcionalitě nižších vrstev, nejnižší vrstva (0) je hardware, nejvyšší vrstva je uživatelské rozhraní, pomocí principu modularity jsou vrstvy navrženy tak, aby každá používala funkcí (operací) a služeb pouze vrstvy n – 1 tj. vyšší vrstva využívá pouze služeb nejbližší nižší vrstvy a nabízí služby nejbližší vyšší vrstvy. Pomocí této vrstvené architektury lze řešit problém přílišné složitosti velkého operačního systému a to tak, že se realizuje dekompozice velkého problému na několik menších zvládnutelných problémů. Přitom každá úroveň řeší konzistentní podmnožinu funkcí, nižší vrstva nabízí vyšší vrstvě „primitivní“ funkce (služby) a nižší vrstva nemůže požadovat provedení služeb vyšší vrstvy. Používají se přesně definovaná rozhraní a tím lze každou vrstvu uvnitř modifikovat, aniž to ovlivní ostatní vrstvy (principy modularity). Nevýhodou takové architektury je především vyšší systémová režie a tím pomalejší vykonávání systémových volání. Protože efektivita hraje v jádře operačního systému významnou roli, je třeba volit kompromis v počtu vrstev tj. definovat pouze omezený počet úrovní pokrývající vyšší funkcionalitu. Výhodou takové architektury je přehlednost a oddělené datové struktury. Typická struktura operačních systémů je hierarchická, čímž se řeší problém přílišné složitosti. Dekompozice velkého problému na několik menších umožňuje zvládnout řešení složitého operačního systému. Každá takto dekomponovaná úroveň řeší konzistentní podmnožinu funkcí, kde nižší vrstva nabízí vyšší vrstvě primitivní funkce (služby) a přitom nižší vrstva nemůže požadovat provedení služeb vyšší vrstvy. Rozhraní mezi vrstvami musí být přesně definovaná, což umožní modifikovat každou vrstvu uvnitř, aniž to ovlivní ostatní vrstvy. Typická struktura vrstev operačního systému je zřejmá na následujícím obrázku. 106 Počítačové systémy aplikační programy UŽIVATELÉ Rozhraní služeb OS pro uživatele Rozhraní služeb OS pro procesy interpret řídícího jazyka, shell,API OS správa souborů,správa vnějších pamětí operační systém správa periferií (ovladače) jádro OS správa procesů správa vnitřní paměti,virtualizace správa procesoru,plánování,dispečer uživatelský režim privilegovaný režim strojový kód, procedury přerušení 300-500 instrukcí, registry mikroprogramy interpret mikroinstrukcí elektronické obvody registry, hradla, sběrnice holý počítač, hardware Poskytované služby OS Typickým příkladem hierarchické struktury podsystémů je návaznost obecného operačního systému na hardware počítače typu PC. Struktura návaznosti je zřejmá z následujícího obrázku. SOFTWARE Operačný systém BIOS HARDWARE Rozhraní v PC BIOS - Basic Input Output System, jak už vyplývá z názvu, zabezpečuje základní služby při přístupu k periferním zařízením. Jinými slovy, tvoří rozhraní mezi hardwarem a vyššími vrstvami programového vybavení. Je to rozhraní standardizované, tzn. že vstupní body a parametry obslužných procedur operačního systému nezávisí na typu hardware a je jednoznačně 107 Počítačové systémy navázáno na funkce operačního systému. BIOS zabezpečuje v počítači ještě další úkoly: • provádí úvodní test po spuštění počítače, • umožňuje nastavit základní parametry počítače, • zavádí operační systém, • poskytuje operačnímu systému prostředky pro realizaci víceúlohového prostředí. 7.2.3 Architektura operačního systému s virtuálními počítači Operační systémy navrhované na principech virtuálních počítačů jsou převážně určeny pro režim sdílení času (time-sharing). Operační systém tak emuluje existenci více jednouživatelských systémů s vlastním harwarem (virtual machine monitor - VM), které jsou přesnou kopií skutečného hardware HW (VM vrstva emuluje HW). Pro realizaci je však třeba rozšířených vlastností rozhraní procesoru a oddělení funkce multiprogramování od funkce rozšířeného stroje (extended machine). Na následujícím obrázku je naznačena činnost systému zajišťující funkci rozšířeného počítače pomocí CMS (Conversational Monitor System), což je interaktivní systém pro sdílení času mezi uživateli. Když CMS zpracovává systémová volání převede jej do operačního systému vlastního virtuálního počítače. Tyto instrukce jsou pak převáděny do OS jako část vlastních simulací na skutečném hardwaru. Virtuální 370’ CMS CMS CMS Operační systémy zajišťující funkci rozšířeného počítače VM /370 HW 370 Vlastní HW počítače Struktura operačního systému s virtuálními počítači Jádro systému tvoří monitor virtuálního počítače, který pracuje s prostým hardwarem a zajišťuje multiprogramování s použitím ne jednoho, ale několika virtuálních počítačů na vyšší úrovni. Virtuální počítače nejsou počítače se systémem souborů a ostatními možnostmi. Jsou pouze přesnými kopiemi prostého hardwaru, zahrnující mód jádra a mód uživatele, vstupů a výstupů, přerušení a vše čím je skutečný počítač vybaven. Každý virtuální počítač je identický se skutečným hardwarem, každý z nich může pracovat s nějakým operačním systémem, který běží přímo na skutečném hardwaru. Nevýhodou této architektury může být zpomalení poskytovaných služeb operačním systémem a to z důvodu emulace. Výhodou je možnost koexistence více operačních systémů na jednom hardware a využití programového vybavení z jiného hardwarového systému. 108 Počítačové systémy 7.2.4 Architektura operačního systému s modelem klient-server Architektura operačních systémů na principu komunikace klient-server vznikla z potřeby minimalizace rozsahu jádra. Cílem je implementovat většinu funkcí operačního systému v uživatelských procesech, tedy v uživatelském módu. Například při požadavku na službu, jako je čtení bloku dat ze souboru, zašle uživatelský proces (nyní klient proces) požadavek na obsluhu souborů (file server), která vykoná práci a zašle zpět přečtená data jako odpověď na požadavek. Tzn. že mikrojádro zajišťuje zejména komunikaci. Základní struktura takového operačního systému může být následující: • obsluha klienta (klient process), • obsluha procesů (process server), • obsluha terminálů (terminal server), • obsluha souborů (file server), • obsluha paměti (memory server). Na následujícím obrázku je naznačena struktura takového operačního systému a způsob komunikace. klient klient klient server server server v uživatelském módu Jádro v módu jádra Struktura operačního systému klient-server Skutečné rozdělení na jednotlivé obsluhy – servery může být samozřejmě v každém systému jiné, jednotlivé servery mohou být vytvářeny i uživatelem. Po rozdělení operačního systému na jednotlivé části se pak při vyvolání požadované služby aktivuje vždy pouze obsluha příslušné části operačního systému. Jednotlivé části operačního systému nejsou rozsáhlé a jsou takto snadno řiditelné. Většina služeb operačního systému pak pracuje v uživatelském módu a ne v módu jádra systému. Použití systému klient-server je velmi výhodné zejména pro distribuované operační systémy. U takového systému jádro příslušného systému řídí pouze přenos zpráv od klienta k příslušné obsluze – serveru. Ve skutečnosti to není možné, neboť některé funkce operačního systému, např. práce s vstupními a výstupními jednotkami, nelze provádět z uživatelského programu. Řeší se to pak tak, že tyto kritické procesy se zpracovávají v módu jádra. Výhodou architektury klient-server je v oddělení adresních prostorů procesů a tím dobrá strukturovanost operačního systému, odolnost systému v případě selhání serverového procesu a použitelnost v síťovém a distribuovaném prostředí. 109 Počítačové systémy 7.2.5 Charakteristiky moderních operačních systémů Moderní operační systémy musí reagovat na rozvoj hardware, zvýrazněný multiprocesorovými stroji, připojením na vysokorychlostní sítě, rychlejšími procesory a větší kapacitou paměti. Při vytváření operačních systémů se vyžaduje aplikovat nové softwarové technologie podporující multimédia, webovské aplikace, internet a technologie klient/server. Dalším směrem vývoje jsou distribuované operační systémy, vytvářející ilusi jedné společné paměti, jednoho paralelního stroje, distribuovaného systému souborů s jednotným pohledem na ně. Zde je směr vývoje pomocí objektově orientovaných nástrojů s cílem modulárního rozšiřování funkcionality celého operačního systému, postaveného na malém jádře a přizpůsobování se konkrétním potřebám bez porušení integrity celého systému. Pro uživatele to znamená, aby operační systém byl snadno použitelný, snadno naučitelný, spolehlivý, bezpečný a rychlý. Z hlediska systémového návrhu se jedná jeho snadný návrh, implementaci, udržovatelnost, přizpůsobivost, spolehlivost a bezchybnost. Tradičně bývaly operační systémy napsaný v symbolickém strojovém jazyku (assembleru), v současnosti se stále častěji píší v běžných programovacích jazycích vysoké úrovně (obvykle C/C++). Tím se docílí rychlejšího naprogramování, kompaktnějšího výsledku, srozumitelnějšího a tím snadnějšího ladění a snadnější přenositelnosti na jinou architekturu 7.3 Historie operačních systémů V dřívějších dobách operační systémy jako takové neexistovaly a programátor musel komunikovat s počítačem pomocí strojového kódu (na úrovni 1-0). Navíc ještě musel znát přesnou konfiguraci počítače a jednotlivých připojených zařízení. Postupem času s rozvojem výpočetní techniky se však tento postup stal neúnosným, a tak začaly vznikat první programovací jazyky. Programovací jazyky mohou být buď vázány na konkrétní hardware (např. assembler), nebo jsou na hardware nezávislé (tzv. vyšší programovací jazyky). Nejstarším vyšším programovacím jazykem byl Short Code z roku 1949, později vznikl Fortran (1956, vyvinut IBM), COBOL (1959), BASIC (1965, později standardní jazyk pro PC), Pascal (1971), C (1972) atd. S dalším rozvojem však bylo třeba programu, který by sám zvládal základní funkce systému a ulehčil programátorům práci. Počátkem 60. let tak pomalu začaly vznikat operační systémy a v polovině 60. let (s příchodem minipočítačů) již vyvstává potřeba takových operačních systémů, jaké známe dnes. Mezi nejznámější a nejrozšířenější platformy patří především operační systém Windows od firmy Microsoft a operační systémy na bázi UNIXu, vyvinutého původně firmou AT&T. Mezi nejznámější operační systémy na bázi UNIXu patří Linux a Mac OS X. Významným prvkem ve vývoji operačních systémů bylo vytvoření grafického uživatelského rozhraní (GUI - graphics unit interface), které má své kořeny v padesátých letech, ale rozvinulo se až v sedmdesátých letech, kdy skupina 110 Počítačové systémy v Xerox Palo Alto Research Center (PARC) vyvinula Alto, počítač založený na GUI. Skutečným mezníkem byl ale až GUI vyvinutý společností Apple pro její počítač Lisa, resp. Macintosh, který jako první tuto myšlenku již v roce 1983, resp. 1984 zpřístupnil masám. Pro kancelářské využití je dále účelné se zaměřit pouze na OS s GUI. 7.3.1 Operační systémy Windows Historie operačního systému Windows sahá do roku 1981, kdy firma IBM uvedla na trh první PC spolu se 16bitovým operačním systémem MS-DOS (Microsoft Disk Operating System). Pro další vývoj počítačového průmyslu a šíření operačních systémů od Microsoftu se ukázalo jako rozhodující, že firma IBM umožnila výrobu klonů svých počítačů - velmi rychle se pak rozšířily do celého světa. Ačkoliv MS-DOS v podstatě umožnil masivní rozvoj mikropočítačů, byl již v době svého vzniku nepohodlný a z hlediska návrhu nedostatečný a v podstatě zastaralý. MS-DOS podporoval pouze jednoho připojeného uživatele, který mohl v čase pracovat s pouze jedním programem (chybějící podpora víceúlohového režimu). MS-DOS měl hardwarová omezení, např. nedokázal pracovat s pamětí větší než 640 kB nebo s disky většími než 30 MB. Většina nedostatků MS-DOSu, především uživatelská nepřívětivost a absence víceúlohového režimu, byla postupně překonána pozdějšími verzemi systému Windows. Významným mezníkem ve vývoji počítačů bylo uvedení počítače Apple Lisa s operačním systémem LisaDesk na bázi GUI v lednu 1983. U Microsoftu začal vznikat OS Windows jako GUI nadstavba MS-DOS. První verze OS s GUI od Microsoftu - Windows 1.0 byla uvedena na trh 20. listopadu 1985. Tato nadstavba OS DOS sice nebyla příliš použitelná, ale např. již nenutila uživatele ukončovat a znovu spouštět programy. Pokud chtěl s programy pracovat současně, mohl se mezi nimi přepínat, avšak okna se nemohla překrývat. Tento nedostatek byl odstraněn ve verzi 2.0, která byla uvedena na trh v roce 1987. Zde již bylo možno okna překrývat jedno přes druhé, bez nutnosti je mozaikovitě skládat vedle sebe. Komerčního úspěchu a reálné použitelnosti se ale dočkal až OS MS Windows 3, uvedený na trh v roce 1990, který lze označovat za první reálně použitelný Windows s GUI. Windows verze 3.0 se velmi rychle rozšířily, především díky velké hardwarové i softwarové podpoře významných nezávislých výrobců a předinstalováváním na nová PC. V roce 1991 byla vydána rozšířená verze Multimedia Extension pro práci Windows s multimédii. Na jádře pracujícím pod DOSem byly na trh později uvedeny další OS Windows: • Windows 3.1 z dubna 1992 s řadou vylepšení (jako podpora OLE, vylepšení správce souborů, vylepšení podpory tiskáren, nových ovladačů podporujících MS-DOS grafiku v okně, virtuální paměť lze měnit v ovládacím panelu, atd.) a odstraněním některých chyb v uživatelském rozhraní. Následně byly vydány i Windows 3.11, kde byla přidána síťová podpora. • Windows 95 uvedený v srpnu 1995. Tento systém byl opatřen řadou vylepšení, například částečně 32bitovým jádrem (hybridní 16/32bitové), podporou dlouhých názvů souborů, lepší podporou sítí 111 Počítačové systémy • • • (byl integrován protokol TCP/IP) a zcela novým grafickým rozhraním (GUI Windows 95 bylo tak úspěšné, že se jej Microsoft rozhodl využít i ve verzi Windows NT 4.0). Lze jej označit za povedenou, klíčovou a přelomovou verzi Windows (bývá označován za první uživatelsky přívětivý operační systém od Microsoftu). Windows 98 - již 32bitový, uvedený v červnu 1998. Tento systém přinesl hezčí grafické prostředí, integraci Webu do oken průzkumníka, již plně funkční podporu USB, nový Microsoft Explorer 4. Windows 98 SE, uvedený v roce 1999 coby druhé vydání Windows 98 (Second Edition), byl již stabilním a kvalitním systémem. Windows Me (Millenium Edition) - je posledním zástupcem této kategorie, který již restart do režimu čistého MS-DOSu neumožňuje (obsahuje nové grafické prostředí z Windows 2000 Profesional, Windows Media Player 7 a nové DirectX). Operační systémy na základě DOSu však měly koncepční nedostatky. Již v roce 1987 proto IBM ve spolupráci s Microsoftem začal vytvářet nový operační systém pro PC, tentokrát již nezatížený nedostatky DOSu a nazvaný OS/2. Spolupráce obou firem se ale rozpadla a každá z nich si vyvíjela svou vlastní verzi OS/2 (Microsoft tu svou záhy přejmenoval na Windows NT a IBM na OS/2 Warp). V polovině roku 1993 se tak dostávají na scénu Windows NT, která jsou zaměřená především na náročné uživatele a servery (zkratka NT znamená New Technology). Pátou verzi Windows NT uvedl Microsoft na trh 17. února 2000. Přesto, že je tento systém volným pokračováním Windows NT 4.0, obsahoval tolik změn, že byl přejmenován na Windows 2000. Pro většinu domácích uživatelů je však tento systém příliš robustní a náročný na hardware. Bývá nasazován především na výkonných serverech. Až v roce 2001 Microsoft konečně uvedl na trh operační systém pro běžné uživatele postavený nikoliv na DOSu, ale na přizpůsobené technologii NT, nazvaný Windows XP (eXPerience). V tomto případě Microsoft oznámil, že se jedná o nástupce operačních systémů, který si z obou větví má vzít jen to nejlepší. Z větve NT to má být vysoká spolehlivost, z větve 9x pak kompatibilitu a podporu multimédií (až do verze XP nebyly aplikace pro řadu NT kompatibilní s aplikacemi pro řadu 9x a naopak). Jeho další odlišností oproti předchozím verzím je nová podoba grafického rozhraní, a možnost jeho změny (skinovatelnost); celý systém je multimediální, umožňuje práci s videem, zvuky a Internetem. V některých operacích je Windows XP až o 30% pomalejší než na starém jádře pracující Windows Me, přesto je to však (za předpokladu doinstalování service packů) významný krok směrem vpřed na poli OS Windows. Operační systém Windows je dnes zejména díky masivním marketingovým kampaním a podpoře nezávislých výrobců HW v 90. letech nejrozšířenějším OS v oblasti kancelářských počítačů. Systémy Windows různých verzí jsou instalovány na cca 90% všech kancelářských počítačů. Mezi největší výhody MS Windows patří právě jejich masivní rozšíření. To je však zároveň pro Microsoft i omezením - vývoj trpí velkou setrvačností (viz např. problém roku 2000 "Y2K" - pouze dvouciferné ukládání letopočtu) a omezenými možnostmi Microsoftu zavádět moderní technologie ještě v době, kdy jsou nové (viz 112 Počítačové systémy například setrvávání u BIOSu). Součástí MS Windows je množství aplikací pro běžnou kancelářskou práci (MS Explorer, základní multimediální aplikace, atd.). Vývoj aplikací pro platformu Windows je co do míry standardizace a chování jednotlivých aplikací různorodý. Od verze Windows 2000, resp. Windows XP, se nevyskytují výrazné problémy se stabilitou systému. Pro dostatečnou bezpečnost systému je potřeba důsledně dbát na pravidelné aktualizace a jeho dobrou správu více než u méně rozšířených systémů. Aktualizace systému bývá obvykle v intervalech 1 měsíce. 7.3.2 Operační systémy UNIX UNIX byl poprvé představen Kenem Thompsonem a Dennisem Ritchiem v článku publikovaném v roce 1974 v „Communications of the ACM“. Na trh byl však uveden již v roce 1969. V roce 1964 Bell Telephone Laboratories zahájily projekt MULTICS (Multiplexed Information and Computing Service). Cílem projektu bylo vytvořit OS pro rozsáhlý počítač s velkým množstvím uživatelů. Projekt MULTICS byl v sice roce 1969 ukončen, ale jeho bývalí programátoři (Ken Thompson, Dennis Ritchie a Brian Kernighan) přišli s myšlenkou jednoduchého, elegantního a snadno ovladatelného OS a již o rok později byl nový OS dokončen (v jazyce assembler) a nazván UNICS. (Tento název vznikl z "Universal Information and Computing Service", je to slovní hříčka na název MULTICS.) Později byl název pozměněn na UNIX. V roce 1973 byl UNIX přepsán do jazyka C, aby byl snadno přenositelný mezi platformami. Zdrojové texty UNIXu byly poskytnuty universitám (např. universitě v Berkely). Vznikly dvě hlavní větve UNIXu: • AT&T (původní verze od American Telephone and Telegraph company) - dnes UNIX System V (od Unix System Laboratories) • BSD (vytvořený na universitě v Berkeley; BSD = Berkeley Software Distribution) - dnes UNIX BSD 4.4 V roce 1984 se začaly objevovat první pokusy o standardizaci UNIXu. Vzniklo sdružení GNU (název GNU je rekursivní zkratka pro "GNU is Not UNIX"). Toto sdružení podporuje "svobodný software" a vytvořilo GPL (General Public Licence), která je legislativním prostředkem pro zaručení "svobody" softwaru. Později vznikla řada standardů POSIX (Portable Operating System Interface), která popisuje obecný OS (standardy např. definují systémová volání, knihovní funkce a chování programů v „POSIX kompatibilním“ operačním systému). I přes tyto standardizační snahy je ve světě Unixu mnoho různých odchylek a „vylepšení“. Přesto lze konstatovat, že POSIX spolu s dalšími standardy přinesl potřebný řád. V roce 1989 byl na bázi UNIX BSD uveden nový plně objektový operační systém NeXTStep 1.0 s jádrem Mach (tento operační systém byl úzce svázán s počítači NeXT). V roce 1996 firma NeXT vytvořila na základě částečně přepracovaného NeXTStepu otevřený standard objektového API OpenStep, který koncepčně vychází z původního NeXTStepu, výrazně však rozšiřuje jeho služby. Na OpenStep pak navázala iniciativa GNUStep, jejíž snahou je vytvořit API, konformní se standardem OpenStep, které by chodilo prakticky kdekoli a bylo volně k dispozici v rámci licence GNU. V roce 1997 nakonec došlo k 113 Počítačové systémy odkoupení firmy NeXT firmou Apple, která následně použila NeXTStep/OpenStep 4.2 pro vývoj nového operačního systému pro počítače Apple Macintosh. V devadesátých letech začaly vznikat nekomerční systémy na bázi UNIXU. V těchto letech vznikaly NetBSD, FreeBSD, OpenBSD (nekomerční UNIXy typu BSD) a také LINUX (reprezentující dnes mezi nekomerčnímy systémy na bázi UNIXU druhou větev Unixu zvanou System V). V roce 1999, resp. 2000 firma Apple Computer uvedla nový komerční operační systém Mac OS X server, resp. Mac OS X navazující na technologie NextStepu/OpenStepu, který má unixové jádro Darwin (postavené na technologiích jako FreeBSD nebo kernel Mach 3.0 ). Části Darwinu jsou Open Source s licencí APL (Apple Public Licence) nebo GPL. V současnosti se UNIX se využívá na universitách a v komerční informatice (internetové aplikace, mobilní komunikace atd.), ale mezi běžnými uživateli není rozšířen. Šíří se spíše UNIXové klony, resp. operační systémy typu UNIX. Zde mezi nejvýznamnější patří Linux a Mac OS X. 7.3.3 Operační systémy Mac OS a Mac OS X Historie operačního systému Mac OS sahá do roku 1977, kdy firma Apple Computers vyprodukovala komerčně úspěšný počítač Apple II, první all-in osobní počítač (v plastové krabici a s barevnou grafikou), resp. do roku 1983, kdy byl uveden počítač Apple Lisa s OS LisaDesk na bázi GUI. Skutečný Mac OS 1.0 však byl uveden na trh až v lednu roku 1984 spolu s prvním počítačem Macintosh. Mac OS byl velmi pokrokovým operačním systémem a kromě GUI obsahoval i další moderní prvky - ovládání myší, multitasking, multimedia, podporu práce v sítích, atd. Mac OS byl do roku 2002 postupně uveden v 9 verzích (poslední verze 9.2). V roce 1991 vyšel v té době velmi pokročilý Mac OS 7 (jednalo se mimo jiné o plně 32bitový systém). V roce 1994 Apple oznámil práce na zcela novém operačním systému s kódovým označením Copland. Na svou dobu měl Copland mnoho převratných designových prvků jako skutečné mikrojádro a hardwarovou abstrakci. Projekt se však dostal po řadě peripetií do slepé uličky a v srpnu 96 byl zrušen vývoj. V té době však již byla potřeba nového OS značná - Mac OS 7 po 5 letech sice procházel drobnými updaty (až k verzi systému 7.6), ale již nevyhovoval v mnoha ohledech, od neplnohodnotného multi-taskingu po nestabilitu posledních systémů 7.x (neuvedením Coplandu a uvedením Windows 95 od Microsoftu Apple přišel o své vůdčí postavení u OS s GUI a u řady vlastností OS byl Microsoftem předstižen). V roce 1997 byl proto Mac OS 7 nahrazen Mac OS 8, do kterého byly začleněny některé technologie Coplandu a který do značné míry vyřešil potřeby uživatelů. Mac OS 8.6 představil multitasking na úrovni kernelu (jádra). V roce 1998 byl uveden Mac OS 9, který je ve formě emulační vrstvy Classic spustitelný na Mac OS X dodnes. Mac OS 9 byl vyvíjen až do roku 2002, kdy byla jeho poslední verze 9.2 nahrazena zcela novým operačním systémem Mac OS X. 114 Počítačové systémy Historie Mac OS X sahá do roku 1997, kdy Apple odkoupil společnost NeXT a rozhodl se použít její OS NeXTSTEP (objektově orinetovaný operační systém na bázi Unixu, vybavený vlastním grafickým rozhraním) jako základ pro svůj nový OS Mac OS X. Mac OS X - na trhu od roku 2000 (Mac OS X server již od roku 1999) - je moderní objektově orientovaný systém založený na kvalitním a stabilním základu BSD Unix, vybavený novým vektorovým grafickým rozhraním Aqua GUI. Uvedením Mac OS X Apple navázal na někdejší úspěchy GUI Mac OS (i v současné době je vzhled rozhraní Mac OS X - Aqua GUI napodobován dalšími výrobci operačních systémů a aplikací, včetně Microsoftu). Mac OS X zajišťuje plnou kompatibilitu s aplikacemi napsanými pro původní Mac OS 9.2 (aplikace lze nativně spouštět). V pozadí nového uživatelského rozhraní stojí jádro OS Darwin, otevřená základna na bázi UNIXu, postavená na takových technologiích jako Mach nebo FreeBSD. Nad Darwinem/XNU stojí set služeb a knihoven, převzatých většinou z NextStepu, které se starají o grafické rozhraní a uživatelské aplikace. Mac OS X nabízí kompletní implementaci systému X Window pro aplikace založené na X11 (umožňuje instalaci běžných Linuxových aplikací pro prostředí X11). Technologické vlastnosti Mac OS X umožňují emulovat chod původního Mac OS 9.2 (nativní emulační vrstva Classic) i chod běžných emulátorů ostatních platforem (Virtual PC; iEmulator; Workstation 2.1 od Parallels). Počítače Apple Macintosh umožňují nativní provoz Linuxu a díky aktuálně probíhajícímu přechodu na procesory Intel a technologii Boot Camp od Apple umožňují rovněž nativní provoz Windows XP. Lze také očekávat spouštění PC aplikací pod MacOS X (již existuje první kompilace WINE pro Intelovské Macy). Mac OS X 10.4.4 lze nativně provozovat - na počítačích Apple Macintosh - jak na PowerPC (IBM, Motorola) tak na x86 procesorech (Intel). Z počítačů Apple Macintosh se tak postupně stává nejuniverzálnější platforma pro běžného i profesionálního uživatele. Po ukončení distribuce Mac OS 9 byl Mac OS X dosud vydán v následujících verzích: • Mac OS X 10.2 Jaguar (uveden v roce 2002) • Mac OS X 10.3 Panther (uveden v roce 2003); označovaný za běžnými uživateli první plně použitelný Mac OS X • Mac OS X 10.4 Tiger (uveden v roce 2005); tento OS přinesl řadu vylepšení, mimo jiné vyřešení některých problémů českých specifik (např. přepínání klávesnice…). • Mac OS, resp. MacOS X je možné spustit pouze na HW Apple, což znamená dokonalé provázání SW a HW, neexistuje zde problém s nekompatibilitou HW a SW. Apple zatím popírá záměr umožnit provoz Mac OS X na běžných PC (nicméně přechodem na procesory Intel již tomu nebrání žádná technická omezení a zůstávají pouze omezení definovaná samotným Applem a BIOSem na PC). Základní myšlenkou systému je jednoduchost a intuitivnost uživatelského rozhraní - ergonomie Mac OS X je ve srovnání s jinými OS na vysoké úrovni; výrazně jednodušší je mimo jiné i customizace OS, konfigurace např. internetu 115 Počítačové systémy a sítí obecně (většinu úkonů je schopen provádět uživatel sám / není třeba zásahu správce sítě). Jednou z největších výhod tohoto OS je rovněž prakticky nulové množství virů a spyware (Mac OS X je vůči virům z PC zcela imunní; specielní viry pro Mac OS X prakticky neexistují mimo jiné i zásluhou nezajímavostí platformy pro strůjce virů; jedinou známou výjimkou mohou být pouze macroviry v MS Office). Reakce na bezpečnostní rizika v systému je velice rychlá – ve formě updatů systému. Tento systém je tedy v současnosti velmi bezpečný – zejména díky svému UNIX jádru. Podobně jako ostatní moderní systémy umožňuje několik stupňů zabezpečení dat. Nevýhodou je menší podpora ze strany výrobců a prodejců HW, nicméně největší výrobci periferií tuto platformu standardně podporují (HP, Epson…) a podpora se od doby uvedení Mac OS X rozšiřuje. 7.3.4 Operační systémy Linux Situace okolo PC byla v 80. a 90. letech pro mnoho uživatelů natolik neuspokojivá, že se některé firmy (a stejně tak vývojářská komunita) pustily do vývoje vlastních OS nebo alespoň GUI pro DOS, které by odstranilo alespoň ty největší nedostatky Dosu a Windows - uživatelskou nepřívětivost, množství chyb, složitá síťová řešení, nepřítomnost multitaskingu a chybějící podpora multimédií. Vznikaly různá řešení - řešení založená na MS-DOS, řešení nová (např. OS/2) a řešení na bázi UNIXu (X Window System; GNU/Hurd;...). Jak se však později ukázalo i po téměř 30 letech vývoje osobních počítačů je dodnes stále jedním z nejlepších systém UNIX, resp. řešení na něm založená, tzv. systémy typu UNIX. Nejnadějnějším systémem typu UNIX pro PC se stal Linux, výtvor finského studenta Linuse Torvaldse, datovaný na 25.8.1991, kdy Torvalds zaslal do diskuzní skupiny comp.os.minix příspěvek s předmětem "What would you like to see most in minix?" o tom, že vyrábí free operační systém. Torvaldsův Linux v poslední době pomalu dospěl do fáze komerční použitelnosti, zatím především jako síťový server, ale pomalu také jako systém pro běžného uživatele. Již v roce 2000 začínají hlavní komerční prodejci PC HW (Compaq, IBM, Dell, SGI, Fujitsu) prodávat desktop a laptop počítače s předinstalovaným Linuxem. Linux se postupně stává úspěšným konkurentem jak na serverech, kde úspěšně nahrazuje starší a hlavně drahé unixy, tak na desktopových stanicích, kde začíná úspěšně konkurovat MS Windows. Zatím ho však částečně deklasuje, že jeho vývojářská základna je naprosto decentralizovaná. Fakt, že je Linux vyvíjen nepřehlédnutelným zástupem programátorů ze všech koutů planety, sice umožňuje, že veškerá vylepšení jsou rychle hotova a k dispozici, ale na druhé straně způsobuje nepřítomnost nějaké přesnější vývojové linie. Linux tedy trpí nemocí, známou z Unixu - každý si ho upravuje pro sebe, takže vzniká přehršel verzí až zmatek. Toto si uvědomují dokonce i sami tvůrci Linuxu, takže se objevily snahy o jeho standardizaci zde existují dva koncepty: UnitedLinux a Linux Standard Base (LSB). Mimo OpenSource řešení existují také komerční distribuce Linuxu, které se vyznačují vyšší podporou ze strany výrobce. 116 Počítačové systémy Dnes tedy existuje celá řada na kancelářských stanicích a serverech využitelných distribucí OS Linuxu, jako např.: • SuSE Linux. Distributor Linuxu s oficiální pobočkou v České republice. SuSE Linux se dodává v několika jazykových verzích včetně české. Distribuce je placená a zahrnuje rozsáhlou českou dokumentaci a instalační podporu. Tuto distribuci převzala a dále vyvíjí fa Novell. • RedHat Linux (a CZ verze). Začátkem roku 2001 nejrozšířenější distribuce. Uživatelsky příjemná instalační procedura, program na konfiguraci systému X-Window, prostředky pro administraci systému přes X11, velké množství softwarových balíků. • Debian GNU/Linux. Tato distribuce není vyvíjena jednou firmou - na vývoji jednotlivých balíků této distribuce se podílejí lidé po celém světě. Jde o jednu z mála nekomerčních distribucí Linuxu. • Ubuntu Linux. Kvalitní distribuce, kde Ubuntu tým vydává novou verzi Ubuntu každých šest měsíců. Vždy obsahuje poslední verze jádra, X-Window systém, Gnome a dalších klíčových aplikací, a každá verze má bezpečnostní podporu 18 měsíců. Tato distribuce vychází z distribuce Debian, je však více zaměřena na běžné uživatele, přecházející také z jiných OS. • Další distribuce (Fedora; Linspire; Slackware Linux; Turbo Linux; Linux Mandrake; Caldera Network Desktop, OpenLinux). Jednou z největších výhod mnoha distribucí Linuxu je jeho nulová pořizovací cena, stejně jako velké množství aplikací, které jsou pro tyto OS v rámci opensource a GNU licencí vyvíjeny. Linuxové distribuce nedosahují z hlediska uživatelského rozhraní takového komfortu, jako Mac OS X, či Windows XP, nicméně při řádném zaškolení, případně nenáročného způsobu použití (např. na obsluhu konkrétního procesu u stolních počítačů) je pro kancelářské nasazení dobře použitelný, tento stav se ovšem velmi rychle mění směrem k většímu uživatelskému komfortu. Velkou výhodou tohoto systému je možnost takřka libovolného přizpůsobení potřebám uživatele. Toto přizpůsobení si ovšem není schopen uživatel provádět sám. Pro potřeby podpory je možné využití komerčních služeb mnoha firem. Nevýhodou tohoto OS je nižší podpora komerčních aplikací (např. absence podpory Microsoft Office), tato nevýhoda je ovšem vyvažována velkým množstvím alternativního SW zdarma, který je často technologicky vyspělejší a založen na uznávaných standardech. Další nevýhodou je také nižší podpora ze strany výrobců periferií, obvykle však existují „neautorizované“ ovladače také pro HW jejichž výrobci Linux přímo nepodporují. Kontrolní otázky: 15. Vyjmenujte alespoň dva důvodu, proč znalost operačních systémů je potřebná pro práci programátora? 16. Proč je operační systém rozhraním mezi uživatelem a hardware počítače? 17. Jaké jsou funkce BIOSu? 18. Ze kterých generických komponent se skládá operační systém? 117 Počítačové systémy Úkoly k zamyšlení: 7. Zamyslete se nad výhodami a nevýhodami grafického (Windows) a textového (MS DOS) rozhraní mezi uživatelem a operačním systémem? Korespondenční úkol: 6. Představte si rozhraní člověka s počítačem řízeným hlasem. Napište některé příkazy, které by musel operační systém interpretovat, aby mohl vykonávat nejzákladnější funkce. Shrnutí obsahu kapitoly V této kapitole jste se seznámili s důvody obecných znalostí principů operačních systémů. Důraz v této kapitole byl kladen na pochopení rozhraní člověk/stroj a proces/operační systém. Velká pozornost byla věnována vysvětlení zájmů operačních systémů. 118 Počítačové systémy 8. Architektura operačních systémů V této kapitole se dozvíte: • • • • Z jakých generických komponent se skládají operační systémy? Jaké jsou hlavní funkce jednotlivých komponent operačních systémů? Jaké jsou základní algoritmy činnosti jednotlivých správců operačního systému? Jak jsou jednotlivé komponenty operačních systémů vzájemně propojeny? Po jejím prostudování byste měli být schopni: • • • • Charakterizovat funkce jednotlivých částí operačních systémů. Znát základní algoritmy činnosti jednotlivých správců operačního systému. Porozumět způsobům komunikace jednotlivých částí operačního systému. Popsat činnost operačního systému z hlediska funkcí jednotlivých částí operačního systému. Klíčová slova této kapitoly: Správa procesoru, správa procesů, správa paměti, správa I/O systému, správa sekundární paměti, správa souborů, networking, interpret příkazů, systém ochran, multithreading, stavový model, plánovač, preemptivní plánování, nepreemptivní plánování, kooperativní multitasking, ochrana paměti, stránkování, segmentace, přerušení, DMA, sběrnice. Doba potřebná ke studiu: 8 hodin Průvodce studiem Tato kapitola je nejnáročnějším tématem studijního textu a jsou v ní popsány principy činnosti operačních systémů. Poměrně náročné téma je zejména pro ty z Vás, kteří dosud nemají žádné znalosti z oblasti architektury operačních systémů. V takovém případě Vám zřejmě některé principy funkcí operačních systémů budou připadat obtížně pochopitelné, ovšem nenechte se tím odradit, neboť pochopením této části jste pochopili, jak operační systémy pracují. Na studium této části si vyhraďte alespoň 8 hodin. Doporučujeme studovat s přestávkami vždy po pochopení jednotlivých podkapitol. Po celkovém prostudování a vyřešení všech příkladů doporučujeme dát si pauzu, třeba 1 den, a pak se pusťte do vypracování korespondenčních úkolů. Pro popis obecné architektury operačních systémů použijme model vrstvené architektury uvedené v předchozím odstavci. Při studiu architektury operačních systémů vycházíme z principu, že operační systém je „správce prostředků“, je to soubor programů (algoritmů) vytvořených k ovládání systémových prostředků tj. paměti, procesorů, periferních zařízení a souborů informací (tj. programů a dat). Funkcí operačního systému je dbát, aby tyto prostředky byly efektivně využívány, řešit konflikty vzniklé při „soutěžení“ o jednotlivé prostředky mezi různými uživateli (mezi jejich programy). Operační systém 119 Počítačové systémy musí sledovat stav každého prostředku, rozhodovat, kterému procesu bude prostředek přidělen (v jakém rozsahu a na jak dlouho), prostředek přidělit a případně žádat jeho navracení. Podle toho, jak dělíme prostředky, se dělí i jejich správci. Na následujícím obrázku je naznačeno rozdělení operačního systému na jednotlivé správce. Uživatelské rozhraní - interpret příkazů Networking Správa souborů Správa sekundární paměti Správa I/O systému Správa hlavní paměti Správa procesů S y s t é m o c h r a n Správa procesorů Generické komponenty OS Obecná architektura operačních systémů je budovaná na principech hierarchických vrstev. Operační systém se dělí do jistého počtu vrstev (úrovní). Každá vrstva je budována na funkcionalitě nižších vrstev tzn. že nejnižší vrstva je tvořena hardwarem počítače a nejvyšší vrstva je vrstva uživatelského rozhraní. Tím se řeší problém přílišné složitosti velkého systému. Nižší vrstva nabízí vyšší vrstvě „primitivní“ funkce (služby) a přitom nižší vrstva nemůže požadovat provedení služeb vyšší vrstvy. Používají se přesně definovaná rozhraní umožňující v rámci jedné vrstvy jejich vlastnosti a funkčnosti modifikovat, aniž to ovlivní ostatní vrstvy. V klasickém operačním systému (z pohledu historického) jsou procesy jen uživatelské programy a vlastní operační systém je prováděn jako samostatná entita v privilegovaném režimu. K přepínání kontextu procesů dochází jen tehdy, je-li to nutné z hlediska plánování. V procesově konstruovaném operačním systému je vlastní operační systém kolekcí systémových procesů. Funkcí jádra je procesy separovat a přitom jim umožnit kooperovat. Minimum funkcí je třeba realizovat v privilegovaném režimu, kdy jádro je pouze ústředna pro přepojování zpráv. Samostatnou variantou operačního systému je realizace architekturou tzv. mikrojádra, kde malé jádro plní pouze několik málo nezbytných funkcí, jako je primitivní správa paměti (adresového prostoru), komunikaci mezi procesy a základní plánování a správu I/O zařízení a přerušení. Ostatní služby jádra řeší procesy (servery) běžící v uživatelském režimu. Jsou to ovladače, služby systému souborů a virtualizace paměti. Výhody v architektuře mikrojádra jsou 120 Počítačové systémy v pružnějším a snadněji rozšiřitelném řešení, lze doplňovat nové služby, odstraňovat nepotřebné služby a všechny služby jsou poskytovány jednotně (výměnou zpráv). Toto řešení je jednoduše přenositelné, tj. při implementaci na nový procesor stačí změnit mikrojádro. Spolehlivějším řešením jsou různá modulární řešení. Moduly jsou snadněji testovatelné a umožňují podporu distribuovanosti tj. výměna zpráv je implementovatelná v síti i v jednom systému. V další části si stručně popíšeme hlavní funkce jednotlivých komponent operačních systémů. 8.1 Správa procesorů/procesů Správce procesoru má tyto funkce: • sleduje prostředek (procesor a stav procesů), • rozhoduje, komu bude dána možnost užít procesor, • přiděluje procesu prostředek, tj. procesor, • požaduje vrácení prostředku (procesoru). Pod pojmem proces (task) chápejme provedení nějakého programu. Proces potřebuje pro svoji realizaci jisté zdroje: • doba procesoru, • paměť, • I/O zařízení, atd. Operační systém je z hlediska správy procesů zodpovědný za: • vytváření a rušení procesů, • potlačení a obnovení procesů, • poskytnutí mechanismů pro synchronizaci procesů a pro komunikaci mezi procesy. Operační systém je z hlediska správy procesorů zodpovědný za výběr procesu běžícího na volném procesoru. 8.2 Správa (hlavní, operační) paměti Správce paměti je úložiště připravených tj. rychle dostupných dat sdílených procesorem a vstupními/výstupními zařízeními. Hlavní (operační, primární) paměť je pole samostatně adresovatelných slov nebo bytů, zpravidla energeticky závislá, tj. po výpadku napájení se data z ní ztrácí. Operační systém je z hlediska správy (hlavní) paměti odpovědný za: • vedení přehledu kdo a 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í, • přidělování a uvolňování paměti podle potřeby, • řízení virtuální paměti. Z hlediska těchto zodpovědností správce operační paměti: • udržuje přehled o přidělené a volné paměti, • ve spolupráci se správou procesů rozhoduje o tom, kterému procesu, kolik, kde a kdy má přidělit operační paměť, 121 Počítačové systémy • • provádí přidělení volné části paměti, určuje strategii odnímání dříve přidělené operační paměti procesům (opět po předchozí domluvě se správou procesů). V této souvislosti několik poznámek k řízení tzv. virtuální paměti. K základním problémům návrhu architektury počítače patří rozhodnutí, jak se bude zobrazovat tzv. logický adresový prostor – LAP, do tzv. fyzického adresového prostoru – FAP. Uživatel vidí logický adresní prostor – LAP. Programy a data z LAP jsou do fyzického adresního prostoru - FAP zaváděny podle potřeby. LAP je vymezen množinou adres určenou počtem bitů vnitřní adresní sběrnice. Obvykle je jednodimenzionální. S dvoudimenzionální strukturalizací LAP se setkáme u kolekce samostatných lineárních segmentů (proměnné délky). V takovém případě bude adresa paměťového místa tvořena dvěma složkami. Fyzický adresový prostor FAP je vymezen množinou adres určenou počtem bitů vnější adresní sběrnice počítače. FAP je určen velikostí operační paměti. Zobrazení LAP do dostupného FAP se provádí pomocí hardware (Dynamic Address Tranlation – DAT, Memory Management Unit - MMU). Tyto prostředky musí řešit různé konflikty. Např. při odkázání místa s adresou LAP, které není zobrazeno ve FAP se ve FAP nalezne (vytvoří) volný blok a na toto místo se zavede blok z obrazu LAP s požadovanou informací. 8.3 Správa I/O systému Správce periferních zařízení (vstupního/výstupního systému) má tyto funkce: • sleduje stav prostředků (periferních zařízení, jejich řídících jednotek), • rozhoduje o efektivním způsobu přidělování prostředku – periferního zařízení, • přiřazuje prostředek (periferní zařízení) a zahajuje I/O operaci, • požaduje navracení prostředku. Z hlediska funkce operačního systému lze správce I/O systému chápat jako: • úložiště vyrovnávacích pamětí, • univerzální rozhraní ovladače I/O zařízení, • ovladače jednotlivých hardwarových I/O zařízení. Do správy I/O systému patří i správa vnější (sekundární) paměti. Počítačový systém musí poskytnout pro zálohování hlavní paměti sekundární paměť, v poslední době nejvíce používané pevné disky (hard disky) s perspektivou přechodu na velkokapacitní paměti typu „flashů. Operační systém je z hlediska správy vnější (sekundární) paměti odpovědný za: • správu volné paměti, • přidělování paměti, • plánování činnosti disku. 8.4 Správa souborů Správce souborů má tyto funkce: • sleduje prostředek (soubor), jeho umístění, užití, stav atd., 122 Počítačové systémy • • • rozhoduje, komu budou prostředky přiděleny, realizuje požadavky na ochranu informací uložených v souborech a realizuje operace přístupu k souborům, přiděluje prostředek, tj. otevírá soubor, uvolňuje prostředek, tj. uzavírá soubor. Pod pojmem soubor chápeme jak programy, tak data. Operační systém je z hlediska správy souborů odpovědný za: • vytváření a rušení souborů, • vytváření a rušení adresářů (katalogů, složek), • podporu primitivních operací pro manipulaci se soubory a s adresáři, • zobrazení souborů do sekundární paměti, • archivování souborů na energeticky nezávislá média. 8.5 Networking, distribuované systémy Pod pojmem distribuovaný systém chápeme kolekci procesorů, které nesdílejí ani fyzickou paměť ani hodiny, synchronizující činnost procesoru. Každý procesor má svoji lokální paměť a lokální hodiny. Procesory distribuovaného systému jsou propojeny komunikační sítí. Komunikace jsou řízeny protokoly. Distribuovaný systém uživateli zprostředkovává přístup k různým zdrojům systému. 8.6 Systém ochran Pod pojmem systém ochran rozumíme mechanismy pro řízení přístupu k systémovým a uživatelským zdrojům. Systém ochran musí: • rozlišovat mezi autorizovaným a neautorizovaným použitím, • specifikovat problém vnucovaného řízení, • poskytnou prostředky pro své prosazení. 8.7 Uživatelské rozhraní - interpret příkazů Interpret příkazů je program, umožňující vykonávat příkazy pro: • správu a vytváření procesů - služby operačního systému poskytované interpretem příkazů slouží k provedení programu, tj. k schopnosti operačního systému zavést program do hlavní paměti a spustit jeho běh, • ovládání I/O zařízení - uživatelský program nesmí provádět I/O operace přímo, operační systém musí poskytovat prostředky k provádění I/O operací, • správu sekundární paměti - manipulace se systémem souborů, schopnost číst, zapisovat, vytvářet a rušit soubory, • správu hlavní paměti, • zpřístupňování souborů, • ochranu – tj. detekci chyb v procesoru a paměti, I/O zařízeních a v programech uživatelů pro zajištění správnosti výpočtu, • práci v síti - výměna informací mezi procesy realizovaná buďto v rámci jednoho počítače nebo mezi různými počítači pomocí sítě, tj. implementace sdílenou pamětí nebo předáváním zpráv. 123 Počítačové systémy Tento program se nazývá příkazový interpret. Jeho funkcí je získávat a provádět příští příkaz. Uživatelská rozhraní jsou realizovaná znakově (někdy označované řádkově) nebo graficky. Znakově orientovaným interpretům zadáváme příkazy pomocí klíčových slov, graficky orientovaným pomocí poklepání myši nebo dotykem na dotykové obrazovce na ikonu, pomocí dialogů apod. 8.8 Vnitřní služby operačního systému Vnitřní služby operačního systému nejsou určeny k tomu, aby pomáhaly uživateli, v prvé řadě slouží pro zabezpečení efektivního provozu systému, tj. slouží pro: • Přidělování prostředků (zdrojů) mezi více souběžně operujících uživatelů nebo úloh. • Účtování a udržování přehledu o tom, kolik jakých zdrojů systému který uživatel používá. Cílem je účtování za služby a sběr statistik pro plánování. • Ochranu tj. péči o to, aby veškerý přístup k systémovým zdrojům byl pod kontrolou. Vnitřní služby operačního systému jsou obecně realizovány souborem systémových programů vytvářejících určité systémové struktury tzv. virtuální stroje. Typickými službami jsou programy pro: • práci se soubory, editaci souborů, katalogizaci souborů, modifikaci souborů, • získávání, definování a údržbu systémových informací, • podporu jazykových prostředí, • zavádění a provádění programů, • komunikace a řízení aplikačních programů. Kontrolní otázky: 1. Ze jakých generických komponent se skládají operační systémy? 2. Jaké jsou hlavní funkce jednotlivých komponent operačních systémů? 3. Jaké jsou základní algoritmy činnosti jednotlivých správců operačního systému? 4. Jak jsou jednotlivé komponenty operačních systémů vzájemně propojeny? 5. Které zdroje potřebuje operační systém pro svoji činnost? Úkoly k zamyšlení: 1. Rozeznáváme tři druhy plánování procesů: krátkodobé, střednědobé a dlouhodobé. Pokuste se rozhodnout ve které úrovni 5-stavového diagramu jednotlivé plánovače pracují. Korespondenční úkol: Prostudujte příručku nějakého operačního systému a odpovězte na tyto otázky: a. Za jakých základních komponent se operační systém skládá? b. Jakými metodami obsluhuje vybraný OS periferní zařízení? c. Jaký systém souborů využívá a jaké atributy souborů uchovává? d. V jakém jazyku je OS napsán? 124 Počítačové systémy Shrnutí obsahu kapitoly V této kapitole jste se seznámili s jednotlivými generickými komponentami operačních systémů, s jejich hlavními funkcemi a základními algoritmy činnosti jednotlivých správců operačních systémů. Důraz byl kladen na pochopení vzájemné komunikace jednotlivých částí operačních systémů. Velká pozornost byla věnována komplexnímu pochopení činnosti operačních systémů. 125 Počítačové systémy 9. Algoritmy činnosti jednotlivých správců operačního systému V této kapitole se dozvíte: • • • • Z jakých generických komponent se skládají operační systémy? Jaké jsou hlavní funkce jednotlivých komponent operačních systémů? Jaké jsou základní algoritmy činnosti jednotlivých správců operačního systému? Jak jsou jednotlivé komponenty operačních systémů vzájemně propojeny? Po jejím prostudování byste měli být schopni: • • • • Charakterizovat funkce jednotlivých částí operačních systémů. Znát základní algoritmy činnosti jednotlivých správců operačního systému. Porozumět způsobům komunikace jednotlivých částí operačního systému. Popsat činnost operačního systému z hlediska funkcí jednotlivých částí operačního systému. Klíčová slova této kapitoly: Správa procesoru, správa procesů, správa paměti, správa I/O systému, správa sekundární paměti, správa souborů, networking, interpret příkazů, systém ochran, multithreading, stavový model, plánovač, preemptivní plánování, nepreemptivní plánování, kooperativní multitasking, ochrana paměti, stránkování, segmentace, přerušení, DMA, sběrnice. Doba potřebná ke studiu: 8 hodin Průvodce studiem Tato kapitola je nejnáročnějším tématem studijního textu a jsou v ní popsány principy činnosti operačních systémů. Poměrně náročné téma je zejména pro ty z Vás, kteří dosud nemají žádné znalosti z oblasti architektury operačních systémů. V takovém případě Vám zřejmě některé principy funkcí operačních systémů budou připadat obtížně pochopitelné, ovšem nenechte se tím odradit, neboť pochopením této části jste pochopili, jak operační systémy pracují. Na studium této části si vyhraďte alespoň 8 hodin. Doporučujeme studovat s přestávkami vždy po pochopení jednotlivých podkapitol. Po celkovém prostudování a vyřešení všech příkladů doporučujeme dát si pauzu, třeba 1 den, a pak se pusťte do vypracování korespondenčních úkolů. Pro popis obecné architektury operačních systémů použijme model vrstvené architektury uvedené v předchozím odstavci. Při studiu architektury operačních systémů vycházíme z principu, že operační systém je „správce prostředků“, je to soubor programů (algoritmů) vytvořených k ovládání systémových prostředků tj. paměti, procesorů, periferních zařízení a souborů informací (tj. programů a dat). Funkcí operačního systému je dbát, aby tyto prostředky byly 126 Počítačové systémy efektivně využívány, řešit konflikty vzniklé při „soutěžení“ o jednotlivé prostředky mezi různými uživateli (mezi jejich programy). Operační systém musí sledovat stav každého prostředku, rozhodovat, kterému procesu bude prostředek přidělen (v jakém rozsahu a na jak dlouho), prostředek přidělit a případně žádat jeho navracení. Podle toho, jak dělíme prostředky, se dělí i jejich správci. Na následujícím obrázku je naznačeno rozdělení operačního systému na jednotlivé správce. Interpret příkazů Networking Správa souborů Správa sekundární paměti Správa I/O systému Správa hlavní paměti Správa procesů S y s t é m o c h r a n Správa procesorů Generické komponenty OS V další části si popíšeme hlavní funkce jednotlivých komponent operačních systémů. 9.1 Správa procesorů/procesů Správce procesoru má tyto funkce: • • • • sleduje prostředek (procesor a stav procesů), rozhoduje, komu bude dána možnost užít procesor, přiděluje procesu prostředek, tj. procesor, požaduje vrácení prostředku (procesoru). Pod pojmem proces (task) chápejme provedení nějakého programu. Proces potřebuje pro svoji realizaci jisté zdroje: • • • doba procesoru, paměť, I/O zařízení, atd. 127 Počítačové systémy Operační systém je z hlediska správy procesů zodpovědný za: • • • vytváření a rušení procesů, potlačení a obnovení procesů, poskytnutí mechanismů pro synchronizaci procesů a pro komunikaci mezi procesy. Operační systém je z hlediska správy procesorů zodpovědný za výběr procesu běžícího na volném procesoru. Správa procesů a s tím související správa procesoru patří mezi nejkomplikovanější části operačního systému. Pro pochopení funkcí správce si nejdříve vysvětlíme některé pojmy. Pod pojmem program budeme chápat zápis algoritmu v nějakém programovacím jazyce (například ve strojovém kódu). Předpokládejme, že je statický, neměnný (neuvažujeme-li vývoj nových verzí programů). Proces (process, task) je pak běžící program, tvořený neměnným kódem, konstantami a proměnnými daty, jako jsou stav procesoru, data na zásobníku, globální proměnné, halda, soubory atd. Pro běh procesu jsou nutné následující zdroje systému: • • • procesor, vnitřní paměť, další prostředky (I/O zařízení, soubory apod.). Základní členění operačních systémů z hlediska počtu pracujících uživatelů a počtu paralelně pracujících úloh (procesů) je zřejmé z následující tabulky. Systém Jednouživatelský Víceuživatelský Jednoúlohový MS-DOS, CP/M (stanice v Novellu), Intellec SIV Víceúlohový Windows, Finder (MacOS) Unix, VM/S Klasifikace OS z hlediska stupně paralelnosti práce: • Jednouživatelské jednoúlohové - s podporou OS se zpracovává pouze jeden proces a to trvale. • Jednouživatelské víceúlohové - jeden uživatel má současně spuštěno více aplikací (např. na pozadí probíhá náročný výpočet a současně s tím uživatel edituje nějaký soubor). Klasifikace OS z hlediska stupně paralelnosti práce: • Víceuživatelské víceúlohové - více uživatelů sdílí tytéž prostředky. Někdy se označují jako OS se sdílením času. • Systémy s reálným časem - je to vlastně varianta předchozích dvou typů určená pro řízení technologických procesů. 128 Počítačové systémy Víceúlohový systém zpravidla vytváří iluzi, že jednotlivé procesy mají celý systém pro sebe; odizolovává procesy od sebe navzájem. Na druhou stranu je někdy potřeba, aby spolu mohly procesy spolupracovat. Klasické procesy mají oddělené adresní prostory. Pokud spolu chtějí komunikovat, musí použít prostředky poskytované operačním systémem. Multitasking může usnadnit programování - příkladem jsou například síťové servery, které obsluhují několik klientů současně. Při klasickém naprogramování pomocí jednoho procesu by tento proces byl tvořen velkou smyčkou, ve které by se přijímaly požadavky klientů a postupně se vyřizovaly. Umožňuje-li systém vytváření podřízených procesů (child process, potomek), může server fungovat tak, že při příchodu požadavku od klienta server odštěpí (fork) podproces. Původní proces bude nadále čekat na další požadavky klientů. Potomek obslouží klienta a skončí. Thread (lightweight process) - elementární proces, vlákno řízení = "vylehčený proces". Některé systémy podporují tzv. multithreading - umožňují, aby se jeden "těžký" proces skládal z více vláken řízení - threadů. Thready jednoho procesu sdílejí adresní prostor paměti a mohou spolu komunikovat pomocí sdílené paměti. Nepodporuje-li systém multithreading, znamená to, že každý proces je tvořen právě jedním threadem. Výhodou threadů je nižší režie při přepínání mezi thready a snažší spolupráce mezi thready (než mezi dvěma procesy). Každý thread má samostatný zásobník a udržuje se pro něj stav procesoru (včetně programového čítače). Životní cyklus procesu v operačním systému lze charakterizovat pomocí přechodů mezi stavy procesu. Grafickým vyjádřením těchto přechodů mezi stavy jsou stavové modely. Základním vyjádřením cyklu procesu je dvoustavový model, zobrazený na následujícím obrázku. vytvoření ukončení Spuštění běžící neběžící Potlačení 2 – stavový model Proces je vytvořen buď příkazem uživatele (u terminálu) nebo na žádost operačního systému o provedení služby či na žádost jiného procesu (rodiče). Takto vytvořený proces je ve stavu „neběžícím“. Spuštěním procesu, na základě plánovacího algoritmu přechází proces do stavu „běžící“. Tento proces může být ukončen normálně, tj. byl celý proveden, nebo násilně vypršením časového limitu či uživatelem, provedením chybné instrukce, chybou V/V 129 Počítačové systémy zařízení, porušením ochrany paměti, nebo na žádost rodiče apod. „Běžící“ proces může být potlačen na základě časového limitu, vyšší prioritou apod. a přechází do stavu neběžící. Z hlediska implementace je zřejmé, že ve stavu „běžící“ může být jen jeden proces realizován jedním procesorem, kdežto ve stavu „neběžícím“ může být více procesů zařazených do fronty. vytvoření spuštění fronta ukončení procesor potlačení 2 stavový model - formální Z tohoto pohledu je přesnější vyjádření stavového modelu pomocí tří stavů, jak je zřejmé z následujícího obrázku. Procesu je přiřazen procesor vytvoření připravený ukončení běžící Proces musí čekat na dokončení I/O nebo jinou událost I/O nebo jiná událost je ukončena čekající ukončení 3 – stavový model Ve stavu „běžící“ (running) je procesu přidělen procesor a právě se provádí příslušné programy. Stav „čekající“ (waiting) vyjadřuje, že proces čeká na určitou událost, např. dokončení I/O operace. Stav „připravený“ (ready) charakterizuje proces připravený k vykonání a čeká pouze na přidělení procesoru. Popišme si nyní průchod stavovým modelem úlohy, využívající I/O operaci. Je-li úloha ve stavu „běžící“ a žádá o čtení ze souboru (nebo jinou I/O operaci), 130 Počítačové systémy modul správy souborů volá modul přidělování periferií, aby zahájil čtení (nebo jinou I/O operaci). Modul přidělování periferií ji zahájí a zároveň požádá plánovač procesu, aby proces převedl do stavu „čekající“. Je-li I/O operace dokončena, je patřičný signál přerušení vyhodnocen jako žádost o navrácení úlohy do stavu připraven. Pokud je úloha ve stavu „běžící“ dokončena, modul přidělování periferií ji odebere přidělené periferie, modul přidělování paměti uvolní paměť, která byla úloze alokována a plánovač procesu ji odebere procesor. Tím je výpočet úlohy ukončen. Pro definici a správu procesů využívá operační systém tabulky, obsahující potřebné informace o stav procesu. Každý běžící proces je realizací programu, který je interpretací instrukcí uložených v paměti. Adresa právě prováděné instrukce je zapsána v čítači instrukcí a v návaznosti na předchozí instrukce je mnohdy modifikována obsahem registrů procesoru. V nejjednodušším případě pak stačí o každém procesu uchovat právě čítač instrukcí a registry procesoru. Pro plánování procesů je třeba uchovávat informace potřebné pro spuštění procesu na CPU, informace potřebné pro správu paměti a informace potřebné pro správu I/O. Informace se vkládají do front pro plánování procesů. Fronta úloh je množina všech procesů v systému. Těchto front může být více: • • • • fronta připravených procesů (ready) což je množina procesů sídlících v hlavní paměti a připravených k běhu, fronta na zařízení což je množina procesů čekajících I/O zařízení, fronta odložených procesů charakterizovaná množinou procesů čekajících na přidělení místa v hlavní paměti, fronta na semafor realizovaná množinou procesů čekajících synchronizační událost. V souvislosti s plánováním procesů se setkáváme ještě s jedním modelem umožňujícím odkládání procesů (swapping). Každý proces, aby byl procesem, se jednou musí dostat do operační paměti (alespoň částečně). S omezenou kapacitou operační paměti musí existovat nástroj který umožňuje umístit do paměti více procesů. Jedním nástrojem je virtuální paměť, tj. rozšíření fyzického adresního prostoru na logický. Příliš mnoho procesů v operační paměti však snižuje výkonnost. Proto operační systémy umožňují provádění některých procesů odložit mimo adresní prostor operační paměti např. na disk. Stavový model se pak rozšíří o další dva stavy – „odložený čekající“, „odložený připravený“ – viz následující obrázek. 131 Počítačové systémy vytvoření spuštění ukončení běžící připravený Čas, priorita obnova Aktivace – vznik události odložení Potlačení – čekání na událost ukončení Odložený připravený čekající Aktivace – vznik události odložení Odložený čekající 5-stavový model procesů Vyjděme z předpokladu, že všechny procesy jsou čekající a operační systém vytváří prostor pro přidělení běžícímu procesu. Odložené procesy uvolňují operační paměť v případě, že je mnoho čekajících procesů nebo vlastník procesu si to přeje nebo předpisuje to časový plán či si to přeje rodič z důvodu synchronizace sourozenců. Pak procesy přecházejí do stavu „odložený čekající“. V případě, že se stala očekávaná událost (např. stavovou informaci má operační systém přístupnou) přechází proces ze stavu „odložený čekající“ do stavu „odložený připravený“. V případě, že se fronta připravených se vyprázdnila (nebo alespoň téměř vyprázdnila), pak přechází proces ze stavu „odložený připravený“ do stavu „připravený“. Plánovač CPU je program, který vybírá z procesů, sídlících v hlavní paměti a těmi, které jsou připravené k běhu – ve stavu ready. Tento plánovač může vydat plánovací rozhodnutí v okamžiku, kdy proces: 1. Přechází ze stavu běžící do stavu čekající. 2. Přechází ze stavu běžící do stavu připravený. 3. Přechází ze stavu čekající do stavu připravený. 4. Končí. Případy 1 a 4 se označují jako „nepreemptivní“ plánování (plánování bez předbíhání). Případy 2 a 3 se označují jako „preemptivní“ plánování (plánování s předbíháním). 132 Počítačové systémy Ve víceúlohových systémech při plánování procesoru mohou nastat v následující situace: • • • • Pokud některý proces přejde ze stavu běžící do stavu blokovaný (čekání na I/O operaci, semafor, čekání na uplynutí zadaného časového intervalu, čekání na ukončení procesu-potomka) pak hovoříme o nepreemptivním plánování CPU (procesů). Pokud některý proces skončí pak hovoříme taktéž o nepreemptivní plánování CPU (procesů). Pokud je některý proces převeden ze stavu běžící do stavu připravený pak hovoříme o preemptivní plánování CPU. Pokud některý proces přejde ze stavu čekající do stavu připravený pak hovoříme o systémech reálného času. Operační systém koordinuje činnost všech prostředků počítačového systému při současné práci na několika procesech (programech). Tato činnost je naznačena na následujícím obrázku. Vstupní fronta programů (Požadavku na zpracování) ... PLÁNOVAČ ÚLOHY VYBRANÉ KE ZPRACOVÁNÍ . . . ŽÁDOSTI O PŘERUŠ. SUPERVIZOR PROCESOR OP. PAMĚŤ PERIFERNÍ ZAŘÍZENÍ PROSTŘEDKY SYSTÉMU Řízení multiprogramového zpracování Supervizor udržuje přehled o stavu všech systémových prostředků (procesoru, operační paměti, vnějších pamětí, vstupních a výstupních zařízeni), tj. zda jsou připojena nebo odpojena, mají-li poruchu, jsou-li volné nebo obsazené o řídí jejích činnost. U paměti vede tabulku volných a obsazených oblastí. Volné zařízení a oblasti pamětí přiděluje programům vybraným ke zpracování. Po dokončeném zpracování, o němž dostává informaci signálem přerušení, zajišťuje obsluhu požadavku na přerušení s příp. uvolnění systémového (-vých) prostředku(ů) a jeho (jejich) přidělení jinému programu (úloze), čekajícímu na obsluhu. Kromě toho obsluhuje/řeší i mimořádné stavy v systému. Úkolem plánovače je vybírat vstupní požadavky (programy) ke zpracování na základě zjištěných potřebných prostředků pro ně a dávat podnět k zavádění vybraných požadavků do operační paměti, čímž se z nich vytvářejí úlohy připravené ke zpracování procesorem. Plánovač vybírá požadavky podle zvolené strategie a zaznamenává pro ně podle zadáni potřebné prostředky k jejich provádění: programy, data, vyhrazené oblasti operační i vnějších pamětí, vstupní a výstupní zařízení. Informace o přidělených prostředcích zaznamenává plánovač do tabulek. Program, který získá všechny potřebné prostředky, se stává úlohou vybranou 133 Počítačové systémy ke zpracování v počítači pod řízením supervizoru. Supervizor opouští úlohu tím, že odpovídající program zavede do operační paměti. Uvolní-1i se procesor, zahájí se výpočet úlohy, který probíhá dokud se nevyskytne potřeba vstupu nebe výstupu informace. Takový požadavek dostane supervizor a obslouží ho tak, že zahájí činnost potřebného přiděleného vnějšího zařízení. Úloha čeká na dokončení vstupu/výstupu a supervizor přidělí procesor jiné úloze, která čeká na výpočet. Ukončení vstupní/výstupní operace se oznamuje supervizoru, jenž převede úlohu do stavu čekání na výpočet v procesoru. Když skončí zpracování nějaké úlohy, supervizor žádá plánovač o přípravu dalšího požadavku ke zpracování. Plánovací algoritmy se vybírají vždy s jistým cílem. V daných podmínkách mají zajišťovat optimální využití prostředků systému, minimální dobu odpovědi ap. Proto je v řadě případů nutno, kromě přidělení prostředků a výběru ú1ohy ke zpracování, také stanovit časový interval vymezený pro zpracování. Všimneme si nejjednodušších plánovacích algoritmů a s nimi souvisejících charakteristických veličin a vlastností procesů, na základě kterých plánovač rozhoduje, kterému procesu přidělí procesor. Charakteristické veličiny mohou být: toi - okamžik příchodu (vytvoření) i-tého procesu, ti - doba potřebná k provedení i-tého procesu, tdi -doba zbývající na dokončení i-tého procesu, Pi - statická priorita i-tého procesu (nejnižší hodnota nejvyšší přednost), tbi - doba dosavadního běhu programu (tbi <= ti), ∆ti - přidělený časový interval. Plánovací algoritmy, které využívají výše uvedené charakteristické veličiny jsou shrnuty v tabulce: Typ Využívá charakteristickou veličinu FCFS, také FIFO (first come first served / First in - first out) toi SXFS (shortest execution first served) ti LCFS (least completed - first served) tbi EDFS (earliest - due-time fisrst served) tdi 134 Princip řádný frontový režim proces s nejkratší dobou provádění, je první obsloužen přednostně se obsluhuje proces, který zatím běžel nejkratší dobu přednostně se obsluhuje proces, kterému zbývá nejméně času na dokončení, tj. do okamžiku, kdy musí Počítačové systémy být dokončen HSFS (highest static priority first served) Pi RR (round-robin) ∆ti přednostně se obsluhuje proces s nejvyšší statickou prioritou cyklická obsluha procesů po časových intervalech Rozeznáváme tři druhy plánování procesů (process scheduling): • • • krátkodobé (short-term), CPU scheduling (plánování procesoru): výběr kterému z připravených procesů bude přidělen procesor, ve všech víceúlohových systémech, střednědobé (medium-term): výběr který blokovaný nebo připravený proces bude odsunut z vnitřní paměti na disk, je-li vnitřní paměti nedostatek (swap out, roll out), dlouhodobé (long-term), job scheduling (plánování prací, úloh): výběr, která úloha bude spuštěna (má význam zejména při dávkovém zpracování). Účelem je namixovat úlohy tak, aby byl počítač co nejvíce vytížen (třídy úloh dle náročnosti). V jednotlivých OS se nemusí nutně používat všechny tři druhy plánování procesů. V některých případech je například plánování úloh zjednodušeno na pravidlo: pokud je dostatek zdrojů OS, spusť proces. Předpokládejme, že výpočetní systém je vybaven jedním procesorem. Není tedy technicky možné, aby na jednom procesoru mohlo najednou běžet několik programů. Operační systém musí současný běh programů simulovat a tak plánovat přidělování jednoho procesoru několika procesům. Plánování procesoru se používá ve víceúlohových systémech. Může nastat v následujících situacích: • • • • pokud některý proces přejde ze stavu běžící do stavu blokovaný (čekání na I/O operaci, semafor, čekání na uplynutí zadaného časového intervalu, čekání na ukončení procesu-potomka), pokud některý proces skončí, pokud je některý proces převeden ze stavu běžící do stavu připravený, pokud některý proces přejde ze stavu čekající do stavu připravený. Jestliže k plánování procesoru dochází pouze v prvních dvou výše uvedených případech, říkáme, že OS používá nepreemptivní plánování CPU (procesů). Jinak říkáme, že OS používá preemptivní plánování CPU. Přeplánování procesoru v posledním uvedeném případě se používá zřídka (například u systémů reálného času). Multitaskový operační systém umožňuje současný běh několika programů. Přepínání programů (task switching) je předchůdcem kooperativního multitaskingu a může být realizován dvěma způsoby: 135 Počítačové systémy S omezeným přepínáním programů je možné přepínat jen mezi jedním „normálním“ programem - říká se mu hlavní program - a několika speciálními programy vytvořenými zvláštním způsobem výhradně pro přepínání. S neomezeným přepínáním umožňují spuštění několika „normálních“ programů a přepínání mezi nimi . Proces, který právě běží, musí pravidelně volat systémovou službu, kterou dává najevo, že může být přerušen (tato služba bývá kombinována s jinými službami systému). Dokud si uživatel nevyžádá přepnutí na jiný proces, nedělá tato služba nic (nebo pouze provede systémovou službu, se kterou je kombinována). Vyžádá-li si uživatel přepnutí procesů, zajistí zmíněná služba při nejbližším vyvolání přepnutí kontextu. Po jejím ukončení tedy již běží nový proces a dosud aktivní proces čeká, až bude znovu aktivován. Kooperativní multitaskový operační systém využívá přepínání mezi procesem na popředí (foreground) a procesy na pozadí (background). Výhodou je lepší využití procesoru, tzn. doba, kdy procesor čeká, vyplní zpracováním jiného procesu. Nevýhodou je zpomalení procesu na popředí a proto je nepoužitelný na realizaci paralelních úloh (správa sítě, komunikace prostřednictvím sériového rozhraní apod.). Chyba v aktivním procesu vede totiž k nekonečné smyčce. V případě nepreemptivního plánování se proces musí procesoru sám vzdát. Pokud má být doba, po kterou je proces ve stavu běžící, omezená, je nutné, aby proces kontroloval časovač a po překročení stanovené doby se dobrovolně vzdal procesoru vyvoláním služby OS, která je k tomuto účelu určena. Výhodou je, že proces nemůže být přerušen, pokud nechce (například v kritické sekci viz dále). Nevýhodou je, že špatně chovající se proces může zablokovat celý OS. Takto fungují například MS-Windows. V případě preemptivního plánování OS může odebrat procesu procesor. Zpravidla se tak děje při uplynutí časového kvanta určeného pro běh procesu a celá akce je vyvolána přerušením od časovače. Příkladem OS, který používá preemptivní plánování je OS Unix. Strategie použitá pro výběr, kterému z připravených procesů bude přidělen procesor, bývá tvůrci operačního systému vybírána podle těchto kritérií: • • • • • 136 spravedlnost: každý proces dostane spravedlivý díl času procesoru, efektivita: udržovat maximální vytížení procesoru, příp. jiné části systému, čas odezvy: minimalizovat dobu odezvy pro interaktivní uživatele, doba obrátky: minimalizovat dobu zpracování každé dávkové úlohy, průchodnost: maximalizovat množství úloh zpracovaných za jednotku času. Počítačové systémy Podle toho, které z těchto vlastností brali tvůrci systému v úvahu a jakou váhu jim přikládali, používají různé operační systému různé strategie plánování procesoru. FCFS (first come, first served - kdo dřív přijde, ten je dříve obsloužen): procesy přicházející do stavu připravený jsou umísťovány na konec fronty typu FIFO (first in first out). Při plánování procesoru se procesor přidělí tomu procesu, který je ve frontě první. Tuto strategii je možné používat při preemptivním i nepreemptivním plánování procesoru. Dalším algoritmem je plánování Shortest-Job-First (SJF). S každým procesem se spojí délka jeho příští CPU dávky. Vybírá se proces s nejkratší dobou dávky CPU přičemž docílíme dvou variant: - Nepreemptivní, bez předbíhání – jakmile se CPU předá vybranému procesu, tento nemůže být předběhnut žádným jiným procesem, dokud dávku CPU nedokončí. - Preemptivní, s předbíháním – jakmile se ve frontě připravených objeví proces s délkou dávky CPU kratší než je doba zbývající k dokončení dávky právě běžícího procesu, právě běžící proces je ve využívání CPU předběhnut novým procesem (Shortest-Remaining-Time-First – SRTF). SJF je optimální algoritmus, pro danou množinu procesů dává minimální průměrnou dobu čekání. Při prioritním plánování je s každým procesem spojeno prioritní číslo přičemž prioritní číslo vyjadřuje preference procesu pro výběr příště běžícího procesu. CPU se přiděluje procesu s nejvyšší prioritou a této nejvyšší prioritě odpovídá nejnižší prioritní číslo. Round Robin Scheduling – RR -je preemptivním plánováním. Každý proces dostává CPU na malou jednotku času – časové kvantum – desítky až stovky ms. Po uplynutí této doby je běžící proces předběhnut nejstarším procesem ve frontě připravených procesů a zařazuje se na konec této fronty. Je-li ve frontě připravených n procesů a časové kvantum je q, pak každý proces získává 1/ntinu doby CPU, najednou nejvýše po q časových jednotkách. Žádný proces nečeká na přidělení CPU déle než (n-1)q časových jednotek. Výkonnostní hodnocení záleží v prvé řadě na velikosti přidělovaného časového kvanta q: • • jestliže q je velké, pak je plánování podobné typu FCFS, jestliže q je malé, pak může být neefektivní – q musí být dostatečně velké s ohledem na režii přepínání kontextu. U operačních systémů s preemtivním plánováním procesoru může být proces přerušen mezi libovolnými dvěma strojovými instrukcemi v programu a řízení může být předáno jinému procesu. Programy jsou však psány tak, že nepředpokládají, že by došlo ke změně obsahu registrů procesoru případně některých dalších oblastí mezi dvěma instrukcemi. Při přepnutí na jiný proces musí být také změněny další registry (ukazatel na tabulku stránek, klíč pro 137 Počítačové systémy ochranu paměti, registr udávající, zda je procesor v privilegovaném stavu apod.). Proto se při přepínání mezi procesy provádí tzv. uložení kontextu (context save) původně běžícího procesu a obnovení kontextu (context restore) procesu, kterému se přiděluje procesor. Pod pojmem context je myšlen stav procesoru (obsah registrů), stav případného koprocesoru, případně i stav dalších zařízení. Tento context se ukládá buď na zásobník procesu, nebo do předem připravené oblasti dat v adresním prostoru procesu. Pro spolupráci mezi procesy se používají dva mechanismy: • • zasílání zpráv, sdílená paměť. Některé operační systémy podporují oba mechanismy. Sdílená paměť: jednodušší programování, mocnější - programátor má více prostředků, zpravidla i jednodušší implementace. Zasílání zpráv: flexibilnější, je možné použít i pro komunikaci mezi procesy běžícími na různých procesorech nebo počítačích. 9.2 Správa (hlavní, operační) paměti Správce paměti je repositář připravených tj. rychle dostupných dat sdílených procesorem a vstupními/výstupními zařízeními. Hlavní (operační, primární) paměť je pole samostatně adresovatelných slov nebo bytů, je energeticky závislá, tj. po výpadku napájení se data z ní ztrácí. Operační systém je z hlediska správy (hlavní) paměti odpovědný za: • • • • vedení přehledu kdo a 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í, přidělování a uvolňování paměti podle potřeby, řízení tzv. virtuální paměti. Z hlediska těchto zodpovědností správce operační paměti: • • • • udržuje přehled o přidělené a volné paměti, ve spolupráci se správou procesů rozhoduje o tom, kterému procesu, kolik, kde a kdy má přidělit operační paměť, provádí přidělení volné části paměti, určuje strategii odnímání dříve přidělené operační paměti procesům (opět po předchozí domluvě se správou procesů). Správce paměti patří mezi další velmi důležité - i když ne nejkomplikovanější moduly každého operačního systému. 138 Počítačové systémy Hlavním úkolem správce paměti je: • Přidělovat operační paměť jednotlivým procesům, když si ji vyžádají. • Udržovat informace o paměti, o tom, která část je volná a která přidělená (a komu). • Zařazovat paměť, kterou procesy uvolní, opět do volné části. • Odebírat paměť procesům, je-li to zapotřebí. • Zajistit ochranu paměti (umožňuje-li to technické vybavení) - žádný proces by neměl mít přístup k paměti jiného procesu nebo operačního systému, jestliže mu to 'vlastník' paměti explicitně nepovolí. Požadavky na správu paměti: • Možnost relokace - programátor nemůže vědět, ze které části paměti bude jeho program prováděn. Relokace neumožňuje, aby se adresy kontrolovaly během kompilace – odkazy na adresy se musí kontrolovat při běhu procesu hardwarem. • Procesu může být dynamicky při výměnách (odebírání a vracení prostředku procesu) přidělována jiná oblast paměti – swapping. • Odkazy na paměť v LAP (logickém adresovém prostoru) se musí dynamicky překládat na skutečné ve FAP (fyzickém adresovém prostoru. • Nutnost ochrany - procesy nesmí být schopné se bez povolení odkazovat na paměťová místa, přidělená jiným procesům. • Logická organizace - uživatelé tvoří programy jako moduly s odlišnými vlastnostmi. Moduly s programy – execute, datové readonly, read/write, některé moduly soukromé (private) a jiné veřejné (public). • Možnost sdílení - více procesů může sdílet společnou část paměti, aniž by se tím porušovala ochrana paměti. Sdílený přístup ke společné datové struktuře – sdílení jediného exempláře datové struktury je lepší řešení než udržování konzistence jejich násobných kopií vlastněných jednotlivými procesy. • Řízení paměti - jak se organizace paměti chová v různých případech. Existují tři různé kategorie řízení paměti: • Načítání (fetch) - chování při získávání dalších částí procesů nebo dat, starší na žádost (on demand), nyní v předstihu (anticipatory). • Umísťování (placement) - kde v paměti umístit požadovaný blok dat. • Výměna (replacement) - co z paměti odstranit pro nově příchozí data. Požadavky, které se v počítačovém systému kladou na paměti se zatím nedají ekonomicky splnit jedinou pamětí. Čím větší je kapacita paměti, tím větší je totiž i její poměrná cena. Podobně roste cena i se zkracováním vybavovací doby. Proto rychlé paměti (s krátkou vybavovací dobou) mají obvykle malou kapacitou, pomalé paměti (s delší vybavovací dobou) mají velkou kapacitu. Začlenění jednotlivých úrovní paměti je naznačeno na obrázku. 139 Počítačové systémy velikost Cache Hlavní (operační) paměť cena na bajt rychlost Registry Pomocná paměť Zálohovací paměť Hierarchie paměti Z pohledu uvedené hierarchie paměti se správa paměti operačního systému zabývá převážně řízením hlavní (operační) paměti. Existují různé strategie přidělování paměti: - přidělování veškeré volné paměti, - přidělování pevných bloků paměti, - přidělování bloků paměti proměnné velikosti, - segmentace paměti, - stránkování paměti, - stránkování na žádost (demand paging), - segmentace se stránkováním na žádost. Při přidělování veškeré volné paměti je část paměti RAM obsazena operačním systémem (kód, proměnné, vyrovnávací paměti), zbytek je k dispozici pro uživatelský program. V každém okamžiku je tedy v paměti nejvýše jeden uživatelský program. Většina jednoduchých operačních systémů využívá přidělování pevných bloků paměti - jako příklady můžeme jmenovat MS DOS. Její základní princip je velmi jednoduchý: každý proces musí vědět, kolik operační paměti bude potřebovat a musí si tuto paměť od operačního systému explicitně vyžádat. Operační systém - respektive správce paměti - takový požadavek bud' splní přidělením bloku požadované velikostí, nebo zamítne, a v tom případě je úkolem procesu vzniklý problém nějak vyřešit (např. předčasným ukončením práce). Pro ochranu bloků paměti se nejčastěji používá jedna z těchto metod: • • 140 mezní registry, mechanismus zámků a klíčů. Počítačové systémy Pro použití každé z těchto metod je nutná podpora hardwarem, přičemž se používá se ta metoda, kterou podporuje daný procesor. Ochrana paměti pomocí mezních registrů využívá dvou mezní registrů, které udávají nejnižší a nejvyšší dostupnou adresu. Nastavuje je operační systém, když předává řízení procesu. Odkaz na paměť mimo rozsah způsobí vnitřní přerušení ("porušení ochrany paměti"). Nastavení mezních registrů musí být privilegovaná instrukce, jinak může program napsaný se špatným úmyslem číst nebo měnit paměťové oblasti jiných procesů. Při ochraně paměti pomocí mechanismu zámků a klíčů je paměť je rozdělena na stránky pevné velikosti (např. 4 KB). Každé stránce paměti je přiřazen zámek (= celé číslo). Procesor má speciální registr, který slouží jako klíč. Proces může používat pouze ty stránky paměti, které mají zámek nastavený na stejnou hodnotu, jako je klíč. Operační systém může používat univerzální klíč číslo 0, který umožňuje přístup k libovolné stránce paměti. Další strategií je přidělování bloků paměti proměnné velikosti. Volná paměť není pevně rozdělena, ale při startu programu se přidělí paměť podle nároků programu (resp. přidělí se celý volný blok a program vrátí, co nepotřebuje). Najdeme u MS-DOS, OS-MVT (Multitasking with Variable nuber of Tasks). Ochrana paměti se provádí obdobně jako u přidělování pevných bloků paměti tj. pomocí mezních registrů nebo mechanismem zámků a klíčů. U segmentace paměti je fyzická (skutečná) adresa v paměti získávána přičtením obsahu registru segmentu k logické adrese (= adresa použitá v programu). Obsah registru segmentu nastavuje operační systém a pro uživatelský program je nepřístupný. Díky tomu adresní prostor každého procesu začíná na adrese 0 a odpadají problémy s relokací programu. Většina systémů, které používají segmentaci paměti dovoluje procesům použít více segmentů. Procesy pro svůj běh typicky požadují souvislý úsek paměti. Nutnost přidělovat souvislé úseky paměti a jejich uvolňování v libovolném pořadí podle toho, jak končí jednotlivé procesy, vede k fragmentaci paměti. Jednou z metod, jak se s fragmentací vyrovnat, je přemísťování segmentů, které však může být časově náročné. Stránkování paměti umožňuje přidělit procesu několik nesouvislých úseků paměti a vytvořit pro proces iluzi, že tato paměť souvislá je. Při stránkování paměti je fyzická paměť je rozdělená na rámce - frames (někdy se nerozlišuje rámec a stránka). Logická adresa (= adresa použitá v programu) je rozdělena na dvě složky, číslo stránky a posunutí v rámci stránky (OFFSET). Velikost stránky bývá řádově kilobyty. Při velikosti stránky 4 KB je pro offset potřeba 12 bitů (2^12 = 4K), čili spodních 12 bitů logické adresy je offset, zbylé bity jsou číslo stránky. Po rozkladu adresy (vše provádí procesor bez asistence programátora) na číslo stránky a offset se číslo stránky použije jako index do tabulky stránek (každý proces má svoji vlastní). V tabulce stránek je uvedeno číslo rámce ve fyzické paměti. K číslu rámce se připojí offset a výsledkem je fyzická adresa v paměti. 141 Počítačové systémy Za nejdokonalejší strategii správy paměti lze považovat tzv. virtuální paměť. Pro implementaci virtuální paměti musíme mít k dispozici speciální technické vybavení, kterému se říká jednotka řízení paměti. Jedná se vlastně o specializovaný procesor, který stojí mezi procesorem a operační pamětí počítače a sám zpracovává požadavky procesoru na přístup k operační paměti. Jednotka řízení paměti musí být schopna minimálně zajistit ochranu paměti, jinak není možné virtuální paměť vůbec implementovat. Velmi důležitou funkcí jednotky řízení paměti je i překlad adres - bez něj by byl systém virtuální paměti nesmírně těžkopádný a v praxi nepoužitelný. Pro rozumnou efektivitu virtuální paměti však obvykle požadujeme po jednotce řízení paměti ještě jednu službu - stránkování. Správce paměti předá jednotce řízení paměti vhodným způsoben informace ze svých tabulek - tj. který úsek paměti patří kterému procesu. Správce procesů zajistí, aby správce paměti věděl, který proces právě běží; správce paměti předá i tuto informaci jednotce řízení paměti. Při zpracování každého požadavku na přístup k operační paměti pak jednotka řízení paměti ověří, má-li aktivní proces právo s tímto úsekem paměti pracovat. Jestliže tomu tak není, jednotka řízení paměti procesoru přístup k paměti neumožní a namísto toho vyvolá výjimku. Správce paměti, který výjimku obsluhuje, pak může zajistit vše potřebné. Překlad adres umožňuje přiřadit libovolnému úseku operační paměti libovolné adresy. Správce paměti může vytvořit tabulky, které určují nejen komu který blok paměti patří a jak je velký, ale i na které adrese v operační paměti má ležet. Překlad adres nám umožní používat celý adresový prostor procesoru s tím, že kterékoliv jeho části můžeme přiřadit skutečnou operační paměť. Můžeme mít tedy například blok velikostí 1KB, který pro program leží na adrese 4000h - program jej může naprosto běžným způsobem používat. Na adrese 4002h nalezne třetí byte bloku. Správce paměti však pomocí tabulek oznámil jednotce řízení paměti, že tento blok má v operační paměti ležet na adrese 0. Jednotka řízení paměti pak bude pracovat tak, že kdykoli zachytí požadavek na přístup k některé adrese v rozmezí 4000h až 43FFh, předá jej operační paměti, ale nejprve od adresy odečte hodnotu 4000h. Abychom mohli dobře rozlišit obě adresy, které se účastní překladu adres, budeme adrese, kterou používá program a která leží v adresovém prostoru procesoru říkat logická adresa. Adrese v operační paměti, po překladu adres, budeme naproti tomu říkat adresa fyzická. K základním problémům návrhu architektury počítače patří rozhodnutí, jak se bude zobrazovat tzv. logický adresový prostor – LAP, do tzv. fyzického adresového prostoru – FAP. Uživatel vidí logický adresní prostor – LAP. Programy a data z LAP jsou do fyzického adresního prostoru - FAP zaváděny podle potřeby. LAP je vymezen množinou adres určenou počtem bitů vnitřní adresní sběrnice. Obvykle je jednodimenzionální. S dvoudimenzionální strukturalizací LAP se setkáme u kolekce samostatných lineárních segmentů (proměnné délky). V takovém případě bude adresa paměťového místa tvořena dvěmi složkami. Fyzický adresový prostor FAP je vymezen množinou adres určenou počtem bitů vnější adresní sběrnice počítače. FAP je určen velikostí operační paměti. Zobrazení LAP do dostupného FAP se provádí pomocí hardware (Dynamic Address Tranlation – DAT, Memory Management Unit - MMU). Tyto prostředky musí řešit různé konflikty. Např. při odkázání místa s adresou LAP, které není 142 Počítačové systémy zobrazeno ve FAP se ve FAP nalezne (vytvoří) volný blok a na toto místo se zavede blok z obrazu LAP s požadovanou informací. 9.3 Správa I/O systému Správce periferních zařízení (vstupního/výstupního systému) má tyto funkce: • • • • sleduje stav prostředků (periferních zařízení, jejich řídících jednotek), rozhoduje o efektivním způsobu přidělování prostředku – periferního zařízení, přiřazuje prostředek (periferní zařízení) a zahajuje I/O operaci, požaduje navracení prostředku. Z hlediska funkce operačního systému lze správce I/O systému chápat jako: • • • repositář vyrovnávacích pamětí, univerzální rozhraní driveru (ovladače) I/O zařízení, drivery (ovladače) jednotlivých hardwarových I/O zařízení. Z hlediska množství přenášených dat rozdělujeme vstupní a výstupní (dále označujeme V/V nebo I/O) zařízení na: • • znaková, kam patří klávesnice, znakové displeje a terminály, tiskárny, myši, plottery, tablety apod., bloková, kde se řadí disky, CD ROM, magnetické pásky apod. Některá zařízení do tohoto dělení nezapadají. Jsou to zařízení tzv. paměťově mapované, jako grafické displeje, speciální časovače apod. Rozhraní vstupních a výstupních zařízení poskytované operačním systémem by mělo být jednotné pro všechna zařízení do takové míry, jak je to jenom možné. Vstupní a výstupní zařízení bez ohledu na způsob připojení používají čtyři základní techniky řízení přenosu: • • • • programové řízení vstupu a výstupu, řízení na základě přerušení, přímý přístup k operační paměti (DMA – Direct Memory Access), vstup a výstup pomocí specializovaného procesoru. Při programovém způsobu řízení V/V operací určuje vždy procesor na základě programu okamžiky přenosu údajů do nebo z periferního zařízení. Synchronizace přenosu se pak děje jednoduchým testováním připravenosti zařízení na přenos dat, jak je uvedeno na následujícím obrázku. 143 Počítačové systémy Připraven? ne ano přenos Princip podmíněného přenosu Tato technika je nejméně náročná na technické vybavení. Hlavní nevýhodou je to, že procesor je značně zatížen neproduktivní činností. Technické vybavení jednotky pro připojení periferního zařízení zahrnuje registr stavu, obsahující informaci o připravenost na vstup/výstup dat a multiplexor, směrující data k adresovanému perifernímu zařízení. Cílem zavedení přerušení při řízení vstupních/výstupních přenosů dat je zlepšení účinnosti těchto operací. Přerušující událost způsobí, že se potlačí provádění běžícího procesu v CPU takovým způsobem, aby ho bylo možné později obnovit. V době řešení I/O operace se umožní, aby CPU prováděla jiné instrukce než periferní. Původně se tento mechanismus používal jen pro vyžádání pozornosti procesoru. Při vyvolání přerušení procesor začne provádět podprogram obsluhy přerušení podobným způsobem, jako by byl vyvolán normální podprogram. Podprogram musí uchovat stav procesoru, pak provede vlastní obsluhu přerušení (například zašle znak nebo blok znaků na výstupní zařízení) a nakonec obnoví stav procesoru, aby přerušený program nic nepoznal (až na zpoždění). Podobá se vyvolání podprogramu, ale provádí se speciální instrukcí. Vývojový diagram obsluhy přerušení je uveden na následujícím obrázku. Hlavní program Přerušení Nalezení příčiny přerušení a uchování stavu CPU Odskok do podprogramu pro obsluhu přerušení Obnovení stavu CPU Přenos dat systémem přerušení Posloupnost obsluhy přerušení je vyjádřena následujícími úkony: 144 Počítačové systémy • • • uchování stavu procesoru, vlastní obsluha přerušení, obnovení stavu procesoru. Základní rozdíl mezi programově řízenou komunikací a komunikací prostřednictvím přerušovacího systému je v synchronizaci přenosu dat. Při programovém řízení se při provádění operace čtení/zápisu dat musí čekat na potvrzení připravenosti periferního zařízení a teprve pak se provede přenos, přičemž procesor v době čekání neprovádí žádné následné instrukce. Při obsluze zařízení pomocí přerušení procesor pokračuje v provádění operací a je obeznámen o připraveném periferním zařízení pomocí přerušení. Je zřejmé, že principy přerušení se tak nemusí používat jen pro operace vstupu/výstupu dat, ale i pro jiné typy synchronizace procesů. Proto přerušení dělíme na: • • • Vnější - zdrojem jsou řadiče (zejména I/O zařízení) umístěné "vně procesoru". K přerušení dochází bez ohledu na právě prováděné místo v programu a ISR je vyvolán po dokončení instrukce. Reakci na přerušení lze dočasně zakázat (maskovat), pak k obsluze dojde po povolení přerušení. Po návratu z ISR přerušený program pokračuje další instrukcí. Vnitřní - přerušení je vyvoláno chybou při provádění strojové instrukce (dělení nulou, přetečení, porušení ochrany paměti, výpadek stránky). ISR může vypsat chybové hlášení a ukončit program, dosadit náhradní výsledek v případě aritmetické chyby, zavést stránku do vnitřní paměti z disku apod.. Při některých chybách je možné zopakovat instrukci, která chybu způsobila. Programové - přerušení je vyvoláno instrukcí volání přerušení umístěnou přímo v programu. Používá se pro volání služeb operačního systému. Výhoda oproti volání podprogramů: není možné vyvolávat podprogramy na libovolných adresách (pouze adresy uvedené v tabulce přerušení). Pro odlehčení procesoru bývají součástí počítače obvody schopné realizovat větší množství I/O operací (jedná se o odchylku od Von Neumannova schématu počítače): • • DMA kanály. Pro kopírování bloků dat mezi pamětí a I/O zařízením. Je třeba je naprogramovat zápisem do hardwarových registrů. Specializované I/O procesory (někdy nazývané kanály). Jsou řízeny posloupností vlastních instrukcí (tzv. kanálovým programem): o selektorové - obsluhuje 1 rychlé zařízení (mg. disk, páska), o multiplexní - mohou obsluhovat několik pomalých zařízení (tiskárny, některé terminály, apod.). DMA kanály slouží pro kopírování bloků dat mezi pamětí a I/O zařízením. Je třeba je naprogramovat zápisem do hardwarových registrů tak, jak je uvedeno v následujícím vývojovém diagramu. 145 Počítačové systémy Žádost o přímý přístup k paměti Potvrzení žádosti o přímý přístup Zápis počáteční adresy paměti do adresního registru Přenos údajů Zvýšení adresy o 1 ne Přenos hotov ? ano Konec DMA Vývojový diagram přenosu s přímým přístupem k paměti Neprogramově řízený přenos využívá zvláštní obvody tzv. kanál přímého přístupu k paměti (DMA ). Při jednoduchém řešení kanálu DMA bývá během přenosu tímto kanálem CPU vypojen z činnosti. Při jiném složitějším řešení přenos se uskutečňuje tzv. kradením cyklů probíhajícího programu, tj. CPU pokračuje zpomalenou rychlostí v běžné činnosti. Procesor Paměť Řadič disků Kradení cyklů DMA přenos Vstupní a výstupní řadiče slouží k připojování I/O zařízení. Z hlediska programátora řadič vypadá jako sada hardwarových registrů, přičemž registry mohou být: jen pro čtení, jen pro zápis, pro čtení i zápis. • • • 146 Počítačové systémy Při inicializaci počítače je potřeba zjistit, které řadiče jsou v počítači zapojeny a inicializovat je. Při vstupu nebo výstupu dat je zpravidla nutné čtením z řadiče zjistit, zda je zařízení připraveno, zapsat do řadiče příkaz a zapsat nebo přečíst data. Pokud není možné ihned pokračovat, zařízení zpravidla signalizuje svoji připravenost vyvoláním přerušení. Podle architektury počítače se vstupy/výstupy dělí na: • • paměťově mapované: registry jsou adresovány jako paměť, přístupné pomocí běžných operací čtení a zápisu do paměti, izolované: registry jsou přístupné pomocí speciálních instrukcí (zpravidla nazývaných IN a OUT); díky tomu jsou adresní prostory paměti a vstupů/výstupů oddělené. S rozvojem počítačů postupovala na mnoha úrovních i standardizace, kde právě standardizace připojování periferních zařízení je závazná jak pro výrobce periferních zařízení tak výrobce počítačů. Jeden způsob standardizace je ve vzniku propojení částí počítačů prostřednictvím sběrnic, což vedlo k normalizaci vnitřních a vnějších sběrnic a jejich komunikačních protokolů. V moderních počítačových systémech se pak setkáváme s různými úrovněmi sběrnic: • • • vnitřní (obvodová) sběrnice propojující funkční jednotky uvnitř integrovaného obvodu nebo tištěného spoje, vnější (systémová, společná) sběrnice propojující zásuvné jednotky a nebo funkční celky V/V (paralelní, seriové) sběrnice pro jednotné připojování různých periferních zařízení. Na následujících obrázcích jsou naznačeny sběrnice PC. zařízení zařízení řadič zařízení zařízení řadič Společná sběrnice CPU Operační paměť Vstupní/ výstupní řadiče 147 Počítačové systémy Připojení V/V zařízení v PC pomocí sběrnice Účelem správy je zabezpečit přístup k zařízení (pro operační systém) standardním způsobem. Zpravidla se požaduje transparentnost přístupu k zařízením (tj. stejný přístup jako k souborům, kdy až při běhu programu lze určit, kam výstup půjde). Dalším úkolem je zajistit přidělování a sdílení zařízení, ochrana zařízení (přístupová práva různá pro různé uživatele). Přidávání nových druhů zařízení je realizováno několika způsoby: • • • zásahem do jádra operačního systému, nainstalováním příslušného ovladače zařízení, kombinací obou možností. Ovladače zařízení mají tři části: • • • obslužný program přerušení, část závislá na zařízení, část nezávislá na zařízení (správce vyrovnávací paměti, pojmenovávání zařízení apod.). Do správy I/O systému patří i správa vnější (sekundární) paměti. Počítačový systém musí poskytnout pro zálohování hlavní paměti sekundární paměť, v poslední době nejvíce používané pevné disky (hard disky). Operační systém je z hlediska správy vnější (sekundární) paměti odpovědný za: • • • 148 správu volné paměti, přidělování paměti, plánování činnosti disku. Počítačové systémy 9.4 Správa souborů Správce souborů má tyto funkce: • • • • sleduje prostředek (soubor), jeho umístění, užití, stav atd., rozhoduje, komu budou prostředky přiděleny, realizuje požadavky na ochranu informací uložených v souborech a realizuje operace přístupu k souborům, přiděluje prostředek, tj. otevírá soubor, uvolňuje prostředek, tj. uzavírá soubor. Pod pojmem soubor chápeme jak programy tak data. Operační systém je z hlediska správy souborů odpovědný za: • • • • • vytváření a rušení souborů, vytváření a rušení adresářů (katalogů, složek), podporu primitivních operací pro manipulaci se soubory a s adresáři, zobrazení souborů do sekundární paměti, archivování souborů na energeticky nezávislá média. Pod systémem souborů chápeme datové objekty, které se uchovávají na vnějších pamětech počítače. Systém souborů se skládá ze dvou částí: - sada souborů obsahující vlastní uložené informace, - struktura adresářů obsahující informace o souborech. Koncepce souborů: - Soubor je sekvence bitů, bytů, řádek nebo záznamů, jejichž význam je definován zakladatelem a uživatelem souboru. - Soubor je obvykle pojmenován a má nějaké atributy (např. typ, jméno zakladatele, délka, čas poslední změny, ...). Podpora typů souborů OS: - Výhodou je možnost kontroly správného použití souboru uživatelem, další přídavné funkce (automatický make při spuštění programu, ...). - Nevýhodou je velikost OS (pro každý typ souboru nějaký kód) a možnost neobsažení všech typů a následného špatného použití. - Opačným extrémem je nepodporovat OS žádné typy souborů (např. UNIX) a chápat soubor jako sekvenci osmibitových bytů. Uložení souborů na disku: - Disky mají typicky definovanou velikost bloku určenou velikostí sektoru disku. Všechny I/O operace jsou prováděny po blocích a všechny bloky jsou shodné velikosti. Logické bloky souboru jsou pak zabaleny do fyzických bloků disku. - Obvykle dochází ke ztrátě určité části fyzických bloků díky délce souboru či rozdílu mezi délkou fyzického a logického bloku. 149 Počítačové systémy Struktura adresářů: - Adresář zařízení je na každém fyzickém zařízení a popisuje všechny soubory uložené na tomto zařízení. Obsahuje fyzické atributy souboru (délka, jak je umístěn na disku, ...). - Struktura adresáře souborů je logickou organizací souborů na všech zařízeních. Obsahuje logické atributy souboru (jméno, typ, vlastník, přístupová práva, ...). - Systém adresářů mapuje jména souborů na položky adresářů. Přístupové metody: - Sekvenční přístup - čtení a zápis na pozici kurzoru souboru s automatickým posunem kurzoru - Přímý přístup - soubor je chápán jako očíslovaná sekvence záznamů a pomocí operace SEEK lze nastavit kurzor souboru na libovolný záznam souboru - Paměťové mapování - soubor je pomocí stránkování namapován (je obrazem paměti na disku) do virtuálního adresového prostoru a s jednotlivými záznamy v souboru lze manipulovat jako s pamětí OS zpravidla o souboru udržuje další informace: • • Atributy (jen pro čtení, apod.). MS-DOS atributy: o R - read-only, jen pro čtení, o H - hidden, skrytý, o S - system, systémový, o A - archive, nebyl archivován. Datumy a časy; u některých systémů jeden u jiných více: o vytvoření, o poslední změny, o posledního přístupu. 9.5 Networking, distribuované systémy Pod pojmem distribuovaný systém chápeme kolekci procesorů, které nesdílejí ani fyzickou paměť ani hodiny, synchronizující činnost procesoru. Každý procesor má svoji lokální paměť a lokální hodiny. Procesory distribuovaného systému jsou propojeny komunikační sítí. Komunikace jsou řízeny protokoly. Distribuovaný systém uživateli zprostředkovává přístup k různým zdrojům systému. 9.6 Systém ochran Pod pojmem systém ochran rozumíme mechanismy pro řízení přístupu k systémovým a uživatelským zdrojům. Systém ochran musí: • • • 150 rozlišovat mezi autorizovaným a neautorizovaným použitím, specifikovat problém vnucovaného řízení, poskytnou prostředky pro své prosazení. Počítačové systémy 9.7 Interpret příkazů Interpret příkazů je program, umožňující vykonávat příkazy pro: • • • • • • • správu a vytváření procesů - služby operačního systému poskytované interpretem příkazů slouží k provedení programu, tj. k schopnosti operačního systému zavést program do hlavní paměti a spustit jeho běh, ovládání I/O zařízení - uživatelský program nesmí provádět I/O operace přímo, operační systém musí poskytovat prostředky k provádění I/O operací, správu sekundární paměti - manipulace se systémem souborů, schopnost číst, zapisovat, vytvářet a rušit soubory, správu hlavní paměti, zpřístupňování souborů, ochranu – tj detekci chyb v procesoru a paměti, I/O zařízeních a v programech uživatelů pro zajištění správnosti výpočtu, práci v síti - výměna informací mezi procesy realizovaná buďto v rámci jednoho počítače nebo mezi různými počítači pomocí sítě tj. implementace sdílenou pamětí nebo předáváním zpráv. Tento program se nazývá Command-line interpreter, nebo shell, event. command.com a to podle typu operačního systému. Jeho funkcí je získávat a provádět příští příkaz s povelem. Z uživatelského pohledu se při troše zjednodušení dá říci, že operační systém se skládá ze dvou základních prvků: z toho, co nám ukazuje a z toho, co nám nabízí. Existují v zásadě dva základní typy příkazových interpretů: řádkový a grafický. Historicky daleko starší řádkový interpret je dědictvím po terminálech sálových počítačů a pracuje velmi jednoduchým způsobem: uživatel zapíše řádek, má přitom k dispozici základní editační příkazy. Teprve po odeslání řádku stisknutím klávesy 'Enter' je obsah řádku interpretován jako příkaz. Typickým příkladem operačního systému, vybaveného řádkovým interpretem příkazů, je UNIX nebo MS DOS. Je zřejmé, že grafické uživatelské rozhraní je pro začátečníka a méně zkušeného uživatele manou z nebe. Často jím nepohrdne ani zkušený uživatel nebo programátor; ten však brzy pozná, že existuje řada problémů, pro jejichž řešení je prostředí jednoduchého řádkového interpretu k nezaplacení. Jen u skutečně nejjednodušších systémů může být celý grafický subsystém jediným nedílným celkem. Jinak je zapotřebí jej rozdělit do několika vrstev, z nichž každá zajišťuje vlastní skupinu úkolů a slouží vrstvě vyšší (vzpomeňme si na obecnou vrstvenou strukturu operačního systému - na obrázku vidíme podobný pohled, avšak jednotlivé vrstvy tentokrát odpovídají samostatným částem grafického subsystému). 151 Počítačové systémy Vrstvený grafický systém Na nejnižší úrovni musí být jednoduchý systém základních grafických služeb umožňujících vlastní zápis základních grafických objektů na obrazovku. Je-li počítač osazen kvalitním grafickým procesorem, nemusí být tento systém vůbec zapotřebí. V další vrstvě musí stát systém zajišťující práci s obrazovkovými okny a/nebo s virtuálními obrazovkami. V závislosti na konkrétním návrhu grafického systému mohou být tyto dvě nejnižší vrstvy navzájem 'prohozeny'. Na vrstvě obsluhující okna každopádně leží zodpovědnost za korektní spolupráci s interaktivními vstupními zařízeními (jako je klávesnice nebo myš) i se samotnými procesy - ty totiž někdy potřebují vědět, v jakém stavu jsou právě jejich okna. Na další úrovni je velmi vhodné implementovat vrstvu vyšších služeb grafického systému. Tato vrstva umožní programátorům aplikací pracovat skutečně s grafickými objekty (jako je čára, čtverec, kruh, plocha nebo třeba koule), a ne s nějakými obrazovými body, jejichž počet i barva závisí na grafickém adaptéru i na jeho momentálním režimu práce. V jistém smyslu nejvyšší úrovní je vrstva služeb uživatelského grafického rozhraní. Jedná se o prostředky, které programům usnadní komunikaci s uživatelem prostřednictvím nabídek (menu), dialogových oken a řady dalších, dnes již do značné míry standardizovaných, prvků. Tato vrstva je velmi důležitá nejen pro usnadnění práce aplikačním programátorům, ale především proto, aby bylo ovládání všech aplikací podobné a konzistentní. Přímým důsledkem neexistence této vrstvy například v MS DOSu je, že každý program ovládá grafický výstup jinak. Uživatel, který 152 Počítačové systémy musí střídavě pracovat s různými grafickými systémy a systémy ovládání má mnohdy zhoršenou orientaci. Ačkoli jsme minulou vrstvu nazvali nejvyšší, zmíníme se ještě o jedné. Je jí grafický interpret příkazů uživatele, který v grafických systémech stojí na místě 'shellu' systémů orientovaných textově. Na kvalitě a ergonomii interpretu příkazů totiž do značné míry záleží, bude-li se uživatelům se systémem pracovat pohodlně a dosáhnou-li snadno vysoké efektivity práce. 9.8 Vnitřní služby operačního systému Vnitřní služby operačního systému nejsou určeny k tomu, aby pomáhaly uživateli, v prvé řadě slouží pro zabezpečení efektivního provozu systému, tj. slouží pro: • • • Přidělování prostředků (zdrojů) mezi více souběžně operujících uživatelů nebo úloh. Účtování a udržování přehledu o tom, kolik kterých zdrojů systému který uživatel používá. Cílem je účtování za služby a sběr statistik pro plánování. Ochranu tj. péči o to, aby veškerý přístup k systémovým zdrojům byl pod kontrolou. Vnitřní služby operačního systému jsou obecně realizovány souborem systémových programů vytvářejících určité systémové struktury tzv. virtuální stroje. Typickými službami jsou programy pro: • • • • • práci se soubory, editaci souborů, katalogizaci souborů, modifikaci souborů, získávání, definování a údržbu systémových informací, podporu jazykových prostředí, zavádění a provádění programů, komunikace a řízení aplikačních programů. 9.9 Hierarchická vrstvová architektura Obecná architektura operačních systémů je budovaná na principech hierarchických vrstev. Operační systém se dělí do jistého počtu vrstev (úrovní). Každá vrstva je budována na funkcionalitě nižších vrstev tzn. že nejnižší vrstva je tvořena hardwarem počítače a nejvyšší vrstva je vrstva uživatelského rozhraní. Tím se řeší problém přílišné složitosti velkého systému. Nižší vrstva nabízí vyšší vrstvě „primitivní“ funkce (služby) a přitom nižší vrstva nemůže požadovat provedení služeb vyšší vrstvy. Používají se přesně definovaná rozhraní umožňující v rámci jedné vrstvy jejich vlastnosti a funkčnosti modifikovat, aniž to ovlivní ostatní vrstvy. V klasickém operačním systému (z pohledu historického) jsou procesy jen uživatelské programy a vlastní operační systém je prováděn jako samostatná 153 Počítačové systémy entita v privilegovaném režimu. K přepínání kontextu procesů dochází jen tehdy, je-li to nutné z hlediska plánování. V procesově konstruovaném operačním systému je vlastní operační systém kolekcí systémových procesů. Funkcí jádra je procesy separovat a přitom jim umožnit kooperovat. Minimum funkcí je třeba realizovat v privilegovaném režimu, kdy jádro je pouze ústředna pro přepojování zpráv. Samostatnou variantou operačního systému je realizace architekturou tzv. mikrojádra, kde malé jádro plní pouze několik málo nezbytných funkcí, jako je primitivní správa paměti (adresového prostoru), komunikaci mezi procesy a základní plánování a správu V/V zařízení a přerušení. Ostatní služby jádra řeší procesy (servery) běžící v uživatelském režimu. Jsou to drivery, služby systému souborů a virtualizace paměti. Výhody v architektuře mikrojádra jsou v pružnějším a snadněji rozšiřitelném řešení, lze doplňovat nové služby, odstraňovat nepotřebné služby a všechny služby jsou poskytovány jednotně (výměnou zpráv). Toto řešení je jednoduše přenositelné, tj. při implementaci na nový procesor stačí změnit mikrojádro. Spolehlivějším řešením jsou různá modulární řešení. Moduly jsou snadněji testovatelné a umožňují podporu distribuovanosti tj. výměna zpráv je implementovatelná v síti i v jednom systému. Kontrolní otázky: 1. Které zdroje potřebuje operační systém pro svoji činnost? 2. V čem je odlišnost způsobu řízení procesů pomocí 5-stavového model od 3-stavového? 3. Vysvětlete rozdíl mezi preemptivním a nepreemptivním plánováním procesů? 4. Jakými mechanismy spolupracují mezi sebou procesy v operačním systému? 5. Vyjmenujte různé strategie přidělování paměti? 6. Jaký je rozdíl mezi segmentací a stránkováním paměti? 7. Jakým způsobem se překládají adresy ve virtuální paměti? 8. Jaký je rozdíl mezi ochranou paměti pomocí mezních registrů a mechanismem zámků a klíčů? 9. Vysvětlete způsob řízení V/V zařízení na základě přerušení? 10. Vysvětlete způsob řízení V/V zařízení pomocí DMA? 11. Které informace operační systém udržuje o souborech? 12. Které typy příkazů musí umožňovat vykonávat interpret příkazů? Úkoly k zamyšlení: 1. Rozeznáváme tři druhy plánování procesů: krátkodobé, střednědobé a dlouhodobé. Pokuste se rozhodnout ve které úrovni 5-stavového diagramu jednotlivé plánovače pracují. Korespondenční úkol: 1. Prostudujte příručku Windows 7 a odpovězte na tyto otázky: a. Jaký způsob plánování obsluhy procesů využívá b. Jakou metodu přidělování paměti požívá 154 Počítačové systémy c. Jaký systém souborů využívá a jaké atributy souborů uchovává d. V jakém režimu pracuje ovladač běžné jehličkové tiskárny Shrnutí obsahu kapitoly V této kapitole jste se seznámili s jednotlivými generickými komponentami operačních systémů, s jejich hlavními funkcemi a základními algoritmy činnosti jednotlivých správců operačních systémů. Důraz byl kladen na pochopení vzájemné komunikace jednotlivých částí operačních systémů. Velká pozornost byla věnována komplexnímu pochopení činnosti operačních systémů. 155 Počítačové systémy 10. Hardware osobního počítače PC V této kapitole se dozvíte: • • • Co je to hardware počítače? Jaké jsou základní části počítače? Jakou úlohu mají jednotlivé části? Po jejím prostudování byste měli být schopni: • • • Charakterizovat základní části počítače. Porozumět architektuře počítačů. Definovat funkce jednotlivých částí počítače. Klíčová slova této kapitoly: Hardware, paměť, mikroprocesor, vstupní a výstupní zařízení, periferie, základní deska, BIOS, data, informace. Doba potřebná ke studiu: 6 hodin Průvodce studiem Cílem této kapitoly je seznámit studenta se základními pojmy, schématy a technologiemi, které souvisí s oblasti hardware. Student se zorientuje v oblasti vývoje výpočetních systému, pochopí principy konstrukce výpočetního systému a seznámí se s účelem jednotlivých hardwarových komponent. Osvojí si zcela praktické znalosti, které mu umožní orientaci v nabízené škále PC, notebooku a periferií při nákupech. Pod pojmem hardware rozumíme technické (elektronické, elektrické a mechanické) vybavení počítače a počítačových systémů. Za hardware je možno považovat počítač jako celek, jeho části (součástky, komponenty), ale i tiskárny, monitory, dokonce i elektrické kabely anebo prvky počítačových sítí. Z hlediska důležitosti počítačových komponentů nelze říct, který z nich má nejvýznamnější úlohu, protože navzájem tvoří celek, který by vynecháním některého z nich většinou přestal být funkčním. 156 Počítačové systémy Počítač se obvykle skládá z monitoru, klávesnice, skříňky a zpravidla i z myši připojené k počítači tenkým kabelem anebo bezdrátově. Monitor na první pohled připomíná televizor. Má obrazovku, ovládače jasu, kontrastu apod. Dá se skutečně říct, že jde jen o upravený televizor. Slouží na zobrazování informací, kontrolu činnosti a přehled o práci počítače. Klávesnice je zařízení, kterým do počítače zadáváme informace a ovládáme ho. Skříňka je místo, kde je uložený počítač v pravém slova smyslu. Obsahuje součásti počítače starající se o chod, reagování na vstupy z klávesnice, zobrazování údajů na monitor a mnoho dalších věcí. Může být postavená vedle monitoru (mluvíme o toweru) anebo pod ním (desktop). Myš je zařízení, pomocí kterého ukazujeme co, kam nebo jak vykonat. Při prvních systémech nebyla „povinnou“ součástí počítače, ale při dnešních grafických prostředích se už bez ní neobejdeme. K základním komponentům osobního počítače v současnosti patří: - základní deska – zabezpečuje komunikaci mezi ostatními součástkami, které se zpravidla stavebnicově zasouvají do slotů (zásuvek). - procesor – na základě instrukcí a údajů z operační paměti řadí ostatní součástky, - operační paměť – slouží na ukládání údajů, s kterými systém pracuje. Je rychlá, ale vypnutím počítače se její obsah ztratí, - grafická karta – zabezpečuje zobrazování údajů na zobrazovací zařízení (nejčastější monitor), 157 Počítačové systémy - externí paměti (pevný disk, CD, DVD) – slouží na zápis a poskytování údajů, které mají být k dispozici také po vypnutí počítače. 10.1 Základní deska Počítač jako celek je v současnosti realizovaný na modulárním (stavebnicovém) principu, který umožňuje jednotlivé součástky velmi rychle a lehce vyměnit. Základná deska (mainboard, motherboard, matiční deska) představuje prostředí, do kterého se vkládají a které zabezpečuje jejich vzájemnou komunikaci. Je připevněná ke skříňce počítače a nabíjená ze zdroje, přičemž navíc sama nabíjí některé vložené komponenty. Její charakter určuje výkon, kompatibilitu a možnosti rozšíření počítače. 1 – patice procesoru 2 – sloty pro operační paměť 3 - chipset s chladičem 4 – sloty PCI Express 5 – sloty PCI 6 – konektory Serial ATA 7 – konektor IDE (P-ATA) 8 – konektor FDD 9 – výstupní porty Obr. Základní deska Řazení má na starosti integrovaný obvod (skupina integrovaných obvodů) označovaný jako čipset (chipset, čipová sada), který zabezpečuje většinu funkcí základní desky. Obsahuje instrukce, které řídí chod desky, přesun údajů po sběrnicích a spolupráci s ostatním hardwarem. Čipset zároveň určuje 158 Počítačové systémy charakteristiky některých modulů, které mohou být do základní desky osazené (např. typ procesoru, paměti). Součástí čipsetu mohou být i rozšiřující karty – velmi často bývá na základní desce integrovaná zvuková a síťová, někdy i grafická karta. 10.1.1 Sběrnice Komunikaci a vzájemné propojení komponentů zabezpečuje sběrnice (bus). Je to skupina elektrických obvodů spojující jednotlivé části počítače. Skládá se ze tří podsystémů: - adresová sběrnice – je jednosměrná a přenáší údaje obsahující informace o adrese zařízení, které se zúčastňují komunikace případně o adrese paměti, ke které se přistupuje, - údajová (datová) sběrnice – je obousměrná a přenáší údaje mezi zařízeními, - řídící sběrnice – přenáší příkazy procesoru (řídící jednotky) určené na řízení komunikace. Sběrnice je charakterizovaná: - šířkou udávající počet bitů, které může sběrnice najednou přenášet. Zjednodušeně se může říct, že jde o počet paralelních kanálů (vodičů), kterými daná sběrnice disponuje, - rychlostí udávanou v MHz, která informuje o tom, kolik přenosů dokáže realizovat za jednu sekundu, - přenosovou kapacitou vycházející z předešlé dvojice a určující množství údajů, které je možné přenést za sekundu. Z pohledu sběrnice je možno základní desku (čipset) rozdělit na dvě části: severní most (north bridge, lokální (vnitřní) okruh) a jižný most (south bridge, vnější okruh). chipset procesor PCI Express AGP HDD ethernet sloty pre RAM north bridge south bridge USB audio PCI sloty Super IO chip FDD COM LPT Obr. Severní a jižní most Severní most (System Controller) je bližší procesoru a zajišťuje rychlé přesuny údajů mezi klíčovými prvky základní desky (procesorem, pamětí a grafickou kartou (resp. sběrnicí AGP)). Frekvence mezi procesorem a severním mostem 159 Počítačové systémy je označovaná jako frekvence systémové sběrnice (FSB – Front Side Bus) a bývá jedním z hlavních parametrů uváděných na základních deskách. Jižní most (Peripherial Bus Controller) se stará o připojení dalších periférií k základní desce. Zabezpečuje komunikaci s prvky připojenými prostřednictvím rozhraní PCI a USB. K tomuto mostu je připojený i aj diskový subsystém, přičemž už parametry mostu rozhodují o tom, jakou přenosovou rychlostí bude možné pevné disky připojené k základní desce využívat. Kromě disků má south bridge na starosti sériové a paralelní porty, disketovou mechaniku, PS2 porty pro klávesnici, myš a některé další jednoduché rozhraní, na zprávu kterých je určený Super I/O čip. 1 – PS2 pro myš 2 – PS2 pro klávesnici 3 – paralelní port (LPT1) 4 – sériový port (COM) 5 – VGA konektor 6 – USB port 7 – ethernet porty 8 – audio konektory Obr. COM, PS2 Mosty jsou navzájem spojené prostřednictvím sběrnice PCI, jejichž rychlost však dosahuje maximálně 133 MB/s a v současnosti přestává být dostačující. Dnes je možno se setkat v běžném počítači se sběrnicemi úrovňově nižšími než PCI jen v „prehistorických“ počítačích. ISA sloty jsou však stále používaným standardem v některých odvětvích – např. v průmyslových počítačích. FSB (Front Side Bus) je označením pro v současnosti 64-bitovou systémovou sběrnici zabezpečující komunikaci mezi procesorem a operační paměti a napájající se na ostatní komunikační kanály. Její frekvence musí být sladěná s vnitřní frekvencí procesoru, která obvykle bývá jejím násobkem. PCI (Peripheral Component Interconnect) představuje standardní rozhraní na připojení rozšiřujících karet k základní desce. Mezi nejčastější připojené zařízení patří zvuková, síťová, faxmodemová a TV karta. AGP (Accelerated Graphics Port) představuje vysokorychlostní sběrnici (port) určenou pro grafické karty, která je i navzdory tomu, že další vývoj byl jejím výrobcem (fy Intel) ukončený a postupně se nahrazuje rozhraním PCI Express, stále častou součástí základních desek. PCI Express je univerzální sběrnice založená na sériovém přenosu. Její vysoké přenosové rychlosti (do 4 GB/s) ji předurčují k nahrazení všech 160 Počítačové systémy vnitřních sběrnic včetně AGP a PCI, ale nedosahuje takovou rychlost, aby ji bylo možné použít na úrovni FSB. rok typ 1982 1984 1987 1988 1992 PC BUS AT BUS (ISA) MCA EISA VL BUS (VL1.0) VL 2.0 1992 PCI - 1.0 1997 AGP 1.0 AGP 3.0 2004 PCI Express šířka sběrnice (v bitech) 8 16 32 32 32 rychlos přenos t (MB/s (v Mhz ) ) 4,77 8 10-20 8-33 40 64 32-64 32 32 1 – 64 30 33 66 266/66 25000 133 266 2 000 4 000 Tab. Vývoj sběrnic 10.1.2 Sériový a paralelní přenos při popisu komunikace jsme se střetli s pojmy sériový a paralelní přenos. Při sériovém přenosu se údaje odesílají bit po bitu – v jednom časovém okamžiku zařízení odesílá anebo přijímá jen jeden bit. V případě paralelního přenosu se v jednom okamžiku odesílá (přijímá) víc bitů přičemž jejich maximální počet je určený šířkou sběrnice. Navzdory logickému závěru však ne vždy a všude platí, že paralelní přenos je rychlejší než sériový. Moderní sériové technologie (PCI Express, SATA, USB) dosahují podstatně vyšší přenosové rychlosti než starší paralelní. Jedním z důvodů je, že při paralelním přenosu musíme zabezpečit, aby údaje po všech vodičích přišly ve stejném okamžiku, což je při vyšších rychlostech technologicky i časově poměrně náročné. 10.1.3 Další rozhraní Na připojení pevných disků a ostatních úložných zařízení (CD, DVD mechanik) slouží rozhraní ATA (Advanced Technology Attachment), které plní funkci sběrnice. Velmi často se zaměňují s pojmy jako IDE, UDMA, ATAPI, které jsou však prakticky jeho synonymy. Rozhraní, původně prezentované pod obchodní značkou IDE (Integrated Device Electronics), vzniklo v roce 1986. Nejprve pracovalo jen s pevnými disky a na připojení k základní desce se používal 40 žilový kabel. Později se standard rozšířil a začal pracovat i s dalšími úložnými zařízeními – byl označený jako ATA/ATAPI (Advanced Technology Attachment Packet Interface). Po zavedení standardu EIDE (Enhanced Integrated Device Electronics) bylo možné k základní desce připojit čtyři zařízení – po dvou na každý kabel. 161 Počítačové systémy Zpočátku pracovalo rozhraní v modu PIO (Programmed Input/Output), který při přenosu vyžadoval aktivní účast procesoru a tím zpomaloval celý systém. Zrychlení zabezpečila technologie umožňující přímý přístup do paměti – DMA (Direct Memory Access), která nevyžadovala účast procesoru a díky tomu se jednak zrychlil přenos a jednak uvolnil procesor pro jiné činnosti. Další zdokonalení přišlo v podobě standardu UDMA/66, který změnou šířky ze 40 na 80 žilový kabel zvýšil kapacitu přenosu na 66 MB/s. při nezměněné šířce kabelu následovali UDMA/100 a UDMA/133 a tam se možnosti rozhraní skončily. V roce 2003 bylo představené rozhraní Serial ATA (ATA se zpětně přejmenovalo na Paralel ATA (P-ATA)), které pracuje sériově a v druhé verzi (SATA 2) umožňuje přenos 300 MB/s. Paralelně s rozhraním ATA se rozvíjelo i rozhraní SCSI (Small Computer System Interface), které už v prvních verzích umožňovalo připojení až 8 různých zařízení (kromě pevných disků a ostatních úložných zařízení se používalo i na připojení skenerů a tiskáren). SCSI disky se v běžných PC nevyužívají, jsou určeny pro servery a místa s vysokými nároky na rychlost a spolehlivost. V současnosti jsou k dispozici standardy umožňující připojení 127 zařízení s maximální přenosovou rychlostí kolem 400 MB/s. V roce 1995 dohodou největších IT firem začal vývoj standardu, který měl poskytnout jednoduché, univerzální, levné a hlavně rychlé sériové rozhraní na připojení periferních zařízení. Byl označený jako USB (Universal Serial Bus) a navzdory počáteční nedůvěře patří v současnosti mezi nejpoužívanější a nejuniverzálnější rozhraní. Umožňuje připojit až 127 periferních zařízení, přičemž podporuje jejich připojení a odpojení za chodu a bez nutnosti restartu počítače. Mezi nejpoužívanější zařízení patří myš, klávesnice, tiskárna, skener, fotoaparát, digitální kamera, MP3 přehrávač, externí pevný disk, USB klíč apod. Velkou výhodou rozhraní USB je, že dokáže kromě údajů poskytovat připojeným zařízením i napětí, takže ty s nižšími energetickými nároky už nepotřebují externí nabíjecí zdroj (např. CIS skenery). V současnosti jsou k dispozici dva standardy: - USB 1.1 podporuje přenos 12 Mb/s (cca 1,5 MB/s), - USB 2.0 podporující přenos 480 Mb/s (cca 60 MB/s). Dalším sériovým rozhraním, které bylo navzdory počátečnímu výkonnostnímu náskoku zatlačené do pozadí zejména z důvodů vysoké ceny, je FireWire (často se uvádí také pod názvem IEEE-1394 anebo i.Link). Bylo vyvinuté firmami Hewlett Packard a Apple Macintosh na přenos velkého objemu údajů. Ještě v době USB 1.0 dokázalo přenést okolo 400 Mb/s a mělo být využívané zejména na přenos audia a videa z externích zařízení (digitální kamery, paměťové karty). V současnosti se rozhraní zdokonaluje a oproti USB přináší výhody zejména v podobě vyšší rychlosti. 162 Počítačové systémy Bezdrátové technologie mohou být na základní desce zastoupené v podobě starší IR (infra-red, infračervené) komunikace anebo novějšího bluetooth. Obě technologie přenášejí údaje sériově a bez nutnosti použít přepojovací kabely. Zatímco v případě infračervené komunikace je nutná přímá viditelnost, bluetooth dokáže překonat většinu fyzických překážek (nábytek, stěna, karosérie automobilu apod.) a v některých případech dokáže zabezpečit komunikaci mezi zařízeními až do vzdálenosti 100 m. Oblastí pro nasazení těchto technologií jsou mobilní zařízení (kapesní počítače, mobilní telefony, přenosné tiskárny) a využívají se i při dálkovém ovládaní elektronických zařízení (hi-fi věže, televizory, bezdrátové klávesnice a myši). Momentální maximální přenosová rychlost pro infračervenou komunikaci je 4 MBps ve standardu Fast IR a pro bluetooth 3 MBps pro verzi 2.0. Přenosové rychlosti sice nejsou v porovnání s jinými zařízeními vysoké, ale je třeba si uvědomit, že pro účely, na které se tyto technologie používají, jsou plně postačující. Každé ze zařízení, které se prostřednictvím rozhraní připojují k základní desce, vyžaduje řazení a obsluhu buď prostřednictvím neustále ho anebo alespoň občasného přidělení výkonu procesoru. Aby procesor dokázal na požadavky zařízení (zápis, čtení, posílání údajů po sběrnici apod.) reagovat, vyvolává každý pokus zařízení o komunikaci přerušení normální práce procesoru (IRQ – Interrupt Request). Každé zařízení se identifikuje prostřednictvím svého přerušení, které je identifikovatelné jednoznačným číslem. K němu je přiřazená adresa v paměti, na které je uložený obslužný podprogram. Před jeho vykonáním si procesor uloží svůj momentální stav do speciálního registru – zásobníku, což mu umožní vrátit se po zpracování přerušení k původní činnosti a pokračovat v ní od místa, kde byla prostřednictvím IRQ přerušená. V nedávné minulosti se klíčové parametry základních desech nastavovaly prostřednictvím přepínačů (které mohly být v poloze zapnuto/vypnuto) anebo jumperů (připojily kontakty na základní desce). Obr. Přepínač a jumper 163 Počítačové systémy Dnešní desky už obvykle manuální zásah nevyžadují a všechny vlastnosti jim dokážeme změnit softwarově prostřednictvím rozhraní označovaného jako setup. Realizované nastavení používá speciální software, který je součástí základní desky a slouží pro její komunikaci s ostatními zařízeními. Označuje se jako BIOS (viz kapitola BIOS). 10.1.4 Procesor Procesor (CPU - Central Processing Unit) je hardwarové zařízení určené na zpracování a vykonávání instrukcí. Zatímco základní deska zabezpečuje komunikaci mezi zařízeními, procesor celý systém oživí – vydává jednotlivým zařízením příkazy a řídí je na základě instrukcí programu. Některé instrukce zpracovává sám, při zpracování jiných využívá další komponenty (např. operační paměť, disky, sběrnice atd.). V současnosti používané procesory označujeme jako mikroprocesory na vyjádření kontrastu s prvními procesory, jejichž velikost se blíží velikosti obytné místnosti. Fyzicky jde o jedinou součástku, kterou tvoří křemíková destička obsahující na malé ploše (několik cm2) milióny tranzistorů. Ty na základě spínání a vypínání řídí ostatní komponenty systému. Obr. Procesor 10.1.5 Části procesoru Logicky se procesor skládá z následujících částí: - řadič (řadící jednotka) čte instrukce programu a podle nich řídí ostatní obvody procesoru anebo komunikuje s komponenty, - aritmeticko-logická jednotka (ALU – Arithmetic and Logic Unit) vykonává matematické (a logické) operace, - registry představují paměťové místa na krátkodobé uložení právě zpracovaných údajů (např. kód a adresa zpracované instrukce, adresy důležitých oblastí v paměti, mezivýsledky výpočtů), - matematický (numerický) koprocesor je určený na zrychlení výpočtů. Koncepčně jde o samostatný procesor, který realizuje jen výpočty s pohyblivou desetinnou čárkou, ale od verze 80486 DX byl implementovaný jako součást 164 Počítačové systémy procesorů. V případě jeho nepřítomnosti při starších typech (bylo ho možné doplnit do systému jako samostatnou součástku) byly všechny matematické operace odkázané na procesor, čímž se výrazně snižoval výpočtový výkon počítače jako celku. Obr. Koprocesor 80387 - cache je rychlá vyrovnávací paměť relativně malé kapacity, která slouží na zrychlení toku údajů mezi procesorem a operační pamětí (resp. jinými částmi počítače). Její význam je založený na zkušenosti, že procesor často žádá z operační paměti vícekrát za sebou ty dané údaje – tím, že se umístí do rychlé cache, se snižuje čas potřebný na jejich získání. Cache může být buď součástí procesoru, anebo také ne. Podle vzdálenosti od jádra procesoru ji označujeme jako L1, L2, L3 přičemž jejich rychlost podle vzdálenosti klesá a kapacita narůstá. L1 a L2 jsou v současnosti součástí procesoru. Jestliže je obsah žádaný procesorem ve vyrovnávací paměti, je mu tento okamžitě poskytnut. Pokud v ní není, získá se z operační paměti a do cache se zavede celý blok následujících údajů. Tento proces trvá déle než přímý přístup do fyzické paměti, a proto zvýšení výkonu nastane jen tehdy, když je počet úspěšných požadavků řádově vyšší než neúspěšných. Při správné organizaci bývá úspěšnost okolo 97%. Poprvé se objevila u procesoru 80486, kde byla společná pro data i instrukce a měla velikost 8 kB. U novějších typů procesorů se velikost cache zvětšovala, ale rapidnímu zvětšení brání vysoká cena a pracnost při návrhu procesoru. Všeobecně je cache paměť charakteristická menší kapacitou (8 kB při L1 a maximálně 1 MB při L2) a její zvýšení nad 1 MB není prakticky účinné a nijak zvlášť nezvyšuje výkon. 10.1.6 Charakteristiky procesoru V současnosti je na trhu množství procesorů, přičemž každý má svoje specifické vlastnosti, výkon a samozřejmě se tomu přizpůsobuje i cena: - výběr procesoru je potřebné sladit s výběrem základní desky, protože prakticky každý typ procesoru se osazuje do jiného rozhraní – patice, - základní charakteristikou, která je často součástí názvu procesoru je jeho taktovací frekvence reprezentující výkon a „rychlosť“ procesoru. Udává se v herzích, v současnosti v gigaherzích (GHz). Tento parametr udává, kolikrát je procesor schopný za sekundu změnit svůj stav. Někdy se nepřesně uvádí, že jde o počet instrukcí, které dokáže vykonat za jednu sekundu (MIPS – Million Instructions Per Second), ale kvůli schopnostem paralelního zpracování více instrukcí se už dnes nepoužívá. Kromě frekvence je základní jednotkou měření 165 Počítačové systémy výkonu procesoru FLOPS (Floating Point Operations Per Second), který udává počet operací v pohyblivé řádové čárce, kterých je procesor schopen vykonat za jednu sekundu. Frekvence procesoru je téměř vždy násobkem frekvence základní desky (FSB). Taktovací frekvenci však využívá jen vnitřně a všechny vnější operace přizpůsobuje rychlosti FSB, resp. sběrnicím a komponentům, s kterými komunikuje, - efektivita mikrokódu hovoří o tom, jak jsou efektivně napsané mikroinstrukce procesoru zabezpečující nejjednodušší operace – tj. na kolik kroků je možné vykonat jednu instrukci. Na porovnání: při procesoru 8088 trvalo celočíselné dělení 70 kroků, jestli při dokonalejším 80188 už jen 25; procesor 80386 udělal přesun obsahu jednoho registru do druhého na 2 kroky, 80486-tce stačil jediný. - důležitou úlohu sehrává šířka slova, kterou určuje počet bitů, které je procesor schopný zpracovat v rámci jedné instrukce. Může nabývat hodnot 8, 16, 32 a 64. Tato hodnota vyjadřuje šířku vnitřní sběrnice procesoru. - nezávisle od šířky slova, které je procesor schopný zpracovat v jedné instrukci, je nutné tyto údaje do procesoru dodávat anebo z něj odebrat. Šířka datové sběrnice (šířka přenosu údajů) je parametrem, který vyjadřuje rozměr vnější sběrnice určené na komunikaci procesoru s okolím. Udává se také v bitech a čím je větší, tím víc údajů je možno přenést na jeden takt. - existence numerického koprocesoru je v současnosti už jen historickou podmínkou, - kapacita (případně existence) cache zvyšuje výkon procesoru prostřednictvím zkrácení přístupové doby k údajům, - velikost adresovatelné paměti udává velikost operační paměti, kterou je procesor schopný používat (adresovat). Ta závisí na šířce adresové sběrnice, kde velikost adresovatelné paměti je 2šířku sběrnice. Šířka sběrnice byla v 8-bitových procesorech 16-bitová a díky tomu dokázala adresovat 216 = 64 kB, u procesoru 8086 měla 20 bitů (220 = 1 MB), 386SX měla 24 bitů(220 = 16 MB) u 486 má 32 bitů (4 GB) atd. 10.1.7 CISC a RISC Základní úlohou procesoru je vykonávání programu, který se skládá z postupnosti příkazů uložených v paměti. Každý příkaz, který procesor musí vykonat, je složený z jednodušších částí, kroků - tzv. instrukcí. Úlohou procesoru je příkazy přečíst, dekódovat, vykonat a případně výsledek zapsat – tuto postupnost označujeme jako instrukční cyklus. Elementární operace, které je procesor schopný vykonat na jeden takt, označujeme jako mikroinstrukce. První procesory byly navrženy tak, že instrukce se skládaly na základě náročnosti z různého počtu mikroinstrukcí. Tento typ procesorů označujeme jako CISC (Complete Instruction Set Computer – počítače s kompletní instrukční sadou). Jeho hlavní črtou je, že používá tzv. plnou instrukční sadu – snaží se mít na každý příkaz jednu instrukci. Seznam instrukcí je uložený v mikrokódě (implementovaném přímo v procesoru), který se stará jak o překlad, tak i o jejich vykonávání. 166 Počítačové systémy O práci procesoru jsme doposud uvažovali tak, že na jeden takt dokáže realizovat jen jednu instrukci (mikroinstrukci). Platnost tohoto tvrzení však končí na úrovni procesorů 80486. U procesoru Pentium se poprvé setkáváme s metodou současné realizace většího počtu operací prostřednictvím zvýšení počtu instrukčních kanálů na dva. Procesor obsahuje dvě aritmeticko-logické jednotky, díky čemu je za určitých okolností schopný zpracovat dvě jednoduché instrukce najednou – v jednom taktu. Příklad 1.: 1. Mějme postupnost příkazů: A=10, B=20, C=A+B. 2. První dva příkazy jsou navzájem nezávislé a teda příkaz A=10 může jít kanálem 1, a příkaz B=20 kanálem 2. 3. Po paralelním ukončení obou příkazů se může provést poslední. Příklad 2.: Mějme postupnost příkazů: A=10, A=A+5. Druhý příkaz není možno vykonat, jestliže není ukončen první příkaz, čili procesor bude nucen čekat a celý výpočet musí jít přes jeden kanál. Druhý zůstává nevyužitý. Na to, aby procesor dokázal určit, zda bude možné instrukce rozdělit, vyžaduje poměrně složitou logiku a speciální porovnávací obvody. Tato architektura se označuje jako superskalární. Druhou pokročilou metodou, díky které jsou i nesuperskalární mikroprocesory schopné zpracovávat více instrukcí najednou, je zřetězení instrukcí pipelining. Filozofie pipeliningu (poprvé se objevila u procesoru 80486) spočívá v tom, že zpracovaná instrukce se rozloží na několik fází, které využívají různé (nezávislé) části procesoru. Díky tomu je možné současné vykonávání jednotlivých fází, přičemž každou instrukci zpracovává jiná část procesoru. Příklad: 1. takt 2. takt 3. takt instrukce 1. fáze 2. fáze 3. fáze 1 instrukce 1. fáze 2. fáze 2 instrukce 1. fáze 3 4. takt 5. takt 6. takt 7. takt 4. fáze 5. fáze 3. fáze 4. fáze goto... 2. fáze 3. fáze 4. fáze 5. fáze Po dobu prvního taktu se vykoná první fáze 1. instrukce a ta přechází do druhé fáze Uvolněnou první část procesoru začne používat následující instrukce – dochází k tomu, že v druhém taktu se bude první instrukce nacházet v 2. fázi a druhá instrukce v 1. fázi. Celý proces připomíná pásovou výrobu, kde do jednotlivých fází vstupuje jeden výrobek za druhým. Současné procesory jsou schopny najednou vykonávat až 5 instrukcí. Pokud se v některé z nich nachází příkaz skoku (goto), který naruší postupnost vykonávání instrukcí, procesor „krizový stav“ řeší vkládáním prázdné instrukce, která „zdrží“ práci procesoru do chvíle, pokud nezíská potřebnou instrukci na vykonání. Procesory od Pentia disponují mechanizmem, který se snaží předpovídat cílovou adresu těchto skoků. 167 Počítačové systémy Filozofie různě dlouhých instrukcí nutně vede k stále složitějším a složitějším technikám na urychlení činnosti procesoru. Tento fakt si už v začátcích uvědomili tvůrci architektury RISC (Reduced Instruction Set Computer – počítač s omezenou instrukční sadou) a vycházeli z faktu, že na vykonání 80 procent operací stačí jen 20 procent instrukcí, snížili počet základních instrukcí, které dokáže procesor realizovat. Instrukce byly navrženy tak, aby měly pevnou délku, pevný formát a co nejkratší trvání. Jestli přijde do procesoru instrukce, která není obsažená v základní (redukované) instrukční sadě, musí se existující instrukce zkombinovat poměrně náročným způsobem. Navzdory tomu je procesor RISC stále rychlejší než CISC, protože tato situace se nevyskytuje až tak často. Současné procesory pro osobní počítače jsou podle této šablony těžko zařaditelné, protože na jedné straně podporují instrukce x86, teda CISC, ale na druhé straně jsou vnitřní strukturou více podobné původním procesorům typu RISC – označujeme je jako hybridní. 10.1.8 Další zvyšování výkonu Zvýšení výkonu není až tak významné, jak by se na první pohled dalo očekávat, přineslo rozšíření vnitřní sběrnice procesoru na 64 bitů (první 64bitové procesory byly v reálném nasazení dokonce pomalejší než jejich 32bitoví vrstevníci, což zřejmě souvisí s kódem aplikací, které byly v čase jejich nasazení orientované 32-bitů). Procesor Pentium IV přinesl zvýšení výkonu díky podpoře technologie HyperThreading. Její princip spočívá v tom, že procesor se navenek tváří jako dva samostatné procesory (dvě jádra), ale jeho struktura v zásadě zůstává nezměněná, zdvojená je jen část jádra určující aktuální stav výpočetního procesu (registru). Díky této úpravě je možno velmi rychle a efektivně přepínat mezi jednotlivými úlohami např. tehdy, když jedna z nich čeká na údaje z hlavní paměti. V podstatě je tento princip možné přirovnat k vyplnění mezer. V momentě, když jedna úloha není schopná obsadit všechny výkonné jednotky, je volný prostor dán k dispozici druhé úloze. 168 Počítačové systémy Obr. Schéma dvojjádrového procesoru Typickým představitelem procesoru se zdvojeným jádrem je Pentium D, který pracuje na úrovni dvou procesorů a při zapnutém hyperthreadingu se tváři jakoby systém měl k dispozici čtyři procesory. Až na této úrovni je možno hovořit o skutečně současném zpracování více úloh (při všech nižších verzích šlo jen o přepínání se mezi úlohami a využívání nečinnosti procesoru). 10.1.9 Vývoj procesorů Novodobá historie desktopových procesorů (procesorů pro osobní počítače) se začala v roce 1981 uvedením prvního osobního počítače firmou IBM. Tento obsahoval procesor Intel 8086, který se stal zakladatelem řad procesorů typů Intel. Tab. Vývoj procesorů rok Čipové označení procesoru 1981 1982 1982 1988 1988 1991 1989 1992 1992 1994 1995 1997 1997 1998 1999 2000 2002 2003 2004 2004 8086 8088 80286 80386SX 80386DX 80486SX 80486DX 80486DX2 Pentium 80486DX2-4 Pentium Pro Pentium MMX Pentium II Pentium Celeron Pentium III Pentium IV Pentium IV s HT AMD Athlon 64 bit Pentium IV 64 bit Pentium D Takt (MHz) 4,77 4,77 6-12 6-25 12-33 20-33 25-50 50-120 60-200 75-100 166-233 166-233 233-600 266450-1300 1400240026702800- Šířka vnější sběrnice (v Šířka vnitřní cache bitech) sběrnice (v bitech) 16 16 ne 8 16 ne 16 16 ne 16 32 ne 32 32 ne 32 32 ano 32 32 ano 32 32 ano 32 64 L1,L2 32 64 32 32 32 32 32 32 32 64 64 64, dvojjádrový 169 Počítačové systémy Během několika desítek let Intel neustále udával tempo a i když se sporadicky objevovali také další výrobci, obvykle po několika letech svoje aktivity ukončili. Kromě výkonných procesorů (Pentium) vyrábí Intel i levnější a méně výkonné verze, které nejsou pojmenované Celeron. Jsou postavené na stejném jádře jako výkonné procesory, obvykle mají jen menší cache, užší sběrnici anebo nižší vnitřní frekvenci. Jediným současným konkurentem je pro Intel firma AMD, která se z levného výrobku zabírajícího několik málo procent trhu přepracovala díky nízké ceně a vysokému výkonu prakticky až na úroveň Intelu. Její procesory nesou označení Athlon (Thunderbird, Athlon XP) a levnější verze konkurující Celeronu – Duron a Sempron. Kromě desktopových procesorů, kterými jsme se na tomto místě zabývali, tvoří také nezanedbatelnou část procesory pro servery, které zpravidla výkonnostně předstihly představenou tabulku minimálně o několik let. Samostatnou kategorií jsou i procesory pro notebooky vyznačující se v první řadě sníženou spotřebou a sníženou teplotou při výkonu, který jen minimálně zaostává za výkony desktopů (např. Pentium M, Celeron M, Athlon Mobile). 10.1.10 Využití procesorů Procesory v podobě, v jaké jsme si je představovali do této doby, představují jen jednu kategorii nasazení – řídící jednotku počítače, od které se vyžaduje univerzálnost (umožňující připojení a komunikaci s mnohými zařízeními a řešení množství úloh zadávaných prostřednictvím programu) a vysoká rychlost. V tomto případě o procesoru hovoříme jako o CPU (Central Processing Unit – centrální procesorová jednotka). Kromě řízení počítačů je však možno procesory využít také jako MCU (Micro Controller Unit – mikrořadič). Uplatnění této kategorie je velmi rozsáhlé – od běžné spotřeby elektroniky až po výkonné počítače. Tyto procesory charakterizuje nízká cena, malé rozměry a nízká spotřeba energie. Je možno se s nimi střetnou v součástkách počítače (klávesnice), v automobilech, mobilních telefonech apod. Poslední kategorií jsou DSP (Digital Signal Processor – digitální signálové procesory), které představují kompromis mezi předcházejícími kategoriemi. Vyznačují se vysokým výkonem v oblasti matematických výpočtů a schopnostmi zpracovat velké objemy údajů. Často jsou jejich součástí i analogovo-digitální a digitálně-analogové převodníky na transformaci údajů mezi počítačem a okolím. Využívají se např. ve zvukových kartách, digitálních fotoaparátech a kamerách. 10.2 Paměti Paměť počítače je hardwarové zařízení určené na ukládání údajů a programů, podle kterého počítač pracuje. Dříve než se pustíme do představení konkrétních řešení na ukládání údajů, popišme si všeobecné vlastnosti pamětí, které jsou pro uživatele důležité: - kapacita paměti hovoří o tom, kolik bajtů je možné v paměti najednou uchovat, 170 Počítačové systémy - přístupová doba udává čas, za který je potřeba čekat od zadání požadavků do doby, než paměť požadovanou informaci zpřístupní, - přenosová rychlost informuje o množství údajů, které je možné za časovou jednotku z paměti přečíst anebo zapsat, - energetická závislost určuje, zda údaje na to, aby zůstaly v paměti zapsané potřebují neustále nabíjení anebo ne, - přístup vyjadřuje způsob, jakým je možné informaci zpřístupnit. Je možno uvažovat o principu sekvenčním (typickým představitelem jsou páskové jednotky, které se na požadovanou informaci dokážou nastavit jen tak, že přečtou všechny údaje, které je předcházejí) a přímém (náhodném), který na základě zadané adresy dokáže informaci zpřístupnit okamžitě, - možnost zápisu kde rozlišujeme paměti umožňující jen čtení a paměti umožňující čtení i zápis, - princip záznamu charakterizuje způsob, jakým se jednotlivé bity na paměťové médium zaznamenávají. Nejčastěji se střetáváme s magnetickým, elektrickým nebo optickým zápisem, - spolehlivost je sice jen okrajovým, ale pro uživatele zřejmě jedním z nejdůležitějších parametrů. Obvykle je udávaná časem mezi dvěma poruchami zařízení, - nutnost obnovovat obsah hovoří o tom, zda uložené údaje je nutné neustále v paměti obnovovat anebo v ní zůstanou uložené po primárním zápise (viz dále). V zásadě můžeme paměti rozdělit do třech základních skupin: - registry a cache představují paměťová místa přímo na čipu u a využívají se na krátkodobé uchování údajů a programů, ke kterým potřebuje mít procesor okamžitý přístup. Do této kategorie můžeme zařadit i vyrovnávací a pracovní paměti ostatních hardwarových komponentů, které slouží na vyrovnávání rychlostních rozdílů a ukládání údajů komponentu. - vnitřní paměť je paměť, která bývá zpravidla osazená do základní desky a připojená k procesoru přímo prostřednictvím sběrnice, - vnější paměť je určena na dlouhodobé uchovávání údajů. Slouží jako uložisko, ze kterého se údaje přenášejí do operační paměti (anebo opačným směrem). O registrech a cache jsme hovořili v kapitole o procesorech, podívejme se podrobněji na vnitřní a vnější paměti. 10.2.1 Vnitřní paměti Vnitřní paměť představuje typ paměti obvykle přímo připojené k základní desce . Skládá se z integrovaných obvodů a může být součástí nejen základních desek, ale i některých přídavných karet (grafická karta) anebo periferních zařízení (tiskárny). Podle způsobu, jakým můžeme s údaji vnitřních pamětí manipulovat, dělíme je na: - RWM (Read/Write Memory) – paměť určená na čtení i zápis, - ROM (Read Only Memory) – paměť určená jen na čtení, která dovoluje jen čtení a neumožňuje zápis. Podle přístupu k údajům dělíme paměti na: 171 Počítačové systémy - RAM (Random Access Memory) – paměť s libovolným (náhodným) přístupem, tj. s okamžitým přístupem na libovolné místo za účelem čtení nebo zápisu, - SAM (Sequential Access Memory) – paměť se sekvenčním přístupem, která pro přístup ke konkrétnímu bloku údajů vyžaduje pročítání všech bloků mezi aktuálním a požadovaným (pásková jednotka). - CAM (Content-addressable Memory) – asociativní paměť, která je tvořená tabulkou obsahující prohledávané hodnoty a zodpovídající přiřazené paměťové adresy (využívá se např. pro paměti cache, adresové tabulky ve switchech, routrech apod.). 10.2.2 RAM Paměť s libovolným přístupem (Random Access Memory) umožňuje zapisování i čtení údajů. Ke každému paměťovému prvku přistupuje prostřednictvím adresy ve stejném čase. Používá se zejména jako operační paměť počítače. Obsahuje údaje a program, podle kterého procesor pracuje. Vzhledem ke svému nasazení se od něj vyžaduje krátká doba přístupu a vysoká přenosová rychlost. Obsah operační paměti se po vypnutí počítače vymaže, proto obvykle údaje před vypnutím ukládáme na externí paměti. Hardwarově bývá zpravidla realizovaná jako samostatný výměnný modul připojený k procesoru prostřednictvím systémové sběrnice základní desky. Konstrukčně jde o polovodičovou součástku, kterou je možno řešit jako dynamickou anebo statickou. Statické (SRAM) paměti uchovávají v sobě informaci během celé doby připojení ke zdroji nabíjení bez nutnosti informaci obnovovat. Jsou realizované bistabilním klopným obvodem, který nabývá hodnoty 0 anebo 1. Jejich nevýhodou je vyšší složitost a z toho plynoucí vyšší výrobní náklady, výhodou nízká přístupová doba. SRAM se používá na výrobu pamětí několikanásobně nižší kapacity než DRAM a využívá se např. na realizaci L2 cache. Dynamická (DRAM) paměť udržuje údaje pomocí elektrického náboje na kondenzátoru. Vzhledem k tomu, že náboj má tendenci se vybíjet, je potřebné několik stokrát za sekundu uložené údaje obnovovat. Dynamické paměti jsou podstatně levnější a v současnosti se používají např. v modulech SDRSDRAM, DDR-SDRAM a RDRAM. Obr. DDRAM v DIMM provedení Pro operační paměť (RAM) je charakteristická vysoká rychlost a energetická závislost (smazání údajů při vypnutí počítače). Při práci počítače jsou v ní uložené údaje (někdy celá aplikace), s kterými procesor pracuje. Čím větší paměť máme k dispozici, tím je práce s počítačem plynulejší. V případě menší RAM se údaje často ukládají a čtou z disku, co zpomaluje práci a nutí procesor zbytečně čekat. 172 Počítačové systémy Zajímavou kategorií RAM pamětí je VRAM (Video RAM), která se používala na grafických kartách. Je to dvojbránová paměť, která umožňuje současný přístup k údajům dvěma zařízením – řadiči grafické karty, který údaje zobrazuje a procesoru počítače, který videopaměť plní obrazovými údaji. Použití nedvojbránové paměti u levnějších typů grafických karet se nutně odráželo na výkonu, protože klasická RAM nutila procesor a zobrazovací čip, aby se při práci s ní střídali. V současnosti je už VRAM překonaná novějšími technologiemi. 10.2.3 ROM Z paměti typu ROM (Read Only Memory) je možno údaje jen číst. Její obsah se obvykle definuje u výrobců a standardně se nedá přepsat. Důležitou charakteristikou této paměti je, že je energeticky nezávislá a zachovává svůj obsah i po odpojení nabíjení. Kapacitně je tato paměť malá, řádově okolo 64 kB. Kromě základní ROM verze, existují i další modifikace: - PROM (Programable Read Only Memory) představuje typ paměti, do které se zápis nevykonává při výrobě, ale později ho uživatel může realizovat pomocí tzv. programátora paměti PROM. Zápis se realizuje destrukcí vodivých cest a po něm se PROM stává ROM – čili umožňuje jediný zápis. - EPROM (Eraseable PROM) se programuje podobně jako PROM, umožňuje však zapsané údaje vymazat prostřednictvím UV záření (díky realizaci prostřednictvím speciálních unipolárních tranzistorů). - EEPROM (Electrically EPROM) je analogií s předcházejícími typy, mazání je však možné realizovat elektricky a podstatně rychleji než při EPROM. - Flash EEPROM je speciální typ EEPROM, s obsahem kterého je možné manipulovat přímo v počítači. Umožňuje asi 1000 násobné přepsání a je rychlejší než předešlé typy – možno říct, že prakticky má vlastnosti RAM. 10.2.4 BIOS Nejtypičtějším a historicky nejznámějším příkladem ROM je paměť, ve které je uložený BIOS (Basic Input/Output System – základní vstupní výstupní systém). ROM BIOS je umístěný na základní desce počítače. Obsahuje množinu obslužných programů nevyhnutelných pro jeho činnost, které zabezpečují: - test počítače při zapnutí, který kontroluje existenci, testuje základní zařízení systému jako také rozšiřující karty zasunuté ve slotech, - zavedení (start) operačního systému - BIOS zkontroluje, zda jsou na disku, ze kterého se má operační systém načítat do RAM k dispozici potřebné údaje. Jestli je najde, zavede je do operační paměti a odevzdá jim řízení, - základní programy na obsluhu přerušení a standardních zařízení počítače. Ty před spuštěním operačního systému zabezpečují komunikaci s uživatelem na úrovni klávesnice a zobrazování v textovém režimu, po jeho spuštění zase v některých operačních systémech představují prostředníka při komunikaci operačního systému a samotného hardwaru. 173 Počítačové systémy Obr. BIOS a záložní BIOS V minulosti býval BIOS umisťovaný do paměti typu ROM, které nemohly být měněné, ale v současnosti se vzhledem k neustálému vylepšování softwaru a možnosti opravy chyb přesunul na úroveň flash EEPROM, díky čemu je možná jeho aktualizace (obvykle je k dispozici na stránce výrobců základní desky). Aktualizace se realizuje prostřednictvím speciálního programu, který přepíše původní obsah BIOSu novým. Pokud by byl BIOS přepsaný nevhodně (nesprávným obsahem, poškozeným souborem apod.), mohlo by se stát, že počítač už nenastartuje, a proto někteří výrobci umisťují na základní desku záložní BIOS anebo neumožňují přepsat tu část, která se stará o zavedení systému. S rychlým vývojem hardwaru BIOS přestal být doménou základních desek a přesunul se také do dalších zařízení. Často se s ním můžeme setkat u grafických karet, CD a DVD mechanikách, digitálních fotoaparátech, mobilních telefonech apod. Pro jeho označení se v těchto zařízeních začalo běžně používat pojmenování firmvér (firmware). CMOS BIOS při své činnosti výchozí z několika nastavení, které může ovlivnit uživatel. Patří sem např. nastavení pořadí zařízení, na kterých bude BIOS hledat operační systém, nastavení cache pamětí, povolení/zakázání zařízení integrovaných na základní desce a nastavení jejich parametrů, nastavení frekvencí sběrnic základní desky případně procesoru, nastavení data a času apod. Protože BIOS je řešený jako ROM, tyto nastavení se ukládají do paměti s malou kapacitou, která nese označení CMOS (Complementary Metal Oxide Semiconductor). Vzhledem k tomu, že je energeticky závislá (i když má jen velmi nízké nároky), vyžaduje nabíjení pomocí baterie, která je umístěná na základní desce. Údaje uložené v CMOS můžeme měnit prostřednictvím programu označovaného jako setup. Tento je možné vyvolat při startu počítače stlačením určitých kláves anebo kombinací (nejčastěji Delete nebo F10). 174 Počítačové systémy Při změně údajů je však třeba myslet na to, že jejich nesprávné hodnoty mohou výrazně snížit výkon a v extrémním případě dokonce znemožnit start počítače. Na vyřešení takového stavu pomůže zpravidla jen reset CMOS, který se postará o výrobní nastavení všech parametrů. Je ho možno realizovat přepnutím switchu, který se obvykle nachází na základní desce v blízkosti baterie. Obr. Reset CMOS 10.2.5 Vnější paměti Vnější (externí) paměti slouží na dlouhodobé uchovávání informací, které obvykle představují část operační paměti (RAM) anebo výsledek práce procesoru. Externí paměť pro práci počítače teoreticky není nevyhnutelnou, prakticky se však bez ní už nedokážeme obejít – v prvé řadě obsahuje operační systém, který se z něj do operační paměti zavádí prostřednictvím instrukcí BIOSu, potom údaje, s kterými pracujeme a nakonec aplikace, které nám poskytují funkce na práci s nimi. Vnější paměti se zpravidla vyznačují větší kapacitou a nižší rychlostí než vnitřní paměti. Standardně jsou realizované na magnetickém nebo optickém principu a jsou energeticky nezávislé. 10.2.6 Pevný disk Zřejmě nejpoužívanější externí pamětí je pevný disk (hard disk drive, HDD, někdy se používá archaizmus winchester). Pojem externí v tomto případě nevyjadřuje jeho umístění mimo skříňky počítače, ale jde u způsob připojení k procesoru a základní desce. Pevný disk se prostřednictvím rozhraní ATA (SCSI) připojuje k systému sériovým anebo 80-žilovým paralelním kabelem. 175 Počítačové systémy Není součástí základní desky, umisťuje se do speciálních držáků (šachet) skříňky. Obr. Pevný disk s krytem a bez něho Pevný disk se skládá z kovových kotoučů umístěných nad sebou, na kterých je nanesená magnetická vrstva sloužící na záznam údajů. Ty se ukládají oboustranně, o manipulaci (čtení a zápis) se starají zapisovací a čtecí hlavy, přičemž každá plocha má samostatnou dvojici. Disk je uzavřen v prachotěsném (ne vzduchotěsném) pouzdře, kde se kovové kotouče neustále (od zapnutí po vypnutí) otáčejí. Hlavičky se plochy disku nedotýkají – díky vysoké rychlosti a proudění vzduchu „plavou“ těsně nad povrchem. Vniknutí jakékoli prachové částice a dotyku s plochou by při vysoké rychlosti mohlo údaje nenapravitelně poškodit. Pevný disk se nenazývá pevným z důvodu přišroubování ke skříňce počítače (nakonec existují také přenosné pevné disky, které se k počítači připojují např. přes port USB), ale na základě ukládání údajů na neohybné (teda pevné) kovové či skleněné plotny. Jeho přímým předchůdcem a prvním „moderním“ záznamovým médiem byla disketa vyrobená z ohybného materiálu, která se díky této charakteristice označuje jako pružný disk (floppy disc). U pevného disku sledujeme následující parametry: - v prví řadě nás zřejmě zajímá kapacita vyjadřující množství údajů, které dokážeme na disku uchovávat najednou, Tento parametr je jedním z nejzkreslenějším, protože výrobci neuvažují o 1 GB jako o 1024 MB, ale o 1000 MB. Uživatel je potom po připojení disku zklamaný, když namísto avizovaných 80 GB mu systém po správných přepočtů nabízí jen 74,5 GB. - rychlost práce závisí na více parametrech, na prvním místě je třeba uvést rychlost otáčení desek. Ta se udává v počtu otáček za minutu (rpm – revolutions per minute). Čím je rychlost vyšší, tím více údajů je možno přečíst z disku za časovou jednotku, - přístupová doba vyjadřuje čas, který potřebuje čtecí hlava na to, aby se nastavila na místo, z kterého chceme číst, - hustota záznamů udává, kolik údajů se vejde na 1 cm2 (příp. palec čtvereční), - velikost diskové cache určuje paměťový prostor vyhrazený na přechodné umístění údajů, které „budou potřebné za okamžik“ při čtení nebo zápisu. Tvoří prostředníka mezi diskem a základní deskou. V současnosti se pohybuje na úrovni 8 MB. 176 Počítačové systémy - přenosová rychlost je výslednou hodnotou závislou na předcházejících parametrech a udává, jaké množství údajů je možné přenést za jednotku času. - komunikační rozhraní je závislé na komunikaci se základní deskou. K dispozici máme P-ATA, SATA, SCSI. - rozměry disku (průměr desek) se udávají v palcích. Standardní disky mají průměr 3,5“, pro přenosné počítače jsou výrazně menší – 2,5“. 10.2.7 Fyzická struktura disku Zápis údajů na plotny disku se realizuje v soustředných kružnicích, které nazýváme stopy. Stopy se stejným poloměrem (umístěné na plotnách nad sebou) tvoří cylindry. Stopy jsou rozdělené na sektory (viz obrázek), přičemž sektor představuje nejmenší jednotku, ke které mohou hlavy přistoupit. Na stopách s menším poloměrem zabírá sektor menší plochu než na stopách vzdálenějších od středu. Aby se zbytečně neplýtvalo místem, stopy se rozdělí do více zón a v rámci každé zóny mají potom stejný počet sektorů. Velikost jednoho sektoru je obvykle 512 B. stopa hlava 1 (head 1) hlava 2 (head 2) hlava 3 (head 3) cylinder stopa sektor zóny klaster (2 sektory) Obr. Cylindr, stopa, zóna a sektor A jakoby toho nebylo dost, na zjednodušení správy disku a přístupu operačního systému k údajům se sousední sektory slučují do klastrů. Klaster (cluster) je potom nejmenší využitelná jednotka, do které je možno zapsat údaje. Pokud se do něho vloží jen jeden bajt, je celý klastr označen jako obsazený a pro zápis dalších údajů nepřístupný. Velikost klastrů závisí na velikosti pevného disku, pohybuje se od 2 sektorů vyšší (4, 8 atd.). Diskové zařízení má kromě prostoru určeného na ukládání údajů označovaného jako datová oblast, vyhrazených i několik speciálních částí. „Začátek“ disku (první sektor disku na platně 0 a cylindru 0) se označuje jako master boot record (mbr) a skládá se ze dvou částí: 177 Počítačové systémy - zaváděcí program (boot), který se po kontrole hardwaru BIOSem postará o načítání operačního systému z disku, - tabulka oblastí (partition table) obsahuje informace o rozdělení pevného disku. Tento se může dělit na více logických oblastí (partition), přičemž každá z nich se v operačním systému uživateli jeví jako samostatný disk. V každé logické oblasti může být nainstalovaný jiný operační systém. 10.2.8 Diskové souborové systémy Od použitého operačního systému zpravidla závisí i použití souborového systému. Údaje jsou na disku (anebo přesnější v logické oblasti) uložené v souborech (viz dále) a souborový systém určuje způsob jejich ukládání a organizování tak, aby k nim byl zabezpečený co nejjednodušší přístup. Souborové systémy mají za sebou vlastní historický vývoj stejně jako všechny ostatní prvky IKT. V současnosti se můžeme v rámci pevných disků střetnout s následujícími: - FAT-16, VFAT, FAT-32 – historické souborové systémy používané v prostředí MS DOS, OS/2, Windows 95 a Windows 98. Tento souborový systém byl původně navržen pro diskety a až později se aplikoval na pevné disky. Obsahuje údaje o umístění souborů v tabulce označované jako FAT (File Allocation Table), z které je také odvozen název systému. V tabulce FAT je zaznamenané rozložení souborů v jednotlivých klastrech disku. Informuje o tom, zda je klastr volný anebo zda soubor tvoří několik klastrů. V adresáři není zaznamenáno jen jméno souboru, ale i číslo prvního souborem použitého klastru, odkaz na druhý klastr atd. Při požadavku na přečtení souboru je nejdříve v tabulce zjištěno fyzické umístění prvního klastru na disku, potom mikroprocesor, který je součástí každého disku, nasměruje čtecí hlavu k němu a údaje jsou poslané do vyrovnávací paměti disku. Odtud směřují k operační paměti či procesoru. Čísla v označení hovoří o tom, kolik bitů používá daný souborový systém na adresování. Na jejich počtu potom závisí také maximální velikost, kterou dokáží z pevného disku využít (v případě FAT-16 je k dispozici 16 bitů, což umožňuje adresovat 32 MB, když je velikost klastru jednosektorová a 2 GB když se použijí maximálně 64-sektorové klastry). FAT-32 dokáže teoreticky adresovat 4 TB (terabajty), ale maximální velikost souboru je ohraničená 4 GB. Na pevném disku používajícím souborový systém FAT jsou k dispozici standardně dvě totožné FAT, aby se předešlo ztrátě údajů při poškození jedné z nich. - NTFS (New Technology File System) představuje souborový systém poprvé použitý ve verzi Windows NT, který na adresování souborů využívá 64 bitů a používá filozofii značně odlišnou od filozofie FAT. Celý systém je řešený jako obrovská databáze, ve které jeden záznam zodpovídá jednomu souboru. Komplexní informace o jejím obsahu jsou obsaženy v MFT (Master File Table), kde je pro každý soubor či adresář (přihrádka) vyhrazený jeden záznam obsahující všechny atributy – jméno a typ souboru, bezpečnostní informace apod. Oproti FAT přinesl NTFS následující novinky: - žurnálování (logování) – všechny zápisy na disk se zaznamenávají do speciálního (žurnálového) souboru, díky kterému je možné při havárii systému vrátit zpět nedokončené operace a uvést údaje do původního stavu. 178 Počítačové systémy - zatímco v systému FAT bylo možné přidělovat přístupová práva jen k sdíleným přihrádkám (např. při přístupu v rámci lokální sítě), NTFS umožňuje přidělit práva na přístup k libovolnému souboru či adresáři i v rámci jednoho počítače na základě přihlášení uživatele do systému. - zvýšení rychlosti při větších množstvích údajů a složitějších adresářových strukturách. - šifrování a komprimace údajů na úrovni souborového systému bez potřeby používání dalších aplikací. - ext, ext2 a ext3 (extended file system) jsou představiteli souborového systému používaného v operačních systémech typu Linux. Umožňují přidělování přístupových práv k údajům i zařízením stejně jako NTFS, ext3 disponuje i žurnálováním. Ostatní systémy typu Unix nepoužívají univerzální souborové systémy, ale obvykle disponují vlastními umožňujícími přidělování přístupových práv a často i žurnálování. - HFS (Hierarchical File System) je souborový systém unixového původu používaný v Apple Macintosh. Jeho následovník HFS plus disponuje funkcí přidělování přístupových práv a novější verzi přidali žurnálování a zavedli několik optimalizačních funkcí ve snaze defragmentovat (viz dále) soubory bez nutnosti použít externí defragmentační program. 10.2.9 Formátování Pevný disk po prvním připojení k počítači nemá vytvořený souborový systém a není možné ukládat na něj údaje. Pro oživení je potřebné vykonat rozdělení na oddíly (partition, případně určit, že se bude používat jako jediný oddíl), určit oddíl, ze kterého se bude spouštět operační systém a následně všechny oddíly naformátovat. Tím se definuje používaný souborový systém a médium se připraví na zápis údajů (každý oddíl může používat jiný souborový systém). Na vytvoření oddílů a formátování je možno použít speciální programy, anebo všechny operace ponechat na instalátoru operačního systému. Formátování odstraní (vymaže) z pevného disku (oddílu) všechny soubory a adresáře. V některých případech je však možné původní údaje získat zpět, protože fyzicky jsou odstraněny jen záznamy o umístění souborů a údaje zůstávají na disku v zásadě neporušené. V případě, že chcete údaje skutečně bezpečně odstranit, je vhodné použít programy či funkce, které přepíšou celý povrch disku hodnotou 0. Při formátovaní oddílů, který je nastavený jako aktivní pro spuštění operačního systému, je potřebné zabezpečit, aby byl naformátován jako systémový (obvykle se o to postará přepínač v příkazu anebo zaškrtávací políčko v grafickém operačním systému). Kromě tohoto typu formátování (high-level) existuje i nízkoúrovňové formátování (low-level), které zpravidla vykonává výrobce (ve starších BIOSech byla k dispozici tato možnost i pro běžného uživatele). Pomocí něho se určuje počet stop, cylindrův a sektorův na plotnách pevného disku. 179 Počítačové systémy 10.2.10 Fragmentace Údaje jsou na pevném disku uloženy v souborech. Po odeslání požadavků na uložení se v neoptimalizovaném případu postupuje následovně: - najde se první volný klastr a uloží se do něj začátek souboru odpovídající velikosti klastru, - v případě, že je volný sousední klastr, využije se na zápis další části, pokud je obsazený, najde se nejbližší volný klastr a zápis pokračuje do něj, atd., až když není zapsaný celý soubor. Příčinou toho, že některé klastry jsou volné a jiné ne, je zejména mazání souborů Když je pevný disk prázdný a soubory se z něho nemazaly, údaje zaplňují postupně sousední klastry. Jestliže dojde k vymazání souboru, uvolní se klastry, které obsazoval. Ty obvykle nejsou na konci zapsané oblasti a po odstranění souboru vznikne v použité oblasti „díra“, do které se později uloží další soubor anebo jeho část. Důsledkem takovéto činnosti je, že když soubor zabere více klastrů, než je k dispozici v souvislém celku, musí se rozdělit – tomuto dělení říkáme fragmentace. Když potom uživatel žádá obsah souboru, přečte se jeho začátek, čtecí hlava se přesune na další blok souboru atd., dokud neshromáždí komplexní obsah. Fragmentace nepříznivě ovlivňuje jak rychlost zápisu a čtení údajů, tak i celkovou kapacitu a opotřebování hardwaru. Fragmentace jako takové není možné zabránit, je však vhodné minimalizovat ji používáním aplikací vykonávajících defragmentaci, která přemístí části souborů tak, aby byly umístěné v souvislých blocích. 10.2.11 Kontrola a bezpečnost údajů Pokud je počítač vypnutý nekorektním způsobem, může se stát, že právě ukládané údaje nebudou správně zapsané (ukončené). Část problémů spojených s neukončenými operacemi řeší žurnálování souborových systémů, ale někdy (v případě nežurnálových souborových systémů téměř vždy) je potřebné analyzovat nedokončený zápis i jinými způsoby. V operačních systémech Windows je na tento účel určena aplikace scandisk, resp. chkdsk (check-disk), která kromě kontroly konzistentnosti a správné velikosti souborů dokáže analyzovat i povrch disku a hledat chybné sektory. Poškozený sektor je systémem označený a údaje se do něj víc nezapisují. Toto opatření má zabránit zápisu údajů na místa, z kterých by už nemusely být čitelné. Ztráta údajů co jen v malém množství je vždy nepříjemnou záležitostí a o to hůř, pokud dojde k poruše pevného disku. Na zjištění pravděpodobnosti takového výpadku mají pevné disky implementovanou technologii S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology – monitorovací systém pevných disků), která poměrně spolehlivě dokáže určit, kdy je vhodné pevný disk vyměnit. SMART pracuje na principu sledování a vyhodnocování více parametrů (počet startů, chybovost vyhledávání, počet chyb zápisu, počet špatných sektorů apod.). Technologii v současnosti podporuje většina základních desek, které o kritickém stavu uživatele informují. Technologie RAID (Redundant Array of Independent Disks – redundantní pole nezávislých disků) představuje další možnost na zvýšení výkonu a/anebo ochrany údajů při neočekávaných poruchách hardwaru. Předpokladem jejího 180 Počítačové systémy použití je připojení minimálně dvou pevných disků, kdy již můžeme hovořit o jednoduchém diskovém poli. RAID nabízí několik úrovní zapojení, přičemž mezi nejtypičtější patří úroveň 1 (označovaná také jako zrcadlení), která při každém ukládaní údajů vytváří na dvou (anebo více) připojených discích identickou kopii. V případě poruchy jednoho ze zařízení máme na dalším k dispozici úplně stejný obsah. Na zvyšování výkonu se používá úroveň 0, která při zápisu na připojené disky údaje rozděluje (v případě dvou disků se rychlost práce s diskem teoreticky zdvojnásobí). V případě poškození kteréhokoli z připojených disků, však dojde ke ztrátě všech údajů. Tento nebezpečný stav se řeší kombinací RAID 0+1, která využívá výhody diskových polí RAID 0 a RAID 1. Pevné disky jsou organizované tak, že tvoří několik diskových polí typu RAID 0 stejné velikosti a tato pole jsou spojená do jednoho diskového pole typu RAID 1. Je tak zabezpečená redundance uložení údajů a stejně je také zvýšená výkonnost čtení a zápisu údajů. Zajímavou alternativou je zapojení RAID 5, které se snaží využít dostupnou diskovou kapacitu co možná nejlépe. Údaje se při zápisu rozdělují na části, které se zapisují na jednotlivé pevné disky, přičemž na jeden z disků se zapisuje kontrolní (paritní) blok vypočítaný z údajů zapsaných na ostatní disky. Jestliže dojde k výpadku disku, na kterém je uložený údajový blok, je možné tento blok vypočítat z ostatních údajových bloků a kontrolního bloku. Jakmile dojde k výpadku disku, na kterém je uložený kontrolní blok, je možné tyto údaje vypočítat a obnovit z původních údajových bloků. Standardně se diskové pole typu RAID používají na serverech, jejich využívání na osobních počítačích je spíše výjimkou. 10.2.12 Kompaktní disky (CD) CD (compact disc – kompaktní disk) je plastový kruh původně používaný na distribuci hudebních nahrávek, které se na CD ukládaly lisováním a bylo je možné přehrávat v hudebních přehrávačích a později i ve čtecích mechanikách osobních počítačů. Původně se na něm šířila hudba, později přibyla možnost šířit i jiné údaje. Předpokladem bylo doplnění mechanizmů na kontrolu a opravu chyb – to co by se ve zvukové nahrávce mohlo jevit jen jako nepatrné prasknutí, by v případě údajů mohlo způsobit nepoužitelnost celého souboru. Na rozdíl od pevných disků, které mají soustředné kruhové stopy rozdělené do sektorů, má kompaktní disk jedinou spirálovou stopu, která začíná uprostřed disku. Ta je po celé své délce rozkouskovaná na stejně dlouhé bloky. Informace je v blocích, stopy ve tvaru malých jamek nestejné délky (pity), které se střídají s ploškami (lands). Jamky a plošky na discích nepředstavují nuly a jednotky, ale jednotka je vyvolaná přechodem mezi nimi, žádná změna reprezentuje nulu. Údaje čte laserový paprsek, který se po vložení CD nabudí a zaostří na velikost jamek. Odražené světlo potom snímá fotodetektor a přetváří ho na digitální signál, který dále odevzdává elektronice zařízení. Pity se vytvářejí prostřednictvím matrice, podle které se do roztaveného polykarbonátu „vytlačí“ obraz disku. Na něj se nanese odrazová (obvykle aluminiová vrstva), která se „zaleje“ lakovou ochrannou vrstvou. Na ní se obvykle přilepí etiketa. Lisovaný kompaktní disk se označuje také jako CD-ROM (Compact disc – Read Only Memory), protože jakmile je disk vylisovaný, je možno z něho 181 Počítačové systémy údaje (hudbu, soubory) už jen číst bez možnosti změny. Náklady na tvorbu média je potřebné rozdělit mezi použitý materiál, vytvoření matrice sloužící jako vzor a aplikování technologie – produkce se tím pádem vyplatí jen při vysokonákladových titulech. V roce 1990 byly firmou Philips zveřejněny charakteristiky a formát zapisovatelných CD pod názvem CD-R. CD-R se často označuje také jako CD-WORM anebo CD-WO, kde WO znamená write-once (jediné zapsání) a WORM (write-once, read many) možnost jediného zápisu, ale mnohých čtení. Tento krok odstartoval éru používání kompaktních disků v malém a umožnil ukládání do té doby nepoznaného množství údajů na jednoduchý plastový kotouč s průměrem 12 cm i běžnému uživateli. Technologie čtení je založená na odrážení laserového paprsku stejně jako při formátu CD-ROM, pro zápis byla do struktury média přidaná světlocitlivá vrstva, která umožňuje zapisovacímu zařízení (slangově nazývanému vypalovačka) jednorázový zápis údajů prostřednictvím laseru. Na místech, kam dopadne laserový paprsek (vykoná zápis) se světlocitlivá vrstva spojí s metalickou a při čtení se toto místo jeví stejně jako jamka při lisovaných médiích – odráží světlo s menší odrazivostí. Při prvních CD-R bylo jako aktivní vrstva použito organické barvivo modré barvy a odrazovou vrstvu tvořilo zlato. Médium bylo velmi citlivé na UV záření a delší vystavení slunečním paprskům pro něj často znamenalo nenávratné poškození záznamu. V současnosti se vzhledem k cenové válce mezi výrobci zlato používá minimálně a mírně se zvýšila i odolnost vůči UVzáření. Vzhledem k nevyhnutelnosti vysoké přesnosti při nahrávaní údajů je už při výrobě na polykarbonátové vrstvě CD-R média vytvořena spirálová drážka, sloužící jako vodítko pro laser mechaniky, čímž je umožněno velmi přesné nahrávání dat na disk. První mechaniky umožňující zápis údajů na CD pracovaly pomalu a dokázaly na jedno CD uložit údaj jen jednou bez ohledu na to, jakou část CD využily. Později se rychlost zápisu (i čtení) zvyšovala a byla vyjádřena násobky 1-52, které reprezentovaly přenosovou rychlost (hodnota 1 odpovídá přenosu 150 kB/s). Později už bylo možné na CD-R údaje dopalovat v tzv. sekcích (podpora multisession). Specifický typ kompaktního disku tvoří přepisovatelné CD-RW (CD Rewritable). Média tohoto typu je možno vymazávat a opětovně na ně ukládat údaje. Předpokladem vícenásobného ukládání je odlišná struktura záznamového materiálu, která při zápisu údajů laserovým paprskem (teplota 500-700 stupňů Celsia) mění zasažená místa tak, aby pohlcovaly světlo a při mazání údajů (teplota okolo 200 stupňů) jim vrací původní strukturu. CD RW je možno přepsat několik tisíc krát. Snímací hlava CD je v porovnání s pevným diskem poměrně daleko od povrchu (okolo 1 mm), takže její poruchy jsou výjimečné. Problémem může být prach anebo mastnota (z nesprávného držení média), které dokážou odrazit nebo odchýlit laser a způsobit tak selhání systému. 182 Počítačové systémy Údaje jsou při zápisu ukládané spirálovitě, přičemž nejčastěji se používají následující souborové systémy: - ISO 9660 (založený na starším formátu označovaném jako High Sierra) je definovaný na třech úrovních, přičemž nejnižší dovoluje názvy souborů skládající se maximálně z osmi znaků a třech znaků pro koncovku, struktura adresářů se může skládat maximálně z osmi úrovní. Při dodržení těchto pravidel jsou údaje čitelné jak na systémech Windows, tak i na systémech používajících Unix a Mac OS. Vyšší úrovně povolují větší počet (30) znaků v názvech souborů. Systém je podobný FAT systému a údaje o umístění souborů začínají v 166. sektoru disku. V případě, když se CD skládá z více sekcí, je tabulka obsahu (TOC – Table of Contents), tj. údajů a adresářů, umístěná na začátku každé z nich. - Joliet je dalším rozšířením ISO9660, které umožňuje používání 64 znakových názvů a více než 8 úrovní adresářů. - UDF (Universal Disc Format) představuje nový souborový systém, který má zajistit možnost výměny údajů mezi různými operačními systémy. Podporuje délku názvu 255 znaků a umožňuje paketový zápis, který dovoluje pracovat s médiem stejně jako s pevným diskem – kopírovat, přesouvat a mazat soubory pomocí souborového manažera operačního systému bez potřeby spuštění speciálního programu určeného pro vypalování. - Mac HFS je souborový systém určený pro počítače MacIntosh, který není kompatibilní s PC. - Rock Ridge představuje další rozšíření ISO 9660, které podporuje vlastnosti známých z operačních systémů typu Unix, jako přidělování práv na přístup k souborům, komentáře k souborům apod. U mechaniky CD-ROM, případně CD-RW sledujeme podobné parametry jako u pevných disků, přičemž nejzajímavější jsou zřejmě přístupová doba, rychlost čtení, rychlost zápisu a rychlost přepisování. Např. kombinace 52/40/24 udává schopnost číst rychlostí 52, zapisovat 40 a přepisovat 24 (jednotkou rychlosti je 150 kB/s). Tyto hodnoty jsou však udávané výrobcem jako maximální a v reálné praxi se k nim přiblížíme jen zřídka. Kompaktní disky, které v současnosti používáme, mají obvykle kapacitu 700 MB, případně ve zmenšeném (8 cm) formátu okolo 200 MB. Zřídka kdy je možnost se střetnout ještě i se staršími médii s kapacitou 650 MB. Okrem těchto (více - méně standardních) médií existují i CD umožňující zápis 800-900 MB, ve všeobecnosti se však jejich používání nedoporučuje, protože může vést k nenávratnému poškození jak čtečky, tak i zapisovačky. 10.2.13 DVD přímým následovníkem kompaktních disků je DVD (Digital Video/Versatile Disc – digitální video/víceúčelový disk) původně vyvíjený pro filmový průmysl hledající prostředek poskytující jak levnější, tak i kvalitnější prostředek k distribuci filmových nahrávek (odtud pochází i prvotní název digital video disc). Technologie DVD je téměř totožná s technologií používanou při CD, vyšší kapacity se dosáhlo několika drobnými úpravami (např. zmenšením jamek a plošek, zúžením spirálové stopy) a možností využívání dvojvrstvového zápisu. 183 Počítačové systémy Při dvojvrstvovém zápisu se na ukládání údajů využívají dvě vrstvy, do kterých se zapisuje na základě zaostřování laserového paprsku na jednotlivé plochy – vrchní vrstva je proto vůči paprsku polopropustná. Současné DVD má v případě jednovrstvové verze kapacitu 4,7 GB, v případě dvojvrstvového 9,4 GB. Pokud se použije dvojvrstvové oboustranné médium je k dispozici kapacita až 17 GB. Stále nejčastějším obsahem DVD jsou filmy, přičemž jednovrstvové (4,7 GB) médium dokáže při maximální kvalitě zaznamenat 135 minut videa a několik zvukových kanálů. Obvykle se využívá kódovací obrazová norma MPEG-2, která zabezpečuje kompresi pohyblivých obrázků. Komprese využívá fakt, že pohyb se skládá z postupnosti obrázků a ty informace, které zůstávají stejné jako v předešlém obrázku se nezaznamenávají, protože existuje možnost je získat z předcházejícího obrázku. Obr. DVD a nabídka přechodu mezi částmi filmu DVD využívá souborový systém UDF, který oproti svému předchůdci (ISO 9660) nemá problémy s maximální velikostí souborů, která je u ISO 9660 buď 2 GB anebo 4 GB podle implementace. Filmové stopy se však obvykle dělí do více menších souborů (max. 1 GB) z důvodu snížení nároků na elektroniku DVD přehrávačů. 10.2.14 Disketa Disketa (FDD – Floppy Disk Drive) představuje v současnosti nejstarší používané médium, které se od doby svého vzniku v roku 1967 změnilo asi nejméně. Skládá se z pružného kotouče pokrytého magnetickou vrstvou, která uchovává zaznamenané údaje. Tento kotouč je umístěný v plastovém obalu, který byl u starších verzí disket (8“ a 5,25“) lehce ohýbatelný a obsahoval výřez, přes který přistupovala k povrchu diskety disketová mechanika. V současnosti používané 3,5“ diskety mají obal pevný a samotná záznamová 184 Počítačové systémy plocha je na místě výřezu chráněná kovovým krytem – ta se po vložení do mechaniky odsune a zpřístupní tak záznamovou plochu na čtení nebo zápis. Obr. Disketa I když původně diskety představovaly jediné médium, na kterém mohl být uložen operační systém a které musely být v mechanice zasunuté po dobu celé jeho činnosti, vývojem pevných a kompaktních disků byly odsunuté do pozadí. Ještě nedávno se disketa používala na archivování a přenos menšího množství údajů, ale v současnosti je už jako taková jedním z největších přežitků. Práce s ní je velmi pomalá a disketa jako médium je velmi nespolehlivá – někdy s ní stačí zavadit anebo prudčeji položit a uložené údaje jsou navždy ztraceny. Navzdory mnohým předpovědím o svém zániku si však svoje místo u běžného uživatele neustále drží. Princip ukládání údajů je stejný jako u pevných disků. Disketa se skládá z jediné oboustranné plotny, která je rozdělená na stopy a sektory. Komunikaci diskety s počítačem zabezpečuje disketová mechanika, která se k základní desce připojuje pomocí kabelu stejně jako pevný disk. O zápis se v ní stará zapisovací a o čtecí hlava. Důležitým rozdílem oproti technologii pevného disku je, že hlavy se dotýkají záznamového média a jakákoli manipulace s disketou při čtení nebo zápisu vede k poškození údajů. V důsledku přímého kontaktu je potom logicky omezená i životnost disket. Kapacita diskety představuje v současnosti 1,44 MB. 10.2.15 Flash paměti Masové rozšíření nejrůznějších digitálních zařízení (digitální fotoaparáty, MP3 přehrávače, mobilní telefony, diktafony) a snaha poskytnout jim co největší prostor na ukládání údajů, si vyžádaly médium, které bude dostatečně malé fyzicky a dostatečně velké kapacitně. Takovýmto zařízením je paměťová (flash) karta, která buď rozšiřuje pevně zabudovanou kapacitu zařízení, anebo představuje jediné místo, kam se získané údaje (fotografie, zvukový záznam) ukládají. Paměťové karty existují v mnohých tvarech a provedeních, liší se kapacitou, rychlostí práce a cenou. Flash paměť je druh paměti, ve které se s údaji manipuluje prostřednictvím elektrických impulzů, přičemž údaje zůstávají uchovány i po odpojení nabíjení. Jejich první nasazení představují ROM paměti, které sloužily jako součást BIOSu hardwarových zařízení a v případě potřeby bylo možné přepsat jejich obsah pomocí speciálního programu. V současnosti tyto paměti umožňují ukládání a čtení údajů buď přímo v zařízení, které je využívá, anebo v případě použití speciálního zařízení (čtečky paměťových karet) i prostřednictvím počítače. Může se s nimi pracovat 185 Počítačové systémy podobně jako s disketami, ale jsou nesrovnatelně spolehlivější, rychlejší a schopné pojmout údaje od 16 MB do 4 GB i víc. Existují už i pevné disky, ve kterých je standardní elektromagnetický přístup nahrazen elektrickým a na ukládání údajů využívají flash moduly. Oproti elektromagnetickým diskům mají asi 20 násobně nižší spotřebu, jsou nehlučné a díky neexistenci mechanických součástek i nízkoporuchové. Svoje uplatnění našli v zařízeních, které umisťujeme do prostředí s náročnými podmínkami (prašné prostředí). Obr. Různé typy paměťových karet Velmi rozšířenou kategorií paměťových karet jsou USB klíče (flash disky), jejichž obrovskou výhodou je, že na práci s údaji nevyžadují žádnu čtečku, stačí je zasunout do USB portu. Oproti ostatním zařízením nabízejí jednoduchou manipulaci, vysokou rychlost ukládání i čtení údajů, velmi dobrou skladovatelnost, přenositelnost a oproti ostatním médiím zejména spolehlivost. Klíči se začaly nazývat proto, neboť se dají nosit na řetízku (anebo ve svazku) a zároveň se do USB portu zasouvají jako klíč. Kapacita je analogická s paměťovými kartami. Obr.USB klíče 10.2.16 Ostatní paměťová média V současnosti se kromě vyjmenovaných paměťových médií zvykle využívat také další zařízení určené na evidování údajů. Jejich výskyt je však už jen sporadický, protože je vytlačují nové levnější technologie umožňující uchovávání údajů větší kapacity: - zip média o velikosti 100-250 MB navenek vypadají jako hrubší diskety a i princip činnosti je jim velmi podobný – zápis i čtení se realizuje prostřednictvím čtecích (zapisovacích) hlav, které se při práci dotýkají magnetické vrstvy záznamového média. Zip-mechaniky se připojují k počítači jako interní zařízení anebo prostřednictvím USB či paralelního portu. - jaz je zajímavým řešením, které připomíná pevný disk s výměnnými plotnami – záznam se vykonává do magnetické vrstvy pomocí hlav oddělených od samotného média tenkou vzduchovou vrstvou. Kapacitně je schopný pojmout 1-2 GB údajů. Je vhodné využívat ho více na krátkodobé než na dlouhodobé archivování údajů. 186 Počítačové systémy Majitelem i tvůrcem obou technologií je firma Iomega, jejichž označení tyto výrobky někdy nesou. Obr. Jaz - LS-120 (a:drive, superdisk, vysokokapacitní disketa) je přímým konkurentem zip, dokáže uchovávat 120 MB anebo 240 MB. Používá optické navázání čtecích a zapisovacích hlav, čímž dosahuje vyšší přesnost a umožňuje zvýšit hustotu stop na magnetickém povrchu paměťového média. Tato mechanika dokáže pracovat i s 3,5“ disketou. - streamer představuje tradiční záznamovou jednotku, která na ukládání údajů využívá magnetickou pásku. Kazety s páskami jsou velmi rozdílné a existuje jich mnoho typů. Tím, že používají sekvenční přístup k údajům, je vyhledávání oproti ostatním médiím značně zpomalené, avšak v oblasti archivování velkého množství údajů se využívají velmi často. - magnetooptické disky představují kombinaci magnetického záznamu a energie laseru. Aby byla zajištěna popisovatelnost média, nevykonávají se na povrchu disku fyzické změny. Při zápisu se laser používá na zahřívání magnetické vrstvy a změnu jejich částic, které potom při čtení podle stavu vychylují čtecí paprsek. Kapacita médií se pohybuje od 128 MB do několika GB. Nejnovější technologie se snaží o uložení čím dále, tím většího množství údajů. Za nástupce DVD se často označují Blu-ray (z anglického blue ray – modrý paprsek – podle světla, které používá na čtení údajů) a HD DVD (High-Density Digital Versatile Disc – DVD s vysokou hustotou). Výroba HD DVD je o něco levnější, protože je možné využít výrobní linky DVD, Blu-ray zase předběhl konkurenta ve dřívější existenci finální specifikace a vytvoření kódovací technologie zabezpečující obsah média před nelegálním kopírováním. Na první pohled se neliší ani mezi sebou ani od médií CD a DVD. Při stejné tlouštce (1,2 mm) je v případě HD DVD uložená záznamová vrstva přesně do středu, při Blu-ray je polykarbonát hrubý jen 1,1 mm díky čemu dokáže laserový paprsek zaostřit na podstatně menší plochu (bod). Tím získává Blu-ray oproti HD DVD vyšší kapacitu (až 25 GB při jednovrstvových, resp. 50 GB při dvojvrstvových médiích oproti 15 GB, resp. 30 GB u HD DVD). Ve vývoji jsou dokonce 4-6 vrstvové média, která by mohla posunout kapacitu jednoho disku až na 150 GB. Oba formáty slibují zpětnou kompatibilitu, takže jejich mechaniky dokážou číst i DVD a CD média. Po zralé úvaze bychom mohli povědět: na co taková kapacita! když už jen na napsání 100 stran textu (což při 1800 znacích na stranu přestavuje 180 000 bytů a asi 180 kB) trvá velmi dlouho a nabízí obrovské množství informací. Jenže s jídlem roste chuť (čím více místa máme, tím více ho potřebujeme) a textové informace už dnes nejsou pro většinu uživatelů zajímavé. 187 Počítačové systémy V případě, že chceme uložit obrázek, který zabere půl strany, musíme se řídit jinými kritériemi: počtem barev, kvalitou, typem (fotografie, ruční skica,...), přičemž jeden obrázek v době digitálních fotoaparátů znamená asi tolik jako kapka vody v moři. A stejně, když chceme uložit 10 sekund zvuku v nejvyšší kvalitě, může se stát, že objem údajů naroste do několika MB 90 minutový film v nízké kvalitě zabere celé CD, ve vysoké kvalitě jedno DVD a v případě velmi vysoké kvality si asi bez Blu-ray či HD DVD neporadíme. 10.2.17 Cenová dostupnost Když porovnáme ceny jednotlivých externích médií, jednoznačnými vítězi jsou DVD a CD, za které při obrovské kapacitě zaplatíme jen několik málo (desítek) korun. Pokud na tato média ukládáme důležité údaje, je žádoucí nepoužívat nekvalitní (obvykle jsou to ty levné) média, ale dát raději přednost dražším – značkovým. Na základě testů z více zdrojů je možno vyhlásit, že údaje na nejlevnějších médiích a médiích ze střední cenovou hladinou vydrží bez porušení maximálně tři-čtyři roky, přičemž výrobci dražších značek garantují až několik desítek let. Nejde přitom o manuální poškození uživatelem (škrábance apod.), ale zejména o trvanlivost a kvalitu odrazové a světlocitlivé vrstvy. Odrazová vrstva má tendenci po určitém čase odpadávat anebo odrážet čtecí paprsek nesprávně, světlocitlivá zase pod vlivem vnějších vlivů (zejména UV záření) měnit svoji strukturu. médium disketa RAM pevný disk CD DVD USB klíč paměťová karta Blu-ray HD DVD kapacita 1,44 MB 256 – 2 048 MB 40 GB – 1 TB 700 MB 4,7 resp. 9,4 GB 128 MB – 8 GB 16 MB – 8 GB 25, resp. 50 GB 15, resp. 30 GB Obr. Porovnání kapacit jednotlivých médií 10.3 Vstupní zařízení Na to, abychom dokázali systému zadávat požadavky a v neposlední řadě i vkládat do něj údaje, potřebujeme nevyhnutelně vstupní zařízení. 10.3.1 Klávesnice Nejznámějším, nejstarším a nejpoužívanějším zařízením je klávesnice. Je to zařízení, které od svého vzniku přešlo několika, avšak ne zásadními úpravami. Nejčastěji obsahuje 101 až 104 standardních a několik speciálních kláves na ovládání aplikací funkcí (takovéto klávesnice se občas označují jako 188 Počítačové systémy multimediální, protože přídavné klávesy je možno použít na ovládání hlasitosti anebo přepínání mezi skladbami CD, či scénami DVD). Největší plocha klávesnice slouží jako psací stroj. Standardní klávesnice mají tvar obdélníka, ale v současnosti se prodávají i ergonomické klávesnice, které jsou přizpůsobené tak, aby s nimi pracující uživatel vynakládal minimální námahu. Obr. Multimediální a ergonomická klávesnice připojení k počítači se realizuje prostřednictvím portu PS2, USB anebo bezdrátově. Klávesnice se standardně skládá z: - alfanumerické části sloužící na psaní standardní abecedy, - numerické klávesnice umístěné na pravé straně, která obsahuje číslice a základní matematické operace a jejichž cílem je ulehčit a zrychlit psaní číslic např. v případě matematických aplikací, - skupiny kláves určených na ovládání pohybu kurzoru a některých charakteristik prostředí, - funkčních kláves umístěných v horní řadě klávesnice. Ty zpravidla vyvolávají funkce v rámci aplikací (které se v jednotlivých aplikacích mohou lišit, i když některé funkční klávesy jsou už standardizované, např. F1 – pomoc, F10 – vstup do menu apod.) 1 – alfanumerická část 2 – tlačítka pro pohyb a manipulaci s obsahem 3 – numerická klávesnice 4 – funkční klávesy Obr. Rozdělení klávesnice kromě klasických klávesnic se s jejich zredukovanou podobou můžeme střetnout u přenosných počítačů (notebook, handheld), diářů a mobilních telefonů. V případě miniaturizovaných zařízení se často místo fyzické klávesnice používá dotyková obrazovka, na které jsou zobrazeny klávesy, a která reaguje na dotyk speciálního pera nebo jen prst uživatele. Další zajímavostí je virtuální klávesnice, kterou reprezentuje obraz promítaný např. na povrch stolu. Polohu prstů a rukou snímají miniaturní kamery a na základě získaného obrazu vyhodnocovací software dokáže určit, která klávesa 189 Počítačové systémy byla právě „stlačena“. Tento typ klávesnice má potenciální využití v oblasti kapesních zařízení a mobilních telefonů. Obr. Dotyková a virtuální klávesnice Speciální kategorii klávesnic tvoří tzv. gelové klávesnice, které jsou prachotěsné a vodotěsné. Využívají se na prašných a vlhkých místech, v operačních sálech, sterilním prostředí, a verze s podsvětlením v tmavém prostředí. Tyto klávesnice je možno čistit čistícími prostředky, sterilizovat, dokonce překládat, rolovat anebo lepit na sklo či nábytek v libovolné poloze. 10.3.2 Myš Myš je mnohem jednodušším zařízením než klávesnice, ale díky funkcím operačních systémů s ní uživatel realizuje mnohem více operací než s klávesnicí. Myš odesílá počítači jednak informaci o tom, ve kterém směru a o jakou vzdálenost s ní uživatel pohnul a jednak informaci o tom, zda a které tlačítko bylo stlačené. Pohyb myši může být snímaný mechanicky (prostřednictvím kuličky umístěné na její spodní straně) anebo opticky (prostřednictvím optických senzorů, které snímají povrch, po kterém se myš pohybuje). Standardní myš obsahuje minimálně dvě tlačítka (v případě některých verzí pro Apple MacIntosh si vystačí s jedním). V současnosti jsou myši standardně doplněny scrolovacím kolečkem, které umožňuje např. rolování - plynulé posouvání obsahu v některých aplikacích (textu, internetového obsahu apod.). Vyspělejší myši dovolují používání scrolovacího kolečka ve čtyřech směrech, případně obsahují další tlačítka. V přenosných zařízeních je myš nahrazena trackballom (kulička, která umožňuje ovládat kurzor myši otáčením), trackpointom (kulička je nahrazena kolíkem a myš se pohybuje ve směru jeho zatlačení) anebo touchpadom (plocha reagující na dotyk, která pohyb po povrchu přenáší na kurzor myši), případně podobně jako klávesnice jen dotykovou obrazovkou. Obr. Trackball 190 Počítačové systémy 1 – trackpoint 2 – touchpad Obr. Trackpoint a touchpad Speciálním zařízením oblíbeným zejména u hráčův počítačových her je joystick (džojstik). jde o vstupní zařízení ve tvaru řadící páky, se kterou je možno pohybovat v libovolném směru. Joystick přenáší do počítače jak směr pohybu, tak i jeho „sílu“ podle sklopení řadící páky. Příbuzným zařízením je gamepad rozšířený o klávesy, který je určený na obouručné ovládání počítačových her a může obsahovat kombinaci tlačítek, joysticků, trackballu, může být realizovaný v podobě volantu apod. Obr. Joystick a gamepad V současnosti jsou populární zařízení, které na připojení k počítači nepoužívají kabel, a připojují se prostřednictvím bezdrátové komunikace. S myší anebo klávesnicí zpravidla uživatel dostane i přijímač, který prostřednictvím kabelu připojí k počítači a umístí tak, aby měl klávesnici či myš „na dohled“. Zařízení mohou využívat infračervené kmitočty (přičemž šířka pásma je dostatečná na to, aby se zařízení navzájem nerušila) anebo rádiový signál (kde je třeba brát v úvahu, aby víc zařízení v místnosti nepracovalo na stejné frekvenci). 10.3.3 Mikrofon V čase, kdy zpracování obrazu a videa na počítači ještě ani zdaleka nebylo standardem, byl jedním z mála cenově přijatelných vstupních zařízení mikrofon. Mikrofon pracuje tak, že transformuje zvuk z okolí na elektrický signál, který přenáší do počítače prostřednictvím zvukové karty (viz dále). 10.3.4 Skener Na “vložení” údajů z papírové či tištěné předlohy do počítače se většinou používá skener (scanner). Je to zařízení pracující na podobném principu jako kopírovací stroj, přičemž výsledkem jeho činnosti není vytvoření kopie na 191 Počítačové systémy papíře, ale transformace zesnímaných údajů do elektronické podoby, které obvykle i odešle do počítače. S okleštěnou verzí skeneru se střetáváme i v běžném životě, když např. v klasickém obchodě prostřednictvím snímače čárového kódu dokáže systém identifikovat zboží a na základě čárového kódu zobrazit všechny údaje o předávaném zboží. První skenery byly ruční – uživatel posouval ruku se zařízením po papíře a snímač přenášel údaje do počítače. Kvalita nasnímaného obrazu závisela od toho, jak rovnoměrně a přímo dokázal uživatel posouvat ruku se zařízením. O něco pokročilejším zařízením je skener průchodový, který po vložení dokumentu do podavače snímá údaje tak, že dokument jím přejde. Tato technologie se nejčastěji využívá při faxování, ve všeobecnosti není rozšířená, protože kvůli potřebě přechodu skenované předlohy není možno zpracovat knihy, časopisy apod. Další kategorii jsou bubnové skenery, které dokážou snímat předlohy velmi kvalitně, avšak cenově patří do vyšších kategorií. Skenovaný dokument je v tomto případě umístěný na bubnu, který se otáčí a natáčí předlohu snímačem po velmi malých krocích. Kvůli lepšímu kontaktu s bubnem je předloha pokrytá speciální kapalinou. Umožňuje snímání předloh velkých formátů ve vysoké kvalitě. Osobitou kategorii tvoří 3D skenery, které využívají technologii schopnou pomocí laseru nasnímat trojrozměrný objekt. Umožňují z hotového modelu, anebo výrobku vytvořit virtuální počítačový model. Využívají je animátoři, dizajnéři, vývojáři počítačových her, architekti, ale svoje uplatnění našly také v medicíně, kde skener nasnímá několik stovek obrázků těla a software z nich poskládá jeho trojrozměrný barevný obraz. Nejrozšířenější skupinou jsou plošné skenery, které snímají předlohu položenou na skleněnou desku. Pod touto deskou se nachází pohyblivý snímací mechanizmus disponující zdrojem světla, kterým osvětluje předlohu. Na základě jeho odrazu vytváří obraz, který odesílá do počítače prostřednictvím některého ze standardních rozhraní (paralelní, USB, Firewire anebo SCSI). Obr. Plošný skener Podle použité technologie snímání se skenery rozdělují na CCD a CIS. V případě CCD (Charged Coupled Device) se skener skládá z lampy, soustavy zrcadel, zaostřovací čočky, CCD snímačů, A/D převodníku a modulu pro 192 Počítačové systémy zpracování signálu. Na osvícení předlohy se využívá katodová lampa, systém odrazových zrcadel usměrňuje paprsek odražený od předlohy přes čočku na CCD senzory. Ty transformují intenzitu dopadajícího světla na elektrický signál, který A/D převodník mění na digitální. Senzory jsou však schopné zaznamenat jen intenzitu dopadajícího světla (a ne jeho barevnost), proto je potřebné rozložit světlo prostřednictvím barevných filtrů na základní složky RGB (červená, zelená a modrá) a každou z nich snímat samostatně. Technicky je snímání vyřešené umístěním snímačů ve třech řádcích, přičemž každý z nich snímá při tom jistém přechodu dokumentem jinou barvu. Oproti CIS skenerem mají CCD velkou výhodu v tom, že dokážou nasnímat i tu část dokumentu, která se přímo nedotýká podložky (prostředek knihy položené oběma stranami na podložce, případně libovolný předmět). Skenery CIS (Contact Image Sensor) jsou v porovnání se skenery CCD o něco rychlejší, jednodušší a mají menší rozměry i spotřebu. Problémem je o něco nižší citlivost (i když v současnosti je už rozdíl zanedbatelný) a neschopnost prostorového snímání. Na osvětlení předlohy využívají soustavu LED diod s červeným, modrým a zeleným světlem, které se odráží od předlohy a dopadá na CIS snímače. Při této technologii odpadá potřeba používání lampy a soustavy zrcadel. Díky nízké energetické náročnosti jsou tyto skenery schopné pracovat bez samostatného externího nabíjecího zdroje – stačí jim nabíjení poskytované portem USB připojeného počítače. 2 1 3 4 4 5 6 4 1 – skleněná deska skeneru 2 – skenovaný dokument 3 – lampa (zdroj světla) 4 – zrcadla 5 – čočka (zaostřovací systém) 6 – CCD snímače a A/D převodník Obr. Schematický princip CCD 1 2 3 4 5 1 – skleněná deska skeneru 2 – skenovaný dokument 3 – soustava LED diód 4 – čočky (zaostřovací systém) 5 – CIS snímače a A/D převodník Obr. Schematický princip CIS 193 Počítačové systémy Kromě snímání klasických předloh jsou skenery schopné snímat i obrazy na průsvitných fóliích (diapozitivy, negativy fotografií apod.). Na tuto činnost je však potřebné skener doplnit o tzv. dianadstavec (TMA – Transparent Material Adapter), který zabezpečí správný odraz světla na průsvitném materiálu. Speciální kategorií jsou filmové skenery, které jsou schopny poměrně rychle a neporovnatelně kvalitněji než plošné skenery zpracovat celé kinofilmy. Jejich nevýhodou je, že jsou příliš úzce specializované a nedokážou skenovat jiné předlohy. Kvalita i výběr konkrétního skeneru je určený více charakteristikami: - rozlišení je prvním parametrem uváděným výrobci. Jednotkou rozlišovací schopnosti je dpi (dots per inch – počet bodů na palec), která udává počet bodů, které je zařízení schopné zobrazit na délce 1 palce (2,54 cm). Čím je tato hodnota vyšší, tím je vstupní obraz kvalitnější. Rozlišení se u skenerů skládá ze dvou částí. Např. v případě rozlišení je 1200x2400 dpi udává první hodnota počet snímacích bodů v jednom řádku (na snímací hlavě), druhá vyplývá z konstrukce krokového motorku, který snímací hlavu posouvá pod předlohou tak, aby do jednoho palce vešlo 2400 kroků. Když se nad těmito hodnotami zamyslíme, velmi rychle dojdeme k závěru, že hodnoty nad 600 dpi jsou v běžných podmínkách zbytečné a prakticky nepoužitelné. Jestliže bychom chtěli zesnímat obraz s velikostí A4 při rozlišení jen 600 dpi a barevné hloubce (viz dále) 24-bitů (tj. na zakódování barvy pro jeden bod bychom potřebovali 3 byty) výsledný obraz by měl velikost: 8,2 x 11,6 (rozměry A4 přepočítané na palce) x 600 (dpi na šířce) x 600 (dpi na výšce) x 3 (pro barvu) = asi 100 MB V praxi jsou používané a postačující následující hodnoty: Postačující rozlišení běžný dokument (fotografie) 150 dpi text jako předloha, která bude transformovaná na další úpravy 300 dpi (OCR) fotografie do elektronického alba 300 dpi fotografie pro profesionální tisk 600 dpi Typ dokumentu Vysoké rozlišení má svoje opodstatnění jen při snímání malých předloh (kinofilm, diapozitiv apod.), když z miniaturní plochy potřebujeme vytěžit co nejvyšší kvalitu anebo při zvětšování předloh – např. fotografií na kvalitní plakáty. - kromě standardního rozlišení se někdy uvádí při parametrech skeneru i tzv. softwarové rozlišení resp. rozlišení dosažené interpolací. Interpolace je změna rozlišení (v tomto případě jeho zvýšení) prostřednictvím rozdělení jednoho naskenovaného bodu na více. Jejich barva se potom dopočítá matematicky na základě barevnosti sousedních bodů. Můžeme říct, že v zásadě jde jen o softwarovou úpravu, která nepřidává zeskenovanému obrazu žádné nové informace, jen přepočítává už existující (např. za účelem jeho vyhlazení). - barevná hloubka udává přesnost převodu barvy při digitalizaci a vlastně určuje počet barev, jenž je skener schopný přiřadit jedinému bodu. Čím je vyšší, tím víc barev se rozlišuje a o to přesnější je výsledek skenování. 194 Počítačové systémy Standardem je v současnosti 48-bitová barevná hloubka, která představuje 248 (281 474 976 710 656) barev. Namístě je otázka, zda je větší barevná hloubka opravdu zárukou vyšší kvality získaného obrazu. Typickým příkladem může být jednobarevná plocha originálu, na které se při vyšší barevné hloubce mohou po skenování velmi lehce vyskytnout rušivé body jiné barvy, které by při nižší hloubce zůstaly nepovšimnuté. Kromě toho mnoho programů v současnosti není schopno pracovat v 48 bitové hloubce a získaný obraz transformují do 32, resp. 24 bitové hloubky. - kvalita optické soustavy (při skenerech CCD) je parametrem, který se v popise výrobku obvykle nenachází, ale na ní nejvíce závisí kvalita skenování. Spadá sem přesnost umístění zrcadel, kvalita čočky a z nich vyplývající barevná věrnost, ostrost, denzita (rozlišování světlých a tmavých odstínů barvy) apod. - mechanické vlastnosti skeneru jsou dány jeho rozměry (A4, A3), možnostmi připojení k počítači (USB, SCSI a pod.), schopností skenování průsvitných materiálů (dianadstavec) a rychlostí skenování. 10.4 Výstupní zařízení 10.4.1 Zobrazování údajů Standardní schopností dnešních počítačů je zobrazování údajů. Výjimku tvoří jen některé speciální kategorie, jejichž posláním není komunikovat s uživatelem, ale řídit, resp. sledovat jiné kvality (např. průmyslové počítače zabezpečující běh výrobní linky, opracování kovu vyráběných součástek apod.). Zpřístupnění údajů zraku uživatele obvykle zabezpečuje dvojice grafická karta – monitor anebo tiskárna – arch papíru (fólie). Standardem, na který jsme si už všichni zvykli, je sledování údajů na obrazovce monitoru. 10.4.2 Grafická karta Grafická karta tvoří rozhraní mezi počítačem a monitorem. Stará se o odeslání informací z počítače do monitoru, kde se přetvářejí na obraz. Grafická karta se často označuje jako VGA (Video Graphics Adapter/Accelerator) anebo videokarta či videoadaptér. Skládá se z následujících částí: - BIOS grafické karty, který se podobně jako BIOS základní desky stará o funkčnost grafické karty, vzájemnou komunikaci jejich komponentů a poskytuje svoje funkce jak ostatním připojeným hardwarovým zařízením, tak i operačnímu systému a jeho aplikacím. Je možno ho v případě realizace prostřednictvím přepisovatelné ROM paměti aktualizovat. - paměť grafické karty je v současnosti standardně její součástí, ale je možno se střetnout i s grafickými kartami, které vlastní paměť nemají a jsou nuceny využívat pro svoji činnost část operační paměti – často jde o starší anebo na základní desce integrované grafické karty. Tato videopaměť slouží na 195 Počítačové systémy ukládání obrazu – čím je větší a rychlejší, tím vyšší výkon můžeme od celého systému očekávat. - grafický procesor (GPU – Graphics Processor Unit) je součástí čipsetu grafické karty a zabezpečuje transformaci údajů z videopaměti na digitální obraz. Kromě samotného „překlápění“ údajů má na starosti výpočty týkající se dvoj anebo trojrozměrného zobrazování a od jeho kvality se odvíjí rychlost zobrazování a možnost používání pokročilých funkcí. Odbřemeňuje centrální procesor od vykonávání grafických instrukcí, které má v sobě implementované a optimalizované, díky čemu dosahuje při zobrazování neporovnatelně vyšší výkon než centrální procesor. V současnosti jsou nejrozšířenější grafické procesory od firem Nvidia a ATI. - šířka sběrnice určuje rychlost, kterou bude komunikovat GPU s pamětí grafické karty. Má hodnoty 32, 64, 128, 256 bitů a nemá nic společné se šířkou sběrnice mimo grafické karty – tam je systém odkázaný na sběrnici základní desky . Obr. Výstupy grafické karty v pořadí VGA, TV-out a DVI - komunikační rozhraní je v současnosti reprezentované více zástupci. Pro CRT a některé LCD monitory (viz dále) je určený analogový konektor označovaný jako VGA, jehož součástí je D/A převodník transformující digitální údaje z grafické karty na analogový signál odeslaný monitoru. LCD monitory už často pracují s digitálním signálem, který není potřeba na přenos z grafické karty transformovat – používá se rozhraní DVI (Digital Visual Interface). Dobývání zábavného průmyslu počítači si u grafické karty vynutilo přidání dalšího rozhraní využitelného zejména při přenosu obrazu na televizní přijímač. Výstup může mít více podob. Pokud máte k dispozici plazmový anebo LCD televizor, postačuje komunikace prostřednictvím VGA anebo DVI, v opačném případě je potřeba použít konektor S-Video nebo SCART (přičemž jen ten je schopen současně přenášet obraz i zvuk). Stále častěji se zejména v komerční sféře můžeme setkat s připojením většího počtu monitorů k jednomu počítači. Takovéto připojení může být řešené prostřednictvím většího počtu grafických karet anebo jednoduše použitím grafické karty s dvěma výstupy. Použití dvou monitorů dává uživateli k dispozici větší pracovní plochu a podle průzkumů významně zvyšuje jeho výkon. - slot na připojení k základní desce. Standardně se grafická karta připojuje do slotu AGP anebo PCI-Express (historické verze do PCI, případně ještě starší do ISA), někdy může být integrovaná na základní desce (tehdy samostatný slot na připojení nepotřebuje). Způsob připojení prošel stejně jako u ostatních zařízení pestrým vývojem. Sběrnice PCI, na kterou se grafické karty začaly orientovat okamžitě po jejím 196 Počítačové systémy uvedení, přestala se svým přenosovým limitem 133 MB/s množství údajů, které v ní proudily, velmi rychle postačovat. Tato rychlost byla navíc sdílená pro všechny zařízení připojené prostřednictvím PCI. Rozhraní AGP (Accelerated/Advanced Graphics Port) bylo poprvé uvedeno v roce 1997 společností Intel. Základní verze označovaná jako AGP 1x zdvojnásobila množství přenášených údajů na 266 MB/s a při ukončení vývoje AGP v roce 2003 dosahoval přenos při verzi AGP 8x až 2,1 GB/s. Sběrnice PCI-Express je založena na rychlém sériovém přenosu, který v současnosti pracuje na frekvenci 2,5 GHz. Údaje přenáší po drahách (lanes, kanálech), které dokážou přenášet při zmíněné frekvenci 250 MB/s v obou směrech. Výhodou je, že připojené zařízení dokáže využívat pro komunikaci větší počet drah a celkový přenos je jejich součtem. 1 1 2 5 3 4 1 – RAM 2 – grafický čip (procesor) 3 – digitálně analogový převodník 4 – výstup (v tomto případě VGA) 5 – ROM (BIOS VGA) Obr. Grafická karta Grafická informace, kterou grafická karta zpracovává a stará se o její zobrazení, na monitoru standardně přechází: - od procesoru, který stanoví požadavky na její zobrazení, - přes systémovou sběrnici a rozhraní s grafickou kartou, - do paměti grafické karty 1, - z paměti grafické karty údaje čte zobrazovací čip, - a odešle je na monitor (v případě, že se používá monitor s analogovým vstupem, je potřeba navíc údaje transformovat do analogové podoby). Grafické karty oplývají mnohými vlastnostmi, přičemž některé jsou typické pro všechny druhy a typy, jiné jsou specifické, případně představují integraci dalšího zařízení do desky grafické karty. Základní charakteristiky, které určovaly možnosti zobrazování grafické karty už od jejího prvopočátku jsou: - rozlišení, které je schopná grafická karta zabezpečit určuje počet svislých a vodorovných bodů, které vytvářejí obraz. Vyšší rozlišovací schopnost znamená větší množství bodů na obrazovce. Je možno se setkat s rozlišením 640x480, 800x600, 1024x768, 1280x1024, 1600x1200 atd. Poměr mezi šířkou a výškou zodpovídá standardnímu poměru rozměrů monitoru 4:3. V případě 1 Ve speciálních případech možné, aby procesor grafické karty četl údaje přímo z operační paměti bez potřeby jejich přesunu do paměti grafické karty. 197 Počítačové systémy jiných (16:9) či nestandardních poměrů rozměrů zobrazovacího zařízení se obvykle přizpůsobí také rozlišení grafické karty. - barevná hloubka definuje počet barev, které je grafická karta schopna při daném rozlišení zobrazit. Původně se uváděl počet barev, které byla grafická karta schopna zobrazit (16, 256 barev), ale později bylo jednodušší uvést barevnou hloubku (tj. kolik bitů je potřeba na zakódování barvy jednoho bodu). 16-bitová hloubka (216 = 65 536) se začala označovat jako high-color, 24 a později 32-bitová jako true-color. Tato dvojice definuje tzv. grafické módy a standardy, kterými přešel celý vývoj grafických karet: rok vydání 1981 1981 adaptér MDA CGA 1982 1984 1987 1987 Hercules (HGC) 80x25znaků monochromaticky EGA 80x25 znaků 8514/A VGA 80x25 znaků (16 barev) SVGA XGA 1989 1990 textový režim znak 80x25 znaků monochromaticky 8x14 80x25 (2 barvy) 8x8 40x25 (16 barev) 8x14 8x14 9x16 grafický režim nepodporovaný 640x200 čb 320x200 (4 barvy z 16) 160x200 (16 barev) 720x348 (2 barvy) 640x350 (16 barev ze 64) 1024x768 (256 barev) 640x480 (16 barev) + další režimy 800x600 (16 barev) 1024x768 (256 barev) 640x480 (65536 barev) Po standardu XGA přišly mnohé další rozšíření a vylepšení, v zásadě však šlo jen o rozšiřování VGA resp. XGA. Při popisu grafické karty se obvykle udává i frekvence jejího procesoru, velikost, typ, frekvence paměti a šířka vnitřní sběrnice. - velmi důležitým parametrem, pokud nepoužíváme LCD monitor (viz dále) je i obnovovací frekvence, která hovoří o tom, kolikrát za sekundu je grafická karta schopná obnovit obraz na CRT monitoru. V případě, že je tento údaj nízký, obraz na monitoru bliká a únava se může projevovat nejen na očích, ale na celém organismu. Minimální hodnotou, která je v současnosti tolerovatelná je 85 Hz (tj. grafická karta obnoví obraz na monitoru 85 krát za sekundu). Toto nastavení se však na grafické kartě nemusí realizovat automaticky. Pokud máte pocit, že obraz monitoru příliš bliká, bude zřejmě potřebné manuální nastavení. - velikost obrazovkové paměti se v minulosti používala jen na samotné zobrazování a od něj závisela schopnost rozlišení a barevné hloubky. Později se začala využívat na ukládání dalších údajů, díky čemu bylo možné zobrazování zkvalitnit (přidání různých efektů) a zrychlit. - možnosti akcelerace jsou u novějších typů grafických karet standardem, karta může podporovat 2D (dvojdimenzionální, rovinné) anebo 3D (trojdimenzionální, trojrozměrné, prostorové) zobrazování, přehrávání videa apod. 10.4.3 3D grafické karty (akcelerátory) Nejvyšší požadavky na výkon grafických karet kladou zpravidla počítačové hry a všeobecné aplikace pracující s 3D údaji. Zejména díky nim bylo vyvinuto 198 Počítačové systémy mnoho nových technik a technologií, které našly uplatnění v mnohých dalších oblastech. Vzhledem na neustálé zvyšování nároků na množství a rychlost zobrazování údajů přestal být centrální procesor v době masového nasazení počítačů do oblastí 2D a 3D zobrazování postačujícím, protože aplikace si vyžadovaly speciální (a hlavně rychlé) algoritmy orientované na grafické výpočty, které CPU nebyl schopný poskytnout. Obr. Realistické prostředí dosažené díky výkonu grafické karty Nejjednodušší grafické karty jen přenášejí část operační paměti na zobrazovací jednotku, složitější využívají na přípravu zobrazovaného obrazu vlastní paměť a vrcholem jsou grafické karty schopné na základě požadavků samostatně vytvořit v této paměti např. úsečky, kruhy, trojúhelníky, znaky apod. Tyto grafické karty označujeme jako grafické akcelerátory. Prvním řešením byla zařízení, která se v podobě samostatné karty (případě většího počtu karet) zasouvala do slotu základní desky a rychlými výpočty zabezpečovala zobrazovací výkon. Jejich cena v době vzniku mnohokrát přesahovala cenu celého počítače a nasazení se vyplatilo jen v profesionálních oblastech. Mezi nejznámější patřily: - PGA z roku 1984 skládající se až z třech samostatných částí připojených kabelem, které zabezpečovaly zobrazení 640x480 při 256 barvách. Dvě části se zasouvaly do základní desky, jedna nebyla zapojená do počítače vůbec. - TARGA, TIGA a primárně pro počítačové hry určený akcelerátor VooDoo od firmy 3Dfx (byl pohlcený výrobcem grafických karet NVidia). Radikální změnu přinesla implementace grafického čipu (procesoru, GPU) přímo na desku grafické karty, kde převzal všechny funkce grafického akcelerátoru – byl vybavený instrukční sadou orientovanou na grafické výpočty, která je značně odlišná od sady CPU. Grafické karty s procesorem se díky této změně také někdy označují jako grafické akcelerátory. Grafické akcelerátory obvykle podporují na úrovni 2D následující operace: - ořezání obrazu obdélníkem, resp. získání obdélníkového výřezu z obrazu, - změna mírky (zvětšení/zmenšení bez potřeby zatěžování CPU), - vykreslování úseček, kruhů, elips a výsečí, - vykreslování otevřených a uzavřených n-uhelníků (označují se jako polygony), - vykreslování a posouvání textu. Zvláštní kategorii 2D zobrazování představuje práce s animacemi a videem, kde je kvůli udržení dojmu plynulosti potřebné zobrazování minimálně 24 199 Počítačové systémy snímků za sekundu, což představuje přenos obrovského množství údajů. Grafická karta musí být schopná tento obraz zvětšovat, zmenšovat (často i neproporcionálně mezi klasickým formátem 4:3 a širokoúhlým 16:9), případně zrcadlit a těžko si představit, že by údaje musely putovat mezi grafickou kartou, RAM a CPU a opačně. Často je potřebné aplikovat na obraz různé filtry (změna jasu, kontrastu barevnosti apod.), které jsou opět jak časově tak i výpočtově náročné. Základním a nejjednodušším objektem zobrazovaným v prostorovém modelování je trojúhelník, ze kterého je možné poskládat prakticky libovolný (prostorový) útvar. Trojúhelníky se pokrývají texturami – dvojrozměrné obrazy vytvářející povrch (např. textura balvanu, kmenu stromu, stěny, povrchu budovy apod.). Textury se musí odlišovat i podle toho, jak daleko se daný objekt nachází. Základní funkcí 3D modelování je potom zobrazovat jednotlivé trojúhelníky s texturami tak, aby bylo korektně vyřešené jejich vzájemné překrývání v prostoru a aby uživatel viděl jen ty, které jsou v popředí. K standardním funkcím 3D tedy patří: - výpočet obrysů objektu popsaného např. prostřednictvím trojúhelníků, - vyplnění texturami, - určení viditelných ploch (části, které jsou překryté se vůbec nevykreslují, díky čemuž je možné ušetřený čas použít na jiné operace), - výpočet velikosti objektu na základě umístění v prostoru, - výpočty stínování a osvětlení, průhlednosti objektu a zamlžení prostoru, - vyhlazování obrysů objektu, tzv. antialiasing, které upravuje šikmé „zoubkované“ čáry (z důvodu schopnosti zobrazovacího zařízení osvětlit bod jen jako celek), tak aby se uživateli jevily jako hladké, např. přidáváním sivých bodů na potřebné pozice. Téměř všechny algoritmy, které jsou implementované v grafických akcelerátorech je možné popsat funkcemi dvou rozhraní pro 3D grafiku – OpenGL a DirectX. Pokud je na grafické kartě implementovaný požadovaný postup, vykoná se, jestliže není, zvolí se pomalejší (softwarový) výpočet anebo se efekt vůbec neaplikuje. Grafické akcelerátory se v současnosti stále více zrychlují a zdokonalují. Kromě samotných výpočtů obrazu jsou schopné vykonávat i další algoritmy a výpočty. Za vzpomenutí stojí výpočet fyzikální simulace, pohyby objektu, zjištění kolize pohybujících se těle apod. 10.4.4 Videokarta Pod tímto názvem se v současnosti už standardně nechápe grafická karta, ale jde o specializovanou kartu, která umožňuje zpracování videa (často se označuje jako VIVO – video in, video out). Obvykle umožňuje údaje přenést do počítače, kde se zpracují (sestříhání, přidání efektů apod.) a nakonec je z počítače přenést na původní zařízení. Tyto karty můžeme rozdělit do dvou skupin. Analogové umožňují komunikaci počítače s analogovými zařízeními používajícími VHS kazety (video, videokamera), přičemž v případě, že nejsou schopny zachytávat video plynule, jsou donuceny některé snímky vynechat. Digitální karty přijímají digitální 200 Počítačové systémy údaje z digitálních zařízení – v tomto případě není důvod, aby docházelo ke ztrátě na kvalitě či obsahu. Vzhledem k množství údajů, které vstupuje do počítače, podporuje část videokaret hardverovou kompresi do některého ze standardních formátů. 10.4.5 Televizní karta Počítač je možno využít i na přijímání televizního signálu. Zařízení umožňující jeho přijímání se označuje jako televizní karta, resp. TV tuner. Jeho prostřednictvím můžeme sledovat televizní vysílání, případně na vstup přivádíme signál z analogového videopřehrávače. Pokud vlastníte TV-kartu, můžete ji použít jak na zachytávání, tak i na nahrávání televizního vysílání. Platí zde stejná pravidla jako při videokartách – pokud se snímaný obraz (a zvuk) nestíhá ukládat, budou některé snímky vynechané. TV karty je možné najít jak v interních provedeních (PCI, případně jak je integrovaná s grafickou kartou, tak i AGP), tak i jako samostatné externí zařízení (nejčastěji připojené přes USB). Často je jejich součástí i FM rádio a samozřejmé je dálkové ovládání. 10.4.6 Monitory Na převod informací z počítače na zobrazovací zařízení (monitory) slouží grafická karta. V procesu zobrazování sehrává mnohem důležitější úlohu než monitor, z hlediska uživatele je však právě on tím nejdůležitějším článkem komunikace. Monitor slouží na zobrazování výstupních informací. Obvykle je součástí počítače jako takového, ale je možno se bez něho obejít (vydávání místenek, cestovních lístků, řízení komunikace jiných počítačů apod.). Základní jednotky, které se v současnosti používají na zobrazování jsou: - CRT (Cathode Ray Tube) monitory pracují na stejném principu jako televizní obrazovka, přičemž jejich základem vzduchoprázdná vakuová trubice uzavřená ve skleněném obale. Jeden konec obsahuje elektronové dělo, ze kterého po zahřátí vychází paprsek elektronů. Ten se nasměruje na obrazovku umístěnou na opačném rozšířeném konci a zaostří (přechází tzv. maskou) na konkrétní bod. Vnitřní povrch obrazovky je pokrytý sloučeninou fosforu, která po ozáření elektrony rozsvítí zasažený bod, jenž je potom viditelný i ze strany uživatele. Paprsek přechází po obrazovce neustále zleva doprava a zhora dolů, protože bod zůstane rozsvícený jen krátkou dobu. Rychlost obnovování obrazu se označuje jako obnovovací frekvence. Pro barevné zobrazování se používají tři samostatná děla, anebo jeden emitor, který vypouští tři samostatné paprsky (takové obrazovky se označují jako TRINITRON). Paprsky se potom po vhodném usměrnění střetnou na povrchu obrazovky, kde ze tří různých vrstev fosforové sloučeniny (pro červenou, zelenou a modrou barvu – RGB) poskládají barvu bodu. Poslední novinkou v oblasti CRT monitorů byla změna geometrie obrazovky – místi vypuklé se začaly vyrábět obrazovky ploché (flat), které poskytovaly menší zkreslení (např. čtverec byl skutečně čtvercem), menší odraz a věrnější obraz. 201 Počítačové systémy - LCD (Liquid Crystal Display) monitory se zpočátku využívaly na zobrazování údajů v kalkulačkách, přenosných počítačích, noteboocích, ale v současnosti se přepracovaly na úroveň monitorů ke stolním počítačům a velmi rychle vytlačují monitory CRT. LCD je tvořený tenkou vrstvou tekutých krystalů, které pod vlivem elektrického napětí mění svoji molekulární strukturu a díky tomu určují množství přecházejícího světla. Jsou umístěné mezi dvěma vrstvami polarizovaného skla, kde na jedné straně je zdroj světla (katodová lampa), na straně druhé vytvořený obraz. Na řízení krystalů se používá matice průhledných elektrod, která vytváří síť obrazovkových bodů. V minulosti se používala pasivní matice, kde byl bod určen dvojicí tranzistorů – jedním pro sloupec, druhým pro řádek – čili tranzistory byly rozmístěné jen na vnějším obvodu displeje. V současnosti se používá matice aktivní, která na určení každého bodu využívá vlastní tranzistor (resp. na vytvoření barvy trojice tranzistorů). LCD s aktivní maticí se často označují jako TFT (Thin Film Transistor) podle vrstvy poseté tranzistory. Pasivní displeje jsou jednodušší a levnější na výrobu, aktivní jsou kvalitnější a mají rychlejší odezvu (viz dále). - plazmové monitory se skládají stejně jako LCD z dvou skleněných ploten, mezi kterými je prostor pro obrazové buňky. Elektrody umístěné v těchto buňkách pomocí elektrického výboje uvedou plyn, kterým jsou naplněné do stavu plazmy a takto vzniklá ultrafialová energie rozsvítí fosforový bod v každé buňce na viditelné světlo. Využívají se jako domácí kina anebo velkoplošné obrazovky, dosahují vysoký kontrast a malou tloušťku. Obrovským handicapem oproti jiným typem monitorů je vysoká spotřeba a cena. Obr. Plazma, LCD a CRT V minulosti se používaly i tzv. vektorové displeje, které obraz generovaly pomocí krátkých úseček anebo i složitějších geometrických útvarů. Využívaly se zejména na generování grafů a čárových schémat, přičemž vycházeli ze svých předchůdců– osciloskopů využívaných na měření různých veličin. V současnosti se však už běžně nepoužívají, protože neumožňují rychlé zobrazování složitějších útvarů. 10.4.7 Vlastnosti monitorů Zřejmě nejčastěji se monitory dělí podle velikosti úhlopříčky obrazovky, která se udává v palcích (”) (1 palec je asi 2,5 cm). Momentálně se nejčastěji používají 17-19” monitory, ale občas je možnost se setkat i s 15, 20 a 21palcovými. 14” (stejně jako černobílý – monochromatický) monitor je dnes spíše výjimkou a najdete ho už jen u starších počítačů. Když porovnáme LCD s CRT monitory, tak úhlopříčce používané plochy 15“ LCD zodpovídá přibližně 17“ při CRT monitoru. Tyto zvláštní výpočty mají na svědomí výrobci CRT 202 Počítačové systémy monitorů, kteří při parametrech uvádějí velikost obrazovky, která je ve skutečnosti o něco větší než velikost skutečné plochy používané na zobrazování (část obrazovky je překrytá rámem). Při LCD monitorech se uvádí skutečná velikost zobrazovací plochy. Monitory i televizory vysílají na nás několik druhů škodlivých záření. Při sledování televize jsme vzdálení od obrazovky několik metrů, takže záření je minimální. Horší je to s monitory: Uživatel sedí od nich asi 50 cm a přijímá záření naplno. Výsledkem jsou bolesti očí, hlavy, všeobecná únava a nesoustředěnost. Tyto problémy přinutily výrobce snižovat vyzařování a v současnosti se oproti prvním monitorům uvádí tlumení až na 99 %. Zda a nakolik má váš monitor snížené vyzařování, můžete zjistit podle nápisů určujících splněnou normu (Low radiation, TCO ’92, TCO ’95 , TCO ’99 , TCO ’03 – od nejmenší po nejpřísnější). LCD obvykle splňují normu TCO ’99, resp. TCO ’03. Kromě vyzařování monitoru je důležitý parametr, který hovoří o jeho obnovovací frekvenci - kolikrát za sekundu se obnoví obraz na obrazovce. Jestliže je frekvence nízká, obraz bliká (a nás bolí hlava). Při CRT monitorech je vhodná frekvence minimálně 85 Hz (čím je vyšší, tím lépe), u LCD může mít i nižší hodnoty, protože tato technologie si nevyžaduje neustále překreslování obrazu – bod zůstává osvětlený do té doby, než dostane příkaz zhasnout anebo změnit barvu. Zde stačí frekvence 60-75 Hz. Při barevné změně na LCD trvá zhasnutí i přepnutí bodu do nové barvy určitý čas a může vzniknout zkreslení (resp. rozmazání). Čas, za který tato operace proběhne, se označuje jako rychlost odezvy a čím je vyšší, tím rozmazanější je obraz při rychlé změně obrazu (filmy, hry). Pro běžné aplikace není tento fakt rozhodující, ale na sledování filmů anebo pro hráčů by měl mít monitor tento parametr maximální na úrovni 12 ms. Vlastností propojenou s vlastnostmi grafických karet je rozlišení. Určuje se v bodech. LCD panely mají dopředu určené rozlišení a podle něj jsou zkonstruované – hovoříme o nativním (hardwarovém) rozlišení, při kterém je pro každý bod rozlišení určený jeden fyzický bod obrazovky. Pokud změníme rozlišení, monitor svoji strukturu samozřejmě nemění a je nucený interpelovat – poloha jednotlivých bodů bude přepočítaná tak, aby sedla na zkonstruované prvky, přičemž se může zhoršit např. ostrost obrazu. Někdy může dojít k poruše zobrazování bodu – může zhasnout anebo změnit barvu. Oprava takého stavu je náročná a výrobci obvykle nejsou ochotní uznat výrobek, který má méně než 35 chybných bodů za nevyhovující – dokonce se vám může stát, že takový výrobek dostanete přímo v prodejně jako nový, proto je třeba si při koupi obraz pořádně zkontrolovat. Se zobrazováním souvisí i pozorovací úhel, který má však svoje opodstatnění jen v případě LCD monitorů. Udává úhel, pod kterým je možné sledovat nezkreslený obraz. V případě většího úhlu se obraz zkresluje až ztrácí (zesvětlením anebo ztmavnutím). U některých levných monitorů se může stát, že pokud sedíte příliš blízko u monitoru (díky čemu je úhel pohledu na okraje obrazovky poměrně velký), tak daná barva má při okrajích úplně jiný odstín než ve středu obrazovky. Z ekonomického hlediska je důležitá i spotřeba, která je u LCD monitorů výrazně nižší (35-75 W). Způsob připojení počítače ke grafické kartě může být analogový prostřednictvím vstupu VGA (častěji CRT) anebo digitální prostřednictvím 203 Počítačové systémy DVI (častěji LCD). Pro LCD je výhodnější, když dostane obrazové údaje v digitální podobě – dostane jen informaci, na kterých souřadnicích má body aktivovat a na kterých ne – obraz se zobrazí absolutně přesně tak, jak je počítačem nadefinovaný. monitor CRT LCD výhody nevýhody zachovává věrnost barev, vysoká obnovovací Záření a namáhání očí, velká tloušťka frekvence, fyzicky odolný a hmotnost, geometrické nepřesnosti obrazu, energeticky náročný výrazně menší vyzařování, menší únava očí, delší doba odezvy, možné nerovnoměrné menší tloušťka, nižší energetická náročnost podsvětlení, omezený pozorovací úhel Budoucnost displejů v současnosti představuje technologie OLED (Organic Light Emitting Diode), prostřednictvím které by mělo být možno vytvářet tenkofilmové displeje podobné současným LCD, které budou vytvářet obraz červenými, zelenými a modrými LED diodami bez potřeby osvětlení z pozadí. Výhodou těchto displejů je velmi nízká spotřeba, dobrý kontrastní poměr, zobrazovaná barva a třeba i možnost jejich srolování či poskládání. 10.4.8 Dataprojektory V momentě prezentace údajů pro větší počet uživatelů obrazovka jakéhokoli standardního monitoru přestává být postačující a na řadu přichází projekce. Nejčastěji se používá dataprojektor, který promítá obraz z počítače na projekční plátno (anebo jednoduše na stěnu). Zpočátku se s ním kvůli vysoké nákupní ceně bylo možné střetnout jen pži firemních prezentacích a školeních, ale v současnosti se dostal díky výraznému poklesu cen i do domácností, kde často tvoří součást domácího kina. Dataprojektor používá jako světelný zdroj projekční lampu, jejichž světlo se transformuje na obraz prostřednictvím optické soustavy, která používá dvě technologie: LCD a DLP. LCD (Liquid Crystal Display) technologie vychází z principu fungování LCD displejů. Je možno se setkat s jednočipovou, kde produkované světlo přechází jedním panelem anebo trojčipovou, kde se rozdělí na složky (červená, zelená, modrá) a přechází trojicí LCD panelů. Světelný tok obrazu získaného např. z počítače panel pohltí anebo propustí a prostřednictvím objektivu promítne. V případě trojčipové technologie se před promítnutím barvené složky nejprve sloučí (např. pomocí zrcadel). Základní rozlišení projektoru je opět stejné jako při LCD monitorech nativní, v případě jeho změny je potřebná interpolace. 204 Počítačové systémy 6 4 3 4 3 5 4 červená zelená modrá 2 2 2 1 1 – světelný zdroj 2 – dichroické zrcadlo (propouští a odráží dané barvy) 3 – zrcadlo 4 – LCD panel 5 – slučovací aparát 6 – objektiv Obr. Princip fungování trojčipového LCD projektoru Jednočipová technologie se používá v nejlevnějších projektorech, protože jejich výroba je nejméně nákladná, avšak při koupi takého projektoru je třeba počítat s tím, že působením vysokých teplot LCD panel časem degraduje (řádově tisíce hodin provozu) a ztratí jak kvalitu obrazu, tak i věrnost barev. Trojčipová LCD technologie dosahuje vyšší kvalitu – obraz je ostřejší a barvy věrnější, ale po delším čase se ani zde není možno vyhnout fyzickým změnám zapříčiněným vysokou provozovací teplotou. LCD technologie je postupně vytlačovaná technologií DLP (Digital Light Processing). Jejím základem je čip DMD (Digital Micromirror Device), který obsahuje množství miniaturních pohyblivých zrcadel, přičemž každé z nich reprezentuje jeden bod rozlišení. Světlo z projekční lampy dopadá na zrcadlo, jenž dokáže odrazit světelné paprsky více směry (na čočku, do oblasti pohlcení světla) a změnit svůj úhel natočení několiktisíckrát za sekundu. Barevnost zabezpečuje v případě jednočipových DLP projektorů rychle se otáčející kotouč rozdělený po obvodě na víc barevných částí, přičemž je umístěný tak, aby „zabarvil“ světlo ještě před dopadem na čip. V případě trojice DMD se výsledná barva poskládá klasickým způsobem z RGB složek. 4 4.2 5 4.3 4.1 2 3 2 1 1 – světelný zdroj 205 Počítačové systémy 2 – optika 3 – barevný rotujúcí filtr 4 – základní deska DLP 4.1 – DMD čip 4.2 – procesor 4.3 – paměť 5 – objektiv Obr. Princip fungování jednočipového DLP projektoru Výrobci postupně přecházeli od jednočipových přes trojčipové LCD projektory až po DLP. Výhodou projektorů DLP oproti LCD je, že kvalita projekce se časem nemění, nevýhodou je jednoznačně cena, kterou zvyšuje i fakt, že technologie je patentovaná společností Texas Instrument. Technologií do určité míry kombinující LCD a DLP je LCOS (Liquid Crystal on Silicon), kde odraz světla zabezpečuje kombinace zrcadla a tekutých krystalů. Tato technologie se v současnosti aplikuje nejen v projektorech, ale i v oblasti monitorů a televizních přijímačů. O tom, který typ je na jaký účel vhodnější možná napoví jednotlivé parametry dataprojektorů: - kromě použité technologie a rozlišení je zřejmě první důležitou vlastností svítivost. Ta se udává v ANSI lumenech a čím vyšší hodnotu dosahuje, tím lepší projektor osvítí promítací plochu. Svítivost prvních projektorů se pohybovala na úrovni několika stovek, v současnosti špičkové modely nabízejí i 10 000 ANSI. Na sledování obrazu za denního světla je vhodnější projektor s vyšší svítivostí, na večerní filmovou projekci třeba zvolit nižší hodnoty, které méně zatěžují oči. - na kvalitu, ostrost a viditelnost obrazu při denním světle má velký vliv kontrastní poměr, který vyjadřuje poměr světla potřebného na zobrazení černé a bílé barvy produkované projektorem. Větší poměr kontrastu umožňuje projektoru ukázat jemné barevné detaily a eliminovat dopad vnějšího světla. Platí, že LCD projektory mají kontrast i svítivost několikanásobně nižší než DLP. - dataprojektory potřebují na svoji činnost chlazení, které je zabezpečované ventilátorem, o kterém není možno v žádném případě hovořit jako o tichém společníkovi. Většina projektorů vydává hluk na úrovni okolo 30 dB, což je intenzita, která člověka probere ze spánku. Pokud tedy chcete projektor využívat jako součást domácího kina, je vhodné orientovat se na co nejnižší hodnoty. - životnost projekční lampy sice nepatří jednoznačně mezi technické parametry, při koupi projektoru se však oplatí prověřit si ji a stejně i její cenu, protože ta často představuje až třetinu či polovinu ceny projektoru. Životnost je možno prodloužit použitím šetřícího módu, který ztlumí sílu osvětlení. Součástí projektoru je počitadlo, které sleduje dobu používání lampy a po uplynutí doporučeného času upozorní uživatele na potřebu výměny. Pokud byste toto upozornění ignorovali, vystavujete se nebezpečí exploze lampy a v horším případě dokonce zničení projektoru. 206 Počítačové systémy 10.4.9 Tiskárny Tiskárny patří mezi nejpoužívanější periferní zařízení. Nejčastěji zabezpečují výstup informací na papír (případně fólii). K počítači je můžeme připojit prostřednictvím paralelního portu, USB, počítačové sítě anebo infračerveným spojením. Nejčastěji je dělíme na jehličkové, inkoustové a laserové. Jehličkové tiskárny Jehličkové tiskárny patří v současnosti už více-méně do historie. Jediným důvodem, který by uživatele mohl donutit investovat prostředky do jehličkové tiskárny, je jen její schopnost protlačit obsah současně přes více listů a vytvořit na jedno tisknutí více kopií. Pracují na podobném principu jako psací stroj, který přes barvicí pásku protlačil na papír znaky. Jehličkové tiskárny neprotlačí celý znak najednou, ale protlačují do pásky jehličkami, které vytvoří znak tak, že ho prostřednictvím jednotlivých jehliček „poskládají“. Na počtu jehliček závisí kvalita tisku. Čím má tiskárna více jehliček, tím je tisk kvalitnější a rychlejší. Jehličky jsou uloženy v tiskové hlavě, která se pohybuje po šířce papíru doprava a doleva. V začátcích byla cena průměrných jehličkových tiskáren oproti ostatním nejnižší. Dnes však za stejnou (a nižší) cenu možno dostat také inkoustovou či laserovou tiskárnu. Ve prospěch jehliček hovoří už jen nejnižší provozní náklady. Nevýhodou je relativně nízká kvalita výstupu (často je vidět body, ze kterých se znak skládá), relativně nízká rychlost a hlučnost. Obr. Inkoustová a jehličková tiskárna Inkoustové tiskárny Inkoustové tiskárny (inkjet, bubblejet, deskjet) pracují podobně jako jehličkové, ale nepoužívají už pásku ani fyzický kontakt s papírem. Znaky vytvářejí pomocí speciálního inkoustu, který stříkají na papír přes trysky (24256) umístěný v tiskové hlavě, která je u některých typů součástí náplně a vyměňuje se spolu s ní. Inkoust se dodává v nádržkách, které se vkládají do tiskové hlavy putující zprava doleva a naopak stejně jako tomu bylo u jehličkových tiskáren. Většina inkoustových tiskáren pracuje v režimu CMYK (cyan - azurová, magenta purpurová, yellow – žlutá, black - černá), přičemž se z těchto barev míchají všechny ostatní odstíny. Z důvodu zvýšení kvality se zejména u tiskáren určených na tisk fotografií můžeme někdy setkat i s přidáním dalších barevných zásobníků. V prvních barevných tiskárnách se musely vyměňovat kazety s inkoustem na tisk černého textu a tisk barevného obsahu. Pokud se použila barevná náplň na tisk černé barvy, vytvářela se kombinací barevných inkoustů, co bylo velmi neekonomické. 207 Počítačové systémy Dalším krokem bylo současné používání dvojice tiskových hlav pro černý a barevný tisk, přičemž v barevném zásobníku byly do jednoho celku spojené nádržky pro všechny tři barvy. Neekonomickost, spočívající v potřebě výměny celého zásobníku, jakmile došla jen jedna z trojice barev, vyřešila oddělení zásobníků pro každou z barev. Ne každá inkoustová tiskárna pracuje na stejném principu, protože každý z výrobců má vlastní upravené technologie, prostřednictvím kterých se snaží získat před konkurencí náskok. Jako základní technologie se však využívají jen dvě: tepelná a piezoelektrická. Tepelný tisk je starší a jejím prvním krokem je zahřátí inkoustu v zásobníku asi na 200° C. To způsobí zvětšení objemu kapek a jejich vypudění přes trysky na papír. Po vystříknutí kapky se v trysce vytvoří podtlak, prostřednictvím kterého se zase nasaje další inkoust. Z důvodu vysokého zahřívání přichází k poměrně rychlému opotřebování tiskových hlav, proto jsou na tomto typu tiskáren tiskové hlavy vyměnitelné. Mohou být součástí kazety s inkoustem anebo se vyměňují samostatně. Piezoelektrický tisk je založen na tryskách, které ve svém vnitřku obsahují drobné piezoelektrické krystalky schopné měnit svůj tvar pod vlivem elektrického náboje. Pod vlivem změn se vytváří tlak, který vytláčí inkoust z trysky. Hlavním přínosem této technologie je nižší opotřebování trysek a tiskové hlavy a také nižší nároky kladené na kvalitu inkoustu (není potřeba, aby dosahoval při dané teplotě přesný objem, protože jde jen o jeho vypuzení na papír). Kvalita tisku závisí v obou případech od počtu trysek, velikosti kapek a složení inkoustu. Určuje ji rozlišení, které se měří v dpi stejně jako při skenerech. Minimálním požadavkem by mělo být rozlišení 600 dpi (současné tiskárny bez problémů dosahují i hodnoty okolo 4800 dpi). Barva, kterou chceme vytisknout, se rozloží na složky odpovídající barvám v tiskárně a tiskárna nanese na papír tečky tak, aby se překrývaly a tak vytvářely výsledný odstín. Vyšší kvalitu se každá firma snaží dosáhnout vlastními patentovanými technologiemi a zmenšováním objemu kapek inkoustu (v současnosti až 2 pikolitry). Při dosahování kvality hraje významnou úlohu rozpíjení inkoustu na papírovém médiu. Na běžný kancelářský papír není možno klást vysoké nároky pro jeho velkou absorbci a rozpíjivost. Povrch speciálního papíru se upravuje materiály, které zabraňují protékání inkoustu dovnitř papíru a udržují kapičky jednolité. Mezi výhody inkoustové tiskárny patří: - nákupní cena odrážející strategii výrobců předat zařízení přibližně na úrovni výrobní ceny a zisk dosahovat prostřednictvím prodeje náplní. Nejlevnější inkoustové tiskárny představují v současnosti dvoj-trojnásobek ceny značkových inkoustů, - schopnost barevného tisku a tisku fotografií jsou v současnosti jedním z nejčastějších důvodů, díky kterým se uživatelé rozhodují právě pro tento typ tiskárny. Pro tisk fotografií jsou ke standardním zařízením dodávány různé balíčky, které mají tisk zkvalitnit, funkce, které umožňují tisk přímo z digitálního fotoaparátu apod. Nevýhod je na první pohled o něco více: 208 Počítačové systémy - cena inkoustu představuje u inkoustových tiskáren nejvyšší nápor na kapsu uživatele. Existují sice alternativy v podobě doplňujících zásobníků (když uživatel naplňuje ty dané zásobníky vícekrát), anebo náplní vyráběných neznačkovými výrobci avšak takovýto přístup určitě kvalitu výstupu nezvýší a v případě neznačkových náplní je tiskárna vystavená riziku zanesení trysek, - s cenou inkoustu přímo souvisí i cena vytištěné strany, přičemž určité úspory se může dosáhnout zapnutím tzv. ekonomického anebo konceptového režimu, ale i při jejich používání bude cena za stranu stále několikanásobně vyšší než v případě laserových tiskáren, - závislost kvality tisku na použitém papíru, - nízká odolnost tiskáren vůči prostředí je důsledkem používání inkoustu. Pokud se tiskárna delší dobu nepoužívá, může inkoust v tryskách zaschnout, což v lepším případě vede k potřebě čistění, v horším k nutnosti zakoupení nového zásobníku a v nejhorším k výměně tiskové hlavy (jejichž cena se v některých případech blížící k ceně celé tiskárny). Laserové tiskárny Laserové tiskárny pracují na jiném principu než jehličkové a inkoustové, které se někdy označují také jako řádkové vzhledem na fakt, že údaje na papír tiskne po řádcích. Laserové tiskárny jsou tiskárny stránkové, protože netisknou stranu po mikrořádcích, ale nejprve ji celou umístí do paměti tiskárny a potom ji najednou přenesou na tiskový válec. Laserové tiskárny používají místi inkoustu uhlíkový prášek označovaný jako toner. Celý proces bychom mohli schematicky popsat následovně: - nabití optického válce (OPC - Optical Photoconductor), který je nejdůležitější součástí tiskárny. V prvním kroku se nabije záporným nábojem. Stejně je nabitý i toner, - vytvoření obrazu na válci prostřednictvím laserového paprsku probíhá tak, že laserový paprsek osvětlí ta místa na válci, která mají být potlačena a neutralizuje je, - nanesení toneru na válec je zabezpečené otáčením válce, který na místa, kde byl náboj vybitý, přitáhne elektrostatickou silou prášek toneru (ostatní místa nabité stejným nábojem jako toner ho odpuzují), - přenos toneru na papír zabezpečí zase otáčení válce, které nanesený prášek dostane až k papíru, který byl při vstupu do tiskového procesu nabitý kladným nábojem. Kladný náboj na papíře přitáhne záporně nabité částečky toneru a v této chvíli je už strana hotová, - toner je však na něj umístěný jen zvolna – velmi lehce bychom ho dokázali z papíru sfouknout, proto v další fázi vstupuje papír do fixační jednotky, kde se na něj pod tlakem a při 200° C teploty toner fixuje, - nakonec následuje očistění válce. Výhodou laserové tiskárny je rychlost (často i více než 20 stran za minutu), vysoká kvalita a dlouhá životnost. V současnosti je cenově na úrovni středně kvalitních inkoustových tiskáren. Provozní náklady jsou obvykle podstatně nižší než u inkoustových tiskáren. Většinu nákladů tvoří toner, který se v některých druzích tiskáren vymění spolu s optickým válcem v jednom pouzdře, v jiných jsou toner a válec odděleny. Kvalita tisku není závislá na použitém médiu – fotografický a kancelářský papír dosahují minimálních rozdílů. 209 Počítačové systémy Nevýhodou tohoto typu tisku je vysoká energetická náročnost během tisku (300 - 600 W), mírně nižší kvalita barevného tisku a neschopnost tisknout na nerovné povrchy (vizitky, diplomy, oznámení). Svůj podíl může sehrávat i narůstající cena. Obr. Vysokozátěžová barevná laserová tiskárna I u nás se postupně začínají upřednostňovat barevné laserové tiskárny. Stejně jako tiskárny inkoustové, využívají na zabezpečení barevnosti model CMYK, přičemž pro každý toner standardně používají samostatný zásobník. Podle jeho nanášení je můžeme rozdělit na vícepřechodové a jednopřechodové. Vícepřechodové (karuselové) modely jsou technologicky starší. Používají jeden optický válec a rotační mechanizmus s tonery, který zabezpečuje postupné nanášení barev na válec a přenos na papír (čtyřikrát přechází papír okolo optického válce). V závěru následuje stejně jako u monochromatické laserové tiskárny vytvrzení ve fixační jednotce. Proces nanášení toneru je realizovaný čtyřmi přechody, čím se tisk oproti monochromatické tiskárně minimálně čtyřnásobně zpomalí. Z toho důvodu jsou tyto tiskárny vhodné spíše pro příležitostný barevný tisk. Modernější (a dražší) tiskárny se označují jako jednopřechodové (in-line) a obsahují čtyři samostatné optické válce, na kterých se současně vytvářejí kresby pro jednotlivé barvy. Jsou vhodné na místech, kde je požadavek barevného tisku standardem a realizuje se často. Výhodou je rychlejší tisk a nižší náklady na provoz (zejména výměna válců). Cena laserových tiskáren byla odjakživa výrazně vyšší než cena ostatních typů, protože používaly dražší a výkonnější elektroniku. Navíc mají tyto tiskárny v sobě implementovaný i vlastní jazyk (PostScript, PCL), který umožňuje přenést část úloh při tisku z počítače na tiskárnu. Jako protipól však existují i tiskárny označované jako GDI (Graphical Device Interface), které nemají v sobě vestavenou žádnou „inteligenci“ a všechny operace, které běžně vykonává tiskárna, jsou ponechané na počítač. Tyto tiskárny obvykle nejsou schopny komunikovat se staršími operačními systémy (DOS a pod.) mají vestavenou podporu pro Windows GDI. Při tisku na takovou tiskárnu se nemusí údaje odeslané na tiskárnu konvertovat do formátu, s kterými pracují běžné tiskárny (PostScript, PCL), ale tiskárna je schopna přímo vytisknout to, co vidíme na obrazovce. 210 Počítačové systémy Přidanou schopností některých tiskáren (laserových i inkoustových) je možnost připojení do počítačové sítě, kde jsou přímo k dispozici všem připojeným počítačům. Tuto možnost jim nabízí vestavěný tiskový server (print server). Pokud tiskárna tento vestavený server nemá, můžeme si ho dokoupit buď jako součást anebo jako nezávislé zařízení (v takovém případě se k tiskárně připojují pomocí USB anebo paralelního portu). Podobně jako kopírky, mohou i tiskárny obsahovat duplexní jednotku, která dokáže zabezpečit oboustranný tisk. Duplexní jednotka neobsahuje další válec, který by zabezpečil současný potisk obou stran papíru, ale po vytištění strany dokáže papír otočit a poslat ho opětovně do tiskového procesu. Pokud se rozhodujete mezi koupí inkoustové a laserové tiskárny, je třeba se orientovat zejména na účel, na který bude tiskárna používaná. Většinou platí, že laserová tiskárna má vyšší pořizovací cenu a nižší provozní náklady - vyplatí se tedy v případě častého tištění černobílých (ale i barevných) dokumentů. Inkoustová tiskárna naopak - má nízkou pořizovací cenu a často několikanásobně vyšší provozní náklady než laserová. Má smysl si ji obstarat v případě menších objemů tisku kancelářských materiálů a občasného tisku fotografií. Ostatní typy tiskáren LED – tiskárny jsou jakousi odnoží laserových tiskáren. Místo laserového paprsku se používá soustava LED diod, které stejně jako laserový paprsek osvětlují nabitý válec. Jejich výhodou oproti laserovým tiskárnám je o něco nižší cena při porovnatelné kvalitě výstupu. Ploter je zařízení, které obraz na papír kreslí vektorově – pomocí čar (ne bodů, jako je to v případě klasických tiskáren). Má k dispozici několik per, které dokáže zdvihnout anebo přitlačit na papír a vytvořit s nimi čáru. Některé plotry umožňují pohybovat perem do čtyř stran, jiné pohyb nahoru a dolů nahrazují posouváním papíru. Existují však i varianty, které pracují stejně jako inkoustové tiskárny, od kterých se potom liší jen schopností velkoformátového tisku (A2, A1, A0). Tu často využívají konstruktéři a dizajnéři. Speciální kategorií jsou řezací plotery, které místo pera používají nástroj na řezání. Na vyhotovení předloh pro výrobu desek plošných spojů se zase často používá fotoploter, kde se místo pera používá světelná stopa, která se promítá na světlocitlivý materiál. 211 Počítačové systémy Obr. Ploter Barevné voskové tiskárny se podobají inkoustovým tiskárnám Používají pevné inkousty – vosky, které se při nahřátí přemění na kapalinu a tiskárna s nimi pracuje stejně jako obyčejná inkoustová tiskárna. Výsledek je kvalitnější, neboť vosk nezasychá vypařováním, ale okamžitě chladem tuhne. Termální (tepelná) tiskárna tlačí lokálním zahřátím papíru potáhnutého speciální látkou, která pod vlivem zahřátí změní barvu – zpravidla zčerná. Při použití speciálního papíru je možné řízením tepelné energie vydané na jeden bod dosáhnout dvojbarevného tisku - při menší energii je bod barevný (modrý, zelený anebo červený), při dodání další energie bod zčerná. Výhodou termálních tiskáren je nízká cena, tichý provoz a díky minimálnímu počtu pohyblivých dílů vysoká spolehlivost a nízké nároky na údržbu. Nevýhodou je potřeba použití speciálního papíru z čeho vyplývají vyšší provozní náklady, nemožnost barevného tisku; a zejména omezená životnost tisku, která rychle degraduje vlivem zvýšené teploty a za přítomnosti různých chemikálií. Termální tiskárny se používají zejména v registračních pokladnách a ve faxových přístrojích. V současnosti je možno se poměrně často setkat se spojením skeneru a tiskárny (laserové anebo inkoustové) do jednoho zařízení. Taková kombinace se označuje jako multifunkční zařízení a kromě tisku a skenování dokáže pracovat také jako kopírka bez potřeby zapnutí počítače. Někdy se zařízení navíc kombinuje i s faxem. 10.4.10 Parametry tiskáren Kromě typu tiskáren, které jsme viděli na předcházejících řádcích, je charakterizují následující parametry: - rychlost tisku určuje počet stran za minutu, které je tiskárna schopna vyhotovit. Tento údaj však výrobci velmi často zkreslují a s nimi uváděné hodnoty jsou obvykle nejvyšší možné, které se nám při standardních dokumentech složitějšího obsahu dosáhnout nepodaří, - hlučnost je v současnosti, když jehličkové tiskárny patří minulosti, více-méně na akceptovatelné úrovni, 212 Počítačové systémy - rozlišení určuje kvalitu výstupu, přičemž pro tisk textu postačuje 300 dpi, na fotografie je nutné používat alespoň 600 dpi. Tyto hodnoty dosahují prakticky všechny v současnosti prodávané tiskárny (kromě jehličkových), není třeba však jít při tisku běžných dokumentů do extrémů a třeba si uvědomit, že čím nižší rozlišení použijeme, tím rychleji bude dokument vytištěn, - režimy tisku souvisí jak s rozlišením, tak i s kvalitou výstupu. Standardní tiskárny dovolují nastavení ekonomického režimu (konceptu), při kterém šetří inkoust nebo toner na úkor kvality výstupu. Používání šetřících režimů dokáže prodloužit životnost náplně často až dvojnásobně, - s režimem úzce souvisí i provozní náklady, přičemž je třeba myslet na to, že počty stran, na které má vystačit jedna náplň, výrobce udává u 5% pokrytí černou barvou (texty) a u 15 % pokrytí pro barevný obsah, - schopnost tisku na speciální média třeba zvážit zejména tehdy, jestliže předpokládáme tisk na fólie anebo hrubší papíry (tehdy je vhodné, když má tiskárna další vstup a výstup umístěný tak, aby se médium v tiskárně co nejméně ohýbalo), - pokud bude tiskárna určena na masivní tisk dokumentů, je třeba zvážit její doporučené měsíční zatížení (uváděné výrobcem) a velikost zásobníku na papír. 10.4.11 Zvuková karta Zvuková karta patří mezi „nepovinné“ zařízení, i když v současnosti si už počítač bez něj nedokážeme ani představit. V době prvních (i druhých a třetích) počítačů typu PC byl jediným zdrojem zvuku systémový reproduktor (PC speaker), který dokázal vydávat zvuky najednou jen v jediné frekvenci (do 16 kHz). Bylo ji sice možno měnit, ale ani těm nejzkušenějším programátorům se nepodařilo přiblížit k reálným zvukům. Nové možnosti jim poskytla až samostatná zvuková karta, která se u nás rozšířila někdy v polovině 90. let 20. století. Prostřednictvím ní dokážeme zvuk zaznamenat i zprostředkovat. Jako samostatná karta se v současnosti vyskytuje jen zřídka, protože většina základních desek ji má integrovanou v podobě, která stačí mohutné většině běžných uživatelů. Struktura zvukové karty Zvukové karty mají několik analogových vstupů (mikrofonový vstup, linkový vstup určený na propojení s výstupem jiného zařízení, např. TV tuneru) a výstupů (dvojice výstupních reproduktorů), občas je přítomný i digitální výstup S/PDIF. Někdy bývá součástí zvukové karty i gameport určený na připojení joysticka. 213 Počítačové systémy Obr. Zvuková karta Standardně se používá barevné rozlišení konektorů – mikrofonovému vstupu je přiřazena růžová barva, linkovému modrá, hlavnímu výstupu (reproduktory) zelená, druhému černá. Digitální výstup používá oranžovou barvu. Některé koncovky jsou z důvodu podpory používání vícekanálového zvuku multifunkční a prostřednictvím softwaru je možno určit, zda se budou chovat jako vstupní anebo výstupní. Nejdůležitějším modulem zvukové karty jsou A/D a D/A převodníky, které se starají o převod analogového signálu na digitální a naopak. Tento modul se někdy označuje také jako kodek. Druhým samostatným modulem je syntetizátor MIDI (Musical Instrument Digital Interface), který umožňuje generovat zvukové charakteristiky hudebních nástrojů na základě soustavy pravidel označované jako General MIDI system. Proces, který tento obvod zabezpečuje, se někdy označuje také jako FM syntéza. FM syntéza se snaží ze základních hudebních tónů poskládat zvuk hudebního nástroje. Lepší zvukové karty pracují s Wavetable syntézou – v paměti zvukové karty jsou uložené reálné zvuky hudebních nástrojů díky čemu je potom i reprodukce omnoho reálnější. Na plošném spoji zvukové karty se nacházejí ještě vstupní a výstupní zesilovače a různě podpůrné obvody. Postupem času s růstem výpočtové kapacity a paměti počítačů, byly zvukové karty doplněny o digitální signálový procesor (DSP), který jim umožňuje v reálném čase zpracovávat a upravovat digitální zvuková data (frekvenční filtry, efekty atd.). V současnosti mají téměř všechny zvukové karty stejné parametry. Údaje, které z nich dělají kvalitní anebo nekvalitní zařízení, obvykle prodejci neuvádějí a je nutné pátrat na stránkách výrobce: - frekvenční rozsah představuje rozsah frekvencí, jenž je zvukový adaptér schopný zaznamenat a zreprodukovat. Platí, že čím je větší, tím lépe. Standardem jsou hodnoty od 30 Hz do 20 kHz. - celkové harmonické zkreslení udává přesnost reprodukce jednotlivých tónů. Udává se v procentech a platí, že čím je tato hodnota nižší, tím je reprodukce zvuku věrnější. Tento parametr představuje hlavní rozdíl mezi zvukovými kartami stejného typu a různé ceny. - odstup signálu od šumu představuje rozdíl mezi silou signálu a šumu. Udává se v decibelech a čím je hodnota vyšší, tím čistější zvuk by měla zvuková karta poskytovat. Reprodukce Zvukové karty by bez zařízení schopných zprostředkovat jejich výstup posluchači neměli opodstatnění. Na reprodukci získaného zvuku se používají reproduktory (případně sluchadla). Reproduktory je možno rozdělit na pasívní a aktivní. Pasivně používají signál vygenerovaný zvukovou kartou, který reprodukují bez zesilnění. Jejich výhodou je, že nepotřebují žádný zdroj napětí, nevýhodou slabý výkon. Většina reproduktorů je aktivní. Ty jsou nabíjené síťovým napětím, které slouží na zesílení vstupního signálu. Výsledný zvuk je zpravidla postačující. 214 Počítačové systémy Zvukové karty i reproduktory mají společný parametr, který u zvukových karet představuje informaci o podpoře počtu výstupních kanálů a u reproduktorů jejich fyzickou skladbu. První zvukové karty měly obvykle jeden anebo dva kanály a nemohly současně zaznamenávat a reprodukovat zvuk. Později se kromě možnosti současného příjmu a reprodukce zvýšil počet nezávislých kanálů, s kterými mohla zvuková karta pracovat. V současnosti dosahuje počet použitelných (ne nutně používaných) kanálů hodnotu minimálně 16. Pro více než dvojkanálový zvuk (tento se označuje jako stereo) se používá označení prostorový (3D) zvuk (surround sound). Kvalita jeho reprodukce závisí kromě jiného na rozmístění reproduktorů v prostoru. Vžilo se několik standardních označení (vybíráme základní): - 2.0 představuje stereo soustavu – tj. jeden pravý a jeden levý reproduktor. Podporují ho prakticky všechny (kromě nejstarších) zvukové karty. - 5.1 přidávají k 2.0 po jednom pravém a levém kanále, navíc přední středový a basový kanál. Tento systém je standardem domácího kina. - 7.1 je podporovaný jen na poli výpočetní techniky (ne spotřebitelské elektroniky) a přidává zadní středové kanály. Obr. Surround 7.1 – umístění reproduktorů v prostoru 10.5 Ostatní vstupně-výstupní zařízení Když byl před několika léty představen první digitální fotoaparát, pravděpodobně nikdo netušil, že dokáže tak rychle proniknout na trh a tak razantně vytlačit klasický film. Digitální fotoaparát nezaznamenává fotografie na film, ale ukládá je na paměťovou kartu (vyměnitelnou a přenosnou). Snímaný obraz vidíme obvykle po dobu fotografování na displeji, umístěném na zadní straně přístroje. Po fotografování (není potřeba zaplnit celou paměť) potom stačí přenést údaje do počítače, případně ho připojit přímo k tiskárně a obrázky podle výběru vytisknout – ušetří se tím čas a peníze potřebné na vyvolání filmu a zhotovení nepožadovaných a nepodařených snímků. Kromě obyčejných fotografií dokáže 215 Počítačové systémy digitální fotoaparát obvykle nahrávat i videosekvence anebo samostatný zvuk, díky čemuž jej můžeme také jako jednoduchou videokameru anebo diktafón. Obr. Digitální fotoaparát Obraz je zaznamenávaný prostřednictvím CCD senzorů transformujících intenzitu dopadajícího světla na elektrický signál, který A/D převodník mění na digitální hodnoty (viz Skenery). U digitálního fotografování je první důležitou vlastností rozlišení fotoaparátu. Udává se v megapixelech a určuje počet bodů, které je fotoaparát schopen zachytit na jednom snímku. Navzdory tomu, že v současnosti tyto hodnoty nezadržitelně rostou, jsou pro fotografie prakticky až do velikosti A4 postačující 3 Mpix, které zachytí obraz do 3,2 miliónů bodů v rozlišení 2 048 x 1 536 bodů. Je třeba si také uvědomit, že čím více budou snímky megapixelové, tím pravděpodobněji zachytí různé šumy a zaberou více místa či už na paměťové kartě při fotografování anebo na pevném disku při přenosu do počítače. Neméně důležitým parametrem je optický zoom zabezpečující možnost přiblížení objektu pomocí objektivu. V případě, že dosahuje hodnoty nad 5, je vhodné, když fotoaparát obsahuje i stabilizátor obrazu. Velké přiblížení totiž klade vysoké nároky na stabilitu objektivu během fotografování a každý, stačí jen drobný pohyb fotografa, je znásobený velikostí zoomu, čímž se obraz může stát neostrým a rozmazaným. Na přitáhnutí zákazníka se jako důležitý parametr často udává i digitální zoom, který však hovoří jen o schopnosti zvětšení obrazu (např. už vytvořené fotografie na displeji fotoaparátu) a na kvalitu snímků nemá žádný vliv. Vlastnost, od které kvalita snímků závisí pravděpodobně nejvíce, je podobně jako při skenerech optická soustava. U fotoaparátů, jejichž charakteristiky jsou na první pohled stejné, je zřejmě ona tím parametrem, který určuje rozdíl v ceně (i když to nemusí být vždy úplně pravda). Dalším zařízením, pomocí kterého dokážeme do počítače přenést obraz, je digitální kamera. Pracuje podobně jako digitální fotoaparát, ale nabízí podstatně kvalitnější parametry na snímání pohybu a zvuku. Obraz může ukládat na paměťovou kartu, pásku anebo přímo na DVD. Kromě digitální kamery je možné dostat do počítače také obraz z běžné videokamery. Postačí k tomu videopřehrávač a zařízení na přijímání videosignálu, např. střihová (VIVO) anebo televizní karta. Zajímavým doplňkem určeným původně pro grafiky jsou grafické tablety, které přenášejí pohyby pera do počítače. Kromě samotného kreslení, umožňuje tablet ovládání systému perem stejně jako bychom používali myš. 216 Počítačové systémy Zajímavým doplňkem určeným původně pro grafiky jsou grafické tablety, na které grafik (zvyklý pracovat ručně) kreslí speciálním perem jako na papír. Z tabletu se pohyby pera přenášejí do počítače a tímto způsobem se vytváří grafický obrázek. Složitější tablety dokážou snímat nejen pohyb – čáru, ale podle tlaku i její tloušťku a sílu. V současnosti existují tablety, které je možno umístit na stůl podobně jako podložku pod myš a kreslit na ně speciálním perem. Kromě samotného kreslení umožňuje ovládání systému perem stejně jako bychom používali myš. Obr. Notebook s tabletem Zajímavým řešením využívajícím myšlenku tabletů jsou dotykové obrazovky. Zpočátku byly k dispozici jen na kapesních počítačích (handheld), ale v současnosti není ničím výjimečným se setkat s notebooky, které mají místo klasické LCD obrazovky obrazovku dotykovou – označují se opět jako tablety. Další rozvinutí snímání dotyků představují elektronické tabule, které jsou schopny nahradit křídové, či fixové tabule. Jejich princip je založený na kombinaci promítaného obrazu prostřednictvím dataprojektoru (promítat je možno na tabuli zepředu i zezadu) a zaznamenávaní pohybu elektronických fixů prostřednictvím snímačů umístěných na okraji tabule. Pohyb se s přesností na milimetry přenáší bezdrátově do počítače, odkud se okamžitě promítá prostřednictvím dataprojektoru zase na tabuli. Výhodou je, že údaje je možno v počítači dále zpracovávat, exportovat, sdílet anebo jednoduše opět zobrazit. 217 Počítačové systémy Obr. Elektronická tabule 10.6 Zařízení umožňující připojení k počítačové síti Síťová karta umožňuje připojení počítače do počítačové sítě. Obvykle je hlavním účelem zabezpečení komunikace mezi dvěma anebo větším počtem počítačů, přičemž nezáleží na tom, zda jsou v jedné místnosti anebo v jednom městě. Počítače mohou mezi sebou komunikovat, přenášet údaje anebo využívat např. tiskárny připojené k libovolnému počítači v síti. Často se počítače propojují také pro připojení se na Internet. Modem představuje vstupně-výstupní zařízení, které umožňuje komunikaci mezi dvěma počítači prostřednictvím telefonního vedení. Klasický (analogový) modem na jedné straně upravuje signál z počítače na přenos po telefonním vedení, na straně druhé ho dekóduje a upravuje do digitální podoby, díky čemu ho dokáže druhý počítač přijmout. Podle toho, kolik bitů za sekundu dokáže modem “přepustiť”, hovoříme o 14,4 kbps, 33,6 kbps anebo 56,6 kbps (kilobitů za sekundu). Pomocí modemu se obvykle připojujeme i na Internet. 10.7 Chlazení Při své činnosti se počítačový systém zahřívá. Není se čemu divit, neboť změnit svůj stav několikmiliardkrát za sekundu, vyžaduje investici značné energie. Vnitřní změny, které přitom nastávají v jednotlivých komponentech, zákonitě musí produkovat teplo. Zřejmě nejvíc tepla se generuje na součástkách, které pracují na vysoké frekvenci – procesor (CPU), grafický procesor (GPU) a čipset základní desky. Někdy se přidávají i moduly operační paměti, ale jejich chlazení zatím není standardem. Na snížení teploty se používá chladič (cooler). Standardně se umisťuje tak, aby přicházel s chlazeným zařízením do co nejužšího kontaktu na co největší 218 Počítačové systémy ploše – často se používá i speciální pasta, která zlepšuje odvod tepla z komponentu na chladič. Základním dělením chladičů může být dělení na pasivní a aktivní. Pasivní chladiče vykonávají svojí činnost na základě odvádění tepla z chlazeného komponentu prostřednictvím plochy – znamená to, že jsou vytvořeny tak, aby co největší plocha přicházela do styku s okolním vzduchem, který je v tomto případě chladící látkou. Skládají se z množství žeber a často jsou masivní. Jejich obrovskou výhodou je nehlučnost a bezporuchovost – nemají žádné pohyblivé části. Využívají se hlavně na čipech čipsetu a méně náročných grafických kartách. Nejnovější typy používají technologii heatpipes založenou na použití trubiček naplněných kapalinou, která odvádí teplo do okolí vypařováním. Aktivní chladiče odvádějí teplo prostřednictvím cirkulace vzduchu (točící se ventilátor, jehož otáčky se v některých případech regulují podle teploty zařízení) anebo kapaliny (často obyčejná voda, která cirkuluje za pomoci čerpadla). V rámci možností je zachovaná filozofie co největší plochy na odvod tepla. Chladiče tohoto typu bývají v levnějších variantách poměrně hlučné a po určitém čase se hlučnost ještě více zvyšuje v důsledku opotřebování. Kromě procesorů a grafických karet se používají i na chlazení čipsetů, jsou součástí zdrojů napájení a někdy se přidávají do skříňky počítače na odvádění tepla z pevného disku anebo z celého systému. Obr. Aktivní a pasivní chladič Je potřebné si uvědomit, že čím více se teplota v systému sníží, tím větší životnost komponentů můžeme dosáhnout. 10.8 Typy počítačových systémů Počítače můžeme kategorizovat různými způsoby. Pokusíme se je nyní rozdělit podle účelu, na který slouží: stolní počítače, přenosné počítače, vysokovýkonné a průmyslové počítače. 10.8.1 Stolní počítače Počítače, o kterých jsme dosud hovořili, patří do řady osobních počítačů (PC – Personal Computer). Jsou nejčastějšími modely u nás i v celé Evropě. Vzhledem k tomu, že jejich nejčastější použití je v kancelářích, resp. v domácnostech a zpravidla bývají umístěné blízko u stolu, označují se jako 219 Počítačové systémy stolní počítače anebo desktopy (a to bez ohledu na to, zda má skříňka provedení desktop, tower anebo jiné). Na první pohled téměř totožně jako PC vypadá i Apple Macintosh (Mac). Počítače tohto typu jsou také určené primárně na desktopové použití a představují skupinu osobních počítačů vyráběných americkou společností Apple Computer. První Macintosh byl uvedený na trh v lednu 1984. Byl to první osobní počítač, který používal grafické rozhraní, čímž předběhl všechny své současníky o několik let – většina tehdejších operačních systémů pracovala jen s příkazovým řádkem. Obr. Apple Macintosh Od roku 1984 do roku 1994 využíval procesor Motorola, potom přešel na RISC procesor PowerPC (vytvořený konsorciem Apple, IBM a Motorola). Od roku 2006 začala společnost přechod na architekturu Intel x86 údajně z důvodu výkonnostních problémů architektury PowerPC. Jako terminály bývaly v minulosti označovány zařízení skládající se z obrazovky a klávesnice, které neměly vlastní diskový prostor a sloužily jen na připojení se k systému, který jim poskytoval jak údaje, tak i výpočtové prostředky. V současnosti může být terminálem i klasické PC, které se připojuje na jiný počítač prostřednictvím počítačové sítě a slouží např. jen na vkládání údajů – všechny důležité operace probíhají na cílovém počítači. Jako terminál si můžeme představit např. bankomat, letištní terminál, terminál v knihovně určený na prohledávání knižního fondu apod. Specifickou kategorií je hrací (herní) konzola určená primárně uživatelům orientovaným na hraní počítačových her. Jako zobrazovací zařízení může posloužit televizní přijímač i monitor. Současné konzoly umožňují kromě hraní her i sledování filmů, přehrávání CD/DVD anebo připojení na Internet. Některé konzoly mohou sloužit i jako plnohodnotný počítač. Obr. Playstation 220 Počítačové systémy Mezi nejznámější herní konzoly patří Microsoft XBox, Sony Playstation, Nintendo. Kromě konzol připojitelných k zobrazovací jednotce existují i kapesní (přenosné) s vlastním displejem. 10.8.2 Přenosné počítače Nejtypičtějším přenosným počítačem je notebook. Je to přenosný počítač s malými rozměry, nízkou hmotností a schopností pracovat díky akumulátorům několik hodin bez potřeby elektrického napájení. Použité součástky jsou oproti PC minimalizované a odolnější vůči otřesům, a proto jsou notebooky o něco dražší než stolní počítače. Někdy se tato kategorie počítačů označuje také jako laptop. Rozdíl mezi názvy je historický – laptop byl původně větší než notebook a byl určený „na kolena“, zatímco notebook velikostí připomínal knihu. Klasický notebook se skládá ze sklopného LCD displeje, klávesnice se zredukovaným počtem kláves a myš je obvykle nahrazena touchpadem reagujícím na pohyb prstu, který se přenáší na kurzor myši. Díky tomu, že notebooky je možno jednoduše přenášet, jsou oblíbené zejména u uživatelů často měnících místo práce (kancelář, domov, služební cesta) a u těch, kteří vyžadují mít svoje údaje stále sebou (manažeři, programátoři apod.). Stále častěji se s nimi můžeme setkat i u studentů vysokých škol, kterým nahrazují klasické zápisníky, pera i papíry. Obr. Notebook Kapesní počítače jsou počítači přenosnými v pravém slova smyslu. Patří zde různé diáře a programovatelné mikropočítače (PDA – Personal Digital Assistant – osobní digitální asistent, hand-held) pracující s vlastním systémem často už na úrovni systémů stolových počítačů. Primárně se využívaly jako příruční zdroje informací, ale v současnosti, navzdory nižšímu výkonu v porovnání s desktopy, prožívají období rozkvětu. Jejich funkce (textový editor, poznámkový blok, kalendář, adresář, plánovač úloh, hry, fotoaparát atd.) jsou často integrované i v dražších mobilních telefonech, případně funkce mobilních telefonů jsou integrované v nich. Velikost zařízení je přizpůsobená tak, aby je bylo možné uchopit do dlaně a přenášet v kapse. Ovládání je standardně realizované prostřednictvím dotykové obrazovky, výjimečně prostřednictvím miniaturizované klávesnice. 221 Počítačové systémy PDA se používají na místech, kde je použití notebooku vzhledem na požadované funkce zbytečné (např. systémy, ve kterých postačí prohlížení údajů, případně občasné kliknutí či potvrzení splnění úlohy). Známe jejich nasazení v navigaci prostřednictvím GPS. Nejlevnější zařízení se cenově blíží k ceně levného stolního počítače. Obr. PDA s GPS Speciální kategorii kapesních počítačů představují „rozšířené kalkulačky“ určené na řešení úloh z přírodovědných a technických oblastí. Typickým představitelem je Casio ClassPad, který disponuje aplikacemi pro numerické a algebraické výpočty (např. práce se zlomky, maticemi apod.), pro sestrojování a analýzu geometrických objektů a kuželoseček, statistické výpočty, práci s grafy a tabulkami, zpracování postupností, numerické řešení rovnic atd. Obr. .5 ClassPad 10.9 Vysokovýkonné počítače Tato kategorie je velmi diskutabilní, protože počítač, který sloužil před rokem jako vysokovýkonný, už v současnosti může být na úrovni průměrného stolního počítače a navzdory tomu stále zpracovává stejné úlohy. Do této kategorie spadají počítače spíše na základě určení než na základě svého výkonu či speciálních funkcí. Některé označení jsou daná historicky, jiná úlohou počítače v systému. Minipočítač je zařízení navenek se nelišící od klasického PC, avšak svým výkonem ho několikrát překoná. Využívá se zejména na místech, kde výkon standardního PC nestačí (náročné konstruktérské výpočty, řízení jiných 222 Počítačové systémy počítačů, server v síti – viz dále, apod.). Minipočítače mohou obsahovat několik procesorů, čím se jejich výkon ještě více zvýší. Často poskytují svoje služby dalším počítačům. Pracovní stanice je obdobou minipočítače, ale obvykle je samostatná a má o něco nižší výkon. Dnes slouží jako pracovní stanice běžné PC, čím se vlastně rozdíl mezi systémy stírá. Server nemusí představovat speciální počítač, je to len funkce, kterou může dostat přidělenou jako minipočítač, tak i pracovní stanicí, notebook či standardní desktop. Z důvodu potřeby spolehlivosti a dosáhnutí stabilního výkonu se však jako servery nasazují speciální počítače zkonstruované tak, aby odolaly vysoké zátěži a nepřetržitému provozu. Jejich ceny jsou proto logicky několikanásobně vyšší než v případě ostatních typů počítačů. 10.10Průmyslové počítače Průmyslové počítače jsou určeny do prostředí charakterizovaného zhoršenými pracovními podmínkami. Jsou schopné snášet prašné prostředí, širší rozsah teplot, nárazy a vibrace, mají zvýšenou odolnost vůči elektromagnetickému záření. Komponenty jsou obvykle vyráběné speciálně pro tuto kategorii, provedení dokáže být prachuvzdorné i vodotěsné. Cyklus života průmyslových počítačů je podstatně delší než u běžných desktopů, ale navzdory tomu plně podporují jejich standardy. Konstrukce umožňuje jednoduchou údržbu a pohotovou výměnu prvků s nejnižší životností (např. HDD). Využívají se zejména v průmyslové výrobě na řízení výrobních procesů, ovládání jednoúčelových strojů a zařízení, v měřící technice na měření, regulaci a sběr údajů. Můžeme je použít i jako routry v počítačových sítích. Popsané typy výpočtových systémů někdy nedokážou mezi sebou bezproblémově komunikovat, protože byly vytvořené různými technologiemi, různými výrobci a na úplně odlišné účely. Hovoříme, že jednotlivé typy nejsou kompatibilní. Kompatibilita (compatibility - slučitelnost) je vlastnost zařízení a programů, umožňující jejich použití bez změny i v jiných typech počítačů. Kontrolní otázky: 13. Vyjmenujte jednotlivé části počítače? 14. Proč se hardware počítače tak často mění? 15. Jaké jsou funkce základní desky počítače? 16. Jaké znáte periferní zařízení počítače? Úkoly k zamyšlení: 2. Zařízení jakého typu využíváte v práci a doma? 3. Kterými funkcemi se liší tzv. „chytré mobily“ od klasických mobilních telefonů? 4. Jaký typ tiskárny máte k dispozici, jaká je cena barvy? 223 Počítačové systémy 5. Používáte Vy nebo někdo ve Vašem okolí pro zobrazení pracovní plochy více než 1 monitor? Jaké výhody přináší toto zapojení? 6. K čemu slouží dataprojektor a jak se k počítači připojuje? Shrnutí obsahu kapitoly Student se z pozice uživatele seznámí se základními hardwarovými komponentami. Dovede je rozpoznat a odlišit a vysvětlit jejich účel v rámci PC sestavy. Student se orientuje v periferiích, je schopen je správně zapojit. 224 Počítačové systémy 11. Software osobních počítačů PC V této kapitole se dozvíte: • • • • Co je to software? Jak se dělí software podle účelu? Jaké jsou funkce operačního systému? Jaké funkce mají aplikační programy? Po jejím prostudování byste měli být schopni: • • • Charakterizovat druhy operačních systémů. Znát typy aplikačních programů. Porozumět základním funkcím programového vybavení počítače. Klíčová slova této kapitoly: Operační systém, aplikace, textový editor, tabulkový procesor, databáze. Doba potřebná ke studiu: 6 hodin Průvodce studiem Kapitola si klade za cíl seznámit studenta se základními pojmy, se kterými se může setkat v oblasti software. Student bude obeznámen se základním dělením software, účelem jednotlivých skupin software, doplněným výčtem řady příkladů. Výklad je doplněn řadou ilustrací pro snadnější orientaci. Všechny prvky, o kterých jsme do této chvíle hovořili, představovaly součástky počítače – hardware. I když z nich dokážeme poskládat počítač, od vykonávání reálných úloh jsme ještě příliš daleko – systému nedokážeme nic přikázat, a tím pádem od něho nemůžeme ani nic očekávat. Bez vhodného programového vybavení je pro nás počítač jen směsí plastu a kovu. Na to, aby počítačový systém věděl co, kdy a jak má vykonávat, potřebuje mít k dispozici předpisy (příkazy), na základě kterých procesor řídí jeho chod. Tyto postupnosti označujeme jako programy, aplikace nebo nejčastěji software. Samotný software je však stejně nefunkční jako samotný hardware. Jedno bez druhého nemůže pracovat, proto o počítači hovoříme jako o spojení softwaru a hardwaru. Software s hardwarem dokážou zabezpečit chod systému, ale v dvojkombinaci ještě celkem nenaplňují definici. Smyslem práce počítačového systému je totiž zpracování údajů. Údaje představují vstup do systému, který je zpracuje a na základě své činnosti poskytne uživateli výsledky – opět údaje. Ne každý software vyžaduje pro svoji činnost údaje – softwarem je např. i program, který po spuštění pípne anebo vypíše „Ahoj“. Pokud však od něho chceme, aby našel studenty, kteří chyběli v zadaném týdnu, nevyhneme se už jeho „nakrmení“ údaji – potřebuje mít k dispozici údaje o docházce, které překontroluje a na základě nich objeví a vypíše absentéry. Jak tedy rozlišit údaje od softwaru? Trochu zjednodušeně můžeme říci, že software je předpis a údaj je vstup, který se na základě předpisu zpracovává. Textový editor je software a texty, které v něm napíšeme, představují údaje; grafický editor je software, zpracované fotografie představují údaje. V případě 225 Počítačové systémy různých encyklopedií představuje software prostředí encyklopedie, údaje jsou zobrazované informace určené uživateli. Pokud bychom chtěli být vulgární, mohli bychom za programy označit všechno to, čemu rozumí počítač a za údaje to, čemu rozumí uživatelé. Hardware má svoji hmotnost a tvar, software a údaje jsou abstraktní – nedokážeme je nahmatat, nevíme jaký mají tvar, nedokážeme je detekovat ani čichem. Na to, aby mohl software či údaje existovat, musí být někde uložené. Když opomeneme různé fantastické a vizionářské úvahy, místem na ukládání softwaru i údajů jsou paměti (dočasná operační paměť, CD, DVD, HDD, FDD a případně flash-disky), kde jsou obě kategorie umístěny v souborech. Software vzniká programováním. Každý počítačový program obsahuje postupnost instrukci, kterou vykonává procesor. Podle místa nasazení a způsobu určení je možno software rozdělit na dvě základní kategorie: - systémový software představuje programové vybavení počítače, které umožňuje a zabezpečuje spuštění dalších aplikací. Hlavním představitelem této kategorie jsou operační systémy, do kterých zahrnujeme i různé servisní programy umožňující a podporující jejich činnost, - aplikační software (aplikace) tvoří velká skupina programů, která je určená na řešení konkrétního problému anebo skupiny problémů. Můžeme sem zahrnout textové editory, grafické editory, prezentační software, mailové klienty, prohlížeče webových stránek atd. Speciální kategorii softwaru, jehož je poměrně těžké jednoznačně zařadit, tvoří: - síťový software, který umožňuje skupině počítačů navzájem komunikovat, - vývojový software (kompilátory, software určený na vytváření programů), který poskytuje programátorovi nástroje, potřebné na napsání programů, případně jeho přeložení do strojového kódu (anebo vykonání prostřednictvím interpretera). Vzhledem k tomu, že údaje i software můžeme velmi jednoduše rozmnožit a rozšířit bez jakéhokoli zásahu do originálu, představují ideální objekt krádeží (viz Počítačové pirátství). Pro činnost počítačového systému je nevyhnutelný právě operační systém. Architektura operačních systémů byla detailně popsána v kapitolách 8 a 9. Na tomto místě jen připomeneme základní vlastnosti OS ve vztahu k PC. 11.1 Operační systém Základním softwarem, který nám dovolí spouštět programy a manipulovat s uloženými údaji, je operační systém. Jeho existence začala na přelomu 50. a 60. let 20. století v druhé generaci počítačů, kde představoval sadu příkazů a instrukcí, které dokázaly komunikovat s paměťovými zařízeními a ukládat i číst z nich údaje nebo programy. Za půl století se hlavní úloha operačního systému velmi nezměnila – představuje technické a programové prostředky počítače, které zabezpečují komunikaci mezi hardwarem a uživatelem. Operační systém se stará o efektivní využití operační paměti a procesoru, o optimální komunikaci mezi 226 Počítačové systémy všemi používanými technickými i programovými prostředky. Inicializuje se vždy, když se spustí počítač, a umožňuje uživateli realizovat obsluhu počítače prostřednictvím příkazů. Operační systém je složen ze tří základních částí: - jádro operačního systému představuje výkonnou část systému, která je umístěná v paměti od spuštění do vypnutí počítače. Jádro podle potřeby a požadavků uživatele či aplikací spouští nebo přesouvá do operační paměti ostatní součásti operačního systému, - monitor operačního systému zabezpečuje komunikaci systému s uživatelem. Přijímá a analyzuje impulzy z klávesnice, zjišťuje význam systémových příkazů, vypisuje příslušné odezvy na výstupní zařízení, - ovládače obhospodařují komunikaci operačního systému s hardwarovými zařízeními. Každé hardwarové zařízení má svoji vlastní strukturu a využívá specifické vlastnosti, které při vývoji operačního systému ještě nemusely existovat. Ovladač je proto navržen tak, aby dokázal komunikovat s operačním systémem prostřednictvím všeobecnějších (abstraktních) příkazů. Např. příkaz operačního systému „zobraz výřez obrazovky“, ovladač transformuje do instrukcí grafické karty, pro kterou byl napsaný. Ta ho potom podle svých možností a schopností zrealizuje. Vzhledem k tomu, že každý operační systém má svoje vlastní „abstraktní příkazy“, je potřeba, aby byl ovladač vytvořený nejen pro konkrétní hardware, ale i pro konkrétní operační systém. Ovladače jsou standardně k dispozici v samostatných souborech ve formě knihoven, díky čemu jsou k dispozici i aplikačním programům. Všechny ostatní součásti systému můžeme chápat jako aplikační programy (textový editor, služebné programy pro diagnostiku, komunikaci v síti apod.) 11.2 Dělení operačních systémů Na operační systémy se můžeme pohlížet z více úhlů, na základě kterých je dokážeme dělit: - jednouživatelské operační systémy jsou takové, ve kterých v jednom časovém okamžiku může počítači zadávat příkazy jediný uživatel. Jejich opakem jsou víceuživatelské operační systémy, které povolují současnou práci více uživatelům. Je samozřejmé, že uživatelé nesedí v jedné místnosti a nepřipojují se prostřednictvím klávesnic k danému počítači – víceuživatelský systém předpokládá počítačovou (případně terminálovou) síť, prostřednictvím které se do počítače přihlásí uživatelé na základě jména, hesla a systém jim přidělí výpočtové i paměťové prostředky, - jednoúlohové operační systémy umožňovaly mít v jednom časovém okamžiku spuštěný jen jeden program, víceúlohové umožňují současný běh většího počtu programů. Tato schopnost operačních systémů se označuje jako multitasking (multi=víc, task=úloha) a zabezpečuje se prostřednictvím přidělování prostředků i času procesoru běžícím úlohám. Skutečné paralelní zpracování je možné jen při víceprocesorových systémech, v případě jednoprocesorových (když opomineme techniky jako např. pipelining) nejsou úlohy zpracované najednou, ale dojem paralelního 227 Počítačové systémy zpracování vyvolává rychlé přepínání mezi nimi zabezpečované operačním systémem, - systémy nepodporující práci v síti a operační systémy síťové, které dokážou komunikovat s počítači připojenými do počítačové sítě, - podle dalšího kritéria rozeznáváme operační systémy paměťově rezidentní (pro jednoduché mikropočítače, kde je celý systém pevně umístěný v ROM) anebo diskově orientované, jejichž součásti jsou umístěné na diskových médiích a podle potřeby nahrávané do operační paměti, Pro diskový operační systém je potřeba zabezpečit při startu počítače jeho zavedení do operační paměti. Na této operaci spolupracuje BIOS, který hledá operační systém na paměťových médiích v pořadí jaké má uvedené v paměti CMOS a diskové zařízení (HDD, FDD, CD a pod.), které má v zaváděcím sektoru (boot sektore) zapsané příkazy, které z něho zavedou operační systém. Správné nastavení se obvykle nerealizuje manuálně, ale zabezpečí ho automaticky instalační program operačního systému. - první operační systémy byly orientované textově a všechny činnosti se vykonávaly prostřednictvím příkazů zadávaných do příkazového řádku. Současně s vývojem operačních systémů proto byla vyvíjena uživatelská prostředí označovaná jako nadstavby operačního systému, které zjednodušovaly jejich používání. Primární úlohou těchto aplikací bylo poskytnout uživatelům nástroj na správu souborů a přehled o tom, co mají uložené na svých discích a disketách. Navíc umožňovaly zadávat příkazy bez toho, aby uživatel musel znát jejich přesný tvar - většinou výběrem z menu. Zpočátku byly tyto prostředí orientované na využívání funkčních kláves, ale později začali mít grafickou podobu a jako hlavní ovládací prostředek používali myš. Odtud byl už jen krůček k vytvoření a zavedení grafických operačních systémů, které se ovládaly intuitivně, s údaji se manipulovalo prostřednictvím myši. Jejich prostředí se označuje jako GUI (Graphical User Interface – grafické uživatelské prostředí). 11.3 Porovnání operačních systémů V současnosti existuje několik základních operačních systémů. Mezi nejpoužívanější v našich končinách a u běžných uživatelů patří Windows a Linux. Není však na škodu disponovat také informacemi o ostatních. 11.3.1 Unix V roce 1965 pracovali společnosti Bell Telephone Laboratories (divize AT&T) a General Electric na projektu, jehož cílem bylo vytvořit operační systém Multics. Po čase se společnost Bell Telephone Laboratories rozhodla od spolupráce odstoupit, protože systém se rozrostl na nepoužitelný kolos. V důsledku tohoto rozhodnutí ztratila šanci získat v krátké době vyhovující operační systém. Jako odezvu na tento čin se zaměstnanci K. Thompson a D. Ritchie rozhodli navrhnout vlastní operační systém, který by splňoval požadavky jejich zaměstnavatele. Ken Thompson návrh realizoval při vytváření vývojového prostředí na počítači PDP-7. Toto bolo původně vytvořené v assembleru a až 228 Počítačové systémy v roce 1973 kompletně přepsané do jazyka C, čím se zabezpečila možnost kompilace prakticky na libovolné architektuře. Během vývoje se pro systém ustálil název Unix, který mu už zůstal až do současnosti. Koncem 70. let byla společnosti AT&T protimonopolním úřadem zakázaná činnost v oblasti počítačového průmyslu, a proto se rozhodla za velmi výhodných finančních podmínek provést licenci na operační systém Unix na vybrané univerzity. Od tohoto momentu vývoj pokračoval ve dvou hlavních větvích: - komerční verze System III, System V pod vedením AT&T, Solaris, HP-UX, AIX, - akademické (volně šiřitelné) verze BSD Unix (FreeBSD, NetBSD, OpenBSD) vytvářené pod záštitou Kalifornské univerzity v Berkeley a OpenSolaris. Současný Unix je charakterizovaný jako víceuživatelský, víceúlohový a síťový operační systém vybudovaný na třech vrstvách: - jádro systému (kernel) komunikuje s technickými prostředky počítače a poskytuje svoje služby jiným programům - interpret příkazů příkazového řádku (shell) vykonává příkazy vyššího programovacího jazyka určeného na komunikaci uživatele se systémem. Zabezpečuje realizaci služebních programů systému a poskytuje také množinu strukturovaných řídících konstrukcí, pomocí kterých je možné psát skripta, - služební programy představují kategorii aplikačních programů a v rámci Unixu se jejich počet se odhaduje na stovky. K dispozici jsou i grafické rozhraní, ze kterých jsou nejznámější GNOME a KDE. Grafické rozhraní pracující nad systémem Unix potřebuje pro svoji práci rozhraní X-Windows, které představuje jakéhosi manažera mezi grafickým rozhraním a grafickou kartou. Obr. Prostředí KDE 229 Počítačové systémy Obr. Prostředí GNOME Výhody: - stabilita, bezpečnost a spolehlivost systému představují optimální kombinaci pro nasazení Unixu na servery a místa, kde je nevyhnutelný bezpečný a bezporuchový provoz, - volně šiřitelný zdrojový kód při nekomerčních verzích, z čeho vyplývají nulové náklady na zakoupení, - možnost kompilace prakticky na libovolnou hardwarovou platformu a v případě dostatečných zkušeností i úprava systému podle vlastních požadavků a potřeb. Nevýhody: - na správu systému jsou vhodné značné zkušenosti, což je v případě nasazení v organizacích bez zkušeného administrátora, potřeba dobře zaplatit externí firmě. 11.3.2 Linux Pod pojmem Linux je skryté množství verzí operačních systémů založených na platformě Unix, které mají společné jádro systému – Linux. Toto jádro (často se používá i na označení celých operačních systémů GNU/Linux) bylo napsané studentem Helsinské univerzity Linusom Torvaldsom. První distribuce (verze) byla zveřejněná v roce 1991 a krátce na to se už na jejím vývoji podíleli tisíce nadšenců. GNU označuje svobodný (volně šiřitelný) unixový operační systém a představuje rekurzivní zkratku: (GNU's Not Unix – GNU není Unix). GNU/GLP (General Public License) je licence umožňující kopírování, změnu a distribuci softwaru, který ji podléhá avšak s podmínkou, že i modifikovaný software bude šířený pod GNU/GPL. Mezi neznámější distribuce Linuxu patří Debian, Fedora Core, Knopix, Mandrake (Mandriva), Red Hat, SuSE a Ubuntu. Linux představuje operační systém se vším, co k němu patří – grafickým prostředím, aplikacemi pro práci s Internetem, kancelářskými balíky, hrami a multimediálními přehrávači. Představuje víceuživatelský, víceúlohový síťový operační systém. 230 Počítačové systémy Výhody i nevýhody jsou stejné jako při systémech typu Unix, existují komerční i nekomerční řešení, přičemž se obvykle neplatí za samotný systém, ale za jeho instalaci, nastavení a následnou podporu uživatelů. 11.3.3 Mac OS Mac OS (Macintosh Operating System) je operační systém pro počítače Apple Macintosh, který kombinuje kvalitní grafické prostředí se stabilitou operačních systémů Unix. Mac OS byl prvním komerčním operačním systémem s grafickým uživatelským rozhraním a mnohé v něm implementované prvky byly později přebrané dalšími operačními systémy (např. Windows). Prvým verzím byl vyčítaný nedokonalý multitasking a chybovost při práci s tzv. nadstavbami (rozšířením), které zabezpečovaly např. podporu sítí anebo připojení dalších zařízení. V současnosti je aktuální verze Mac OS X, která obsahuje jádro založené na BSD distribuci Unixu a grafické rozhraní Aqua vytvořené společností Apple. Výhody: - přepracované grafické prostředí, stabilita. Nevýhody: - v minulosti omezení na platformu Apple Macintosh, v současnosti podporuje už i platformu Intelu. 11.3.4 MS DOS MS DOS (Microsoft Disk Operating System) je diskovým operačním systémem určeným pro počítače IBM PC kompatibilní. Byl vyvinutý firmou Microsoft na základě objednávky firmy IBM, která potřebovala základní programové vybavení pro připravovaný model PC. Jde o textový, jednoprocesorový, jednouživatelský a jednoúlohový operační systém. Je tvořen pouze trojicí souborů msdos.sys (jadro), io.sys (odstraňuje chyby BIOSu a obsluhuje periferní zařízení) a command.com (interpret příkazů zadávaných do příkazového řádku). Obr. Vzhled MS DOS MS DOS se vyšplhal od verze 1.0 až po verzi 6.22, když na jeho místo postupně přišel operační systém Microsoft Windows 95. 231 Počítačové systémy Výhody: - funkčnost a rychlost i na nevýkonných strojích, - jednoduchost a v době největší slávy obrovské rozšíření. Nevýhody: - textové prostředí, - nemožnost provozování většího počtu programů současně, - neefektivní práce s operační pamětí nad 640 kB. 11.3.5 Ostatní operační systémy CP/M – historický operační systém určený pro domácí počítače s procesorem Z80, který byl orientovaný diskově (přesněji disketově) a díky tomu se stal inspirací pro mnohé další operační systémy, zejména MS DOS. Palm OS – operační systém používaný v handheldech typu Palm. Symbian OS, Microsoft Windows Mobile Edition – operační systémy používané v některých typech mobilních telefonů. OS/2 - operační systém, který se začal vyvíjet ve spolupráci IBM a Microsoft v roce 1986 jako náhrada systému MS DOS. Microsoft ho však po úspěchu svého systému Windows přestal od roku 1990 podporovat, IBM vývoj a podporu ukončila v roce 1998. 11.4 Windows Období, kdy osobní počítače ovládal MS DOS se svým příkazovým řádkem, skončilo na začátku 90-tých let. Nadstavby stárnoucího operačního systému DOS Shell a Norton Commander nahradil operační systém Microsoft Windows (první verze byla uvolněná v roce 1985). První skutečně rozšířenou a populární verzí byl Windows 3.0 (1990), který však nebyl plnokrevním operačním systémem, ale opět jen grafickou nádstavbou MS DOS, určenou pro komfortnější a univerzálnější ovládání počítače a aplikací. Navzdory tomu naznačil cestu, po které se v dalších letech ubíraly stále novější a novější verze tohoto operačního systému. Vzhledem k tomu, že právě operační systém Windows se v současnosti používá nejčastěji, budeme se mu věnovat podrobně a pokusíme se na něm prezentovat také další charakteristiky operačních systémů. Prvním operačním systémem Windows v dnešní podobě byla verze 95. Vzhledově je téměř totožná se svými následovníky, instalace však zabrala podstatně méně místa a měla značně nižší nároky na hardware. Současně s ní se na veřejnost dostala i verze Windows NT 4.0, jejichž design byl sice velmi podobný, ale jádro bylo v paměti oddělené od spouštěných aplikací, díky čemu nedocházelo k tolika kolizím a haváriím systému jako u Windows 95. Důraz se kladl na bezpečnost údajů (souborový systém NTFS) a spolehlivost systému. Windows NT byl náročnější na hardware, ale při kvalitních sestavách podával podstatně lepší výkony než Windows 95. Následovníkem Windows 95 se stal Windows 98, který měl kromě vnitřních vylepšení zabudovanou značnou podporu Internetu. Spojením obou operačních systémů (NT a 98) vznikla verze 2000 a současně s ní se na trh dostala také verze Windows 98 – Milénium, které však komerční prostředí nepřijalo. 232 Počítačové systémy Windows 2000 byl k dispozici ve třech verzích – dvě byly určeny pro práci na serverech (Windows 2000 Server a Windows 2000 Advanced Server), jedna pro pracovní stanice (Windows 2000 Professional). Následovníkem verze pro pracovní stanice se stala verze Windows XP (ve verzi Professional a odlehčené Home), pro servery je určený Windows 2003 Server orientovaný na týmovou a síťovou spolupráci. Windows XP Home se později vyvinul do verze Media Center Edition, která je určena pro domácí multimediální počítače typu all-in-one sloužící jako systémy domácí zábavy (TV, DVD, rádio, CD, fotografie). V současnosti je aktuálním operačním systémem verze Windows Vista, která je ve verzích Ultimate, Home Premium, Home Basic, Business a Enterprise určena pro nasazení na pracovních stanicích. Ovládání Windows spočívá v ovládání grafického uživatelského rozhraní (GUI – Graphical User Interface), které zabezpečuje intuitivní a lehce pochopitelnou komunikaci uživatelů a operačního systému. Operační systémy Windows je možné popsat z uživatelského hlediska následovnými charakteristikami, přičemž jako východisko jsme zvolili Windows XP: - grafické prostředí (GUI) – v prvních operačních systémech od Microsoftu bylo potřeba znát k ovládání počítače několik desítek příkazů a pracovalo se obvykle v textovém režimu. Operační systém Windows tyto příkazy skryl za klikání myší, ukazování na ikony a výběr z položek menu, - intuitivní ovládání spočívá v manipulaci s myší, jejím ukazováním a klikáním na objekty systému. Každý program i soubor s údaji má svůj obrázek (ikonu), který obvykle na první pohled umožňuje určit jeho funkci (např. štětec s obrázky – kreslící program, pero s poznámkovým blokem textový editor, kalkulačka – kalkulačka atd.). Ovládání je tím pádem jednoduché na paměť i zručnost. Pracovní plochu si může každý uživatel upravit „podle svého obrazu”. Může na ni umístit často používané programy, soubory, dokumenty a vše ostatní odsunout do pozadí a ponechat nezobrazené. Díky tomu je systém přehledný a nezkušený uživatel se nemusí zaobírat soubory, které pro něj nemají význam (anebo je nezná). S intuitivním ovládáním souvisí i možnost používat údaje z jednoho programu v jiném (např. vložit obrázek do textu), která se označuje jako OLE (Object Linking and Embedding). - standardizovaný stejný vzhled, ovládání a základní funkce všech programů. 99 % programů běžících pod Windows má stejný vzhled i některé položky menu (ukládání na disk, otvírání souborů, ukončení) a díky této vlastnosti není třeba se učit u nového programu vše od začátku, ale stačí všímat si jen věcí, které jsou nové a pro které se ho vyplatí používat. Z této filozofie se odvíjí i univerzální nastavování – v případě, že změníme např. barvy prostředí, projeví se změna ve všech programech; v případě, že připojíme k počítači novou tiskárnu a nastavíme ji jednou, není třeba dělat změny v každém dalším programu, ze kterého budeme tisknout. - podpora multitaskingu – Windows umožňuje současný běh více úloh a/anebo procesů. Pokud je k dispozici procesor s větším počtem jader anebo s podporou hyperthreadingu, dokáže je naplno využít. 233 Počítačové systémy - v případě nedostatku operační paměti umožňuje systém využít diskový prostor jako virtuální paměť a právě nepoužívaný obsah operační paměti na něj na určitou dobu odložit. Tento proces označujeme jako swapování. - Windows je systém podporující práci většího počtu uživatelů. Správce systému dokáže pro další uživatele vytvořit samostatné účty, které mohou a nemusí být navzájem viditelné, umožní jim vytvořit vlastní prostředí (např. vlastní pracovní plochu, menu apod.). V případě potřeby dokáže omezit anebo zakázat přístup k systémovým souborům a zabezpečit tak systém vůči chybám nezkušeného uživatele, znemožnit anebo omezit instalaci nových a spuštění existujících programů. Kolize a chyby systém obvykle řeší sám – ukončením práce s problematickým programem. - bezpečnost je kritickým bodem všech doposud vytvořených operačních systémů (zejména od Microsoftu). Hlavním problémem, ke kterému může v případě přelomení ochrany dojít, je ovládnutí počítače „zvenka“ (např. přes Internet) jiným uživatelem. V kombinaci s občasným chybným kódem (jako např. přetečení zásobníků či datových oblastí) a hlavně s obrovskou popularitou a enormním množstvím uživatelů, se systémy Windows stávají úspěšnými terči různých počítačových červů a virů. Microsoft prostřednictvím služby Windows Update umožňuje zabezpečit automatické stahování oprav (záplat), které obvykle řeší chyby a bezpečnostní nedostatky. Závěrem je možno říci, že nejnovější verze Windows představují víceuživatelský, víceúlohový a síťový operační systém (u nižších verzí tyto vlastnosti často pokulhávaly). 11.4.1 Souborový systém Úlohou operačního systému je v první řadě zabezpečit uživateli dostatečně flexibilní prostředí pro práci s údaji. Doposud jsme o nich hovořili jen ve velmi všeobecné a abstraktní rovině. Je samozřejmě nesmysl, aby uživatel, který chce na disk uložit napsaný text, určoval část paměti, ze které se má text vybrat a sektor či stopu na disku, kam se má pro další zpracování uložit. Tuto úlohu zvládly už první operační systémy. Údaje v počítači (přesněji na pevném disku i když disketa, flash-disk, CD anebo DVD jsou analogií) musí být organizované na takové úrovni, aby uživatele co nejméně zatěžovaly a byly k dispozici vždy v té podobě, v jaké byly uloženy. Operační systém údaje ukládá do souborů. Soubor je množina údajů představující kompaktní celek. Údaje v souboru jsou obvykle smysluplné buď pro uživatele, anebo pro počítač. Můžeme si pod nimi představit např. list, fotografii anebo tuto knihu (také to byl jen soubor, který se skládal z textu a obrázků). Souborem je i textový editor, přehrávač videa či zvuku a s přimhouřením oka můžeme i operační systém považovat za soubor, který pro svoji činnost využívá podporu dalších souborů (knihoven, logovacích a odkládacích souborů atd.). Každý soubor má svoje jméno a na základě něho ho dokáže operační systém jednoznačně identifikovat a prostřednictvím tabulky souborového systému (FAT či NTFS) ve spleti stop a sektorů najít. 234 Počítačové systémy V každém počítači se na pevném disku nachází značné množství souborů. Aby byl na disku přehled a pořádek, sdružují se soubory se stejnými charakteristikami (např. texty, obrázky) do celků – adresářů. Adresář (složka, folder) představuje prostor, ve kterém je několik souborů uložených pohromadě na základě společného znaku anebo jen podle libovůle uživatele. Adresář může obsahovat i další adresáře anebo může být prázdný. Rozdíl mezi adresáři a soubory je ten, že soubor obsahuje konkrétní údaje, adresář má za úkol zpřehlednit jejich organizaci. Komplex adresářů a souborů na paměťovém zařízení má logickou stromovou strukturu, ze které je na první pohled zřejmé co kam patří. Obr. Hierarchická stromová struktura na pevném disku Operace se soubory i adresáři jsou zabezpečované operačním systémem a zabezpečují vytvoření, odstranění, změnu názvu a změnu obsahu. Soubor, se kterým se právě pracuje, označujeme jako otevřený a v tomto stavu obvykle není přístupný na zpracování dalším uživatelům či programům. Název souboru může mít v operačních systémech Windows od verze 95 délku až 255 znaků. Každý slušnější operační systém nabízí i vyhledávání souborů na základě jména, typu, velikosti a ostatních vlastností (viz níže). V případě standardně podporovaných souborů dokáže operační systém prohledávat i jejich obsah a najít soubory, které v sobě obsahují zadaný text. Na to, abychom skutečně mohli pracovat se soubory a využívat adresáře, potřebujeme při prvním zapojení pevného disku do počítače vykonat jeho rozdělení na logické disky a ty potom naformátovat (viz Formátování). 235 Počítačové systémy Přednastavený souborový systém pro Windows XP je NTFS, ale je možno použít i FAT (např. FAT32). Každý existující soubor anebo adresář reprezentuje v grafickém operačním systému malý obrázek nazývaný ikona. Má svoje vlastnosti, které se příležitostně prezentují v různých zobrazeních. Pokud chceme zobrazit komplexní informace o příslušném objektu, můžeme je získat prostřednictvím kontextového menu. V případě použití souborového systému NTFS máme při údajových souborech (programy a adresáře mají vlastnosti téměř identické) kromě názvu souboru k dispozici informace o jeho umístění, velikosti, časových údajích (datum a čas vytvoření, poslední úpravy a případného otevření), údaje o vlastníkovi a přístupových právech. Navíc můžeme každému souboru určit atributy, ze kterých potom vyplývá jeho chování vůči uživateli: - jen na čtení (read-only) – soubor, který má nastavenou tuto vlastnost je možné si prohlížet, ale pokud se v něm vykonají úpravy, není možno změny uložit do původního souboru. Atribut mají nastavený obvykle soubory, pro které není vhodné, aby je běžný uživatel měnil. Soubory i adresáře, které jsou umístěné na médiích neumožňují ukládání standardním způsobem (CD, DVD), - skrytý (hidden) určuje, zda je adresář anebo soubor viditelný. Pokud má nastavený tento atribut, běžný uživatel s vypnutým zobrazováním skrytých souborů ho v systému neuvidí. Tím se chrání před modifikací a náhodným vymazáním zejména systémové údaje. V některých operačních systémech může být tato charakteristika doplněna i dalším atributem – systémový, - připravený k archivaci (archive) je vedlejší atribut využívaný některými aplikacemi při zálohování - identifikuje soubory, které se mají zálohovat anebo které byly zálohované. Jedna z definic souboru hovoří, že jeho název se skládá ze jména a koncovky, které jsou odděleny tečkou (např. muj text.txt, muj_list.doc, tabulka.xls apod.) – název hovoří o obsahu, koncovka o typu souboru (text, obrázek atd.). Systémy Windows takové zobrazování názvu potlačují a koncovku nahrazují ikonou, která se určuje podle programu, se kterým je soubor asociovaný (propojený). Na základě koncovky je souboru přiřazený program, který se při pokusu o jeho otevření spustí a umožní ho prohlížet anebo upravovat. Asociovaný program se obvykle také zobrazuje ve vlastnostech souboru. Připojení koncovky a programu předpokládá registraci příslušné koncovky v systému a vykonávají ji obvykle instalační programy, pomocí kterých “vkládáme” programy do systému. Koncovek, resp. částí názvu oddělených tečkami může být i víc. Pro asociování s programem slouží poslední, kterou často využívají počítačové viry a červy na svoje zamaskování. Např. soubor „obrázek.jpg.exe“ má při standardním nastavení systému Windows koncovku „exe“ skrytou a uživatel vidí z názvu jen „obrázek.jpg“. Koncovka „exe“ reprezentuje aplikaci, která se po otevření spustí a může vykonat škodlivý kód. 11.4.2 Objekty a nastavení Pracovní plocha představuje výchozí prostředí pro práci se systémem. Obsahuje několik základních ikon a podle typu uživatele mnoho anebo žádné 236 Počítačové systémy ikony souborů a adresářů. Pruh v dolní části, na kterém je umístěné tlačítko Start, se nazývá panel úloh (někdy hlavní panel). 1 – tlačítko Start 2 – panel úloh 3 – minimalizovaná okna aplikace na panelu úloh 4 – aplikace na panelu úloh se zobrazeným oknem 5 – samotná pracovní plocha s ikonami Obr. Pracovní plocha ne příliš pořádkumilovného uživatele Pracovní plocha soustřeďuje (měla by soustřeďovat) objekty, s kterými pracujeme nejčastěji. Její obsah si vytváří a přizpůsobuje uživatel na základě svých potřeb a smyslu pro pořádek. Vlastnosti objektů a jejich změnu můžeme v rámci celého systému realizovat prostřednictvím kontextového menu, které standardně jako poslední položku obsahuje Vlastnosti. Ikony na pracovní ploše obvykle reprezentují: - údajové soubory, ve kterých jsou uloženy údaje. Nejčastěji jde o různé texty, obrázky anebo jednoduchá data, s kterými uživatel nejčastěji pracuje. - adresáře, které mohou obsahovat soubory s údaji anebo další adresáře. Pokud chce mít uživatel na ploše umístěno více údajů, pomohou mu je uklidit a vytvořit v nich určitou hierarchickou strukturu. - koš slouží k uchovávání odstraněných souborů. Pokud není nastavený jinak, soubor (anebo adresář) se při vymazání přemístí do Koše, ve kterém čeká na jeho vysypání. Takto vymazané soubory, samozřejmě, místo na disku při svém odstranění neuvolní, změní se jen jejich umístění. Pokud je budeme chtít později opět používat, můžeme je z Koše jednoduše vytáhnout – obnovit. V případě, že obsah Koše přesahuje nastavenou diskovou kapacitu (standardně 10%), natrvalo se z něho odstraní nejstarší soubory. Funkce pro vysypání Koše natrvalo odstraní celý jeho obsah a znepřístupní vymazané soubory různým slídilům. 237 Počítačové systémy - Dokumenty představují speciální adresář, který nabízí svůj prostor automaticky při ukládání nových anebo otvíraní existujících souborů z nejrůznějších aplikací. Měl by soustřeďovat všechny dokumenty, se kterými uživatel pracuje. Pokud je v systému definováno více uživatelů, každý z nich má samostatný adresář a jeho obsah je standardně navzájem neviditelný. - Tento počítač představuje odrazový můstek, který zprostředkovává přístup k údajům, které nemáme uložené na pracovní ploše ani v adresáři s dokumenty. Standardně jde o záznam pevných disků a vyměnitelných zařízení (disketa, CD, flash-disk), které nám po kliknutí nabízí svůj obsah a dovolí se v něm pohybovat a přehrabávat. V případě zobrazení informací o počítači (přes Vlastnosti v kontextovém menu) získáváme údaje o verzi operačního systému, uživateli a hardwaru počítače. - programy se na pracovní ploše vyskytují poměrně zřídka, většinou jsou umístěné v adresáři Program Files v kořenovém adresáři pevného disku. Je však velmi nepohodlné a zdlouhavé absolvovat vždy kompletní cestu k programu a hledat v spletité struktuře menu či adresářů, proto Windows kromě pravých ikon, za kterými se skrývá konkrétní program anebo soubor (když ikonu vymažeme, vymaže se i soubor, který reprezentuje - běžné vymazání) umožňuje vytvářet i odkazy. Odkaz (zástupce) představuje jen jakéhosi ukazatele, který si říká: “Když jsem uživatel klikni, je třeba spustit ten a ten program, případně otevřít ten a ten soubor, či dokonce ten a ten disk.” Jakmile vymažeme odkaz, údajům se nic nestane – s jeho ikonou se ztratí jen odkaz (link) na objekt. Odkaz od pravé ikony můžeme odlišit dle malé šipky vlevo dole a můžeme ho vytvořit pro libovolný objekt (program, soubor s údaji, adresář, disk atd.). Z lehce pochopitelných bezpečnostních důvodů se na pracovní ploše častěji používají odkazy než samotné pravé ikony. Obr. Pravá ikona a odkaz - Místa v síti představují bránu k místům, údajům a hardwarovým zařízením (např. tiskárny), které jsou umístěné v jiných počítačích připojených k aktuálnímu prostřednictvím počítačové sítě (viz dále). - Internet Explorer je program, který umožňuje využívat služby zejména celosvětové sítě Internet (setkáme se s ním později). - panel úloh představuje na pracovní ploše jedinou jistou a na první pohled neměnnou složku. Jeho hlavním prvkem je tlačítko Start, které zobrazuje hlavní menu systému Windows a dává k dispozici nastavení, programy, funkce a ostatní objekty operačního systému. Panel úloh obsahuje i tlačítka spuštěných programů, prostřednictvím kterých je se možno mezi programy přepínat (přenášet je do popředí). V pravé části jsou zobrazené hodiny, indikátor klávesnice, hlasitosti a případných dalších nastavení. Podle nastavení může zobrazovat často používané aplikace v panelu s nástroji (např. panel pro rychlé spuštění) umístěnými vedle tlačítka Start. 238 Počítačové systémy Samostatným objektem celého komplexu je i samotná pracovní plocha. Má svoje vlastnosti a nastavení, které může uživatel v případě potřeby i požadavků měnit – dokáže uspořádat anebo přidat nové ikony, zobrazit anebo skrýt některé objekty (vyjmenované výše), změnit pozadí, nastavit šetřič obrazovky anebo barvy systému. Všechny tyto parametry je možno si prohlížet anebo měnit prostřednictvím položky Vlastnosti v kontextovém menu pracovní plochy: Motivy dovolují nastavit motiv pracovní plochy (a celého systému). Jde vlastně o nastavení vzhledu oken, ikon, fontů, barev, kurzoru myši atd. Pracovní plocha dovoluje nastavit vlastnosti pozadí pracovní plochy a určit ikony, které se na ní budou zobrazovat. Šetřič obrazovky nastavuje vlastnosti pro šetření obrazovky. Šetřič obrazovky je program, který se v případě nečinnosti stará o změnu obsahu obrazovky, anebo (podle autorů Windows) skrývá informace na monitoru v době nečinnosti před nepovolanými očima. Funkce umožňuje nastavit i dobu nečinnosti, po kterou mají monitor nebo pevný disk přejít do šetřícího režimu. Když s monitorem dlouho nepracujete, zůstávají na stejném místě vysvícené stejné tečky a obrazovka se tím unavuje - vybíjí. Nedávno se stalo, že kolega odešel z práce a zapomněl vypnout LCD monitor, pro který neměl nastaven žádný šetřič. Ráno se marně pokoušel o seriozní práci – neustále viděl na monitoru „vypálený“ obraz, který bez změny celou noc neúměrně zatěžoval jednotlivé body. Naštěstí sehnal software, který LCD krystaly dostatečně „rozcvičil“ a vrátil monitoru původní parametry. Nastavení pracovní plochy umožňuje určit rozlišení (rozměry obrazovky), počet používaných barev a velikost písma celého systému. Pracovní plocha stejně jako i některé další objekty operačního systému umožňuje změnit nastavení specifickým způsobem. Sdružujícím místem, na kterém jsou shromážděna všechna nastavení, které je možno v systému realizovat je v operačních systémech typu Windows Ovládací panel. Možnosti nastavení můžeme rozdělit do většího počtu kategorií, což autoři ve verzi XP také skutečně udělali: - Vzhled a motivy umožňují měnit parametry obrazovky a pracovní plochy, nastavit vlastnosti adresářů a manipulovat (přidat/odstranit) v systému s fonty (podrobněji viz Textový procesor). - Možnosti data, času a jazykového nastavení představují položku, ve které nejvýznamnější je možnost definovat pro systém Místní a jazykové nastavení. Ty určují prostředí, způsob psaní čísel (desetinná tečka, čárka), menu, času, data a mají vliv na mnohé programy pracující pod Windows. Důležitou je i možnost přidávání jazyků, které nám poskytnou možnost přidat do systému další jazyk a k němu přiřadit příslušnou klávesnici. Díky tomu můžeme bez speciálních doplňků používat znaky typické pro ten který jazyk (azbuka, zavináč „@“ na anglické klávesnici a znaky s diakritikou na české klávesnici). Běžný uživatel disponuje minimálně českou a anglickou klávesnicí, mezi kterými se dokáže přepínat prostřednictvím indikátoru zobrazeného v pravé části panelu úloh. 239 Počítačové systémy - Tiskárny a jiný hardware dovoluje přidávat do systému tiskárny, měnit jejich nastavení a v případě potřeby je ze systému i odstranit. Ve snaze dosáhnout maximálního výkonu a využít všechny dostupné vlastnosti tiskárny existuje pro každý typ tiskárny úzce specializovaný ovladač, který zprostředkovává komunikaci mezi počítačem a tiskárnou. Na to, abychom dokázali s tiskárnou komunikovat bez chyb a zbytečných problémů, musíme ji při prvním použití na daném počítači nainstalovat („přidat do systému“). Mezi další zařízení, kterým můžeme na tomto místě nastavovat parametry patří: klávesnice, myš, hrací zařízení, modem a telefon, skenery a fotoaparáty. Nastavení zvukových zařízení má na starosti položka Zvuky, řeč a zvukové zařízení, která je v ovládacím panelu uvedená samostatně. Systém při každém spuštění zkontroluje, zda mu náhodou nepřibylo nové zařízení. Pokud nějaké najde, zobrazí informaci v pravém dolním rohu a pokusí se ho instalovat. Jakmile instalace dopadne úspěšně, zařízení můžete začít používat, pokud ne, buď jste vyzvaný na zasunutí média s ovladači, anebo se zařízení deaktivuje. Seznam všech instalovaných zařízení máme k dispozici v části Výkon a údržba. Tato skupina je však určena pokročilejším uživatelům, protože některé změny mohou mít vážný vliv na činnost počítače jako celku. Umožňuje manipulovat s instalovanými hardwarovými zařízeními (součástmi počítače), měnit jim ovladače a konfigurovat systémové služby operačního systému. Součástí této sekce je možnost naplánovat spuštění prakticky libovolné aplikace anebo činnosti prostřednictvím části Plánované úlohy. Můžeme ji využít např. na pravidelné spouštění antivirového programu, programu na zálohování údajů, anebo dokonce i na vypnutí počítače v plánovaném čase. Síťové a internetové připojení nastavují chování a kontrolu počítače při práci se sítí a Internetem (podrobněji viz dále). Uživatelská konta představují položku typickou pro síťové a víceuživatelské systémy. Jsou tu k dispozici prostředky na manipulaci s uživateli a jejich účty (konty). Podle zařazení mezi privilegované nebo hostující, potom může uživatel pracovat buď s celým počítačem, anebo jen se zpřístupněnými částmi (adresáři, hardwarovými zařízeními atd.). Do systému se uživatel dostává prostřednictvím přihlašovacího jména a hesla. Nejvýše postavenému uživateli (se všemi právy) říkáme správce, administrátor, superuživatel nebo supervisor. Ten může vytvářet konta novým uživatelům nebo rušit či měnit parametry existujícím. Skupina Zjednodušení ovládání obsahuje nastavení umožňující využívat systém i hendikepovaným uživatelům – dokáže změnit kontrast prostředí, zvětšit výřez obrazovky, upravit práci s klávesnicí anebo kurzorem myši. Systém Windows je jen operační systém. Jako takový neobsahuje žádné profesionální programy, jen několik velmi jednoduchých aplikací. Jestliže chceme počítač (a tím i systém) naplno využívat, potřebujeme do něho vložit další aplikace. Zkopírování programu, jeho přenesení do jiného počítače a bezproblémové spuštění je sice v některých operačních systémech přirozenou záležitostí, Windows však k nim nepatří. Do tohoto operačního systému je nutné většinu programů instalovat. Instalaci realizuje potřebné nastavení programu podle 240 Počítačové systémy nastavení operačního systému (případně nastaví operační systém podle požadavků instalovaného programu), zapíše je do speciálních souborů označovaných jako registry, upraví menu tlačítka Start a případně si vyžádá restart počítače. Celý tento proces se realizuje automaticky po vložení CD, případně spuštěním programu často nazývaného setup anebo install. Položka ovládacího panelu Přidání anebo odstranění programů má na starosti zprávu nainstalovaných programů a je součástí Windows. Dáva k dispozici jejich seznam a frekvenci používání, případně možnost jejich odinstalování (některé programy pro tento účel po své instalaci přidají samostanou položku do menu tlačítko Start). Funkce přidání programu prostřednictvím této položky je už spíše přežitkem než praktickým řešením. 11.4.3 Nejpoužívanější systémové nástroje Defragmentace Údaje jsou na disku uloženy v souborech, přičemž při jejich ukládání dochází k jevu označovanému jako fragmentace. Vzniká zejména v důsledku mazání souborů, které po sobě zanechávají volné klastry. Ty se systém snaží později využívat a zaplnit údaji nově vznikajících souborů. Protože nové soubory obvykle nemají stejnou velikost jako odstraněné a nezaplní uvolněné místo přesně, systém je nucen rozdělit je na více částí a uložit na různých místech paměťového média. Obr. Fragmentovaný soubor Fragmentace nepříznivě ovlivňuje jak rychlost zápisu a čtení údajů, tak i celkovou kapacitu, která při vyšším stupni fragmentace při stejném množství údajů klesá. Fragmentaci není možné zabránit, je však vhodné minimalizovat ji používáním aplikací vykonávajících defragmentaci, která spočívá v přesouvání jednotlivých částí souborů tak, aby byly uloženy v za sebou jdoucích klastrech. V systému Windows je k dispozici v podobě nástroje, který nejprve analyzuje obsah disku a až potom na základě výsledku nabídne možnost „uklizení“. ScanDisk ScanDisk je nástroj určený na kontrolu obsahu a povrchu disku. Jestliže vypneme počítač nekorektním způsobem (například vypínačem), může se stát, že některé soubory zůstanou neukončené (začalo se do nich ukládat, ale 241 Počítačové systémy neobsahují značku konce souboru). Ty potom sice na disku existují, ale nemůžeme se k nim dostat, protože systém je nezobrazuje, případně jim přisoudí nesprávnou velikost. Z takových údajů dokáže ScanDisk vytvořit soubory obsahující část, která se stihla uložit, anebo neúplné údaje vymazat. V případě požadavku je schopný zkontrolovat i spolehlivost magnetické vrstvy. Přechází postupně po celém povrchu pevného disku anebo jiného paměťového zařízení, a když najde část, ze které není možno číst, pokusí se ji obnovit. Když to nevyjde, označí ji jako špatnou (bad), aby se předešlo ukládání údajů na poškozená místa. ScanDisk je možno spustit manuálně, nebo se spustí automaticky při startu počítače, pokud usoudí, že je to potřebné. Zálohování Operační systémy standardně disponují nástroji na zálohování. Jejich opodstatněnost dokáže posoudit až ten uživatel, který např. při hardwarové chybě přijde o jedinečné a nikde jinde uložené údaje. Windows disponuje nástrojem umožňujícím zálohování celých disků nebo jen vybraných adresářů či souborů. Ukládat můžeme vždy kompletní obsah anebo jen soubory, které se od posledního zálohování změnily. Možno je ukládat na disketu, disk, páskovou jednotku anebo jiný připojený počítač. Stejně tak je vhodné zabezpečit spuštění funkce zálohování pravidelně. Windows Update Windows Update je služba tvůrců (a prodejců) systému uživatelům. Umožňuje aktualizovat systém tak, aby se odstranily chyby, které v něm byly zjištěny během provozu. Většinu z nich běžný uživatel nemá šanci odhalit ani zpozorovat, mohou se však stát dírou, přes kterou do systému pronikne potenciální útočník anebo vir (podrobněji v kapitole Počítačové sítě). Pokud je počítač permanentně připojený k Internetu, doporučujeme z bezpečnostních důvodů tuto službu nastavit a aktivovat. 11.5 Aplikační software Z předcházejících kapitol víme, že počítače ovládáme a využíváme díky softwaru. Pojem aplikační software představuje programové vybavení počítače, které je určené pro přímou a interaktivní komunikaci s uživatelem. Jeho účelem je zpracování a řešení konkrétní skupiny problémů uživatele. Standardně má na komunikaci určené grafické (někdy textové) rozhraní. Aplikační software je vždy zaměřený na komunikaci s uživatelem, zatímco všeobecný pojem software v sobě obsahuje i jiné typy programového vybavení, např. software pro vstřikování paliva v automobilech, software telefonní ústředny anebo měření rychlosti či sledování dodržování dopravních předpisů na křižovatkách. V současnosti existuje obrovské množství softwaru spadajícího do této kategorie a není možné se to nenaučit, ale ani se setkat s každým. Naštěstí, nikdo a nic od nás nevyžaduje ovládat všechny aplikace. Jejich funkce, vzhled i ovládání jsou obvykle velmi podobné a důležité je zejména pochopení principu, výhod a možností využití. Naučit se ovládat např. nový textový 242 Počítačové systémy editor, pokud už nějaký známe, je otázkou hodiny, naučit se pracovat v grafickém editoru, když jsme už pomocí počítače kreslili, také není časový problém – vždy jde jen o hledání drobných rozdílů, nových funkcí a přizpůsobení se novému prostředí. 11.5.1 Rozdělení aplikačního softwaru Dělit aplikační software je možno na základě více kritérií, pro nás jako hlavní kritérium postačí dělení na základě oblastí použití: - kancelářský software představuje skupinu aplikací používaných na administrativní a kancelářské účely. Nejčastějšími představiteli jsou: - textové editory sloužící na práci s textem, psaní a tisk dokumentů, - tabulkové kalkulátory určené na práci v tabulkách orientovanou na výpočty anebo evidování a zpracování menšího množství údajů, - databázové systémy určené na práci s rozsáhlými údaji, na vytváření tiskových výstupů a definování přístupových práv k údajům, - prezentační programy můžeme chápat také jako součást kancelářských balíků, ale v širším pojímání představují samostatnou kategorií využívající grafické prvky, silu webového prostředí a případně i interaktivitu a multimedia, - grafické editory slouží na práci s obrázky ve vektorovém anebo rastrovém formátu, - aplikace na tvorbu webových stránek poskytují nástroje na vytváření webových prezentací, ve kterých kombinují funkce prezentačních, grafických a textových editorů s prvky interaktivity. Tyto kategorie mají v praxi velmi univerzální nasazení, není možno blíže specifikovat oblasti, ve kterých se využívají (a jejich vyměňováním bychom ztratili mnoho času). Kromě nich však existují i specializované typy aplikací, které se nasazují při řešení konkrétních úloh: - informační systémy – představují rozsáhlou kategorii systémů určených na zpracování údajů, které se od databázových systémů liší tím, že neposkytují množství univerzálních funkcí, ale omezují se na funkce typické pro oblast svého nasazení, - počítačová podpora výroby spočívá ve využívání aplikací na modelování objektů či produktů a vytváření konstrukční dokumentace – návrhy se nekreslí na papír, ale do počítače, kde na základě dvojrozměrných schémat dokážou vytvořit prostorový model, - vývojové nástroje jsou určeny na vytváření programů a aplikací pro nejrůznější prostředí a nejrůznější kategorie problémů, - výukové a vzdělávací programy jsou zaměřené na zvyšování efektivnosti vyučovacího procesu nejrůznějšími způsoby, - počítačové hry není třeba asi nikomu představovat. Navzdory tomu, že jsou na okraji našeho zájmu, představují jednu z nejprogresivnějších oblastí aplikačního softwaru, - multimediální programy určené na zábavu v sobě zahrnují kromě přehrávačů videa a zvuku i profesionální aplikace sloužící na zpracování multimediálního obsahu, - podpůrné aplikace představují úzce specializované anebo jednoúčelové programy pro pravidelné anebo mimořádné používání (správcové souborů, 243 Počítačové systémy poštovní programy, internetové prohlížeče, antivirové programy, různé utility apod.). 11.5.2 Kancelářské balíky Kancelářské programy představují skupinu aplikací určených pro každodenní používání v kancelářích, škole, ale i v moderní domácnosti. Základní výbavu takového balíku tvoří textový a tabulkový procesor, případně databázový systém či grafický editor. V současnosti je na skupinu uživatelů pracujících s kancelářským softwarem zaměřených více výrobců, přičemž některé balíky jsou šířeny komerčně, jiné zdarma nebo za symbolický poplatek. V některých případech jsou pro každý typ úloh k dispozici samostatné programy, jinde jsou všechny funkce integrovány do jednoho prostředí. Mezi nejznámější kancelářské balíky patří: - Microsoft Office, který je v našich podmínkách zatím nejrozšířenější. Je to komerční produkt firmy Microsoft obsahující standardně textový editor Word, tabulkový procesor Excel, prezentační PowerPoint a emailového klienta Outlook. V rozšířených verzích je k dispozici databázový systém Access, nástroj na tvorbu webových stránek FrontPage případně některé další méně používané součásti. Odlehčenou verzí MS Office je Microsoft Works, který je určen pro nenáročné uživatele nevyžadují přepracované funkce komerčního řešení za symbolickou cenu, - Open Office představuje volně šiřitelný software skládající se z textového procesoru Writer, tabulkového kalkulátoru Calc, grafického editoru Draw, prezentačního nástroje Impress, databázového uživatelského rozhraní a editoru na tvorbu webových stránek. Balík je multiplatformní, existují verze pracující v systému Windows, Unix i Mac OS a disponuje i slovenskou lokalizací, - Open Office byl vytvořen na jádru kancelářského balíku Star Office, který vyvinula firma Sun Microsystems jako konkurenční nástroj proti Microsoft Office, který je stále dostupný v komerčních verzích a oproti Open Office obsahuje několik rozšíření chráněných autorskými právy, - 602Office je produktem české firmy Software602 a i když byl původně vyvíjený jako samostatný produkt postavený na vlastním jádře, v aktuální verzi využívá Open Office, - Lotus Smart Suite je balík patřící v současnosti IBM, se kterým se v našich končinách pravděpodobně nesetkáte, ale v anglicky mluvících zemích se používá, - KOffice a GnomeOffice jsou balíky linuxových prostředí opět s komplexní nabídkou aplikací. 11.5.2.1 Textový editor Textový editor slouží na zpracování textu. Textových editorů existuje obrovské množství. Patří mezi ně např. Poznámkový blok z Windows, editor používaný v prostředí programovacího jazyka na psaní zdrojového kódu, editor sloužící na nahlížení do obsahu textu v souborovém manažéru apod. Textové editory umožňují manipulovat s textem na úrovni opravování, mazání, přepisování, kopírování, hledání a nahrazování textu, ukládání a otvírání souborů. 244 Počítačové systémy Nahlédněme trochu do historie: první textové editory sloužily na komunikaci mezi počítačem a uživatelem. Uživatel – v tom čase zpravidla programátor – napsal příkazy, které počítač vykonal a případně mu textovou zprávou i odpověděl. Obvykle byly příkazy psané anglicky a na nějaké zvláštní úpravě vůbec nezáleželo, až do doby než programátor začal psát dopis své nastávající. Tehdy se pro něho úprava stala jedním z nejdůležitějších cílů – zarovnával text, doplňoval hvězdičky, při důležitých slovech vynechával mezery mezi písmeny, používal velká a malá písmena atd. Nevýhodou prvních textových editorů byla neschopnost psát a zobrazovat znaky s diakritikou (délkami a háčky). Postupně se však lokalizovaly (přizpůsobily se zemi, v které se používaly) a kromě diakritiky začaly nabízet mnohé další doplňky. Pokud textový editor dokáže manipulovat kromě textu i s tabulkami, obrázky anebo disponuje pokročilými funkcemi jako např. automatické vytváření obsahu, či kontrola pravopisu, nehovoříme už o editoru, ale o textovém procesoru. Pro textové procesory vytvářené v současnosti je vzorem MS Word, proto se, i když naše další kroky budou orientované všeobecně, nevyhneme některým specializovaným funkcím, či názvosloví, které používá. 11.5.2.1.1 Funkce textového procesoru Navzdory rozšířenosti a častému používání textového procesoru se často stává, že uživatelé neznají všechny možnosti, které poskytuje a využívají ho jen jako lepší psací stroj na: - opravu chyb a překlepů, doplnění a vymazání slov přímo v počítači, - uložení textu pro pozdější úpravy, - kombinování textu z většího počtu už existujících souborů, - možnost tisknout libovolný počet kopií ve stejné kvalitě s možností vybrat jen některé stránky. 11.5.2.1.2 Základní práce s textem Na psaní textu žádné speciální vědomosti není třeba. Stačí používat klávesnici a všímat si znaků napsaných na klávesách. Nezkušeným začátečníkům jde psaní zpočátku pomalu, ale se zkušenostmi se jejich tempo zvyšuje až napíšou 3-4 strany za hodinu. Častým problémem je odnaučit je stlačování klávesy Enter při přechodu do nového řádku, který většina textových editorů realizuje automaticky při dosažení pravého okraje stránky. Napsaný text můžeme zarovnat do středu řádku, podle levého anebo pravého případně obou okrajů. Oboustranné zarovnání se dosahuje dělením a/anebo nepatrným zvětšením mezer mezi slovy. Důležitými funkcemi při psaní jednoduchého textu je možnost nastavení řádkování, vzdálenost mezi odstavci, odsazení prvního řádku odstavce a automatické číslování v případě číslovaných seznamů. 11.5.2.1.3 Operace s blokem Časté jsou změny velikosti, řezu, typu (fontu), barvy anebo dalších vlastností v už napsaném textu. Pokud změníme nastavení a píšeme od místa, na kterém byl 245 Počítačové systémy při změně nastavený kurzor, změněné vlastnosti se projeví okamžitě. Jakmile však po změně přesuneme kurzor na jiné místo v textu, nastaví se parametry písma podle písma na aktuální pozici. V případě, že chceme měnit vlastnosti už napsaného textu, musíme nejprve část, kterou chceme změnit, označit. Výběr, kterému říkáme blok, se od ostatního textu obvykle liší inverzním zabarvením. Všechny další operace mají potom vliv jen na označený text. Blok můžeme zkopírovat (vytvořit ještě jednu stejnou kopii), přesunout (změnit jeho polohu vzhledem k ostatnímu textu), anebo vymazat. Tyto operace můžeme vykonávat buď pomocí funkcí v menu, kombinacemi kláves nebo pomocí myši. Kopírovat a přesouvat můžeme nejen v textu jednoho souboru, ale i mezi dvěma různými– textové procesory umožňují otevřít současně více souborů, přepínat a přenášet text mezi nimi. 11.5.2.1.4 Jazykové nástroje Textové procesory obsahují v sobě slovníky jazyků, ve kterých jsou evidovaná všechna běžná slova (v našich podmínkách obvykle z češtiny, němčiny a angličtiny). Používají je na kontrolu pravopisu tak, že obsah slovníku porovnávají s právě psaným textem. Pokud slovo ve slovníku nenajdou, podtrhnou ho, aby pisatele upozornili, že něco není v pořádku. Pokud je podtržené slovo správné, můžeme ho do slovníku přidat (od té chvíle se nebude podtrhovat), v případě chybného slova ho opravíme ručně nebo na základě nabídky slovníku. To, že slova nejsou podtržena, ještě neznamená, že jsou napsaná správně. Např. „vír uletěl“ obsahuje chybu a slovník ho nepodtrhne, protože slovo „vír“ v češtině existuje. Znamená sice vodní vír a ne sovu, ale textový procesor kontroluje jen slova, ne kontext. V případě anglického textu dokážou textové editory do určité úrovně kontrolovat i gramatiku (slovosled, předložky apod.). Praktickým nástrojem je také nabídka synonym, která obvykle pomáhá rozrušeným pisatelům, kteří si nemohou vzpomenout na vhodné slovo se stejným významem. 11.5.2.1.5 Vkládání objektů Každý textový procesor umožňuje kombinovat text s tabulkami, obrázky anebo jinými speciálními objekty. Tabulky slouží nejčastěji na evidenci jednoduchých seznamů, z čeho vyplývá požadavek na možnost uspořádání údajů, podbarvení a slučování buněk. Užitečné jsou i základní matematické funkce povolující výpočty ze zadaných číselných hodnot. Obrázky obvykle vylepšují vzhled dokumentu, ale mohou mít i důležitý informační charakter. MS Word disponuje i speciálními objekty (automatické tvary) pomocí kterých dovoluje kreslit vlastní obrázky. Vložený obrázek je možno měnit velikostně, ořezávat, přenášet za text, otáčet, anebo pokud je vytvořen v podporovaném formátu upravovat. 246 Počítačové systémy Word navíc disponuje objektem WordArt, který dovoluje aplikovat na text různé efekty (prostorový text, uspořádání do oblouku, plynulé zmenšování anebo zvětšování apod.) a objektem Equation sloužícím na psaní matematických, fyzikálních, chemických a technických vzorců. Všechny „cizí“ objekty je možné kombinovat s existujícím textem, který je dokáže obtékat více způsoby. 11.5.2.1.6 Šablony a styly Běžná práce s textovým procesorem spočívá v častém vytváření dokumentů, které se navzájem velmi podobají (potvrzení o návštěvě školy, povolení prodeje na veřejném prostranství apod.). Aby uživatel nemusel vždy vytvářet celý dokument znovu od začátku a nehrozilo mu, že při otevření existujícího a jeho úpravách přepíše starý text, disponují textové procesory šablonami. Šablonu si můžeme představit jako předpřipravený dokument, do kterého se po otevření doplní potřebné údaje, vytiskne se, anebo uloží pro další použití. Používání šablon je žádoucí tehdy, když chceme ušetřit čas, nebo dosáhnout stejného vzhledu např. pro všechny dokumenty opouštějící jednu instituci. Styly jsou založené na podobném principu, není však předpřipravený celý dokument, ale jen vlastnosti pro text. Tyto vlastnosti potom můžeme jedním kliknutím aplikovat např. na celý odstavec. Používání stylů zabezpečí jednotný vzhled rozsáhlých dokumentů a umožní v nich vykonávat hromadné změny. Pokud máte napsaný např. stostránkový dokument s 50 nadpisy, určitě vás potěší, že nato, abyste všechny změnili podle nových požadavků, postačí změnit vlastnosti stylů na jediném místě. 11.5.2.1.7 Práce s rozsáhlými dokumenty V případě vícestránkových dokumentů je nevyhnutelnou funkcí číslování stran a užitečnou funkcí možnost nastavení hlavičky a paty strany pro celý dokument nebo jen jeho kapitoly. Díky používání stylů (styly pro nadpis) můžeme v dokumentech automaticky vytvářet obsah, seznam obrázků, případně registr. Dalším požadavkem je možnost měnit velikost a orientaci strany, tj. tisknout nejen na klasickou A4 na výšku, ale moci ji také otočit, změnit rozměry, okraje atd. 11.5.2.1.8 Hromadná korespondence Funkce hromadné korespondence dovoluje velmi rychle vytvořit sérii dokumentů, které se odlišují jen v maličkostech (např. adresa příjemců, oslovení). Běžně bychom dokumenty vytvářeli kopírováním a úpravou údajů, případně bychom vypisovali množství dokumentů založených na jedné šabloně. Hromadná korespondence zredukuje proces vytváření dokumentů na dva: - první dokument představuje univerzální „šablona” (označuje se jako formulářový, resp. hlavní dokument) a skládá se z obsahu společného pro celou sérii, 247 Počítačové systémy - druhý obsahuje seznam (databázi) s odlišnými údaji (např. adresy). Celá naše činnost spočívá v návrhu hlavního dokumentu, do kterého připravíme univerzální text a určíme místa, na které se mají vložit údaje z databáze. Obr. Formulářový list s místem pro údaje z databáze Po zkombinování je možno výsledek tisknout, anebo obě části sloučit do jednoho souboru, který bude obsahovat text hlavního dokumentu s konkrétními údaji (např. adresou) pro každou položku databáze. 11.5.2.1.9 Podpora tvorby webových stránek Na webových stránkách se často setkáváme s odkazy, které nás po kliknutí přenesou na jiné místo té jisté stránky. Velmi podobně vypadá filozofie různých elektronických knih či manuálů. Textový procesor poskytuje možnost zrychleného pohybu po dokumentu prostřednictvím záložek a hypertextových odkazů. Hypertextový odkaz nám dovolí odkazovat se nejen na záložky v rámci dokumentu, ale na libovolné místo v počítači, lokální síti nebo síti Internet. Pokud dokument obsahující hypertext uložíme ve formátu html, máme okamžitě k dispozici pravou a nefalšovanou www stránku bez nutnosti jejího vytváření ve specializovaném programu. 11.5.2.1.10 Makra Makro je postupnost příkazů, které můžeme vykonat jediným kliknutím či klávesovou zkratkou. Vytváření může probíhat dvěma způsoby: - textový procesor zaznamená operace, které uživatel vykonává a uloží si je v podobě příkazů textového procesoru. - postupnost příkazů naprogramujeme v jazyce aplikace. V případě Wordu je jazykem Visual Basic for Application. Vytvořenou postupnost potom můžeme přiřadit ikoně, položce v menu nebo kombinaci kláves. Použitý programovací jazyk umožňuje naprogramovat i nebezpečné operace, proto buďte při spouštění maker z neznámých zdrojů nanejvýš opatrní. 11.5.2.1.11 DTP Většina textových procesorů slouží i na zpracování textu ve smyslu grafickém, při kterém je důležitý nejen obsah, ale i vzhled dokumentu. Aplikacím, pomocí kterých je možné kombinovat text, obrázky, tabulky a další objekty říkáme aplikace DTP (DeskTop Publishing). V těchto programech vzniká konečná podoba všech novin, knih a časopisů, které dnes vycházejí. Nejsou to textové procesory v pravém slova smyslu – jejich hlavní náplní není text napsat, ale upravit ho a umístit na stranu časopisu či knihy. 248 Počítačové systémy 11.5.2.1.12 Wysiwyg Důležitým pojmem v oblasti textových procesorů a DTP je pojem Wysiwyg (What You See Is What You Get - co vidíš, to dostaneš), který popisuje vlastnost, kdy výstup na tiskárnu (příp. webové stránku) bude odpovídat výstupu, který uživatel vidí na obrazovce při tvorbě dokumentu – velikost textu, rozložení obrázků, tabulek apod. 11.5.2.2 Tabulkový procesor Tabulkové procesory (kalkulátory) jsou programy určené na zpracování číselných údajů, tabulek, grafů a matematických výpočtů. Tabulkový procesor využijeme tehdy, když nepotřebujeme údaje prezentovat jako součást textu, ale chceme je přehledně uspořádat do tabulek, realizovat nad nimi výpočty, případně je zobrazit prostřednictvím grafu. V případě, že evidované údaje zpracováváme prostřednictvím výpočtů, zabezpečí tabulkový procesor okamžitý přepočet při změně libovolné z hodnot, na kterých závisí výsledek. 11.5.2.2.1 Základní pojmy Tabulkový procesor nabízí pro práci s údaji archy, na kterých můžeme vytvářet tabulky (případně celý arch může být jednou velkou tabulkou). V tabulkovém procesoru MS Excel se arch skládá z 256 sloupců a 65 535 řádků. Pokud nám toto množství nestačí, můžeme v rámci jednoho souboru, který nazýváme sešit, používat až 256 archů. Nejmenší jednotkou archu je buňka, která představuje jedno políčko a je jednoznačně daná svojí adresou skládající se z názvu sloupce a řádku, ve kterém se nachází (např. A7, H42 apod.). Díky adrese se dokážeme na hodnotu buňky odvolávat ve výpočtech. Každá buňka může obsahovat číslo, text nebo datum, případně další typy hodnot. Údaj, který je v buňce zobrazený, však nemusí být údajem, který buňka obsahuje. Kromě konkrétních hodnot totiž můžeme do buňky vložit i výpočet, který má v MS Excelu příznačné pojmenování – vzorec. Na základě vzorce se v buňce zobrazí vypočítaná hodnota a na první pohled není zřejmé, že byla získaná výpočtem. Informaci o skutečném obsahu aktuální buňky nám poskytuje řádek vzorců anebo buňka, pokud se pokusíme o úpravu jejího obsahu. 11.5.2.2.2 Základní operace v tabulce Základní a zřejmě nejčastější používanou operací v tabulce je úprava vzhledu. Tabulkové kalkulátory umožňují manipulovat se vzhledem (font, barvy a orámování buněk tabulky) i s formátem údajů – můžeme nastavit počet desetinných míst, formát menu či vzhled data. Výpočty v tabulce je možno realizovat prostřednictvím standardních matematických operací (+, -, *, / apod.), anebo využívat vestavené funkce, 249 Počítačové systémy kterých je k dispozici několik stovek. Funkce můžeme prakticky libovolně kombinovat a/anebo vnořovat do sebe. V případě opakování hodnoty či funkce, např. v řádcích pod sebou nebo vedle sebe je možné používat automatické vyplnění, které velmi jednoduchým způsobem vyplní označenou oblast. Automatické vyplnění využívá pro svoji činnost relativní adresování, díky kterému se automaticky vyplněné výpočty chovají tak, jak se chovaly výpočty ve vzoru, tj. když výpočet a v něm použité buňky byly v jednom řádku, budou i automaticky vyplněné výpočty používat buňky nacházející se ve stejném řádku jako výpočet. Takovéto chování systému je většinou vyhovující, existují však situace, kdy potřebujeme, aby se při automatickém výpočtu odkaz na buňky neměnil – tehdy hovoříme o absolutním adresování a Excel ho zabezpečí pro adresy doplněné znakem $. K zajímavým funkcím patří ty, které určují výstup na základě splnění nebo nesplnění podmínky. Umožňují to jednak funkce určené pro výpočty (do výpočtu zahrne jen hodnoty splňující zadanou podmínku anebo zobrazí výsledek na základě splnění podmínky) a jednak podmíněné formátování, prostřednictvím kterého dokáže tabulkový procesor nastavit vzhled buňkám splňujícím zadané podmínky. 11.5.2.2.3 Grafy Silnou zbraní tabulkových procesorů jsou grafy, které umožňují údaje v tabulkách vizualizovat a zobrazit je prostřednictvím grafu. Na to, aby údaje poskytly co nejvypovídavější informace, je potřeba správně určit pro danou situaci typ grafu. Výběr závisí vždy na adresátovi a účelu, na který se graf vytváří. Často je vytvoření různých typů grafů pro ten daný problém vhodné, avšak každý z nich klade do popředí jiný aspekt sledování tabulkových hodnot. Nejčastěji se používají následující typy: - sloupcový graf je určený pro zobrazení údajů tehdy, když chceme zobrazit jejich skutečné (absolutní) hodnoty a porovnat je na základě výšky sloupců, - čárový graf vyjadřuje průběh a růst, anebo pokles hodnot sledovaných veličin. Je vhodný na zobrazení jejich vývoje v časových intervalech, - koláčový graf zachycuje poměr zobrazených částí k celku. Obvykle jde o rozdělení celku (100 %) mezi tabulkové hodnoty tak, aby se zachoval jejich vzájemný poměr. 11.5.2.2.4 Práce s rozsáhlými údaji Jak jsme už výše vzpomněli, tabulkový procesor můžeme využívat nejen na vytváření tabulek s výpočty, ale i jako nástroj na evidenci údajů. Základním požadavkem na tabulky je třídění a užitečnou funkcí je filtrování, které umožňuje vybrat údaje splňující podmínku a ostatní ponechat skryté. 250 Počítačové systémy Na možnosti filtrování navazují funkce schopné v zobrazených údajích realizovat základní výpočty (součet, průměr, maximální a minimální hodnota apod.), které se při změně výběru automaticky přepočítávají. V rozsáhlých tabulkách často nejsou důležité konkrétní položky seznamu, ale spíše pohledy na údaje jako celek. Ten poskytují souhrny, které dokážou z údajů vytvořit skupiny na základě zadaného kritéria a pro každou skupinu realizovat zadaný výpočet (početnost prvků ve skupině, průměr, součet hodnot apod.) samostatně. Ještě silnější a univerzálnější nástroj poskytuje kontingenční tabulka, která umožňuje organizovat, sledovat a sumarizovat evidované údaje, či odhalovat vztahy mezi jejich charakteristikami. 11.5.2.2.5 Aplikované funkce Samostatnou kategorií tabulkových procesorů tvoří ekonomické a statistické funkce, které rozšiřují možnosti jeho používání i do těchto oblastí. Zajímavým nástrojem je i hledání řešení, prostřednictvím kterého dokážeme při zadaných podmínkách najít vstupní hodnoty, ze kterých je možno získat daný výsledek. 11.5.2.3 Databázové systémy Databázový systém je systém určený na evidování a zpracování údajů. Práce s databázovým systémem není složitá. Běžné operace (zpracování údajů) je možno shrnout do několika oblastí: - vkládání údajů a prohlížení databáze, - úpravy (např. mazání, přepisování), - třídění – uspořádání podle abecedy, podle číselných hodnot apod., - výběr, prohledávání (filtrování údajů splňující zadanou podmínku), - matematické a statistické operace (součty, průměry apod.), - tvorba a používání výstupů (tiskárna, monitor, web), - tvorba a používání maker sloužících na automatické vykonání více operací. Při práci s databázemi nezáleží na tom, s jakým systémem pracujeme, jde jen o to, abychom měli přístup k údajům. Nejdůležitější jsou pro nás informace, ne způsob (program - databázový systém), jakým se k nim dostaneme. Existuje mnoho databázových systémů, které jsou schopny vykonávat všechny popsané operace. Mezi nejznámější a nejpoužívanější patří v pořadí podle věku: dBase, FoxPro, Paradox, Oracle, Interbase, MS SQL, My SQL a v současnosti také MS Access, který se díky propojení na MS Office dostává do popředí tam, kde se hojně využívají ostatní programy tohoto kancelářského balíku. V běžné praxi se s databázovým systémem v jeho původní – základní podobě setkáme jen zřídka. V každém ze vzpomínaných systémů totiž můžeme vytvářet i aplikace, které jsou přizpůsobené konkrétním oblastem použití. Ulehčují a zrychlují práci, skrývají nepodstatné funkce, dávají k dispozici jen operace, které ta-která oblast využití potřebuje. 251 Počítačové systémy Databázový systém před tabulkovým procesorem schopným realizovat prakticky všechny popsané operace upřednostníme tehdy, když: - rozsah údajů je velký, - požadujeme nástroje, které prostřednictvím jednoho příkazu dokážou aktualizovat celé seznamy, - potřebujeme čerpat a spojovat údaje z více seznamů, - potřebujeme, aby s údaji mohlo současně pracovat více uživatelů, kterým jsme schopni určit oprávnění na přístup k jednotlivým objektům, - v případě poruchy vyžadujeme nástroje, které dokážou údaje „opravit“. Existuje několik typů databázových systémů (hierarchické, síťové, relační, postrelační, resp. objektové), ale nejčastějším typem jsou v současnosti databázové systémy relační, pro které platí i všechny následující řádky. 11.5.2.3.1 Základní pojmy Základním pojmem databázových systémů je pojem databáze, který můžeme v zúženém smyslu přeložit jako tabulku – seznam, ve kterém jsou údaje uloženy v sloupcích a uspořádané podle zvoleného kritéria. V širším smyslu pojem databáze zahrnuje nejen tabulku, ale i celou řadu dalších objektů, obrazovkových a tiskových sestav, nastavení a výběrů. Nejdůležitějším prvkem v databázových systémech jsou údaje, ze kterých získáváme informace. Údaje jsou uložené v tabulkách skládajících se z polí (sloupců) a záznamů (řádků). Každé pole musí mít definovaný údajový typ (číslo, text, datum), na základě kterého se pro něj rezervuje potřebný počet bytů v souboru. Databázové systémy mohou pracovat lokálně, na jednom počítači, ale mnohem častěji se setkáváme se sdílením údajů mezi větším počtem uživatelů. Tito uživatelé mohou přistupovat k údajům i prostřednictvím prostředků operačního systému (souborové databáze), ale přicházejí tak o výhody architektury klientserver. Jádro této architektury tvoří speciální program – SQL server, který spravuje databázi a na požádání poskytuje klientům údaje, nebo vykonává příkazy formulované v jazyce SQL (Structured Query Language). Výhodou SQL serveru je: - optimalizace činnosti na databázové operace, - minimalizace množství přenášaných údajů (server vybere údaje na základě požadavků klienta u sebe a pošle klientovi jen to, o co žádal), - možnost poskytovat údaje libovolnému typu aplikace, která o ni požádá (nerozlišuje, zda jde o desktopovou aplikaci anebo webovou stránku) - možnost sdílení a řízení přístupu k údajům přímo prostřednictvím nástrojů SQL serveru. 11.5.2.4 Prezentace a prezentační software Informace, kterými disponujeme, velmi často poskytujeme dalším uživatelům, zda už za účelem prohloubení jejich vědomostí, informování o nových skutečnostech anebo jednoduše proto, abychom je přesvědčili, že zboží, které nabízíme potřebují a je pro ně to nejvhodnější. Způsobů, jakým to můžeme 252 Počítačové systémy udělat je mnoho, pokud máme k dispozici prostředky informačních technologií je nejefektivnějším řešením prezentace. Prezentaci můžeme rozdělit na: - vedené, kde prezentace představuje vystoupení před publikem, při kterém řečník jak pro lepší, efektivnější a názornější předávání informací, tak i pro vlastní oporu používá podpůrné materiály, které si pro svoje vystoupení připravil. Kromě osnovy prezentace obsahuje i informace, které by přednášející jen těžko dokázal opsat (obrázky, grafy apod.), - automatické se využívají na místech, kde není potřebná komunikace mezi přednášejícím a posluchači. Obvykle takováto prezentace běží neustále, přičemž po skončení začíná zase odznovu – důležité je věnovat dostatečnou pozornost preciznímu zpracování snímků (obsah, časování apod.). Můžeme se s nimi setkat při prezentaci zboží na výstavách i v některých obchodních domech, - interaktivní disponují oproti automatickým prezentacím prvky umožňujícími uživateli ovlivnit její běh (zda už v podobě hypertextových odkazů anebo tlačítek). Nejčastěji se vyskytují na prezentačních CD či webových stránkách firem. Pokud se na prezentační programy umožňující vytvoření a prezentování informací pohlížíme jako na součást kancelářských balíků, můžeme sem zahrnout konkrétní aplikace z kancelářských balíků, např. PowerPoint z Microsoft Office anebo Impress z balíku Open Office, případně i Adobe Reader určený na prohlížení souborů formátu pdf. V širším pojímání je možno do softwaru podporujícího tvorbu a prohlížení prezentací zahrnout i nástroje umožňující vytvářet a prezentovat webové stránky, grafiku, animace a s „přitaženými vlasy“ i video či audio. 11.5.2.4.1 Nástroje na tvorbu prezentace Základním pojmem prezentačního softwaru je snímek. Může obsahovat text, obrázky, animace, tabulky, grafy a hypertextové odkazy. Objekty jsou umístěny na měnitelném pozadí, jehož cílem je dát prezentaci vzhled vystihující účel, na který byla připravená. Kromě grafických objektů umožňuje prezentace přehrávání zvuku během celého svého běhu (na pozadí) nebo doplnění každého snímku samostatným komentářem, který se dokáže automaticky spustit po jeho otevření. Snímky tvoří posloupnost obrazovek, které se standardně promítají v postupnosti, v jaké jsou uložené (v případě interaktivních prvků samozřejmě je možno dosáhnout také jiné posloupnosti). Můžeme s nimi realizovat základní operace jako vkládání a mazání, duplikování existujících snímků a změnu jejich pořadí. Při přechodu mezi snímky můžeme nastavovat různé přechodové efekty (např. spuštění snímku shora, zobrazování po slovech, různé spirálovité pohyby apod.). Můžeme použít stejnou animaci na celý snímek či na každý objekt jinou. Nevyhnutelnou součástí prezentačních softwarů je funkce časování, pomocí které dokážeme zabezpečit běh prezentace bez zásahu uživatele. Tato funkce se využívá zejména při automatických prezentacích, ale někteří řečníci ji používají i při prezentacích vedených – v takovém případě musí mít řečník velmi precizně připravený slovní komentář. 253 Počítačové systémy Na ulehčení prezentací je k dispozici více šablon obsahující v sobě vzpomenuté parametry už předdefinované. Prostředí obvykle disponuje několika způsoby zobrazení obsahu prezentace: - normální zobrazení v PowerPointu poskytuje jednak osnovu snímku skládající se z nadpisu a textu a jednak celkový vzhled vytvářeného snímku, - uspořádání snímků poskytuje náhled na prezentaci a umožňuje jednoduše měnit grafické parametry vybraných snímků, - zobrazení poznámek umožňuje ke každému snímku připsat poznámky, které se při prezentaci nezobrazují, - náhled a spuštění prezentace dává tvůrci k dispozici podobu, v jaké budou snímky zobrazené při prezentaci. Finální prezentace se může spouštět z prostředí programu, nebo se může uložit ve formátu pps (z PowerPointu), který po otevření souboru spustí prezentaci okamžitě, bez spuštění aplikace na její tvorbu. 11.5.2.4.2 Tvorba prezentace Dříve než se pustíme do tvorby samotné prezentace, je potřeba určit si cíl, který prostřednictvím ní chceme dosáhnout. Cíli a publiku, na keré bude prezentasce orientovaná, je potom potřeba přizpůsobit formát i šablonu. Je vhodné dodržet následující doporučení: - při projekci je vhodné zvolit tmavé pozadí a světlý text (nebo naopak), - pro vyvolání spokojeného pocitu publika a soustředění se na obsah jsou vhodné modré a zelené odstíny, jakmile je třeba publikum vyburcovat, je vhodné žluté či červené pozadí, - preferuje se bezpatkové písmo (napr. Arial), které je na obrazovce lépe čtivé, - je vhodné, aby všechny snímky měly stejný formát; snímky s odlišným barevným schématem je třeba používat jen ve speciálních případech, např. na prezentaci zvlášť důležitých informací, - videoukázky uspávají, třeba zkrátit na minimum, - méně je někdy více – je třeba si uvědomit, že prezentace neprezentuje schopnosti softwaru, ale informace. Efekty, které nabízejí prezentační programy je třeba používat velmi střízlivě, - úvodní snímek obvykle obsahuje název prezentace a jejího autora, - závěrečný snímek děkuje za pozornost a obsahuje kontakt na autora, - chyby v textu snímků se neodpouštějí! Zřejmě nejpracnější činností při tvorbě efektivní prezentace je vytvoření její obsahové náplně. Po vytvoření textové části následuje vylepšování grafického vzhledu a případné doplnění multimediálními efekty. V tomto stádiu je výsledek připravený pro automatickou prezentaci, ale v případě vedené prezentace potřebujeme absolvovat ještě několik dalších kroků: - jako pomocný materiál pro přednášejícího je vhodné vytlačit kompletní prezentaci např. ve zmenšené podobě (4 strany na list papíru), - s podporou tohoto materiálu je potřeba vyzkoušet prezentaci a zesynchronizovat slovní komentář s obsahem obrazové prezentace, - na závěr můžeme připravit materiály pro posluchače v tištěné podobě, v podobě webové prezentace či na CD. 254 Počítačové systémy 11.5.2.4.3 Prezentace před publikem Při přípravě prezentace je důležité vědět, jaké publikum nás očekává, v jaké místnosti budeme prezentovat a jakou techniku chceme použít. Pokud máme možnost, je vhodné techniku před prezentací vyzkoušet. Na úvod prezentace je potřeba popsat posluchačům její obsah. Během prezentace je velmi důležité nečíst jen texty z obrazovky, ale používat vlastní slova poskytující posluchačům podrobnější obsah, výklad nebo vysvětlení než jim nabízí prezentace. Je potřeba hovořit zřetelně, srozumitelně a pokud posluchači nejsou odborníci, nepoužívat odborný slang. Během prezentace je možno se pohybovat, ale tak, aby byl přednášející vždy viditelný. Když je prezentace obsáhlejší, je žádoucí připravit a rozdat tištěný a/anebo elektronický materiál. Na závěr je vhodné, pokud to typ prezentace dovoluje, otevřít diskusi. Otázky posluchačů je třeba si pamatovat, případně poznačit – díky nim je možné do budoucna prezentaci vylepšit. Pokud nedokážete, anebo neznáte odpověď, není třeba se bát přiznání. 11.5.2.5 Aplikace na tvorbu webových stránek Internet a speciální www stránky představují v současnosti jeden z nejvyužívanějších zdrojů informací. Pasivní uživatelé ho využívají zejména na vyhledávání dostupných informací, aktivní do jeho prostředí umisťují vlastní informace a prezentace. Je potřeba si uvědomit, že webové stránky mají při oslovování zákazníků a prezentací myšlenek mnohem vyšší potenciál než prezentace popsané v předcházející kapitole – zatímco prezentaci v PowerPointe zhlédne maximálně několik stovek diváků, webová stránka je v prostředí Internetu k dispozici prakticky celému světu a navíc ji do svého „repertoáru“ zahrnou i vyhledávače. Jakmile uživatel získá adresu webové stránky jako výsledek vyhledávání, určitě ji věnuje pozornost a prohlédne si ji, protože předpokládá, že její obsah může být pro něho zajímavý či důležitý. 11.5.2.5.1 Webový dokument Webový dokument má svůj textový obsah, jehož úprava je daná prostřednictvím příkazů značkovacího jazyka HTML (HyperText Markup Language – hypertextový značkovací jazyk). Ten umožňuje vytvářet dokumenty obsahující text, hypertextové odkazy, multimediální a jiný obsah, formuláře na získávání údajů od uživatele atd. Jazyk HTML prošel během své existence vývojem, na který dohlíželo W3C konzorcium (World Wide Web Consortium). V současnosti se HTML nahrazuje jazykem XHTML (odvozeným od XML), který umožňuje oddělit obsah dokumentu (HTML) od jeho formátu definovaného prostřednictvím kaskádových stylů (CSS – Cascading Style Sheets). Ty jsou zpravidla definované v samostatném souboru, který se aplikuje na zobrazovaný dokument. Používání kaskádových stylů přináší více výhod: - jednoduchá změna vzhledu dokumentu – úpravou stylu na jednom místě změníme vzhled všech dokumentů, které ho používají, 255 Počítačové systémy - zpřehlednění html dokumentu a zmenšení velikosti html souborů – styl v sobě obsahuje všechny parametry např. pro text, které bychom museli v dokumentu jednotlivě vypisovat (barva, font, velikost a řez písma apod.), - není nutné optimalizovat vzhled každé stránky pro různé prohlížeče – styl se o to postará za nás. - možnost používat styl zobrazení v závislosti od média – jinak bude stránka vypadat na obrazovce, jinak po vytištění a jinak je budou vidět zařízení, které zprostředkovávají informace zrakově postiženým. Speciálním jazykem, jehož příkazy se někdy vkládají do html dokumentů je javascript. Jde o jazyk, který umožňuje interaktivně reagovat na příkazy uživatele bez znovunačítávání stránky a komunikace se serverem. Vkládá se přímo do html kódu stránky a používá se zejména na ovládání interaktivních prvků – tlačítek, rozbalovacích seznamů, textových polí apod. Javascript je jazyk podporovaný na straně webového klienta – příkazy zpracovává webový prohlížeč. Obr. Příklad použití javascriptu v html dokumentu Požadavek na zobrazení dokumentu zadává uživatel prostřednictvím URL. Webový klient na příkaz uživatele vyšle požadavek, na základě kterého mu server poskytne příslušný dokument. Klient dokument přebere a podle příkazů html jazyka zobrazí. Všechny příkazy, které do dokumentu vložil jeho tvůrce, jsou takto přístupné libovolnému uživateli, který si je může zobrazit prostřednictvím svého webového prohlížeče (např. přes Zobrazit – Zdrojový kód). Tento způsob výměny informací je vhodný pro statické dokumenty sloužící v první řadě na zobrazování obsahu, které mohou být případně oživeny jednoduchými interaktivními prvky definovanými prostřednictvím javascriptu. Pokud má být webová stránka dynamická a má zpracovat údaje zadávané uživatelem, je potřeba údaje nejen získávat, ale prostřednictvím webového klienta i odesílat na zpracování na server. Pro zpracování údajů (příkazů) na straně serveru je charakteristické, že uživatel nemá přístup ke kódu, který údaje zpracovává a do prohížeče dostává jen výsledný dokument. Díky tomu není zatěžovaný klient a nedostávají se do něj zdrojové kódy s případnými hesly na přístup do chráněných oblastí. Jazyky, které tuto činnost zabezpečují, se označují jako skriptovací a výsledkem jejich příkazů je zpravidla text obsahující příkazy html, které server odešle klientovi. Mezi nejpopulárnější skriptovací jazyky patří PHP, JSP a ASP. 256 Počítačové systémy Obr. Získávání dokumentu html a html v kombinaci s PHP Možností jak vytvořit webový dokument je několik: - mnohé aplikace umožňují obsah svého dokumentu uložit jako html dokument, čím se formát zpracovaných údajů přizpůsobí formátu zobrazitelnému v prostředí webu, - použít specializovanou aplikaci s funkcemi ulehčujícími a zjednodušujícími formátování obsahu pro web, - na základě znalostí jazyka html napsat zdrojový kód webové stránky manuálně v jednoduchém textovém editoru, bez použití vizuálních nástrojů. 11.5.2.5.2 Aplikace na tvorbu webu V současnosti existuje mnoho aplikací, které umožňují vytvářet webové stránky. Kromě standardních desktopových aplikací podporujících WYSIWIG (např. Adobe Dreamweaver anebo Microsoft FrontPage) můžeme na Internetu najít prostředky, které vytvoří po výběru šablony a zadání základních údajů webovou stránku prakticky na počkání. Mezi základní požadavky a zároveň operace, které požadujeme od nástroje na tvorbu webových stránek patří: - možnost výběru šablony, podle které se rozdělí stránka na základní části (menu, banner, samotný obsah, atd.), případně se definuje její vzhled a barevnost, - nástroje na formátování a strukturování textu (zarovnávání, výběr stylu, odrážky a číslování, atd.), - tvorba hypertextových odkazů, - nástroje na práci s tabulkami, které v současnosti představují základní nástroj na formátování obsahu (sloupcování, rozdělení stránky na sekce apod.), - vkládání objektů a nastavování možností pro jejich obtékání (obrázky, tlačítka apod.), - možnosti rozdělení souborů stránky do více adresářů a automatická úprava odkazů při změně jejich umístění, - možnosti manuální úpravy html kódu, - WYSIWYG editor zobrazující vytvářenou stránku v podobě, kterou bude mít v prohlížeči. 11.5.2.5.3 Jazyk HTML jako prostředek tvorby webu Uživatel, který chce na tvorbu webových stránek využívat skriptovací jazyky, nebo potřebuje realizovat úpravy ve vytvořeném kódu existujících stránek, potřebuje znát příkazy HTML jazyka. Tento jazyk patří do skupiny značkovacích jazyků a na popis obsahu stránek využívá značky (příkazy, tagy). Aby bylo možné odlišit příkazy od samotného obsahu, vkládají se příkazy mezi znaky „<“ a „>“. Příkazy HTML mají ve všeobecnosti dva tvary (i když v případě XHTML se používá už jen první typ): - párové příkazy tvořené otevírajícím a uzavírajícím příkazem, které se liší jen tím, že uzavírající příkaz obsahuje na začátku znak „/“, např.: <B>tučný text</B>, - nepárové příkazy jsou tvořeny jediným příkazem, např.: <BR>. 257 Počítačové systémy Příkazy jsou tvořeny anglickými slovy nebo zkratkami – např. <B> pro tučný text je odvozený od „bold“. Příkazy můžeme pro naše potřeby rozdělit následovně: - příkazy určené na formátování a strukturování dokumentu se používají na nastavení vlastností textu a stránky jako celku. Umožňují definovat řez, velikost, barvu, font textu apod. Příkazy podporující strukturování dokumentu slouží na definování nadpisů, odstavců, odrážkových a číslovaných seznamů atd. - příkazy umožňující vkládání externích objektů často z externích souborů a nastavování jejich parametrů (tabulka, obrázek, animace apod.), - příkazy podporující hypertext a dovolující používání odkazů v rámci jednoho anebo více dokumentů, - příkazy sloužící na tvorbu formulářů a interaktivních prvků (textové pole, tlačítko, zaškrtávací políčko, rozbalovací seznam atd.). V korektně vytvořené struktuře stránky jsou příkazy umístěné v těle dokumentu umístěném mezi značkami <BODY> a </BODY>. Předchází jim definice typu dokumentu, která určuje množinu značek použitých v dokumentu, např. pro verzi HTML 4.01 je to: <!DOCTYPE HTML PUBLIC "-//W3C//DTD "http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01//EN" a hlavička dokumentu definující název stránky prostřednictvím příkazu <TITLE>. Hlavička umístěná mezi <HEAD> a </HEAD> obsahuje údaje nadřazené obsahu stránky – meta tagy. Důležitým tagom je tag určující kódování stránky, bez použití kterého by mohlo dojít k nesprávnému zobrazování znaků s diakritikou: <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> Užitečné je i používání tagu description, který některé vyhledávače zobrazují jako popis stránky při zobrazování výsledků vyhledávání. Má podobu: <meta name="description" content="Tajná stránka věnovaná okultním vědám."> Ve všeobecnosti můžeme říci, že html dokument má v našich podmínkách následující podobu: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN"> <HTML> začátek textu ve formátu HTML <HEAD> začátek hlavičky <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> znaková sada <meta name="description" content="Moje prvé pokusy."> popis stránky <TITLE> Název stránky </TITLE> název stránky </HEAD> konec hlavičky <BODY> definice a začátek těla ... vlastní obsah stránky ... </BODY> konec těla </HTML> konec textu HTML 11.5.2.5.4 Přehled základních příkazů HTML 258 Počítačové systémy Formátování textu: příkaz popis příklad B Toto je <B>tučné</B> písmo. tučné I Písmo je <I>šikmé a současně kurzíva <U>podtržené</U></I>. U podtržené STRIKE přeškrtnuté TT neproporcionální písmo SUB H<SUB>2</SUB>O dolní index SUP c<SUP>2</SUP>=a<SUP>2</SUP>+b<SUP> horní index 2</SUP> FONT nastavení barvy (COLOR), velikosti 1-7 písma (SIZE) a fontu (NAME) <font color=red size=4 name=”ARIAL”>Tento text je změněný</font> a tento ne Strukturování textu: příkaz popis příklad H celkem hlavní nadpis zadané úrovně (např. H1, <h2>Ne nadpis</h2> H2 atd. po H6) podporující <p>standardní text odstavce libovolně dlouhého</p> zarovnání textu (ALIGN) doleva <p align=right>Další odstavec, (LEFT), doprava (RIGHT) anebo na ale zarovnaný doprava</P> <center>toto potřebujeme střed (CENTER). zvýraznit ve středu</center> P nový odstavec umožňující <h1>Hlavní nadpis</h1> odstavec zarovnaný zarovnání textu stejně jako při <p>Další doleva</P> nadpisech. Zarovnání do bloku není k dispozici. CENTER centrování textu mimo struktury odstavců BR přechod na nový řádek řádek1<BR> řádek2<BR> (odřádkování) řádek3 pevná mezera – používá se tehdy, když potřebujeme dát za sebou dvě a více mezer – prohlížeč více standardních mezer za sebou považuje za jednu <!...> je ignorované-->Toto komentář – obsah je ignorovaný <!--Toto už ne prohlížečem HR vodorovná čára s možností <HR size=10 color=red> nastavení tloušťky (SIZE), barvy (COLOR) a případně i dalších atributů UL seznam seznam s odrážkami s možností Odrážkový <ul type=square> nastavení jejich vzhledu (TYPE: <li>odrážka1 <li>odrážka2 DISC, SQUQRE, CIRCLE) </ul> OL číslovaný seznam s možností type="A" start=4> výběru číslování (TYPE: 1, a, A, <ol Číslovaný seznam - odsazené i, I) a určení pořadového čísla <li>prvá <li>druhá startovací hodnoty seznamu </ol> (START) 259 Počítačové systémy LI položka seznamu v obou předcházejících typech Používání externích objektů příkaz popis příklad IMG obrázek definovaný <IMG SRC=“obrázky/ja.jpg“> prostřednictvím svého deformace obrázku na daný umístění (SRC) s možností rozměr: <IMG SRC=“obrázky/ja.jpg“ nastavení rozměrů (WIDTH, WIDTH=80 HEIGHT=50> HEIGHT), šířky rámečku umístění obrázku na pravou (BORDER), odsazení od textu stranu vedle textu: SRC=“obrázky/ja.jpg“ (HSPACE, VSPACE) a zarovnání <IMG ALIGN=RIGHT> v rámci souvislého textu (TOP, MIDDLE, BOTTOM, LEFT, RIGHT). TABLE tabulka. Počet sloupců a řádků se zjistí automaticky podle počtu použití příkazů: TD – definuje nový sloupec TR – definuje nový řádek TH – záhlaví tabulky V rámci buněk je možno údaje zarovnávat horizontálně přes ALIGN (LEFT, RIGHT, CENTER) i vertikálně VALIGN (TOP, MIDDLE, BOTTOM). Prostřednictvím WIDTH můžeme definovat šířku tabulky, prostřednictvím ALIGN způsob obtékání textem. BORDER definuje tloušťku rámečku, CELLSPACING mezeru mezi buňkami tabulky, CELLPADDING mezeru mezi okrajem a obsahem buňky. Slučování buněk můžeme realizovat přes COLSPAN (sloupce) a ROWSPAN (řádky). <table border=3> <th>záhlaví1</th><th>z2</th> <tr> <td>1.buňka v 1.řádku</td> <td>2.buňka v 1.řádku</td> </tr> <tr> <td>v 2. řádku bude jen jedna buňka</td> </tr> </table> krásnější tabulka: <table border=1 cellspacing=0 cellpadding=0> <tr> <td>1,1</td><td>2,1</td> </tr> <tr> <td>1,2</td><td>2,2</td> </tr> </table> Podpora hypertextu: příkaz popis příklad A HREF link: odkaz na URL. Linkem je textový text celý obsah mezi začátkem href="http://www.sme.sk">link SME</a> text za linkom a ukončením link pro odeslání emailu: prostřednictvím </A> <a na <a href="mailto:[email protected]">N apište mi</a> 260 Počítačové systémy A NAME definuje v dokumentu místo (návěští), na které je možno prostřednictvím odkazu skočit. Odkaz odkazující na návestí obsahuje za url adresou název návestí oddělený znakem # obrázkový link: <a href="http://www.sme.sk"> <img src=”obrazky/noviny.gif”></a> definice návestí: <a name="začátek">Úvod stránky skok na dané místo dokumentu: <a href="#začátek"> stránky </a> v rámci začátek skok na dané místo v rámci webu: <a href="http://www.sme.sk#začátek"> začátek SME </a> Atributy těla stránky (BODY): příkaz popis příklad BGCOLOR <body bgcolor="black"> barva pozadí dokumentu TEXT předvolená barva textu v <body text="red"> dokumentu LINK text="red" link="blue" barva hypertextového odkazu, <body alink="yellow" který ještě nebyl navštívený (na vlink="#ff3e12" background="/images/pozadí.g který uživatel nekliknul) if"> ALINK barva aktuálního odkazu VLINK barva navštíveného odkazu BACKGROUND jméno obrázku, který se použije jako pozadí 11.5.2.5.4.1 Formuláře Formulář slouží na získání údajů od uživatele prostřednictvím ovládacích prvků a jejich odeslání na další zpracování. Zpracování můžeme realizovat prostřednictvím příkazů javascriptu, ale mnohem častěji se používají skriptovací jazyky, které údaje zpracují na straně serveru a uživateli nabídnou výsledek v podobě nového html dokumentu. Hlavička formuláře definuje prostřednictvím klíčového slova ACTION soubor (skript), kterému se údaje formuláře odešlou a prostřednictvím METHOD způsob, jakým přenos proběhne (GET nebo POST). Ovládací prvky jsou ohraničeny příkazy <FORM> a </FORM> a na svoji definici využívají klíčové slovo INPUT. <form action="zpracuj.php" method="post"> Jméno: <input type="text" name="jméno"> Příjmení: <input type="text" name="příjmení"> <input type="submit" value="Odeslat"> </form> paramet popis příklad r TEXT type="text" jednořádkové textové <input value="předvyplněný text"> pole určené na vkládání textu. Prostřednictvím hodnoty VALUE je možno nastavit text, který se name="meno" 261 Počítačové systémy PASSWORD SUBMIT v poli zobrazí při jeho vytvoření. analogie s TEXT, ale místo psaného textu se zobrazují jen hvězdičky tlačítko s textem zadaným v parametru <input type="password" name="heslo"> <input type="submit" name="tlačidlo1" value="odeslat"> VALUE RESET RADIO CHECKBOX SELECT TEXTAREA 262 speciální parametr tlačítka, který vymaže všechny údaje naplněné ve formuláři radiobutton určený pro výběr z více možností. Pokud potřebujete použít na stránce více skupin, je potřeba nazvat je různými jmény (parametr NAME). V opačném případě bude vždy možné zapnout na stránce jen jeden z radiobuttonů. zaškrtávací políčko rozbalovací tlačítko (případně seznam položek) obsahuje hodnoty definované prostřednictvím OPTION. Při hodnotě, která má nastavená jako výchozí, je potřeba použít parametr SELECTED. Pokud chceme najednou zobrazit více řádků, je potřeba nastavit parametr SIZE na požadovanou hodnotu. Pro výběr většího počtu položek najednou se jako parametr ovládacího prvku uvádí MULTIPLE. víceřádkové textové pole definované počtem zobrazených řádků (ROWS) a sloupců (COLS). <input type="reset" value="vymazat"> Jste s našimi službami spokojení? <br> <input type="rádio" name="meno" value="1">ano<br> <input type="rádio" name="meno" value="0">ne<br> Jaké služby si platíte? <input type="checkbox" name="služby" value="IB"> Internetbanking<br> <input type="checkbox" name=" služby " value="MB"> Mobilbanking<br> Vyberte svoje zaměstnání: <select name="zaměstnání"> <option value="PRO">Programátor<br> <option value="SS">Správce sítě<br> <option value="UC" selected>Učitel<br> <option value="X">Jiné<br> </select> Nabídka zájezdu: <select name="zájezd" size=4 multiple> <option value="RF">Rusko<br> <option value="TU">Tunisko<br> <option value="BR">Brazílie<br> <option value="TT">Naše Tatry<br> </select> <textarea cols=30 rows=5 name="txt"> Předvolený obsah </textarea> Počítačové systémy Odeslání údajů z formuláře proběhne při použití tlačítka typu SUBMIT. 11.5.2.5.5 Zveřejnění webové stránky Webová stránka se obvykle vytváří na to, aby byla zveřejněna v prostředí Internetu. Pokud uživatel disponuje trvalým internetovým připojením a veřejnou IP adresou, může ji zveřejnit přímo prostřednictvím svého počítače. Na to, aby bylo možné k stránce přistupovat z libovolného počítače na světě, stačí spuštění webového serveru (Apache nebo IIS, který je součástí MS Windows) a umístění stránky do nastaveného výchozího adresáře webového serveru. Ke stránce bude možné přistupovat prostřednictvím IP adresy. V případě, když takový způsob nestačí, je možné zakoupit si doménu, veřejně pevnou IP adresu a nasměrovat ji na svůj počítač. Navzdory tomu, že tento způsob je technicky nejjednodušší, většina uživatelů využívá webhosting (umístění webové stránky na serveru profesionálního poskytovatele služeb), který kromě prostoru garantuje ochranu umístěného webu (zálohování, ochrana vůči průnikům apod.), funkčnost (nevypíná server a používaný hardware umožňuje současné připojení mnohých uživatelů) a hlavně rychlost připojení, kterou doma nemáme šanci dosáhnout. Komerční webhosting poskytuje mnoho provozovatelů jak u nás, tak i v zahraničí, přičemž často nabízejí kromě placených i free-hostingové služby (stačí zadat do vyhledávače spojení free webhosting). Umístění souborů na serveru poskytovatele se obvykle zabezpečuje prostřednictvím FTP klienta, anebo přímo přes prohlížeč uploadom do poskytnutého adresáře na základě přihlašovacího jména a hesla. 11.5.2.6 Grafické editory Mnoho informací týkajících se práce s grafikou jsme prezentovali už v kapitole o zpracování informací na počítači. V této části se zaměříme spíše na specifické práce v grafických editorech. Stejně jako grafické formáty, dělíme i grafické editory na rastrové a vektorové. Hlavní nevýhodou rastrových obrázků jsou deformace a ztráty obrazové informace pro změnu rozměrů obrázku. Hlavní nevýhodou vektorových obrázků je zase obrovské množství objektů potřebných na vykreslení složitějších obrázků. 11.5.2.6.1 Rastrový grafický editor Na trhu je množství rastrových editorů, které se navzájem liší svoji cenou, kvalitou a cílovou skupinou uživatelů. Nejjednodušším a nejznámějším nástrojem je bezpochyby Skicák (Kreslení, MS Paint, PaintBrush), který je součástí operačního systému Windows prakticky od jeho prvních verzí. Tento grafický editor obsahuje základní funkce, které jsou typické i pro profesionálně grafické editory. Základními nástroji grafického editora jsou tužka a štětec umožňující kreslení čar volným stylem – rukou. Tužka kreslí čáry s tloušťkou 1 bod, u štětce si můžeme zvolit tloušťku a tvar jakým se čára bude kreslit. 263 Počítačové systémy Na kreslení geometrických tvarů slouží nástroje pro kreslení čáry, obdélníka, elipsy a dalších jednoduchých útvarů. Při kreslení se obvykle požaduje zadání začátečního a koncového bodu (případně dalších bodů nevyhnutelných pro zadání rozměrů a umístění objektu) prostřednictvím myši. U obdélníka se určují protilehlé rohy, u elipsy střed a poloosy případně také protilehlé rohy obdélníka, do kterého bude vepsaná. Většina grafických editorů umožňuje při stlačení klávesy Shift nebo Ctrl (v závislosti na editoru) kreslit čáry v předdefinovaných úhlech (30°, 45°, 90°, 120° atd.), nebo upravovat rozměry objektu tak, aby výsledkem byl pravidelný útvar (čtverec, kružnice). Podle nastavení se na kreslený objekt aplikuje barva, tloušťka a typ (čárkovaná, tečkovaná apod.) obrysové čáry. Nabídka dalších předdefinovaných tvarů závisí na použitém editoru. Každý ohraničený objekt můžeme vyplnit barvou, texturou anebo vzorem skládajícím se z přechodu mezi více barvami. Speciálním objektem, který můžeme do obrázku vložit, je text. I když možnosti pro formátování textu jsou obvykle omezené na typ, styl a velikost písma, můžeme text jako celek deformovat či otáčet. Standardní operace kopírování, přesouvání a mazání výběru jsou funkční i v rastrových grafických editorech. Výběr se určuje prostřednictvím myši, přičemž je možno vybírat pravoúhlé oblasti, myší označit nepravidelný výsek, anebo prostřednictvím speciálních nástrojů vybrat plochu stejné nebo blízké barvy. S výběrem můžeme často realizovat operace otočení, zrcadlového zobrazení, zvětšení/zmenšení, deformace, zkosení apod. Navzdory tomu, že v rastrovém grafickém editoru nedokážeme s nakreslenými útvary pracovat jako se samostatnými objekty, máme v profesionálních editorech k dispozici silný nástroj v podobě vrstev, které nám umožňují rozdělit obrázek. Vrstvy představují samostatné plochy, do kterých můžeme kreslit a které můžeme na sebe ukládat a měnit jejich pořadí, přičemž objekty na vrchní vrstvě překryjí objekty na spodní. Kromě zobrazení a vypnutí vrstvy můžeme nastavovat její přehlednost a všechny efekty, kterými grafický editor disponuje, můžeme aplikovat podle požadavků na jednu anebo více vrstev (např. přidání stínů, odrazů, rozmazání anebo zpestření barev atd.). Když vytváříme rastrový obrázek v grafickém editoru úplně od začátku, potřebujeme před samotným kreslením definovat jeho rozměry a barevnou hloubku. Rozměry můžeme definovat zadáním šířky a výšky obrázku v bodech (pixelech) nebo v milimetrech (tehdy potřebujeme určit také dpi obrázku). O rozměrech rozhoduje v první řadě účel, na který bude obrázek použitý. Pro tisk doporučujeme minimální rozlišení 300 dpi, pro umístění na webu postačí 72 (resp. 96) dpi. 264 Počítačové systémy Mnohem častěji než vytváření nových obrázků, se rastrové grafické editory používají na úpravu a retušování fotografií. Mezi základní retušovací nástroje. patří: - rozmazání obrazu nebo výřezu, - klonování, které umožňuje zopakovat na pozici kurzoru obsah obrázku z jiného místa (např. odtud, kde není pleť poškozená). Obě funkce se používají na odstranění prachu, škrábanců a jiných defektů z fotografie, - změna vybraných barevných odstínů (redukce červených očí), - změna sytosti, ostrosti a barevného vyvážení, která nám umožní odstranit špatné nastavení parametrů v čase snímání fotografie ať už fotoaparátem anebo skenerem. Kromě vysloveně praktických, obsahují rastrové grafické editory i množství dalších funkcí, určených na profesionální prácí s obrazem, s fotografiemi, vytváření animací (např. animovaný gif), skenování apod. Mezi nejpoužívanější, nejznámější a profesionály používané rastrové grafické editory patří Adobe Photoshop, Corel Photopaint, případně na školách je v současnosti rozšířený zejména Zoner Callisto. 11.5.2.6.2 Vektorový grafický editor Zatímco při práci s rastrovým grafickým editorem je základní jednotkou bod, u vektorových grafických editorů je elementární jednotkou objekt reprezentovaný svým tvarem, rozměry, barvou a výplní. Základní stavební jednotkou je křivka, přičemž za nejjednodušší křivku můžeme považovat čáru, která má přiřazenou barvu, tloušťku a styl (souvislá, čárkovaná, tečkovaná). Pokud nakreslíme křivku volnou rukou, editor z bodů, ve kterých se mění její tvar vytvoří tzv. uzly. Nakreslené křivce potom můžeme prostřednictvím nich měnit tvar – ve vybraném bodě může mít křivka ostrý roh anebo oblouček, nebo je v místech uzlů spojovat či rozdělovat. Vytvořené uzly můžeme také mazat a zjednodušit tak tvar křivky. Obr. Úprava uzlu Uzavřenou křivku nebo část, kterou editor určí při neuzavřeném objektu, můžeme vybarvit podobně jako při rastrovém editoru souvislou nebo přechodovou výplní či texturou. Od křivky jsou odvozené všechny složitější tvary (např. obdélník, elipsa, núhelník, případně útvary z knihovny objektů složitějších tvarů apod.), které opět v případě potřeby dokážeme upravovat prostřednictvím uzlů. V zásadě je možno prohlásit, že kreslení útvarů a základní operace s nimi jsou totožné s rastrovým editorem. Práce s textem nepatří mezi silné stránky ani v tomto typu grafického editora. Na pracovní plochu můžeme vkládat text písmeno po písmenu, anebo v podobě odstavcového textu, kde můžeme měnit typ, velikost, styl a zarovnání odstavce. Navzdory tomu, že ve vektorovém grafickém editoru můžeme pracovat s překrýváním objektů velmi jednoduše, disponuje i tato skupina vrstvami. Každá vrstva může obsahovat jeden nebo více objektů, přičemž opět můžeme 265 Počítačové systémy měnit pořadí vrstev, přehlednost a aplikovat efekty najednou na všechny objekty vrstvy. Mezi nejpoužívanější operace ve vektorových editorech patří: - zarovnávání vzájemné polohy objektů (vzájemné zarovnání na střed, do stejné výšky apod.), - rovnoměrné rozmístění objektů do zadané oblasti (např. pravidelné uložení latěk plotu), - plynulý přechod mezi objekty (umožní přechod z jednoho objektu do druhého), - uložení textu podle křivky, - stínování objektů, - vytvoření perspektivy (objekt prostřednictvím zvětšení/zmenšení svých stran vyvolává dojem vzdalování/přibližování se), - barevné přechody v rámci jednoho anebo mezi objekty atd. Vektorové editory disponují i možností vkládání rastrových objektů. K takovým objektům se potom vektorový editor chová jako rastrový. Jednodušší obrázky můžeme převést na křivky, čím se zmenší celková velikost souboru, ale zvýší se počet objektů na pracovní ploše. Mezi nejznámější vektorové grafické editory patří Corel Draw a Adobe Ilustrator. 11.5.2.7 Animace a prezentace Speciální postavení v rámci aplikačního softwaru má Adobe Flash (předtím Macromedia Flash). Jeho jednoznačné zařazení je poměrně komplikované, protože umožňuje vytvářet jak statické prezentace, tak i multimediální a dokonce interaktivní aplikace. Zdrojový soubor umožňující vytváření a manipulaci s obsahem nese koncovku fla. Z důvodu minimalizace velikosti a ochrany obsahu před vykrádáním se soubor před publikováním zkompiluje do formátu swf, na jehož spuštění potřebujeme flash player buď ve formě aplikace nebo jako přídavný modul – plugin do webového prohlížeče. Použití je zejména díky malé velkosti výsledných souborů velmi univerzální: - vytvořené animace se nejčastěji používají v prostředí webu na zobrazování pohyblivé reklamy, - můžeme se setkat s webovými stránkami kompletně vytvořenými ve Flashi. Tyto stránky obvykle neobsahují standardní hypertext, ale jejich obsahem je jediný (anebo několik málo) soubor ve formátu swf, - prezentační materiály umístěné na CD, kde swf soubor představuje rozhraní zpřístupňující obsah média, - jako mnohé jiné nástroje umožňující jednoduchou práci s obrazem a zvuky i Flash se velmi rychle začal používat na tvorbu prezentací v podobě počítačových her. Zpočátku se hry před spuštěním stahovaly do počítače, v současnosti se velmi často můžeme setkat s on-line hry hranými přímo v prostředí Internetu. 266 Počítačové systémy 11.5.2.8 Ostatní typy aplikací 11.5.2.8.1 Informační systémy Informační systém představuje systém určený na sběr, uchovávání, zpracování a poskytování informací. Jeho součástí je téměř vždy databázový systém. Mezi informační systémy patří např.: - ekonomické systémy představující jednu z nejčastějších aplikací informačních systémů v praxi. V součinnosti s dalšími systémy se starají o evidenci všech úkonů spojených s činností komerčních organizací, - geografické informační systémy (GIS) jsou určeny na práci s údaji geografického charakteru. Kromě poskytování a analýzy shromážděných údajů dokážou modelovat povrch krajiny, zpracovat údaje ekonomického i sociálního charakteru a simulovat geografický vývoj při zadání požadovaných parametrů, - expertní systémy využívají databázi znalostí na zodpovězení požadavků uživatelů tak, že upřesňující otázky kladou vždy na základě předešlých odpovědí. Vzhledem k postavení informačních systémů ve společnosti rozebíráme tuto problematiku podrobněji v kapitole Informační společnost. 11.5.2.8.2 Počítačová podpora výroby Doba, kdy konstruktéři zaobírající se návrhy nových součástek anebo rýsováním konstrukcí staveb používali jako pracovní pomůcku pravítko a rýsovací prkno je za námi. Konkurenční prostředí, široký sortiment výrobků a rostoucí požadavky zákazníků donutily výrobce nejen zvyšovat kvalitu a snižovat výrobní náklady, ale také zkracovat dodání výrobku na trh. V současnosti se objevují výrobky, u kterých vývojová, přípravná a výrobní fáze trvá spíše měsíce než roky. Pokud se výrobek nedodá na trh v pravý čas a zmeškání trvá i jen několik měsíců, může organizace ztratit pozici na trhu a s ní spojený zisk. Systémy zaobírající se projektováním a s ním spojenými činnostmi se označují jako CAD systémy (Computer Aided Design - počítačem podporovaný návrh). Jsou určeny na podporu všech aktivit spojených s vyhotovením konstrukční dokumentace. Orientují se zejména na inženýrské činnosti v oblastech elektrotechniky, stavebnictví, architektury a strojírenství. Jsou náročné na výpočtový výkon počítače zejména tehdy, když chceme prostřednictvím nich budovat prostorové modely a manipulovat s nimi. Kromě modelování prostorových objektů na monitoru počítače je možné prostřednictvím 3D tiskárny vytvořit prostorový model i fyzicky. Využívá se na to speciální materiál (kombinace lepidla a sypkého materiálu podobného sádře) pomocí kterého je možné vytvořit objekty splňující požadavky kladené na prototypy zařízení. Ještě vyšší úroveň představuje kombinace CAD/CAM (Computer Aided Design/Computer Aided Manufacturing – návrh/výroba za pomoci počítače), kde je návrhová část zabezpečovaná CAD systémem přímo propojená řízení výroby. 267 Počítačové systémy 11.5.2.8.3 Vývojové nástroje Do kategorie vývojových nástrojů patří aplikace určené na tvorbu jiných aplikací. Tvorba standardně spočívá v psaní příkazů programovacího jazyka a/anebo využívání už napsaných objektů, komponentů a nastavování jejich vlastností. Základními součástmi vývojového prostředí jsou: - editor sloužící na psaní kódu. Pokud je součástí vývojového prostředí, poskytuje často prostředky umožňující barevné rozlišení syntaxe, rychlý pohyb v rámci kódu a zrychlené zadávání příkazů, - překladač zabezpečuje překlad zdrojového kódu do kódu, který dokáže vykonat procesor. V případě kompilátora je vytvořen samostatný spustitelný soubor, v případě interpreta se zdrojový kód překládá při každém spuštění programu znova a znova, - debugger se používá na odhalování chyb. Obvykle disponuje propojením na zdrojový kód, umožňuje zastavit vykonávání programu prakticky na libovolném místě a zobrazit aktuální obsah proměnných. 11.5.2.8.4 Výukové a vzdělávací programy Výukové a vzdělávací programy představují skupinu programů, které využívají technologii databázových a informačních systémů (vědomosti), multimediálních aplikací (kombinace zvuku, obrazu a interaktivity pro zvýšení efektivnosti vyučování) a webových technologií (v současnosti se výuka nejčastěji realizuje prostřednictvím prostředků webu). Jejich používání je možné orientovat do libovolné části a libovolného typu vyučovací hodiny: - motivací dokážou zabezpečit vzbuzení zájmu žáka o probíranou problematiku zainteresováním všech smyslů (zrak, sluch, hmat) prostřednictvím multimediálních prostředků, zavedením do konkrétní problémové situace známé z běžného života, anebo navozením uměle vykonstruované situace, ve které je nutné použít nové vědomosti, - vysvětlování (expozice) a procvičování (fixace) vědomostí spočívá v poskytnutí prvotní informace o probírané problematice a možnosti libovolného počtu opakování bez strachu z neúspěchu, který by mohli žáci pociťovat při komunikaci s živým učitelem. Existují aplikace schopné generovat matematické příklady a aplikace umožňující simulovat chemické či fyzikální pokusy, - zkoušení (diagnostika) patří mezi nejpoužívanější a nejpropracovanější oblasti vyučovacího procesu a existuje jak v rámci aplikací pokrývající všechny části vyučovacího procesu, tak i samostatně obvykle se zaměřením na konkrétní typ testování (matematické úlohy, slovní odpovědi, výběr z více možností apod.). Populární oblastí, o kterou se v současnosti zajímají mnozí učitelé, je elektronické vyučování (e-learning), které se velmi často zužuje na používání LMS (Learning Management System – systém na řízení výuky). LMS standardně obsahuje všechny vzpomenuté prostředky a současně sleduje a eviduje činnost učitelů i žáků, zabezpečuje jim elektronickou výměnu informací, zadávání a odevzdávání úloh jako i prostředky na konzultaci mezi žákem a učitelem i mezi žáky navzájem. 268 Počítačové systémy 11.5.2.8.5 Počítačové hry Počítačové hry jsou kategorií, která využívá poznatky prakticky ze všech oblastí informatiky: z projektování si bere trojrozměrné vidění, animace umožňuje postavám pohyb, multimedia jim nabízejí možnost řeči, umělá inteligence se vnáší do chování protivníků, sítě a Internet spojuje hráče na různých místech světa. Jestli chceme nebo ne, zda se nám to líbí nebo ne, zdokonalování a stále se zvyšující nároky na hardware počítače diktují právě počítačové hry. První hry, při kterých např. červíček konzumoval květy na louce a podle jejich počtu se mu prodlužoval chvost, jsou dnes už nejen pro nás starší, ale i pro malé děti trapné a jednoduché. Od hry, která má zaujmout se očekává skvělý nápad, realistické prostředí ve filmové kvalitě, reálné zvuky a dobré ovládání. Počítačové hry patří k softwaru, který má vysoké nároky na hardware počítače. Hlavním důvodem je požadavek reálného zobrazování (stíny, povrch objektů, dopad světla), které dokáže zabezpečit jen špičková grafická karta. Hry se píší vždy tak, aby vytěžily co nejvíc z existujících grafických karet a proto karta, která patřila před několika měsíci ke špičce, bude na čerstvě vydané hry už pravděpodobně sotva stačit. Na zabezpečení zvuku zpravidla stačí standardní zvuková karta, jen některé hry podporují vícekanálový zvuk. Hry se ovládají pomocí klávesnice nebo myši, ale časté je také používání joysticku či dalších zařízení snažících se o vzbuzení dojmu skutečnosti (např. volant s pedály, virtuální rukavice či brýle). Existuje několik dělení počítačových her, přičemž je třeba brát v úvahu fakt, že prvky jednotlivých kategorií se často prolínají. Uvedeme následující: - adventury – obvykle jde o hry, ve kterých postupujeme od startu po konec a sbíráme předměty, ze kterých získáváme energii, body. Na cestě za cílem musíme překonávat různé překážky (zabíjet pavouky či jiné příšery, přeskakovat plameny apod.). Někdy je na postup do další úrovně (levelu) potřeba najít a vzít nějaké předměty anebo nahrát určitý počet bodů, - RPG (Role Playing Games – hry na hrdiny) jsou založeny na podobném principu jako adventury, ale jsou naprojektované tak, že během hry budujeme charakter a schopnosti hlavního hrdiny, vytváříme svůj vlastní svět, komunikujeme s ostatními postavami ve hře, a s jejich pomocí řešíme úlohy. Snahou autora je, abychom se do úlohy hlavního hrdiny vžili a přenesli do něho své chování, reakce a myšlení, - akční (doom-klon, 3D střílečky) představuje osobitou kategorii, ve které hlavním (a často jediným) cílem je zničit všechny protivníky, najít východ a přesunout se do další úrovně. Tyto hry zobrazují prostředí prostřednictvím pohledu první osoby (first person) tak, že pohledem do monitoru vidíme prostor před sebou. Obvykle máme k dispozici několik zbraní s různě ničivým účinkem a kromě pohybu vpřed a otáčení můžeme skákat, plazit se apod. Označení doom-clon pochází z první hry tohoto typu, která se nazývala Doom, - logické hry se vyskytují méně často než předcházející a následující typy. Je to zřejmě proto, že vytvořit hru, která kromě stlačení kláves a reakcí na výstřely nepřátele dokáže vyvolat v hráči i logické myšlení, je velmi náročné. 269 Počítačové systémy Taková hra spočívá obvykle v posloupnosti úloh, které jsou buď rozděleny do levelů a postupně se obtížnost zvyšuje nebo jsou propletené do adventury (RPG), kde řešení problémů je součástí hry, - board (stolní) hry jsou obvykle pro počítač upravené společenské hry, kde např. místo hodu kostkou stlačíme klávesu, anebo kde počítač s námi hraje šachy, dámu, karty apod., - simulace jsou hry, jejichž cílem je se přiblížit ke skutečným situacím a prostředím, které simulují (letadlo, automobil, robot apod.). Některé simulátory založené na stejných principech jako hry, se používají na výcvik v autoškolách, ve vojenských, leteckých a kosmických střediscích, - strategie učí hráče obvykle tvorbě bojové taktiky (má k dispozici několik různě vycvičených vojáků či jednotek a musí splnit úlohu), vládnout (dělníci, vojáci, knězi, atd., se kterými je třeba stavět a zvelebovat krajinu) anebo podnikat (město, resp. firma, která zkupuje jiné firmy a vydělává peníze), - sport představuje osobitou kategorii, ve které se můžeme setkat se všemi druhy: od šachu, přes golf, až po leteckou akrobacii. Oblíbené jsou také týmové hry (hokej, basketbal) anebo automobilové závody. Hry může hrát uživatel sám, proti fiktivním spoluhráčům, kteří jsou součástí prostředí (singleplayer), anebo může v mnohých z nich využít i možnost týmového hraní (multiplayer) s nebo proti reálným hráčům. Kromě hraní v lokální síti je možno při dostatečně rychlém připojení hrát i proti hráčům připojeným na Internet. Hrát počítačové hry je sice zábavné, ale někdy se může stát, že člověk jim propadne. Někteří hráči ztrácejí pojem o čase, zapomínají na jídlo a spánek a nejdůležitější je pro ně dostat se na konec, zvítězit v zápase anebo vyhrát závody – zkoušejí, snaží se, tisíckrát opakují to samé, pokud se nedostaví očekávaný výsledek. Nemůžeme říci, že každá hra je škodlivá, ale hry, ve kterých převládá násilí, jsou perfektně graficky propracovány a uživatel si s nimi často zkracuje dlouhou chvíli, natolik vtáhnou hráče do děje, že není zřídkavé probuzení (zvířecích) reakcí i mimo počítač. 11.5.2.8.6 Multimediální programy určené na zábavu Proniknutím počítačů do domácnosti se počítač v mnohých případech stal hlavním anebo aspoň náhradním zdrojem zábavy reprezentované sledováním videa a posloucháním hudby. Pro tento účel jsou určené přehrávače hudby, videa a DVD. V případě operačního systému Windows je tento software jeho součástí (Windows Media Player), ale můžeme používat i alternativní a to jak komerční, tak i volně šířitelné aplikace (WinAmp, Micro DVD Player, BS Player a pod.). Kromě sledování videa mnozí uživatelé vyžadují i software, který jim umožní konvertovat údaje mezi formáty, stříhat a upravovat video i audio nahrávky. Mezi nejznámější produkty patří komerční Adobe Premiere, Ulead Video Studio, CyberLink PowerDirector, Pinnacle Studio apod. Nekomerční software reprezentuje např. Virtual Dub. 11.5.2.8.7 Podpůrné aplikace 270 Počítačové systémy Do kategorie podpůrných aplikací patří různé programy ulehčující každodenní práci se systémem, úzce specializované anebo jednoúčelové programy Jako nejtypičtější příklady mohou posloužit: - správcové souborů sloužící na řízení obsahu disků a výměnných zařízení, které umožňují rychlejší a přehlednější práci se soubory jako programy, které jsou součástí operačního systému, - poštovní programy a programy pro instant messaging umožňující výměnu různých typů zpráv mezi uživateli (např. mailový klient), - internetové prohlížeče umožňující prohlížení webových stránek a využívání služeb poskytovaných prostřednictvím nich, - antivirové programy zabezpečující ochranu systému před viry a škodlivým kódem, - utility určené na údržbu anebo opravu chyb systému i uživatele. Kontrolní otázky: 1. Čím se liší systémový software a aplikačního? 2. Do které kategorie programů patří antivirové programy? Úkol k zamyšlení: Zjisti jaká verze operačního systému je nainstalována na tvém PC nebo notebooku, dále zjisti, jaký máš k dispozici textový editor. Shrnutí obsahu kapitoly Kapitola přináší základní definici software, jeho členění a definici účelu jednotlivých skupin software. Student je schopen definovat účel operačního systému, je schopen vyjmenovat několik variant operačních systémů. Orientuje se v jednotlivých druzích aplikačního software. 271 Počítačové systémy 12. Komprimace dat Cíl: Po nastudování této kapitoly budete vědět: • které programy považujeme za komprimační, • jaké jsou principy komprimace dat, • jak si vybrat pro naši potřebu ten nejvhodnější komprimační program. A navíc proč vůbec data komprimovat. Klíčová slova: • bezztrátová komprimace • ztrátová komprimace Průvodce studiem Většina z nás, uživatelů počítačů, se s nimi dříve či později setká. Dat je pořád víc a víc a větších, disky a diskety nestačí, Internet je ucpaný. Ano, řeč je o komprimačních, archivačních nebo také „pakovacích“ programech. Komprimační programy představují nejlevnější řešení našeho problému, protože data jednoduše stlačí do menšího objemu. Těchto programů existuje spousta, ale jejich funkce je, jak již bylo naznačeno, stejná: zmenší velikost uložených datových souborů. Nejednoho uživatele, který při své práci pociťuje nutnost používat komprimační programy, trápí nezodpovězené otázky typu: Proč pakovat soubory ( archivovat )? Který program je nejlepší? Co je základem komprimace a jaké algoritmy se používají? Jak se liší komprimace textových, binárních a grafických souborů? Co s komprimací zvuku a videa? Na tyto i jiné otázky se Vám pokusí odpovědět studijní text, který právě držíte v ruce. Studijní materiál je zaměřen na vysvětlení základních pojmů z oblasti komprimace a archivace dat a rozšíří Vaše znalosti o komprimaci. Studijní text je rozdělen do krátkých kapitol, na jejichž konci je vždy provedeno shrnutí nejdůležitějších poznatků. Každá kapitola je doplněna kontrolními otázkami. 272 Počítačové systémy 12.1 Komprimační programy Komprimační programy jsou programy schopné zakódovat datové soubory do podoby, kdy je velikost těchto souborů menší ve srovnání s jejich velikostí před komprimací. Komprimační program musí být samozřejmě schopen dekomprimovat data do původní podoby. Tak jako ostatní software i komprimační programy procházejí svým vývojem a dnes nám nabízejí mnohem větší uživatelský komfort a více funkcí, než je uvedeno v naší definici. Jednou z nich je například možnost vytváření archivů dat složených z komprimovaných souborů, které spolu logicky souvisejí. Odtud také pochází často užívaný termín archivační programy. Rozšiřující funkce však nejsou v komprimačním programu nezbytně nutné. Program označovaný za komprimační musí být schopen data alespoň komprimovat a dekomprimovat. A proč vlastně data komprimovat? Vždyť v dnešní době existuje velké množství hardwaru, který je určen pro zálohování dat. Připomeňme jenom ZIP mechaniky, páskové zálohovače se sekvenčním přístupem atd.. Většina uživatelů však tyto možnosti nevyužívá a důvodem jsou vysoké pořizovací náklady a navíc skutečnost, že dat určených pro zálohování není zase tak mnoho. Na druhé straně pak uživatelé, kteří potřebují zálohovat velké množství dat narážejí na nedostatek místa i na vysokokapacitních zálohovacích mechanikách. Prvním důvodem, který svědčí pro komprimaci , je tedy zálohování dat při současné úspoře místa na paměťovém médiu. Dalším důvodem pro komprimování dat je možnost při zálohování vytvářet archivy dat složené z komprimovaných souborů, které spolu logicky souvisí. Soubor je na pevném disku zaznamenáván do clusterů ( alokačních jednotek ). Cluster je nejmenší přidělená jednotka paměti na nosiči. Jeho velikost bývá různá, a to podle konstrukce a celkové kapacity média. Typická velikost clusteru je 2 kB, což znamená, že libovolně malý soubor zabere minimálně 2 kB. Proto je vhodné soubory sdružovat do komprimovaných archivů. Navíc se ještě zvýší přehlednost uložení souborů na pevném disku. Jedním z dalších důvodů komprimace je potřeba dálkového přenosu dat. Komprimovaná data se samozřejmě v počítačových sítích přenášejí rychleji a tak při přenosu několikamegabytového souboru po telefonních linkách za pomoci modemu můžeme předchozí komprimací ušetřit až několik desítek minut. A to nemluvíme o ušetřených poplatcích za telefon. Při kratším přenosu se také minimalizuje nebezpečí přerušení spojení během přenosu. K výše uvedeným důvodům mluvícím jasně pro komprimaci můžeme přidat možnost rozdělení komprimovaných souborů do bloků, které mají velikost shodnou s kapacitou běžně používané diskety. Prakticky všechny dnes používané komprimační programy nabízejí tuto funkci a často se jedná o jedinou možnost, jak přenést například 3MB soubor z jednoho počítače na druhý. Shrnutí: Komprimační programy jsou programy schopné zakódovat datové soubory do podoby, kdy je velikost těchto souborů menší ve srovnání s původní velikostí. Zároveň musí být schopny data dekódovat do původní podoby. Pro komprimaci dat svědčí tyto důvody: • úspora místa na paměťovém médiu, 273 Počítačové systémy • • • • zvýšení přehlednosti uložených souborů, zvýšení rychlosti dálkového přenosu dat, ušetření finančních prostředků při dálkovém přenosu dat, možnost rozdělení komprimovaných souborů do bloků požadované velikosti. Otázky: Vymezte pojem komprimační program. Představuje označení komprimační program totéž co archivační program? Je možné MS Word považovat za komprimační program? Jaké znáte komprimační programy? Který komprimační program používáte a proč? 12.2 Parametry komprimačních programů a jejich testy Tato krátká kapitola nám pomůže nalézt odpověď na základní otázku každého uživatele komprimačních programů: „Jaký komprimační program je nejlepší?“ Seznámíte se také s pojmy kompresní poměr, rychlost komprese a dekomprese. Při řešení tohoto problému je důležité si uvědomit, že komprimovaná data jsou různého charakteru , a proto vyžadují rozdílný přístup ke kompresi. Je zřejmé, že textová data se svým charakterem budou lišit od grafických a rozdílnost těchto dat bude upřednostňovat v tom kterém případě konkrétní komprimační algoritmy. Většinou lze předpokládat, zda datový soubor bude obsahovat dlouhé texty stejných dat ( například v grafických souborech ) a pak je možné použít algoritmy vyhledávající dlouhé řady dat, které jsou posléze nahrazeny jediným symbolem. Jindy jsou zase známy pravděpodobnosti, se kterými se v datech vyskytují jednotlivé symboly. Pak je jednou z možností použít frekvenčně závislé kódování založené na přepisu častěji užívaných prvků abecedy na kratší bitové posloupnosti a méně často vyskytující se prvky na delší bitové posloupnosti. Z výše uvedených skutečností vyplývá, že neexistuje jednoznačná odpověď na otázku, který komprimační program je nejlepší. Každý komprimační program je založený na jednom algoritmu a ten bývá pro posloupnosti dat určitého typu vhodnější a pro jiné pak méně vhodný. Každý komprimační algoritmus je navržen tak, že hledá a využívá pro kompresi dat určitý řád v uložených datech. Tímto řádem může být opakování sekvence znaků, identifikace dlouhých bloků stejných dat a další. O vhodnosti použitého komprimačního programu vypovídá test, který ovšem sleduje tvz. objektivní výkonové ukazatele – parametry: • rychlost komprese • rychlost dekomprese • kompresní poměr Rychlost komprese (komprimace) je dána časem potřebným pro sbalení do komprimované podoby. Čas potřebný pro kompresi různými komprimačními programy se u rozsáhlých souborů liší o celé minuty, což není zanedbatelné. Rychlost dekomprese je pak čas potřebný k rozbalení komprimovaného souboru do původní podoby. Tento parametr je ze všech tří nejméně důležitý, protože doba potřebná k dekompresi bývá téměř u všech komprimačních 274 Počítačové systémy programů kratší, než doba potřebná ke kompresi. Proto tento parametr nebývá omezujícím faktorem při výběru komprimačního programu. Kompresní poměr je nejdůležitější a nejsledovanější. Bývá udáván v několika různých formách, které při správné interpretaci vystihují stejnou skutečnost.Kompresní poměr bývá udáván jako: 1. Poměr mezi velikostí komprimovaného a původního souboru. Jedná se o procentuální vyjádření velikosti komprimovaného souboru vzhledem k původnímu souboru. Čím je menší hodnota procentuálního vyjádření, tím je výsledek komprimace lepší. 2. Někdy je kompresní poměr nahrazen doplňkem předcházejícího údaje do 100%. V tomto případě naopak čím vyšší je hodnota procent, tím je výsledek komprimace lepší. 3. Kompresní poměr se také vyjadřuje převráceným zlomkem: velikost dekomprimovaných dat ke komprimovaným. Pokud kompresní program zkomprimuje soubor o původní velikosti 200kB na 50kB, je kompresní poměr 25% Druhá forma zápisu by byla charakterizován kompresním poměrem 75%. Poslední možností zápisu by byl kompresní poměre 4:1. V praxi se můžeme setkat se všemi výše uvedenými typy kompresních poměrů. Další parametr udávající výkon kompresních programů vychází z požadavku nejlepšího kompresního poměru za přiměřený čas. Jedná se o poměr rychlost komprimace / kompresní poměr. Tento parametr často nebývá v testech komprimačních programů zmiňován. Na soubor parametrů, které charakterizují výkon určitého komprimačního programu ve vztahu k určitému souboru má kromě použitého komprimačního algoritmu vliv mnoho dalších faktorů. Především se jedná o typ hardwaru, na kterém byl test proveden. Z tohoto hlediska je nutné brát v úvahu například : • taktování procesoru, • přístupovou dobu pevného disku a jeho fragmentaci, • velikost a přístupovou dobu paměti RAM, • používání vyrovnávací paměti cache, • typ operačního systému pod kterým byly komprimované soubory testovány. Tyto parametry obvykle neovlivní dosažený kompresní poměr, ale projeví se na všech ostatních parametrech. Pokud má být test komprimačních programů opravdu použitelný, měl by kromě názvu a verze testovaných komprimačních programů obsahovat minimálně následující údaje: • typ testovaných dat (textová, grafická,..), • celková nekomprimovaná velikost původního souboru, • údaj o uspořádání souborů do stromové struktury, • typ počítače, na kterém byl test proveden, • operační systém, na kterém byl test proveden. Při volbě komprimačního programu se nemusíme řídit jen objektivními výkonovými ukazateli. Neméně důležitým hlediskem je i komfort ovládání těchto programů a další archivační funkce. Například prohlížení textových a grafických souborů uložených v komprimovaných archivech, možnost oddělení 275 Počítačové systémy manipulace s jednotlivými soubory archivu. Většina moderních komprimačních programů uživateli také nabízí volbu, zda chce vytvořit archiv s nejlepším kompresním poměrem, nejkratší dobou komprese atd. Shrnutí: Vhodný komprimační program vybíráme podle typu dat určených ke komprimaci. Data různého charakteru totiž vyžadují rozdílný přístup ke kompresi a každý kompresní algoritmus je navržen tak, že hledá a využívá pro kompresi dat určitý řád v uložených datech. O vhodnosti zvoleného programu objektivně vypovídají parametry výkonu: • rychlost komprese, • kompresní poměr. První dva parametry jsou ovlivňovány typem použitého hardware. Jedním z hledisek výběru kompresního programu by měl být uživatelský komfort ovládání těchto programů. Úkoly: 1) Zapište kompresní poměr ve všech formách pro případ, kdy je soubor o původní délce 400 kB zkomprimován na 160 kB. 2) Při komprimaci je dosaženo 30% kompresního poměru. Co tento údaj znamená? 3) Interpretujte zápis kompresního poměru 5:1 12.3 Základní druhy a přístupy v kodování Než ukončíme obecné povídání o základních principech komprimování, je nezbytné se zmínit o druzích a přístupech v kódování. Po prostudování následujícího textu zjistíte, jaký je rozdíl mezi ztrátovou a bezztrátovou, fyzickou a logickou, adaptivní a neadaptivní komprimací. Zároveň si osvojíte tyto pojmy. Komprimační algoritmy můžeme rozdělit podle různých kritérií. V podstatě existují dva zcela rozdílné principy komprese dat: bezztrátová a ztrátová. Bezztrátová komprimace se používá tam, kde si nelze dovolit jakoukoliv ztrátu dat – u binárních a textových souborů. Ztráta i jen jediného bitu u binárního souboru vede v naprosté většině případů ke katastrofě v podobě další nepoužitelnosti tohoto souboru. U textových a grafických situace tak kritická není. Bezztrátovou komprimaci využívají například tyto programy: ZIP, RAR, ARJ atd..Touto komprimací se budeme podrobněji zabývat v následujících kapitolách. Ztrátová komprimace se používá u souborů, u nichž nevadí ztráta dat. Jsou to redundantní soubory (soubory s nadbytečným množstvím informací). Jedná se především o obrázky, zvuková data a video. Obrázky mohou být uloženy v různých formátech a vy jste si určitě už všimli, že obrázek BMP zabírá na paměťovém médiu více místa, než obrázek ve formátu JPEG, PCX, GIF atd.. Tyto formáty v sobě totiž zahrnují již kompresi dat. Většina obrázků 276 Počítačové systémy převedených do digitální formy obsahuje nadbytečné informace, které není lidské oko schopno postihnout. Lidské oko má omezenou rozlišovací schopnost ve vztahu k barevné hloubce a k obrysovým detailům. Barvy blízko ležících bodů průměruje. I když ztrátová komprimace vede ke „ztrátě“ nadbytečných dat, je kvalita obrázků měřená lidským zrakem stále stejná. Náročnost obrázků na paměť lze touto metodou snížit i 30x. Podobný způsob komprimace se používá i zvuků a videa. U videa například často postačí uchovávat rozdíly dvou následujících obrázků a z nich zpětně sestavovat celý film. Kromě speciálního softwaru pro ztrátovou komprimaci využívají nedokonalosti lidských smyslů i některá hardwarová zařízení. Ta fungují tak, že zvukovou a obrazovou informaci, kterou lidské smysly nejsou schopny rozeznat neukládají ani nepřenáší – ztrácejí ji cestou. Již nyní se ukazuje, že ztrátová komprese obrazu a zvuku je velice důležitá a v budoucnosti bude ještě významnější, díky masovému nástupu digitálních obrazových technologií (videokonference, obrazový telefon…). Ty totiž budou správně fungovat jedině při vysoké rychlosti přenosu a to bude zase možné jen při použití ztrátové komprimace přenášených dat. Hardwarovými aspekty komprimace se však tento text nezabývá. Výše uvedené rozdělení komprimací je zásadní, ale přesto existují ještě další kritéria dělení komprimačních algoritmů. Všechny kompresní algoritmy převádějí data do kompaktnější formy, která má stejnou informační hodnotu jako původní data. Tuto skutečnost zajišťuje použití logické nebo fyzické komprimace. Rozdíl mezi nimi spočívá v tom, zda komprimační algoritmus přihlíží k logické hodnotě komprimovaných dat a nebo ne. Logická komprimace používá logické substituce sekvence znaků jinou, úspornější řadou. Například ODS – Občanská demokratická strana, ZŠ – základní škola atd.. Fyzická komprese probíhá bez zřetele na logiku dat, se kterými pracuje. Vytváří se při ní nová sekvence znaků, jejíž vztah k původním datům lze rozpoznat výhradně s použitím dekompresního algoritmu. Bez jeho znalosti nelze data dekomprimovat. Všechny dále popsané kompresní algoritmy v tomto textu využívají fyzickou komprimaci dat. Další kritérium rozdělení je založeno na porovnávání množství práce, která se podle algoritmu vykoná při kompresi a dekompresi dat. Pokud je doba potřebná pro kompresi a dekompresi dat přibližně stejná , jedná se o symetrickou kompresi. V opačném případě se jedná o kompresi asymetrickou. Některé algoritmy jsou záměrně konstruovány jako asymetrické. Používanější jsou algoritmy, jejichž práce při komprimaci je delší než při dekomprimaci. Tyto algoritmy se používají ke komprimaci souborů, se kterými často pracujeme. Algoritmy, které naopak využívají delší práce při dekomprimaci, se používají méně často. Používají se především při vytváření záložních kopií dat v pravidelných intervalech, u nichž se přepokládá, že se již s největší pravděpodobností nebudou používat. Podle přizpůsobení se charakteru dat se komprimační algoritmy dělí na adaptivní a neadaptivní. 277 Počítačové systémy Neadaptivní algoritmy jsou určeny výhradně pro komprimaci specifického druhu dat a obvykle obsahují předdefinované slovníky nebo řetězce znaků, jejichž pravděpodobnost výskytu v souborech dat je vysoká. Konkrétním příkladem je Huffmanovo kódování, které bude popsáno dále. Použití neadaptivního algoritmu na vhodný typ dat je velmi účinné co do dosaženého kompresního poměru i co do času potřebného ke kompresi a dekompresi dat. Adaptivní algoritmus je schopen dosáhnout určité nezávislosti na komprimovaných datech a neobsahuje žádné statické slovníky řetězců. Adaptivní algoritmus si buduje tyto slovníky dynamicky pro každý komprimovaný soubor dat znovu v průběhu kódování. Příkladem takového algoritmu je Lempel-Ziv-Welch algoritmus, jehož popis je také součástí jedné z dalších kapitol. Adaptivní algoritmy mají širší použití, ale mají také nižší rychlost ve srovnání s neadaptivními algoritmy. Shrnutí: Existují dva rozdílné principy komprimace dat: bezztrátová a ztrátová. Bezztrátová komprimace se používá u binárních a textových souborů, u nichž nelze připustit ztrátu dat. Ztrátová komprimace se používá pro komprimaci obrázků, zvuku a videa, protože u těchto souborů nevadí ztráta některých dat. Komprimační algoritmy lze dělit i podle jiných kritérií na: Fyzické a logické - podle přihlédnutí k logické hodnotě dat. Symetrické a asymetrické – podle práce potřebné ke kompresi a dekompresi dat. Adaptivní a neadaptivní – podle schopnosti přizpůsobit se charakteru dat, se kterými pracují. Otázky a úkoly k zamyšlení: 1) Vyjmenujte základní druhy komprimací. 2) Vysvětlete, proč ztrátová komprimace není vhodná pro komprimaci binárních a textových souborů. 3) Vysvětlete, proč je nevhodné používat bezztrátovou komprimaci pro kompresi zvuku a videa. 4) Vysvětlete rozdíly mezi adaptivní a neadaptivní komprimací, zhodnoťte jejich účinnost. 5) Kdy je vhodné pro komprimaci používat asymetrické algoritmy? 6) Z jakého hlediska vychází rozdělení komprimačních algoritmů na fyzické a logické? 7) U kterého typu komprimačních algoritmů je nutná znalost dekomprimačního algoritmu? 8) Zkuste zařadit podle výše uvedených kritérií vám známé komprimační programy. Pokud se vám podařilo zodpovědět všechny výše uvedené otázky, orientujete se dobře v základní problematice komprimačních programů a můžete přistoupit k dalším částem studijního textu, který vám zprostředkuje konkrétnější informace týkající se podstaty základních bezztrátových komprimačních algoritmů. V opačném případě se ještě jednou vraťte k úvodním kapitolám. 278 Počítačové systémy 12.4 Bezztrátová komprimace Následující kapitola vás srozumitelnou formou seznámí se základními charakteristikami nejužívanějších bezztrátových komprimačních algoritmů a jejich principem. Zároveň je uvede do souvislostí s vámi používanými komprimačními programy. Jednotlivé metody jsou popsány a vysvětleny v samostatných kapitolách a doplněny konkrétními příklady. Bezztrátovou komprimaci (lossyless compression) využívají všechny komprimační programy určené pro komprimaci souborů. Předpokládá se totiž, že pro většinu souborů je nepřípustná jakákoliv ztráta dat v důsledku komprimačního a dekomprimačního procesu. Popis konkrétních komprimačních algoritmů začneme nejjednodušším, a to RLE algoritmem. 12.4.1 RLE (Run – length Encoding) Run - length - Encoding označovaný zkratkou RLE je bezztrátový algoritmus, který je do češtiny někdy překládán jako proudové kódování. Jedná se o algoritmus, který je použitelný pro jakýkoliv druh dat, ale na jejich charakteru závisí dosažený kompresní poměr. Ve většině případů RLE nevykazuje tak dobrých kompresních poměrů jako složitější algoritmy, ale jeho výhodou je snadná instalace, jednoduchost a z toho vyplývající poměrně vysoké rychlosti komprese a dekomprese. Základním principem komprimace RLE algoritmu je zhuštění opakovaných znaků, které se v souboru vyskytují hned za sebou. Řetězec opakujících se znaků se nazývá proud a ten je komprimován do formy jednoho paketu RLE. Paket RLE vždy obsahuje dvě informace: • proudové číslo udávající počet znaků proudu snížený o jedničku, • proudovou hodnotu, která se shoduje s hodnotou opakujícího se znaku v proudu. Soubor obsahuje následující sekvenci znaků : AAAAkkRRRRRm. Zakóduje se do podoby 3A1k4R0m. V uvedené posloupnosti znaků komprimační algoritmus rozpozná 4 proudy a přiřadí jim čtyři pakety. Jsou to 3A, 1k, 4R, 0m.První údaj v paketu je proudové číslo a za ním je proudová hodnota. Na příkladu vidíte, že zmenšení velikosti souboru bylo dosaženo díky proudům, které obsahují více než dva znaky. Pokud se proud skládá jen z jednoho znaku, pak je komprimovaný paket dokonce větší než původní proud dat. Z této skutečnosti vyplývá, na jaká data bude tento algoritmus použitelný a na jaká nikoliv. RLE algoritmus není vhodný pro komprimování textových souborů a většiny binárních souborů, dále se nehodí pro komprimaci fotografií. Metoda RLE je vhodná pro komprimaci jednoduchých obrázků s malou barevnou hloubkou maximálně 256 barev. Takovéto obrázky vznikají například v programu Paintbrush. U nich je možné dosáhnout kompresního poměru 70%. ( to odpovídá komprimaci dat na 30% původní velikosti). Protože RLE má praktický význam pro komprimaci jednoduchých obrázků s malou barevnou hloubkou, zaměříme se při dalším popisu algoritmu výhradně na tato grafická data. Existují tří přístupy k praktické realizaci algoritmu RLE ve vztahu k bitovým mapám jednoduchých obrázků. Ve všech jsou obvykle data předlohy proudově kódována sekvenčním postupem, který 279 Počítačové systémy přistupuje k datům jako k jednorozměrnému poli dat. Bitová mapa se začíná číst a komprimovat od levého horního rohu až do pravého dolního rohu. Při komprimaci je vhodné udržovat informaci o koncích jednotlivých řádků ( sloupců ) bitové mapy. Tyto značky lze použít, pokud je třeba rozbalit jen část obrázku. Praktické přístupy se dělí podle typu základních datových prvků tvořících proudy: • bitová úroveň, • bytová úroveň, • pixelová úroveň. Bitová úroveň rozeznává jen dva proudy znaků: proud 0 a proud 1. Paket je tvořen jediným bytem logicky rozděleným do dvou částí. Nejvýznamnější bit každého bytu určuje proudovou hodnotu a sedm dalších proudové číslo. Již dříve jsme si řekli, že proudové číslo je sníženo o jednu. Důvodem je skutečnost, že délka proudu musí být vždy v rozsahu 1 – 128 znaků, 7 bity lze totiž zapsat číslo 0 – 127. V případě, že původní nekomprimovaná data obsahují proud delší než 128 znaků, musí být při komprimaci rozdělen na více proudů. Tato metoda je prakticky účinná pouze pro monochromatické obrázky. Pokud budeme byt s hodnotou 151 interpretovat jako paket kódování RLE na bitové úrovni, zastupuje tento paket proud jedniček dlouhý 24 znaků. Číslo 151 v desítkové soustavě má totiž ve dvojkové soustavě vyjádření 10010111. Nejvyšší bit je jednička a nižších sedm bitů představuje číslo 23 v desítkové soustavě. Bytová úroveň kóduje proudy opakujících se bytových hodnot a nevšímá si dělení na bity nebo hranic 16bitových ( 32bitových ) slov. Paket se skládá ze dvou bytů: první udává proudové číslo v rozsahu 0 – 255 a druhý byt proudovou hodnotu ve stejném rozsahu. Bývá doplněn o schopnost ukládat přesné nekódované bytové proudy do kódovaného toku dat. Metoda RLE na úrovni bytů je vhodná pro obrázky, které jsou uloženy ve formě 1 byt na pixel. U pixelové úrovně je jediný pixel reprezentován více než jedním bytem . Informaci o počtu bytů je možné získat v hlavičce grafického souboru. Velikost paketu RLE se liší podle počtu bytů na pixel. Jestliže obrázek podporuje schéma „3 bytes per pixel“ ( tři byty na pixel ), bude paket RLE čtyřbytový. První byt udává proudové číslo, další tři proudové hodnoty. Tato modifikace je vhodná pro složitější obrázky. Některé obrázky používají pro zobrazení pixelu počet bitů, který neodpovídá celým bytům a pak je možné RLE paket vytvářet na bitové úrovni a tím zlepšit kompresní poměr. Existují i další modifikace metody RLE. Jednou z nich je modifikace, která se snaží vyhnout záporné kompresi nastávající při velkém počtu jednoznakových proudů v datech předlohy. RLE paket v tomto případě je 3 bytový: první byt tvoří příznakovou hodnotu, druhý byt proudové číslo, třetí proudovou hodnotu. Pokud komprimační program zjistí jedno-, dvou- nebo tříbytový proud, zapíší se hodnoty přímo do komprimovaného toku dat. Při dekomprimaci se pak podle 280 Počítačové systémy příznaku v 1. Bytu rozhodne, zda se paket dekóduje podle údajů proudového čísla a hodnoty nebo se v opačném případě přímo přidá do nekomprimované podoby souboru. Nevýhodou je vyšší kompresní poměr u některých dat. Další problémy pak nastávají, jestliže nekódovaný tok dat obsahuje hodnotu, která se shoduje s hodnotou vyhrazenou pro příznak. Další modifikace RLE komprese představuje forma vertikálních replikačních paketů nebo také pakety s opakovanými vzorkovými řádky. Tato forma se hodí pouze na druhy dat, u nichž se předpokládá opakování celých řádků. U této modifikace dosahujeme zlepšeného kompresního poměru vyjádřením toho, zda se opakuje celý předchozí řádek. Předpokládejme, že jeden řádek obrázku je složen z dat uložených do 512 bytů a všechny pixely jsou stejné. Při dvoubytovém schématu RLE se řádek zakóduje do 8 bytů (maximální kódovatelný proud 128 bytů). Pokud má stejnou barvu prvních 100 řádků předlohy, zakóduje se těchto 100 řádků do 800 bytů. Použijeme-li metodu vertikálních replikačních paketů stačí na 2. až 100. řádek jeden paket a na celou komprimaci tedy 10 bytů. Tato metoda je využívána grafickými formáty WordPerfect Graphics Metafile (WPG) a GEM Raster (IMG). Shrnutí: RLE představuje jeden z nejjednodušších komprimačních algoritmů. Základním principem komprimace je to, že se každá sekvence stejného znaku původních dat uloží ve formě nesoucí informaci, o který znak se jedná (proudová hodnota) a o počtu opakování znaku (proudové číslo). Nevýhody: Úzká oblast dat, na kterých tato metoda dosahuje dobré kompresní poměry. Komprimace RLE je vhodná pouze pro jednoduché obrázky s malou barevnou hloubkou. Nehodí se ani pro složitější obrázky ani pro textové nebo binární soubory. Výhody: Jednoduchost algoritmu a jeho snadné použití vedoucí k vysoké komprimační a dekomprimační rychlosti. Otázky: 1) Vysvětlete základní princip RLE kódování. 2) Uveďte pro jaký typ dat je tato komprimační metoda vhodná a proč. 3) Uveďte pro jaký typ dat naopak tato metoda vhodná není a proč. 4) Popište tři konkrétní způsoby realizace RLE algoritmu. 5) Který formát obrázků využívá tohoto algoritmu? Úkol: 4) Zakódujte řetězec znaků BBBBBaaaPPPkl RLE algoritmem. Jaká proudová čísla a proudové hodnoty budou mít jednotlivé pakety? 12.4.2 Lempel-Ziv-Welch algoritmus Cílem následující kapitoly je vysvětlit základ nejrozšířenějšího komprimačního algoritmu, který používají komprimační programy (např. ARJ, PKZIP, ZOO, LHA) i různé grafické formáty obrázků. Se známíte se také s pojmy jako LZ77, LZ78, které označují další formy tohoto algoritmu. 281 Počítačové systémy Základním principem Lempel-Ziv- Welch algoritmu je vyhledávání stejných posloupností bytů. Z odkazů na tyto posloupnosti algoritmus buduje datový slovník. Schéma komprimace je následující: Jestliže se posloupnost bytů ve slovníku nevyskytuje je přidána do vytvářeného slovníku a nezměněna zapsána do komprimovaného toku dat. Jestliže se posloupnost bytů ve slovníku již nachází, zapisuje se do komprimovaného toku dat pouze zástupná slovníková hodnota, která odpovídá nalezené vstupní posloupnosti. Zástupná hodnota je menší než původní, a proto dochází ke kompresi. Dekomprese je inverzní proces, algoritmus čte komprimovaný tok dat a vytváří si datový slovník posloupností bytů. Pro potřeby dekomprimace není bezpodmínečně nutné uchovávat datový slovník vytvořený při komprimaci. Existují dvě základní schémata tohoto komprimačního algoritmu. Původně byly vytvořeny algoritmy LZ77 a LZ78 pány Abrahamem Lempelem a Jakobem Zivem. Modifikací LZ78 pro potřeby hardwarových zařízení vznikla dnešní podoba Lempel-Ziv-Welch algoritmu. Komprimační část algoritmu LZ77 se pokouší hledat nejdelší opakující se posloupnosti znaků. Pokud se taková posloupnost znaků nalezne, zapíše se jen pomocí odkazu na předcházející výskyt řetězce. Svůj dynamický slovník vytváří pomocí odkazů do již zkomprimovaného textu. Řetězec „leze po železe“ je zakódován do podoby: leze po že[10,4]. Znaky [10,4] považujeme za schématicky zapsaný ofset, který udává, že z předcházejících deseti znaků má dekodér vybrat čtyři. Podstatou tohoto algoritmu je použití „posuvného okna“, které obsahuje koncovou část již přečteného a zkomprimovaného textu. V tomto okně algoritmus vyhledává co nejdelší řetězec odpovídající řetězci na vstupu. V kladném případě jej zakóduje v podobě odkazu, který musí obsahovat ukazatel na začátek podřetězce a jeho délku. Aby kompresní algoritmus dosáhl co nejlepšího kompresního poměru, musí být okno přiměřeně veliké (většinou několik kB). Posuvné okno má dvě části: prohlížecí okno a aktuální okno. Na počátku algoritmu odpovídá posuvné okno aktuálnímu, v posuvném okně se pak najde co nejdelší počáteční podřetězec (předponu) řetězce z aktuálního okna začínající v prohlížecím okně. Ten se zakóduje v podobě ukazatele na počátek podřetězce v prohlížecím okně a jeho délku. Dvojici znaků: ukazatel, délka se od jednotlivých znaků na výstupu rozeznává nejčastěji prostřednictvím zápisu LZSS: <1, ukazatel,délka >, <0, jednotlivý znak>. Od výše uvedeného algoritmu se odvozuje celá řada modifikací nazývaná třída algoritmů LZ77. Dekomprimace zkomprimovaného souboru touto metodou je rychlá a jednoduchá. Když ukazatel najde ofset udávající ukazatel a délku řetězce, tento řetězec zkomprimuje na výstup. Metoda LZW, která patří do třídy algoritmů LZ78 používá odlišně slovníkové odkazy.Vytváří dynamický slovník opakujících se řetězců v průběhu komprimace a různé modifikace se liší ve způsobu vytváření tohoto slovníku. Podstata slovníkové komprese spočívá v tom, že algoritmus postupně 282 Počítačové systémy rozpoznává a ukládá do tabulky řetězce znaků a tyto řetězce nahrazuje ve výstupním textu přirozenými čísly z předem definovaného intervalu. Definice intervalu je závislá na charakteru dat. Např. při kódování ASCII je prvních 255 čísel vyhrazeno pro zobrazení samostatných znaků z původního souboru a další čísla se přidělují nalezeným řetězcům. Přitom se vytváří tabulka již rozeznaných řetězců, která je v paměti. Když je slovník zaplněn dříve než je přečten celý soubor, je smazán a začíná se vytvářet znovu. Smazáním slovníku se neztrácí žádná informace, jen se algoritmus připraví o možnost využití smazaných odkazů. Při kompresi se často zjišťuje, zda je již nějaký řetězec ve slovníku, a proto je součástí algoritmu i některá efektivní vyhledávací metoda. Pro větší názornost a pro lepší pochopení algoritmu si uveďme příklad konkrétního zakódování vstupního řetězce znaků: WEB/WEB/WEB!Běh algoritmu začíná s prázdným slovníkem a řetězcem w obsahujícím první znak W zdrojového souboru. Po přečtení dalšího znaku E zjistí, zda se řetězec W+E vyskytuje ve slovníku. Pokud ne zapíše se nový odkaz na řetězec do slovníku. Pokud řetězec obsahuje jediný znak,bude do slovníku zanesen jediný znak. Do slovníku se vlastně zapisují čísla větší než 255. Postup vytváření výše uvedeného řetězce je zachycen v tabulce. Řetězec W E B / W WE B B/ W WE WEB ! Přečtený znak E B / W E B / W E B ! (eof) Výstup Nová položka ve slovníku W W E B / (256)=WE (257)=EB (258)=B/ (259)=/W (256) (260)=WEB (258) (261)=B/W (260) ! (262)=WEB! Dekompresní část algoritmu čte postupně kódy komprimovaného souboru, zapisuje příslušné řetězce na výstup a přidává nové řetězce do slovníku. Do slovníku je vždy přidán řetězec reprezentovaný předcházejícím kódem a první znak z řetězce s aktuálním kódem. Pro případ, že by byl přečten kód, kterému ještě nebyl přiřazen řetězec, je do slovníku přidán řetězec skládající se z předcházejícího řetězce a jeho posledního znaku. Slovníky vznikající při komprimaci i dekomprimaci jsou stejné. Protože LZW algoritmy nemusí zdrojová data ani zkomprimovaná data uchovávat a nezpracovávají data po blocích, využívají se také u takových zařízení, jimiž data jen procházejí a je žádoucí, aby byla zpracovávána rychle. 283 Počítačové systémy Shrnutí: Skupina komprimačních programů známá pod označením Lempel-Ziv-Welch (LZW) algoritmus je velice rozšířená jak při bezztrátové komprimaci grafických, tak i binárních nebo textových dat. Tento typ komprese používá například grafický formát GIF, TIFF a programy ARJ, PKZIP. LZW je také součástí modemových standardů pro přenos dat. Základním principem tohoto kompresního algoritmu je vyhledávání stejných posloupností bytů v datovém souboru. Zápisem odkazů na tyto posloupnosti dat algoritmus buduje datový slovník. Každá další výskyt takové posloupnosti bytů se zakóduje jedním ze dvou postupů: Odkazem na předcházející výskyt posloupnosti Použitím slovníkového odkazu spojeného s příslušným řetězcem. Výhody: Velmi dobrý kompresní poměr. Rychlá komprese i dekomprese a nevelké nároky na paměť. Adaptivní metoda vytvářející dynamický substituční slovník. Tento slovník není nutné ukládat pro potřeby dekomprese. Možnost kontinuálního vysílání zkomprimovaných dat bez nutnosti čekání na dokončení komprimace celého bloku dat. Nevýhody: Rychlý nárůst slovníkových kódů odkazujících na řetězce původního souboru, což vede někdy k zaplnění paměti určené pro slovníky. Z toho vyplývá nutnost smazání slovníku a vytváření slovníku nového, který nemůže využívat původní odkazy. U větších slovníků pak zase narůstá doba potřebná k vyhledávání řetězce v tabulce. Otázky: 4) Vysvětlete podstatu LZW algoritmu. 5) Pro které typy souborů je tento komprimační algoritmus vhodný? 6) Které grafické formáty využívají LZW algoritmus? 7) Proč se tento algoritmus stal součástí modemových přenosových standardů? 8) Které komprimační programy vycházejí z tohoto algoritmu? 9) Shrňte výhody a nevýhody LZW algoritmů. 12.4.3 Huffmanovo kódování a jemu podobné algoritmy V závěrečné kapitole vysvětlíme podstatu posledního významného algoritmu, který řadíme mezi bezztrátové a tím je Huffmanovo kódování. Zároveň uvedeme další s ním příbuzné algoritmy jako jsou Shannon- Fanovo a nejnovější aritmetické kódování. Tak jako v předchozích kapitolách vymezíme oblast použití těchto komprimačních algoritmů a posoudíme jejich výhody a nevýhody. Huffmanovo kódování Je zástupcem nejznámější skupiny algoritmů, které pracují na základě četností znaků v kódovaných datech. Z toho je zřejmé, že tyto algoritmy jsou určeny především pro komprimování textových souborů. 284 Počítačové systémy Základní myšlenkou je uplatnění následujícího postupu: algoritmus zjistí pravděpodobnosti výskytů jednotlivých znaků a každému přiřadí jedinečný kód. Ten má různou bitovou délku. Přiřazení jednotlivých kódů musí respektovat požadavek na přiřazení bitově kratších kódů častěji se vyskytujícím znakům a bitově delších kódů znakům méně častým. Pak algoritmus postupně načítá znaky souboru a přiřazuje jim předem přiřazené kódy a zapisuje je na výstup. Jednotlivé varianty tohoto algoritmu se liší především způsoby přiřazování jednoznačných kódů znakům vstupního souboru. Kódy přiřazené podle četnosti výskytu jednotlivým znakům souboru jsou definovány binárním stromem. Vytvoření binárního stromu vysvětlíme na konkrétním příkladu. Komprimujeme soubor, který obsahuje pouze následující znaky: A, 8, 0, K, R. Při analýze pravděpodobnosti výskytu těchto znaků byly zjištěny tyto údaje: Znak A se v souboru vyskytuje s pravděpodobností 50%. Znak 8 se v souboru vyskytuje s pravděpodobností 12,5%. Znak 0 se v souboru vyskytuje s pravděpodobností 6,25%. Znak K se v souboru vyskytuje s pravděpodobností 6,25%. Znak R se v souboru vyskytuje s pravděpodobností 25%. Binární strom vytváříme od koncových listů stromu, tj. od znaků s nejmenší pravděpodobností. Vybereme dva znaky s nejmenší pravděpodobností a uděláme z nich dva koncové listy stromu. Pak vybereme ze zbývajících zase znak s nejnižší pravděpodobností, uděláme z něj list a tak postupujeme dále až ke kořeni stromu. Každý uzel binárního stromu představuje součet pravděpodobností všech listů ve struktuře pod ním. Kódy jednotlivým znakům se přiřazují postupem po stromové struktuře, při pohybu od uzlu k uzlu zaznamenáváme jedničku vždy při cestě vpravo dolů a nulu při cestě vlevo dolů. Podle binárního stromu přiřadíme následující kódy: A-1, 8-011, 0-0100, K0101, R-00. Uvedeným způsobem je možné binárních stromů vytvořit více, ale výsledná komprimovaná délka souboru bude vždy stejná, protože počet bitů přiřazených jednotlivým znakům bude ve všech případech stejný. Dekomprese vyžaduje znalost původního binárního stromu, ale je jednoduchá. Algoritmus čte kód bit 285 Počítačové systémy po bitu a podle hodnoty bitu postupuje po binárním stromu od kořene až po list představující znak. Nevýhodou tohoto algoritmu je skutečnost, že binární strom je možné bez problémů sestavit jen v případě, že pravděpodobnosti výskytu všech znaků vstupního souboru jsou mocninou čísla 1/2. Jenom v tomto případě totiž každé vyšší patro stromu obsahuje uzel s dvojnásobnou pravděpodobností výskytu proti listům umístěným o patro níž. Jen při dodržení této zásady je při komprimaci dosaženo ideálního kompresního poměru. Ve skutečnosti tato podmínka není splněna v podstatě nikdy, a proto se pravděpodobnosti výskytu znaků zaokrouhlují. Při zaokrouhlování však může dojít k poměrně velkým nepřesnostem. Například znak s pravděpodobností 22% musí být zaokrouhlen na 12,5%. Tyto nepřesnosti pak zhoršují kompresní poměr a algoritmus tvorba binárního stromu se stává složitější. 12.4.4 Shannon-Fanovo kódování Je podobné Huffmanovu kódování. Rozdíl mezi nimi spočívá v tvorbě binárního stromu. Konstrukce binárního stromu je v tomto případě jednodušší a dá se shrnout do dvou kroků: • Soubor symbolů rozděl na dvě skupiny se stejnou nebo co nejpodobnější pravděpodobností výskytu znaků v obou skupinách. První skupině se přiřadí symbol binární nuly a druhé binární jedničky. V předchozím případu by po takovém rozdělení první skupina obsahovala znak A a druhá skupina znaky 8, 0, K, R. • Opakuj první krok na všech dosud vytvořených skupinách tak dlouho, až každá skupina bude obsahovat jen jediný znak. Při vytváření stromu v Shannon-Fanově kódování se postupuje naopak - od kořene k listům a v některých případech může použít několik bitů navíc, zatímco Huffmanova metoda při správném použití generuje kódy optimální. V Shannen-Fanově variantě je kód příslušející ke znaku A reprezentován jedním bitem a všem ostatním znakům je přiřazen kód tříbitový. Tak se vlastně smaže rozdíl v pravděpodobnosti výskytu znaku 5% a 22%. 286 Počítačové systémy 12.4.5 Aritmetické kódování Aritmetické kódování odstraňuje nedostatek Huffmanova kódování, které zajišťuje optimální kompresní poměr pouze pro pravděpodobnosti jednotlivých znaků vyjádřených jako mocniny 1/2. Aritmetické kódování odstraňuje tento nedostatek tak, že celou zprávu kóduje jako jediné kódové slovo, jako číslo z intervalu 〈 0,1 ). Na začátku kódování uvažujeme celý interval. Jak se zpráva prodlužuje, zužujeme postupně interval a dolní a horní mez nově vytvářeného intervalu se k sobě přibližují. Nakonec stačí zapsat jediné číslo z výsledného intervalu a to samo o sobě reprezentuje celou zprávu. Algoritmus komprese můžeme zapsat do několika kroků: • Zjištění pravděpodobnosti výskytu jednotlivých znaků ve zdrojovém souboru. • Rozdělení intervalu na podintervaly, jejichž vzájemný poměr velikostí odpovídá poměru pravděpodobností jednotlivých znaků. • Uložení tohoto základního intervalu. • Vlastní komprese víceznakové zprávy.Ta bude probíhat tak, že se nejprve vybere první znak vstupního souboru a ten zúží interval 〈 0,1) na podinterval příslušející tomuto znaku. Tento podinterval bude dělen stejně jako první podle načteného znaku.Postup se opakuje tak dlouho, až bude načten poslední znak. • Posledním bodem je vybrání kteréhokoliv zlomku náležejícího do výsledného intervalu a jeho převedení do binární formy. Pomocí aritmetického kódování zakódujte tříbytovou zprávu obsahující znaky „XXY“. Podle prvního bodu zjistíme , že zpráva obsahuje pouze dva znaky. Pravděpodobnost výskytu znaku X je 2/3, pravděpodobnost znaku Y je 1/3. V dalším kroku rozdělíme v tomto poměru interval 〈 0,1) a zapamatujeme si toto rozdělení. Načteme první znak souboru a zjemníme původní interval na podinterval 〈 0,2/3). Ten opět rozdělíme v poměru 2:1 a dělícím bodem bude v tomto případě bod 4/9. Načteme další znak, zase X, které podinterval na 〈 0,4/9). Ten zase rozdělíme v poměru 2:1, dělícím bodem je 8/27. Posledním znakem je písmeno Y a to zase zúží interval na 〈8/27;4/9). Ještě musíme vybrat hodnotu z intervalu, která převedena do binární formy bude reprezentovat vstupní řetězec. Vybereme číslo 3/8. V následujícím diagramu jsou zobrazeny všechny možnosti kódování našeho řetězce: 287 Počítačové systémy Dekomprimace bude vypadat následovně: Načteme kód 3/8, který reprezentuje vstupní hodnotu znaku. Tento zlomek patří do intervalu 〈 0,2/3), kterému odpovídá znak X.Zapíšeme hodnotu na výstup. Nová hodnota kódu bude (3/80)/(2/3)=4/9. 4/9 náleží opět do intervalu 〈0,2/3).Druhý znak na výstupu bude zase X. Další hodnota kódu bude (4/9-0)/(2/3)=2/3. Zlomek 2/3 leží v podintervalu 〈2/3;1) a odpovídá znaku Y. Víme, že původní řetězec měl tři znaky, a proto dekomprimace končí. Pro potřeby dekomprimace je nutné předat dekomprimační části algoritmu také poměry pravděpodobností jednotlivých znaků a počet znaků původní zprávy. Dekomprese pak začíná načtením rozdělení intervalu 〈0,1) na podintervaly podle poměru pravděpodobností výskytu jednotlivých znaků a počtu znaků.Další postup bude odpovídat následujícím krokům: • Vybereme podinterval intervalu 〈 0,1), tak aby kód náležel do tohoto intervalu. • Na výstup zapíšeme znak náležející svou pravděpodobností do tohoto intervalu. Převádění aritmetického kódování do počítačové praxe je náročné a potýká se s řadou problémů, z nichž nejzávažnější je potřeba konverze reálných čísel na bitové vyjádření. Tyto operace musí být emulované softwarově a důsledkem je poměrně dlouhá doba zpracování. Dalším problémem je zjištění pravděpodobnosti výskytu jednotlivých znaků, což se řeší sekvenčním načítáním celého souboru a vypočtením pravděpodobností z absolutního počtu výskytů. Pokud se bude jednat o textové soubory, je možno využít statických tabulek frekvencí jednotlivých znaků v různých jazycích. Shrnutí: Huffmanovo kódování, Shannon-Fanovo kódování a aritmetické kódování tvoří rodinu příbuzných komprimačních algoritmů založených na využití pravděpodobností výskytu jednotlivých znaků nebo jejich posloupností v komprimovaných datech. Žádná z těchto metod se příliš nepoužívá samostatně, ale dosahuje velmi dobrých výsledků v kombinaci s některou 288 Počítačové systémy slovníkovou metodou (LZ77, LZ78, LZW). Samostatně má toto kódování praktický význam především při použití na textových souborech. Aritmetické kódování svým principem obchází nevýhodu Huffmanova a Shannon-Fanova kódování, která dosahují optimálního kompresního poměru pouze při hodnotách pravděpodobností výskytu jednotlivých znaků, které jsou celočíselnou mocninou čísla 1/2. Výhody: Velmi dobré kompresní poměry ve spojení se slovníkovou metodou. Poměrně jednoduchý algoritmus dekomprimace. Nevýhody: Huffmanovo a Shannon-Fanovo kódování je nejefektivnější při hodnotách pravděpodobností výskytu jednotlivých znaků, které jsou celočíselnou mocninou čísla 1/2. Aritmetické kódování má vysoké nároky na technické vybavení počítače. U aritmetického kódování je nutná softwarová manipulace s čísly o desetinném rozvoji na 20-30 desetinných míst, přitom je nutné vyvarovat se jakéhokoli zaokrouhlování – relativně dlouhá komprese. Otázky: 1) Vysvětlete podstatu Huffmanova kódování. 2) Čím se liší Huffmanovo kódování od Shannon-Fanova kódování? 3) Pro jakou komprimaci dat se tyto algoritmy využívají? 4) Vysvětlete podstatu aritmetického kódování . 5) Shrňte nevýhody aritmetického kódování. Korespondenční úkoly: Zpracujte krátké pojednání srovnávající komprimační algoritmy bezztrátové komprese. Zhodnoťte také výhody a nevýhody těchto algoritmů a jejich využití ve známých komprimačních programech. Soubor zkomprimujte v programu WinZIP. Vyberte libovolný textový a grafický soubor, zkomprimujte je ve dvou odlišných komprimačních programech a porovnejte jejich výkonové parametry. Literatura: • David Morkes – Komprimační a archivační programy Řešení a odpovědi na otázky: 1. otázka a)Kompresní poměr je 40 %. b)Kompresní poměr je 60%. c)Kompresní poměr je 5:2. 2. otázka 30% kompresní poměr znamená,že původní soubor byl zkomprimován na 30% své původní délky. 3. otázka Původní délka nekomprimovaného souboru je 5x větší. 4.. otázka 289 Počítačové systémy Soubor se zakóduje do podoby 4B2a2P0k0l. V uvedené posloupnosti znaků komprimační algoritmus rozpozná 5 proudů a přiřadí jim 5 paketů. První údaj je proudové číslo a druhý proudová hodnota. 12.5 Ztrátová komprimace Cíl: Cíl této kapitoly směřuje k tomu, aby si zájemce osvojil základní pojmy týkající se ztrátové komprimace, získal přehled o metodách a standardech , pochopil možnosti využití ztrátové komprimace v praxi. Cílem není podrobný popis jednotlivých algoritmů a schémat. Malé opakování: Použití a přenos běžně používaných informací , jako je zvuk, obraz a video v digitálním tvaru vyžaduje použití rozsáhlých pamětí a velkých šířek přenosového pásma. To vše má za následek zvyšování nákladů na uchovávání a přenos informací v této podobě. Máme-li zájem o výhody digitálního tvaru informace (lépe se uchovává) máme k dispozici právě technologii komprimace. Komprimace umožňuje efektivní digitální reprezentaci zdrojových signálů jako je text, zvuk, obraz i video, použitím redukovaného počtu prvků digitální informace (bitů) , než má originál. Pokud má být použití komprimace efektivní, musí umožňovat reprodukci komprimované informace v požadované kvalitě. Požadovaná kvalita může být v intervalu od požadavku úplné rekonstrukce původní informace ( např. textové), až po omezení přenášeného frekvenčního pásma (zvuková informace), počtu zobrazovaných barev (obrazová informace , video ) nebo počtu rozlišitelných zobrazovacích prvků informace (obraz, video, dynamika zvukového signálu). Tedy zjednodušeně - komprimace je metodou efektivní reprezentace zdrojového signálu v digitálním tvaru nejnižším možným počtem bitů při zachování požadavku přijatelné ztráty věrnosti. Metoda komprimace může být bezztrátová ( je možné dokonale rekonstruovat původní signál zdroje informací) anebo ztrátová. Při ztrátové komprimaci vycházíme obvykle z modelu vnímání informace uživatelem a podle požadavků na kvalitu, resp. rozsahu vnímání, redukujeme objem přenášené informace. V tomto případě zpětná rekonstrukce signálu není možná. Na druhé straně tyto metody umožňují dosáhnout zajímavých komprimačních poměrů, z tohoto důvodu se používají pro paměťově náročná média jako je video nebo zvuk. 12.5.1 Metody ztrátové komprese obrazu JPEG Jedna z nejpokrokovějších metod ve ztrátové kompresi redundantních grafických předloh. Standardizační skupina: Joint Photografphic Experts Group komise pro standardy pracující pod International Standard Organization (ISO). Oficiální název : digitální komprimace a kódování obrázků se spojitým tónováním. 290 Počítačové systémy Nejedná se o samotný přesně definovaný algoritmus. Je to sada kompresních metod, kterou je možno přizpůsobit konkrétním požadavkům uživatele. Komprimační technologie je založena na faktu, že lidské oko dokáže hůře rozeznat malé změny barev blízkých bodů, než rozdíly v intenzitě a jasu, proto je vhodnější pro barevné obrázky, než pro různé stupně šedi. Vlastnosti: • Je vhodný ke kompresi složitých barevných grafických předloh (fotografie s velkou barevnou hloubkou - typicky 24 bitů na pixel ( 16 mil. barev), kompresní poměr je pak běžně 20:1, i bez vizuální újmy na kvalitě obrázku. uvedený kompresní poměr se týká pouze digitálních fotografií ( tedy obrázků s rozmanitou skladbou co se týká barevnosti i drobných detailů), horších výsledků se dosahuje pro černobílé fotografie - lze rozlišit pouze odstíny šedi. • Není vhodný pro jednoduché vektorové obrázky, kde dochází ke střídání málo barev s jednobarevným pozadím (např.Malování ve Windows) zde JPG dosahuje nejhorších výsledků (zanechává na jednobarevném pozadí viditelné artefakty, které dále degradují obrázek). Pro jednoduché vektorové obrázky je vhodnější použít některý z grafických formátů - které využívají jednoduché bezeztrátové metody komprese. Většinou pracují s barevnou hloubkou do 8 bitů na pixel (256) barev . • Není vhodný pro černobílé kresby, protože nemají žádnou z grafických vlastností , které jsou podmínkou úspěšné komprese - vyžaduje alespoň 16 odstínů šedé ( 4 bity na pixel). Např. GIF je bezeztrátový až do 256 odstínů šedé, zatímco JPG nikoli. Ale barevná fotografie exportovaná například do formátu GIF tedy nejdříve ztratí většinu své barevné hloubky, přičemž dosáhne kompresního poměru 3:1, GIF používá bezztrátovou kompresní metodu Lempel-Ziv- Welsh (LZW) , která zvýší kompresní poměr průměru na konečnou hodnotu 5:1. Ve srovnání s kompresním poměrem 20:1 je to velice málo a ještě dochází ke ztrátám barevné informace. Kompresní poměry od 30:1 mívají nevhodnou kvalitu - vhodné pouze jako náhledy pro knihovny. • Q faktor - možnost volby nastavení kvality obrázku po kompresi. Hodnoty se pohybují od 1 do 100. Čím menší je hodnota Q faktoru, tím je lepší kompresní poměr, ale za cenu horší kvality obrázku. Cílem je rozumný kompromis. • Vysokých kompresních poměrů dosahuje díky redudantnosti dat. • Nebezpečí degradace obrázku ( hromadění "ztrátovosti") při opakované kompresi a dekompresi lze snížit tak, že při potřebě udělat úpravy v takovém obrázku ( JPEG) jej stačí vyexportovat se stejným Q faktorem, s jakým byl obrázek uložen dříve. Co je příčinou zhoršení kvality obrázku při malé hodnotě Q faktoru? (Ztrátovost metody JPEG.) 291 Počítačové systémy 12.5.2 Druhy obrázků JPEG JPEG základní Základní verze kompresního schématu JPEG funguje tak, že celý obrázek je dekomprimován z formátu JPEG během jediného skenu od horního k dolnímu okraji obrázku. JPEG progresivní Progresivní JPEG je určen speciálně pro publikování na stránkách WWW celý obrázek se zobrazuje v několika po sobě následujících skenovacích přebězích, během nichž se zlepšuje kvalita obrázku-výhoda k prvnímu náhledu na celý obrázek postačí zpracování malého zlomku celkových dat kódujících původní grafickou předlohu. Je výhodný pro dial-up připojení k server WWW. Jako určitá nevýhoda se jeví fakt, že při každém přeběhu musí počítač provést prakticky stejné množství matematických operací, jako při jediném přeběhu u základního JPEG. Při dnešních výkonech počítačů je limitujícím faktorem přenosová rychlost modemů. Pokud se data na dekodéru objevují dostatečně rychle, pak lze dekodér upravit tak, že přeskakuje některé zobrazovací přeběhy. Tzn., že ani majitelé rychlých připojení k Internetu. Nebudou trpět větší matematickou náročností při dekódování předlohy. 12.5.3 Kompresní algoritmus JPEG Skládá se z následujících částí: Transformace barev Snímky se převedou do barevného modelu YUV (nebo YcbCr atd. ) , kde je samostatně uchovávána jasová ( Y ) a dvě barvonosné složky (U a V) . Tento mód je pro další zpracování daleko vhodnější než obvykle v počítači užívaný mód RGB. Důvodem je již zmíněná vlastnost lidského oka lépe rozeznávat změny v intenzitě (jasu ) a nikoli malé změny barvy. Redukce barev Pro zmenšení objemu obrazových dat se používá tzv. podvzorkování barev. Jasové složky se ponechávají beze změny, ale barevné složky jsou redukovány v poměru 2:1 v horizontálním nebo 1:1 (beze změny) ve vertikálním směru. Snížení počtu barev je prováděno průměrováním na menší počet hodnot. Podvzorkování barev je vhodné především u složitých barevných předloh. Diskrétní kosinová transformace Obraz se rozdělí do čtvercových oblastí 8x8 bodů a na každou takovou oblast se aplikuje diskrétní kosinová transformace. Tato transformace v podstatě převede amplitudovou informaci na informaci frekvenční, u které lze jednoduše rozlišit, které části informace jsou pro danou oblast obrazu dominantní (nižší frekvence), a které části popisují pouze jemné detaily (vyšší frekvence). Získáme tak opět matice 8x8. Na rozdíl od původních matic, kde byla obrazová informace rozložena rovnoměrně ( pro každý pixel jsme znali jeho barevnou hodnotu), po aplikování transformace se informace s největším vlivem dostaly do levého horního rohu a se stoupající vzdáleností od něj důležitost informací klesá. Tím se dominantní a důležitější složky obrazu 292 Počítačové systémy reprezentované nižšími frekvencemi oddělí od drobných detailů (vyšších frekvencí) a obraz se tak připraví k další redukci vypuštěním těchto drobných detailů. Kvantifikace Až do této fáze se v úpravách obrazu jednalo o vratné operace a nedocházelo (kromě podvzorkování barev) ke ztrátě informací. Nyní přichází fundamentální krok: provedením kvantifikace dochází k nevratným změnám, proto je komprese JPEG nazývána kompresí ztrátovou. Každá ze 64 frekvencí jednotlivých bloků po diskrétní kosinové transformaci se vydělí kvantifikační koeficienty (které jsou součástí předem připravených kvantifikačních matic) a zaokrouhlí na celá čísla. Podle volby kvantifikační matice můžeme ovlivnit stupeň komprese a tím i výslednou kvalitu obrázku. Kódování Po provedení kvantifikace dostaneme řídkou matici, která kromě několika koeficientů v levém horním rohu obsahuje samé nuly. Tuto matici převedeme do posloupnosti čísel, přičemž postupuje po diagonálách od levého horního k pravému dolnímu rohu. Takto získaná posloupnost se zakóduje Huffmanovým nebo aritmetickým kódováním (viz. bezeztrátová komprimace). V části kódování nedochází tedy nedochází k další ztrátě informací. Konečná fáze Pod pojmem konečné fáze se rozumí přidání hlavičky ke komprimovaným datům. Aby dekompresor mohl správně rekonstruovat původní grafická data, je nutné zahrnout do hlavičky kvantifikační tabulku a tabulku Huffmanových kódů. Dekomprese Při dekompresi JPEG se požívá inverzního postupu. Vzhledem k tomu, že inverzní postup není z matematického hlediska o moc jednodušší, nebývá doba potřebná pro dekompresi o mnoho kratší než při původním kódovacím procesu. Dokážete odpovědět? 1. Jak se liší základní a progresivní JPEG ? 2. Popište kompresní algoritmus JPEG. 3. Je pravda že JPEG je velmi vhodný pro jednoduché vektorové obrázky ? Shrnutí Metoda kódování grafických předloh JPEG je vhodná pro kompresi složitých obrázků s velkou barevnou hloubkou. Jedná se o ztrát. kompresi, která ke zlepšení kompresního poměru využívá redundanci grafických dat způsobenou nedokonalým vjemem lidského oka. Pro odlišení drobných detailů (jež lze při komprimaci "ztratit") od fundamentálních tvarů v obrázcích se požívá diskrétní kosinová transformace. Výhody: Mnohem lepší kompresní poměr než u bezztrátové komprese. Díky výbornému kompresnímu poměru velice vhodný formát pro publikaci obrázků na 293 Počítačové systémy stránkách WWW. Progresivní forma standardu JPEG je vhodná i pro uživatele s pomalým připojením přes modem. Nevýhody: Nevhodný pro jednoduché barevné předlohy s rovnými ostrými barevnými hranami a velkými jednobarevnými plochami. Poměrně značná složitost komprimačního a dekomprimačního algoritmu promítající se do poměrně dlouhé doby zpracování. 12.5.4 Vlnková transformace (wavelet transfomation) obecně se předpokládá, že se jedná o příští standard ve ztrátové kompresi obrazu, • metoda komprese obrazu je založena na matematické transformaci obrazu (je méně náročná na paměť), • Obnovení původního obrazu se děje inverzní matematickou transformací. Zjednodušeně lze k výkladu použít tzv. Haarovu transformaci. Je to matematická transformace do jiného ortogonálního prostoru ( podobně jako diskrétní Fourierova transformace), kde bázovými funkcemi je množina funkcí, které se podobají obdélníkovým pulsům viz obrázek. • Množina funkcí pro osmiprvkovou 1D Haarovu transformaci Popis a),b),c)d) jsou určeny pro zakódování nejmenších detailů v nejjemnějším rozlišení obrazu.Pomocí dalších dvou funkcí - označených e),f) se budou kódovat hrubší detaily obrazu. Funkce označená g) se použije pro kódování nejhrubších změn při malém rozlišení obrazu a za pomoci poslední funkce h) se bude kódovat průměrná hodnota celého obrazu. Nyní předpokládejte, že chceme udělat diskrétně vzorkový obraz spojité funkce. Lze to provést skenováním této funkce za použití postupného "vyclonění "funkcí [sin(x)/x] . Stejného výsledku lze dosáhnout, pokud začneme s vysokým rozlišením již diskrétně vzorkovaného obrazu funkce, který prakticky splývá s funkcí spojitou. Diferencováním obrazů při různých rozlišeních lze sestavit množinu obrazů funkce ukazující skokové změny při různých rozlišeních Zištným složením všech takto vytvořených obrazů potom získáme původní funkci ( nebo grafický obrázek). 294 Počítačové systémy Jedná se vlastně o expanzi dat: pokud začínáte s obrázkem 1024x1024 bodů, dostanete př. obrázek 64x64 bodů nejhorším rozlišením a další diferencované obrázky o velikosti 128x128 bodů, 512x512 bodů a poslední o rozměrech 1024x1024 bodů. Pokud se pozorně zamyslíte nad systémem, kterým byla tato množina obrázků konstruována, uvědomíte si, že všechny obrázky budou obsahovat znatelnou redundanci - většina hodnot v obrázcích se bude pohybovat okolo nuly.Lze tedy (na základě znalostí použitého systému, jakým jsme sestavili jednotlivé obrázky) sestavit množinu funkcí na kterékoli úrovni rozlišení tak, že jejich celková hodnota ze všech vyšších úrovní bude nula. Tím jsme sestavili ortonormální množinu bázových funkcí pro transformaci obrazu. Matematická transformace uskutečněná za pomoci této množiny transformačních funkcí se nazývá vlnková transformace (wavelet transformation). Taková transformace se trochu podobá Haarově transformaci s tím rozdílem, že obdélníkové funkce byly nahrazeny symetrickými funkcemi, které v nekonečnu spojitě limitují k nule. (Haarovy funkce díky svému obdélníkovému tvaru dosahují nuly ostře a nikoli postupně. ) 12.5.5 Fraktální komprese (Fractal Image Compression) • • • Fraktální komprese obrazu patří mezi další rozvíjející se komprimační techniky. Jedná se také o ztrátovou komprimaci redundantních dat, která je vhodná (jako všechny ztrátové algoritmy) pro složité předlohy s velkou barevnou hloubkou. Fraktální geometrii lze ve stručnosti jedinou větou charakterizovat jako geometrii, která se svými tvary a hraničními čarami nepodobá klasické geometrii rovných čar a hladkých povrchů, ale spíše geometrii stromů, mraků či hor. Počátky fraktální geometrie, na jejímž základě se fraktální komprese obrazu vyvinula, spadají do roku 1977. Rozšiřující učivo • Matematický popis takové geometrie se opírá o teorii iteračních funkcí (Iterated Function Theory) a především systémy iteračních funkcí (Iterated Functions Systems), které podal Michael Barnsley v bibli fraktální geometrie Fractals Everywhere .Kniha obsahuje i důkaz teorému známého jako Callage Theorem, který říká, jak musí vypadat sytém iteračních funkcí , aby tyto funkce mohly reprezentovat obrázek. • Od této chvíle se myšlenky začaly obracet směrem k reprezentaci" přírodě se podobajících obrázků " za pomoci systému iteračních funkcí a k otázce, zda by tato metoda nemohla sloužit ke kompresi takových grafických předloh.k tomu bylo nejprve nutné vyřešit problém zpětné rekonstrukce obrazu ze systému iteračních funkcí. Barnsley, vyzbrojen znalostí svého Callage Theoremu, publikoval řešení v roce 1988. • Řešení však mělo stále několik drobných nevýhod: Zakódování barevného obrázku trvalo přibližně 100 hodin, dekódování okolo 30ti minut a oba tyto procesy byly natolik složité, že u nich byla nezbytná asistence lidského operátora - proces se stále nedařilo zautomatizovat. 295 Počítačové systémy Řešení na sebe nechalo čekat až do roku 1992, kdy Arnaut Jacquin publikoval první praktický algoritmus fraktální komprese grafických dat. Tento algoritmus lze metaforicky přirovnat ke kopírce, která pracuje jako klasická kopírka s několika odlišnostmi. Odlišnosti: v kopírce systém čoček způsobuje, že výstupem z kopírky jsou vícenásobné kopie originálu. Systém čoček zmenšuje originál. V kopírce funguje zpětná vazby tak, že výstup z kopírky se zároveň stává vstupem pro další stupeň "kopírování". Původním vstupem může být cokoli. 12.5.6 Skalární a vektorová kvantifikace • • • Není samostatnou formou ztrátové komprese, většinou se používá ve spojení s jinými metodami. Skalární kvantifikace spočívá v tom, že skalární hodnota je reprezentována fixní podmnožinou bitů (Např. u obrázku s barevnou hloubkou 16 bitů na pixel reprezentujeme každý pixel pouze významnější osmicí bitů, dochází ke komprimaci obrazu v poměru 2:1 za cenu ztráty barevné informace.). Vektorová kvantifikace se zakládá na reprezentaci malých polí hodnot. (např. barevný obrázek může být reprezentován 2D polem tripletů - hodnot RGB. Ve většině obrázků nevyužívají tyto triplety celý barevný prostor RGB, ale mají tendenci koncentrovat barvy do určitých částí obrázků. Pro obrázek lesa se vybere relativně malá oblast a v ní aproximovat každý triplet jednou reprezentativní barvou -zelenou. Triplet tak degeneruje ze tří bajtů na jediný bajt, za cenu rozumné ztráty barevné informace. 12.5.7 Metody ztrátové komprese videa a audiosignálu MPEG Moving Picture Expert Group, komise, která se zabývá vývojem standardů pro komprimaci videa a připojeného audiosignálu. Skupina pracuje pod organizací ISO. Normy pro kompresi videa (podle různých oblastí využití.) a) MPEG - 1 Tato nejpoužívanější norma je navržena s ohledem na technologii CD tak, že nejvyšší datový tok je až 1,5Mb/s. v principu je norma MPEG–1 definována až do velikosti obrázku 4095x4095x60 (60 snímků za sekundu). Pracuje s neprokládanými celými snímky. Skládá se ze čtyř částí: - IS 11172-1 popisuje synchronizaci a multiplexaci videa i zvukového signálu - IS 11172-2 popisuje kompresi neprokládaného videosignálu - IS 11172-3 popisuje kompresi připojeného audiosignálu 296 Počítačové systémy - IS 11172-4 popisuje testování shody přenesených dat s původnímu b) MPEG - 2 Tato forma je navržen s ohledem na využití v dálkových a satelitních přenosech signálu při zachování televizní kvality. Umožňuje rozlišení až 1638x1638 bodů, omezení je aby výška i šířka snímku byly dělitelné 16, pro lepší rozdělení na oblasti při komprimaci. Vedle neprokládaných snímků dovoluje také použití prokládaných snímků - výhoda pro použití u televizních přijímačů, které právě prokládání obrazu používají. c) MPEG - 3 Původně myšlena jako podpora HDTV , tedy televize s vysokým rozlišením, ale toto pokrývá po úpravách i MPEG -2. Od normy se upustilo. d) MPEG - 4 Na rozdíl od rostoucích požadavků na datový tok v předcházejících normách je norma MPEG - 4 definována pro přenos videa a připojeného audiosignálu po pomalých linkách s rychlostí od 4800 do 64000 bitů/s, tedy převážně po modemech .Tato rychlost je velice malá a MPEG - 4 proto vychází z rozlišení 176x144 bodů, při 10 snímcích za sekundu. Kompresi a přenos dat, videosekvencí a audiosignálů je možno řešit buď softwarově nebo hardwarově. Softwarové řešení je vždy levnější, má však značně vysoké nároky na výpočetní výkon počítače. Je poměrně vhodné pro amatérské využití, především tam, kde se pracuje s menšími objemy dat. Hardwarové řešení je rychlejší, nevyžaduje tak výkonný počítač, jediným jeho nedostatkem je relativně vyšší cena. Pro profesionální využití je tato investice nutná protože zatím co hardwarová komprese videa je možná v reálném čase, softwarová komprese videosouboru zabere i na výkonném počítači často mnohonásobně delší dobu, než je délka přehrání výsledného videosouboru. Shrnutí MPEG: MPEG je ztrátový kompresní standard pro uchovávání a digitalizovaných videosekvencí snímků a připojeného audiosignálu . přenos Existují tři normy • MPEG - 1 vytvořený s ohledem na přenosové rychlosti a využití v souvislosti s technologií CD • MPEG - 2 pro využití při dálkových a satelitních přenosech vysokou rychlostí. Na rozdíl od MPEG - 1 je schopen pracovat s prokládaným videosignálem. • MPEG - 4 navržen pro použití na pomalých (především modemových linkách) Zatímco standard MPEG - 1 je zatím a možná i pro budoucnost vyhovující, pro MPEG - 2 stále není nalezen nejvýhodnější algoritmus a tato norma není ještě plně standardizována. 297 Počítačové systémy Pro přenos audio signálu v normě MPEG - 1 slouží tři "vrstvy "nazývané Layer 1 až 3. I komprese zvuku je ztrátová a lze při ní dosáhnout kompresních poměrů až 100:1. U nejsložitějšího záznamu pomocí vrstvy Layer 3 lze dosáhnou kompresního poměru až 1:12 při zachování kvality běžného audio CD. Výhody: Možnost ztrátové komprese přináší velkou výhodu digitalizovaného videa a audia proti oproti běžným analogovým technologiím. Při kompresi videosnímků je možné použít tzv. pohybové vektory udávající, jak se změnil snímek oproti jinému snímku sekvence. Není tedy nutné každý snímek videa kódovat jako statický - to je výhoda, která umožňuje dosáhnout ještě lepších kompresních poměrů. Nevýhody: Samotná komprimace videa je složitým procesem jak na paměť, tak i na početní výkon počítače. Ačkoliv dekódování (přehrávání ) je mnohonásobně jednodušší, i zde jsou paměťové nároky a především početní výkon počítače limitující pro čistě softwarové zpracování dat ve formátu MPEG. K dosažení profesionálních výsledků v této oblasti je nezbytné využít přídavné HW zařízení ( speciální karty pro přehrávání videa). Literatura: 1. Morkes David, Komprimační a archivační programy, Computer Press, Brno, 1998; 2. Čapek Jan, Fabian Peter, Komprimace dat principy a praxe, Computer Press, Praha, 2000 Závěr: Dospěli jste úspěšně k závěru tohoto studijního materiálu, který se vám snažil přiblížit problematiku komprimace datových souborů různého typu. Jeho cílem bylo seznámit vás s vymezením pojmu komprimační program, s rozdělením komprimačních programů podle obecných kritérií a především pak podrobněji objasnit podstatu nejpoužívanějších algoritmů bezztrátové komprese. Doufám, že vám pomohl nalézt odpověď na otázky spojené s komprimací dat a že vás posunul z pozice uživatele „začátečníka“ k pozici uživatele zkušenějšího a poučeného. 298 Počítačové systémy 13. Použitá literatura a další zdroje 1) Pisklák, B., Novotná, V.: Základy elementární matematiky a elementární geometrie, skripta OU 2) Kolektiv autorů: Číselné soustavy, Kancelářské stroje 3) Microsoft: Windows Resource Kit, Computer Press 4) Born, G.: Registr Windows 98, Computer Press 5) Krol, E.: Vše o Internetu, Science 6) Engst, A., Low, C., Orchard, S.: Internet pro uživatele Windows 95, UNIS 7) Kosek, J.- Janíková, V.: Internet první kroky českého uživatele. Grada, Praha 1996 8) Kusala, J.: Internet ve škole. Fortuna, Praha 2000 9) ABC: Internet od ABC až do Z. Gryf, Praha 2001 10) Čermák, M.: Internet snadno a rychle. Moraviapres 11) Brázda, J.: Internet.cz-jak hledat a najít. Grada, Praha 1999 12) Hlavenka J.: Microsoft® Windows 98 CZ Second Edition. Praha: Computer Press, 2000. 13) Hlavenka J.: První kroky s počítačem. Brno: Computer Press, 1995. 14) Born G.: Registr Microsoft® Windows 98 Konfigurujeme a vylaďujeme operační systém. Microsoft Press. 15) Morkes David, Komprimační a archivační programy, Computer Press, Brno, 1998; 16) Čapek Jan, Fabian Peter, Komprimace dat principy a praxe, Computer Press, Praha, 2000 17) Jiří Mrnušík, Viry 98, Grada Publishing 18) Jalůvka, J.: Moderní počítačové viry 19) Tanenbaum, A. S.: Operating Systems. Design and Implementation. Prentice Hall. 1997, ISBN 0-13-638677-6 20) Hansen, P. B.: Principy operačních systémů. SNTL Praha 1979 21) Král, J., Demner J.: Softwarové inženýrství, ACADEMIA Praha 1991 22) Bach, M. J.: Principy operačního systému UNIX, Softwarové Aplikace a Systémy 1993, ISBN 80-901507-0-5 23) Hlavenka J.: Microsoft® Windows 98 CZ Second Edition. Praha: Computer Press, 2000. 24) Staudek, J.: Operační systémy. Elektronická podoba přednášek. FI MU Brno, 2002 25) Madnick, S.E., Donovan, J.J.: Operační systémy. SNTL Praha 1981 26) Čada, O.: Operační systémy. Grada 1993. ISBN 80-85623-44-7 27) Hořejš, J., Brodský, J., Staudek, J.: Struktura počítačů a jejich programového vybavení. SNTL Praha 1981 28) Skočovský, L.: UNIX POSIX PLAN 9. Duo Press, Mnichovo Hradiště, 1998. ISBN 80-902612-0-5 29) Plášil, F.: Operační systémy. ČVUT Praha 1991. ISBN 80-01-00178-4 30) Petzold, Ch.: Programování ve Windows. Computer Press Praha 1999. ISBN 80-7226-206-8 31) Klimeš, C. a kol.: Prostředky automatického řízení IIA. Počítačové systémy. Skripta VŠB Ostrava 1983 299 Počítačové systémy 32) Klimeš, C. a kol.: Prostředky automatického řízení IIB. Mikropočítačové systémy. Skripta VŠB Ostrava 1985 33) Blatný, J. a kol.: Číslicové počítače I – II. Skripta VUT Brno. SNTL Praha 1983 Další zdroje informací: 1) http://archiv.czech.net/ 2) http://www.microsoft.com 3) http://home.netscape.com 4) http://www.internetjam.net 5) http://www.seznam.cz; 6) http://www.click.cz; 7) http://domeny.czechia.com 8) http://www.viry.cz/ 9) http://www.hoax.cz/ 10) http://biohazard.zde.cz 11) www.mujweb.cz/www/computerweb/viry.htm 12) www.mujweb.cz/www/mirap/virus.htm 300
Podobné dokumenty
Výroční zpráva katedry ATŘ-352 za rok 2000
tel.: 069-699 3486, [email protected] Zajišťuje výuku v předmětech magisterského studia Projektování systémů řízení a Manažerské řízení, v předmětech bakalářského studia Programové produkty, Ekon...
Více1 - Informatika – definice a základní pojmy 2
o Se zápisem funkce, kde na začátku je znak “rovnítko“: =SUM(A1:C3) Např: Excel, OpenOffice o
VíceInformatika 2010
Protože velikost paměti vyhrazená jednomu číslu je omezená, může, pokud je výsledek číselné operace větší, dojít k tzv. přetečení. Analogicky pokud je výsledek operace menší než nejmenší zobrazitel...
Více2005 / 1 leden
Přehled instant messengerů. Přesvěčte se, zda vám některý z testovaných produktů nebude vyhovovat více. 102 Přizpůsobte si svůj mobil Operátoři často cejchují své telefony svými logy. V našem článk...
VíceWWW stránky
Antivirový program je počítačový software, který nám slouží k nalezení, odstranění a eliminaci počítačových virů a jiných škodlivých softwarů. Jde tedy o to, aby byl náš počítač chráněn před viry, ...
VíceH2650_USB_Guide_Czech - Support
neb na počítači Macintosh nebo Mac OS. z Provoz na počítači, na kterém byla provedena aktualizace na systém Windows® 7, Windows Vista® nebo Windows® XP z jiného operačního systému, není podporován....
Vícemetodika spolupráce mezi jednotlivými institucemi, v jejichž
Dokumentování trestného činu PORUŠOVÁNÍ PRÁV K OCHRANNÉ ZNÁMCE, OBCHODNÍMU JMÉNU A CHRÁNĚNÉMU OZNAČENÍ PŮVODU - § 150 trestního zákona..................................................................
VíceLogické systémy a jejich návrh
sloupcích a také křížky sloupců, které se nacházejí v jiných řádcích – postupujeme do pokrytí všech sloupců
Vícepostel Vele
design Daniele Lago Aktivní stěna. Připojte, odpojte a znovu připojte, kamkoli budete chtít. Tapeta Playwall 36e8 má povrch suchého zipu pro připojení kovových polic 36e8 a polštářů, které slouží j...
VíceÚplné normální formy logických funkcí (ÚNF) – kanonické formy
V úplné normální formě každé jedničkové hodnotě logické funkce odpovídá hodnota právě jednoho mintermu (resp. maxtermu) a naopak.
Více