Professional Documents
Culture Documents
Periferie jsou všechna zařízení, která lze připojit k základní desce počítače.
• vstup dat
• výstup dat
• zápis dat mimo operační paměť
Vnější rozhraní
Je to standardizace připojení (respektuje vlastnosti jednotlivých technických zařízení - periférií z hlediska vstupu
a výstupu).
Vnitřní rozhraní
Jsou to inteligentní vstupní - výstupní obvody, které jsou většinou programovatelné.
Příklad vnitřního rozhraní:
• sériové
• paralelní
Rozdíl je ve způsobu vyměňování informací. U sériového se přenášejí bit po bitu po jednom drátě u paralelního
se přenášejí informace po bytech přes osm drátů současně.
Sériové RS232:
Používají se dva typy konektoru:
1. CANON 25 (25 - pinový)
Přiřazení pinů:
Pin Funkce
1 Ochranná zem
2 Přenos dat (výstup)
3 Příjem dat (vstup)
4 Žádost k vysílání dat (výstup)
5 Připravenost pro příjem (vstup)
6 Připravení dat na vysílání
7 Signálová zem
8 Zachycení linkového signálu
9 Přenosové hodiny
20 Zachycení ukončení dat
22 Kruhový indikátor
Ostatní jsou uzemněny
2. CANON 9 (9 - pinový)
Přiřazení pinů:
Pin Funkce
1 Zachycení linkového signálu
2 Příjem dat
3 Přenos dat
4 Zachycení ukončení dat
5 Zemnění
6 Připravenost dat pro vysílání
7 Požadavek na přenos
8 Připravenost pro příjem
9 Kruhový indikátor
Tuto činnost při přenosu a příjmu dat zajišťuje speciélní programovatelný obvod typu UART pod označením
8250, 8251. Je to v podstatě paralelně sériový převodník.
Obecný princip sériového procesu
Pro vlastní přenos se přidávají k platným datům další informace a to startbit, parita, počet stop bitů.
UART
RS 232 je digitální rozhraní, komunikace asi do 15m, stav na lince ON +3 V , OFF - 3 V. Každou linku řídí
jedna nebo druhá strana např. linku 2 vnímá jedna strana jako vstup a druhá strana jako výstup. Rychlost přenosu
je možno programovat.
Rozhraní:
• DTE
• DCE
Na DTE jsou samčí konektory, na DCE samičí. UART dohlíží na sériovou komunikaci PC. Dnes se většinou
používají rychlejší čipy pod označením 16450, 16550. Na rozdíl od starších UARTů, kdy se ukládaly informace
byte po bytu RS 232 je navržen tak, aby spojoval DTE a DCE.
Spojení mezi počítači - oba mají rozhraní DTE. Podle standardu nemůžeme takto přímo propojit dvě rozhraní
DTE. Propojení je možné přes kabel tzv. modemový eliminátor.
Slouží např. pro připojení tiskárny, ZIP disku, propojení dvou počítačů. Informace jsou přes paralelní port
přenášeny paralelně, tzn. že je vždy zároveň přenášena určitá sada bitů.
Klávesnice
Je vnější zařízení systému PC, skládá se z rozhraní, kabelů a klávesnice.
1 - data
2 - nevyužit
3 - uzemnění
4 - napájení
5 - hodiny
Každá klávesa má přiřazen SCAN kód, po stisku klávesy je tento kód na portu klávesnice, odkud si ho vezme
obsluha přerušení. Ta jej převede do ASCII a uloží do vyrov. bufferu klávesnice příslušné hodnoty.
SCAN kód určuje fyzické tlačítko na klávesnici např. když obsluha přerušení přečte z portu klávesnice hodnotu
44, jedná se o písmeno z. Ve SCAN kódu se nerozlišuje malé a velké písmeno (např. klávesa z má stejný SCAN
kód jako klávesa Z). Podle stavu klávesy CAPS LOCK, příp. SHIFT se rozliší, zda se jedná o velké nebo malé
písmeno.
Extended ASCII CODE: Pro některé klávesy, které nemají přiřazenou žádnou hodnotu v tabulce ASCII (funkční
klávesy) se vygeneruje rozšířený ASCII.
Vyrovnávací paměť klávesnice (buffer) je oblast paměti o velikosti 32 B v datové oblasti BIOSu. Těchto 32 B
tvoří kruhovou frontu, do které se ukládají znaky stisknuté na klávesnici v pořadí ASCII a SCAN kód. Ukládají-
li se znaky rychleji, než dokáže PC zpracovat, buffer se zaplní a počítač vydá zvukový signál. Příznaky
klávesnice jsou 2 B, které jsou obrazem současného stavu klávesnice. Tyto adresy jsou součástí datové oblasti
BIOSu.
Typy klávesnic
• standardní - 84 kláves
• rozšířené - 101 (102) kláves
Principy
u starších klávesnic - spínačové
Na sloupcové vodiče je multiplexně přiváděn určitý potenciál, který se při zmáčknutí objeví na příslušném
řádkovém vodiči. Ze sloupce a řádku je identifikováno příslušné tlačítko. U klávesnic IBM je kapacitní princip,
kdy na spodní straně klávesnice je vytvořena kapacitní plocha, stiskem příslušné klávesy dojde na ploše ke
změně kapacity, toto je vyhodnoceno a identifikována klávesa. Klávesnici podporuje mikroprocesor na bázi
ROM, jehož hlavní činností je identifikace SCAN kódu. Životnost klávesnice se udává v počtu stisků, u dnešních
až 80 miliónů stisků.
Mikroprocesory
INTEL 8086
1.Všeobecné
AH AL střadač
BH BL báze
CH CL čítač
DH DL data
Lze je používat jako dvojice 8-bitových registrů: AH je pro vyšších 8 bitů, AL je pro nižších 8 bitů.
Tyto registry se používají převážně pro aritmetické operace. Speciálně je pro ně určen registr AX (akumulátor),
řada instrukcí pracuje převážně jen s tímto registrem. BX se používá především k výpočtu adresy v některých
adresových módech. CX je čítač, používá se u instrukcí s opakováním. DX je datový registr a nemá speciální
funkci.
SP ukazatel zásobníku
BP ukazatel báze
SI index zdrojové adresy
DI index cílové adresy
Registry se nejčastěji používají pro adresaci dat. Indexové registry mají specifikovaný způsob využití. SP
(ukazatel zásobníku) obsahuje hodnotu offsetu zásobníku mikroprocesoru a používá se při práci se zásobníkem a
voláním podprogramu. BP je určen k adresování dat hlavní paměti. Při spolupráci s vyšším programovacím
jazykem je využíván jako ukazatel na parametry volané procedury. SI a DI se využívají při přenosech boku dat a
při přístupu do paměti.
3. Segmentové registry
Obsahuje jednobitové indikátory, které určují okamžitý stav mikroprocesoru. Jednotlivé bity tvoří dvě skupiny:
- TF, IF, DF
TF (Trap Flag) - Tento příznak se používá pro účely ladění, jeho nastavení způsobí, že procesor po provedení
každé instrukce vygeneruje přerušení INT1
DF (Direction Flag) - Určuje směr zpracování řetězců. Je-li nastaven v jedničce, obsah registrů SI a DI se po
provedení řetězcové operace sníží (řetězec se zpracovává odzadu).
OF (Overflow Flag) - Příznak se zastaví do jedničky, došlo-li v průběhu provádění instrukce k aritmetickému
přeplnění, tzn., že výsledek se nevejde do určeného místa.
SF (Sign Flag) - Je-li výsledek operace záporný, příznak se nastaví do jedničky. Je to v podstatě kopie
nejvyššího bitu výsledku.
PF (Parity Flag) - Příznak se nastaví, jestliže dolních 8 bitů výsledku prováděné instrukce má sudý počet
jedniček (neznamená, že číslo je sudé).
CF (Carry Flag) - Příznak se nastaví, jestlliže při provádění operace došlo k přenosu z nejvyššího bitu. Používá
se také při instrukcích posunu a rotace.
AF (Auxiliary Flag) - Příznak se používá při BCD v aritmetice a to při přenosu z 3. do 4. bitu.
Vytváření adresy:
Šířka adresové sběrnice je 20 bitů (adresuje 1 MB), adresa má dvě části - segment a offset.
Vytvořená adresa se skládá ze dvou šestnáctibitových částí. Z této tzv. logické adresy se fyzická vytváří tak, že
se nejprve posune o 4 bity vlevo (odpovídá násobení 16) a k takto vzniklému číslu se přičte offset. Tím vzikne
20-ti bitová adresa, ukazující na konkrétní místo v paměti.
Důsledkem adresování je paměť rozdělena na jednotlivé bloky o velikosti 64 kB (segmenty). Segmentová část
adresy po vynásobení šestnácti (připsání čtyř nul na nejnižší bity) ukazuje na začátek segmentu a offset je pozice
v segmentu vzhledem k jeho začátku. Segmentové registry udávají segmentovou část adresy.
Procesor má 32-bitovou adresovou sběrnici, maximální velikost operační paměti 232 B = 4 096 MB. Má
poměrně složitý systém řízení paměti, kde se adresa, použitá v programu složitým způsobem vypočítává na
skutečnou. Systém řízení paměti má dvě úrovně: segmentování, stránkování. Segmentování je vyšší úroveň.
Systém registrů je převzat z 8086, jsou rozšířeny o další, jsou 32-bitové, kromě segmentových. Aplikační
registry jsou určeny programátorovi, jsou zcela přístupné.
• Šest 16-bitových
• Osm 32-bitových
• Dva řídící 32-bitové
80486
Má interní paměť CACHE o velikosti minimálně 8 kB, interní koprocesor, rychlost dle typu
25 - 120 MHz. CACHE paměť je rozdělena na čtyři bloky po 2 kB. Systémově má dvě části - TAG, DATA.
Když v TAG jsou uvedeny informace o pohybu dat této paměti, znamená to, že procesor vždy sáhne do TAG a v
DATA vybere hledaná data.
Motorola 68040
Patří do architektury CISC (Complete Instruction Set Computer). V této architektuře obsahuje již mikroprocesor
vpodstatě miniaturní počítač včetně programů. Tento počítač pak vyhodnocuje vlastní instrukce. Výhoda:
instrukce mohou být komplikované, tzn. že jedna instrukce zajistí určité komplexní služby.
Pentium
Struktura mikroprocesoru Pentium
Současně nejmodernější procesor řady INTEL, na ploše 1,6 x 1,6 cm je asi 3,1 miliónů tranzistorů. K provedení
jednoho taktu je nutná 1/66 - 1/150 milióntina sekundy, což je potřebná doba k provedení jedné operace. Nejvíce
prostoru zabírají paměťové obvody (CACHE, atd.). Data přicházejí z pracovní paměti počítače přes DATABUS
do jednotky BUS INTERFACE LOGIC. Zde se rozhoduje, zda jde o příkazové (CODE) nebo hodnotové
(DATA) informace. Podle toho jsou pak data převedena do CODE CACHE nebo DATA CACHE. Obě jednotky
(akumulační jednotky) jsou řízeny jednotkami TLB. Jsou to vpodstatě mikroprocesory uvnitř čipu. Taktovací
frekvenci udává CLOCK DRIVER. Příkazová data jsou nejdříve přivedena do jednotky INSTRUCTION
FETCH a pak dekódována INSTRUCTION DECODE. V jednotce pro předpověď se odhaduje, jaká budou příští
příkazová data (BRANCH, PREDICTION LOGIC). Většina příkazů zahrnuje výpočty a ty se provádějí v
centrálním číslicovém oddělení (SUPERSCALAR INTEGER EXECUTION UNITS) nebo (PIPELINED
FLOATING POINT).
PIPELINED FLOATING POINT - instrukce se zpracovávají v několika fázích. Mikroprocesor je přizpůsoben
tak, že jakmile je jedna fáze nad nějakou instrukcí hotová, může se okamžitě přejít na další instrukci (částečně
zpracovaná instrukce přejde do další fáze).
DATABUS - je sběrnice informací procesoru. Pentium přenese najednou paralelně 64 bitů. Znamená to, že je-li
jeden příkaz tvořen z 8 bitů, pak za jeden takt zpracuje 8 B.
Ve verzi MMX byly přidány další instrukce pro lepší zpracování multimediálních dat. Ve verzi Pentium III byly
přidány i instrukce pro rychlejší zpracování 3D dat (vedle dalších architektonických vylepšení).
DEC vyvinula čip pod označením ALPHA s architekturou typu RISC. U této architektury se zpracovávají
odlišně data a příkazy jsou zredukovány. Je to v podstatě nejrychlejší procesor a špičkově zpracuje 400 miliónů
příkazů za sekundu. Je to 64 bitový procesor a má 4 miliard krát větší adresovací prostor než 32-bitové čipy
IBM. Obvody RISC produkují při špičkovém výkonu značné teplo.
Modemy
Modem je modulátor - demodulátor, transformuje digitální signál vysílaný počítačem do signálu analogového
vhodného pro telefonní linky. Transformace signálu je modulací. Její efektivnost se určuje v bitech za sekundu -
míra přenosu informace.
BAUD - jednotka měří počet změn stavu signálu za sekundu, např. signál 2400 baudového modemu změní svůj
stav (amplitudu, frekvenci, fázi) 2400x za sekundu. K vysílání jednoho bitu jsou nutné dvě změny. Všechny
rychlejší modemy uvádějí počet baudů menší než přenosovou rychlost. Technika modulace umožňuje vysílat
více bitů při jedné změně signálu, tzn. na jeden baud. Např. fázovou modulací se vysílají 4 bity/baud.
Modulační protokoly:
Jsou definovány výborem CCITT, je součástí mezinárodní telekomunikační unie. Komunikační protokoly:
V22 - 600, 1200 b/s; modemy jsou 600 baudové, modulace 4 bity/baud
V90 - až 56kb/s
Oprava chyb:
Na telefonních linkách se projevují parazitní šumy, proto jsou zavedeny technologie k opravě přenosových chyb.
Protokoly MNP2-4; skládají se z šumového filtru a korektoru postižených dat. Korekce chyb má velký vliv na
přenosovou rychlost.
Komprese dat:
Je zmenšení velikosti přenášených zpráv odstraněním redundance. Technologie MNP5 a V42bis používá metody
RLL.
UART je čip odpovědný za dohlížení na sériovou komunikaci. Když posílá informace, BIOS vkládá data do
převodního registru UARTu. Když je UART připraven na vysílání, přesune data do posuvného datového registru
a posílá je bit po bitu po vedení. Přijímací sériový port také obsahuje UART, jako přijímač bere bity z vedení
(odstraní start a stop bity) a vkládá je do přijímacího posuvného registru. Když přijme celý byt, přesune ho do
přijímacího registru, který je zpřístupněn přes BIOS. Při chybě přenosu se nastaví příznaky ve stavovém registru
a ohlásí chybu BIOSu. Sériová komunikace je komunikace mezi UARTy. Propojení je přes 25 pinový a 9 pinový
konektor:
Při komunikaci se dvě sériová zařízení musí shodnout na rychlosti a dalších parametrech (start, stopovací bity,
zapnutí - vypnutí echa). U asynchronního přenosu přijímač tzv. hlídá linku, start bit způsobí změnu linky,
upozorní, že jsou nějaká data k přenosu.
Telefonní vedení je označeno barvami červenou, zelenou, žlutou a černou, používá se červená a zelená. Ta dává
48 V stejnosměrných, při zvonění 100 V. Optická vlákna dosahují rychlosti až 2 GB.
Programové vybavení:
Počítač vysílá modemu příkazy ve speciálním formátu, je používán speciální jazyk AT (attention) příkazy.
Modem pracuje ve dvou režimech:
1. příkazový - posíláme AT příkazy
2. přenosový - nelze posílat AT příkazy.
Optické disky
Rozdělení:
• CD ROM
• Magnetooptický disk
• Minidisk
1. CD ROM
Princip:
Standardní disk CD ROM má průměr 120 mm (4,72 ´´) s otvorem uprostřed průměru 15 mm (0,6 ´´). Tlouš?ka
disku je 1,2 mm. Oproti klasickým diskům má CD ROM jednu spirálovou stopu, která je rozdělena na stejně
dlouhé sektory. Šířka stopy je 600 nm. Ta dává hustotu 16 000 závitů na palec. Data ve spirálové stopě jsou ve
formě malých prohlubní (pity), proloženými rovnými oblastmi nazývanými pole. Čtecí hlava (optické zařízení) s
galium-arzenistým laserem a fotoelektrodou načítá pity a pole. Zařízení zaměřuje laserový paprsek přes
polopropustné zrcadlo na povrch disku. Pole laserový paprsek odrážejí zpět, pity jej rozptylují. Zrcadlo
přesměruje vracející se paprsek na fotodiodu. Disk je technologicky vytvořen z průhledné polykarbonátové
vrstvy, na kterou výrobce nanáší šablonu s poli a pity. Základní vrstva je překryta odrazivým filmem z hliníku,
na který je nanesen ochranný lak. Disk se čte ze spodu přes polykarbonátovou podložku. Tento materiál je
odolný proti slunečnímu záření.
2. Magnetooptický disk
Využívá spojení světla a magnetismu. Proces ovládání dat je jiný než u CD ROM. Aby byla zajištěna
popisovatelnost pamě?ového média, nejsou provedeny destrukční změny na povrchu disku. Médium je
vytvořeno ze silných magnetických materiálů.
Princip:
Strukturu magnetických částic u silně magnetických materiálů nelze za normálního stavu měnit. Materiál se musí
zahřát na Currieho bod (151 oC) a pak je možná manipulace s magnetickými částmi. Horký laser ohřeje pamě?
ové médium v oblasti zápisu, magnetická hlava změní směr magnetických částic. Při čtení dopadá laser na
magnetický zorientovaný materiál a podle směru magnetických částic se změní fáze odráženého světla. Ve
fyzice je to tzv. Kerrův efekt. Na základě rozdílných otočení směrů paprsků čte magnetooptická jednotka
informace.
3. Osmicentimetrový CD - mini CD
Je přibližně stejně velký jako 3,5 ´´ disketa, ale pojme až 200 MB dat. Využití je zejména v noteboocích, jelikož
mechaniky CD ROM jsou lehčí. Jeho největší výhodou je, že jej mohou číst i velké mechaniky CD ROM (lze
číst v mechanice standardní, 2x a více rychlostní).
Paměti CACHE
1. Softwarová
Odebírá hlavní paměti určitý malý prostor a používá ji k ukládání dat, které procesor potřebuje z diskové paměti.
Pokud procesor potřebuje data, prohledává nejdříve takto vytvořenou CACHE. Pokud tam jsou, nejsou
vyhledávána na pomalém disku.
2. Hardwarová
Tyto paměti jsou umístěny na základní desce PC mezi procesorem a hlavní pamětí. Jsou klasifikovány jako
CACHE druhé úrovně. Vyrovnávají rozdíly v rychlosti mezi procesorem a hlavní pamětí. Jsou vytvořeny ze
statických polovodičových pamětí SRAM s přístupovou dobou 20 až 25 ns. Není nutno provádět REFRESH a
procesor nemusí zařazovat tzv. čekací cykly. Základní filozofie je založena na rychlém přístupu k datům.
Předpokládá se, že data, která potřeboval v minulém cyklu, bude využívat i v následujícím čase. Podle tohoto
předpokladu jsou data do paměti CACHE přemísťována (načítána). O jejich pohybu v paměti CACHE jsou
vedeny informace v řadiči CACHE. Tato filozofie předpokládá asi 90 % úspěšných zásahů v CACHE.
3. Procesorová
Je umístěna přímo v procesoru, na čipu je implementován také řadič CACHE. Je nejrychlejší, jelikož data nejsou
přenášena po pomalé vnější sběrnici mezi procesorem a pamětí, ale přímo po vnitřní sběrnici procesoru, např.
procesor 486 má CACHE o velikosti 8 kB. Z praxe procesor 486 SX o 25 MHz je rychlejší než 386 s 33 MHz.
Typické je to rozpoznat např. u WINDOWS, které používají pevný disk jako rozšíření hlavní paměti. 90 až 95 %
zisku rychlosti procesoru se dosáhne prvními 64 kB externí CACHE. U víceúčelových systémů např. NOVELL,
UNIX je nutné alespoň 512 kB externí CACHE.
ad1)
Jedná se omezení pomalých diskových operací tím, že se vytvoří v operační paměti vyrovnávací paměť pro tyto
operace. Uvedením v config.sys položky BUFFER se nainstaluje vyrovnávací paměť, která je využita pro
operace s diskem.
Lépe se vytvoří BUFFER pomocí ovladače SMARTDRV.SYS. Výhody oproti DOS BUFFERům: může vytvořit
BUFFER do velikosti 8 MB, má dynamickou úpravu (může měnit svou velikost).
Instalace:
DEVICE=C:\DOS\SMARTDRV.SYS velikost
RAM disky
Jsou simulované disky, vytvořené v paměti RAM. Disk má vlastní znak pro přístup na disk. Rozdíl oproti
pevným diskům je v tom, že informace se ukládají dočasně (při vypnutí počítače se informace ztratí).
Paměti
• lokální
• operační
• velkokapacitní
Dynamická paměť RAM je založena na fyzikálním principu nabíjení kondenzátoru. Takto vzniklý potenciál,
který je ekvivalentní napětí, odpovídá logické 0 nebo 1. Jelikož vlivem svodů (svodový odpor) je tento potenciál
vybíjen, je nutno tuto operaci v paměťové buňce obnovovat (refresh). Obnova probíhá tak, že jsou paralelně
sejmuty obsahy paměťových buněk na řádku, v budiči zesíleny a opět zapsány na původní místo. Rychlost
obnovy paměťových míst je několik setkrát za sekundu. Tyto paměti jsou levnější než statické. V současné době
máme dva typy SIMM a SIPP. Přístupová doba SIMM 60-70ns.
Použití : operační paměti
2. Statická RAM
Jednotlivé paměťové buňky bývají uspořádány do matice, jejich výběr je prováděn přes řádkové a sloupcové
vodiče. Paměť je tvořena klopným obvodem se dvěma stavy. Přes výběr řádků je zapsaná informace připojena
na datové vodiče. Adresace paměťové matice je zajišťována přes dekodér řádku a dekodér sloupců. Data jsou v
budících obvodech a přivedená na datovou sběrnici. Součet řádkových a sloupcových vodičů udává šířku
adresového slova. Není nutná obnova informace jako u DRAM. Přístupové doby jsou 15-35 ns.
Použití: pro rychlé paměti cache
3. Paměť ROM
Určená jen pro čtení, většinou se programuje přímo u výrobce, nedá se přeprogramovat, je energeticky nezávislá.
Použití: pro BIOS, pevné paměti atd.
4. Paměť PROM
Programovatelná, energeticky nezávislá. Programuje se na speciálním zařízení programátora a princip je v
destrukci vodivých cest, tzn., že je propálená propojka výstupního obvodu.
5. Paměť EPROM
Je programovatelná ultrafialovým zářením, dá se přeprogramovat.
6. Paměť EEPROM
Dá se mazat a programovat elektrickým proudem, oproti EPROM je doba programování řádově v ms. V počítači
s PENTIEM je tzv. flash EPROM, kdy může uživatel disketou u výrobce.
Pevné disky
Využívají principu magnetizace materiálu a pracují se dvěma stavy informace - 0, 1.
Princip zápisu:
Cívka, kterou prochází proud, vytváří magnetické pole, které je vedeno přes jádro zapisovací hlavy v magnetické
vrstvě. V místě štěrbiny prochází magnetické pole na materiál, magnetizuje ho. Směr magnetizace závisí na
směru zápisového proudu. Velikost zmagnetování závisí na šířce štěrbiny.
Princip čtení:
Je založeno na principu elektromagnetické indukce. Na vývodech cívky, která se nachází v magnetickém poli,
lze naměřit napětí vždy ve chvíli, kdy se toto pole mění. Tzn. při přechodu 0 na 1 a z 1 na 0 se indukuje v cívce
napětí. Z tohoto napětí se získává (odvozuje) zapsaná informace.
Pamě?ové médium se skládá z nosné části (disk) a z citlivé vrstvy (oxid kovu). Disková jednotka je zařízení,
které umožňuje operačnímu systému využívat pamě?ové médium pro zápis a čtení. Skládá se: disk s vrstvou
citlivého materiálu, synchronní motorek, vystavovací mechanismus, čtecí a záznamové hlavy. Hlavičky jsou
přemís?ovány pomocí motorku nad definovaná místa nad diskem. Pro vystavení se používají dva různé
mechanismy:
- krokové motorky - systém nemá naváděcí mechanismus, má jen indikátor stopy 0. Při vyhledávání najede
nejprve na stopu 0 a pak krok po kroku k vyhledávané stopě.
- lineární motorek - je používanější, rychlý a přemís?uje hlavy na základě informací, které jsou uvedeny na
pevném disku.
Základní pojmy:
1.Master Boot Record - obsahuje informace o rozdělení disku, zaváděcí instrukce, cylindry, které obsahují
operační systém
2. FAT
3. Alokace
4. Soubor
6. Kořenový adresář
Jméno Přípona Atributy Datum posl. změny Čas posl.změny 1.cluster Délka souboru
např.
Tabulka FAT
39,00 EOF
40,00 41,00
41,00 42,00
43,00 44,00
44 BAD
45,00 68,00
68,00 69,00
69,00 EOF
Prokládání disku:
Při pravidelném rozdělení sektorů dochází k tomu, že je načten jeden sektor do BUFFERU řadiče disku. Provádí
se kontrola správnosti přečtených dat (parita atd.). Při rychlosti otáčení 3600 až 7200 ot/min se nestihne čtení
následujícího druhého sektoru, protože čtecí hlava je už nad dalším sektorem (muselo by se čekat až se celý disk
znovu otočí, což by zpomalovalo čtení) Proto se používá posunuté rozložení tzv. prokládání např. 1 : 3, 1 : 6
atd. Data jsou zapisována do každého n-tého sektoru
Některé řadiče disků používají prokládání 1:1. Čtení probíhá na principu, že do bufferu řadiče je načtena celá
stopa (cylindr) a řadič pak data zpracuje. Tento systém se nazývá bufferizace stopy.
Přenosné počítače
1. Rozdělení
2. Kritéria výběru
• rozměr, hmotnost
• čitelnost displeje v závislosti na maximálním kontrastu a rozlišovací schopnosti
• konstrukční provedení (odolnost proti nárazu atd.)
• provozuschopnost počítače na jedno nabití akumulátoru při provozu pevného disku
• softwarová kompatibilita a soft.vybavení
• výkonnost a rychlost prováděných instrukcí
• vybavení (modem, CD-ROM...)
• trackball - tzv. myš na zádech, ovládá kurzor pomocí kuličky 16, 19, 25 mm, nevýhoda - nabalování
nečistot
• trackpoint - malý joystick
• touchpad - destička před klávesnicí - neobsahuje žádné mechanické prvky
5. Doplňková zařízení
porty, zvuková karta, CD ROM, PCMCIA (PC card) - je standardní rozhraní pro připojení externích zařízení
(faxmodem, sí?ová karta), které mají formát kreditních karet.
Docking station - zařízení, do kterého se připojuje notebook (je vybaveno zdrojem a jsou k němu připojena
všechna doplňková zařízení). Notebook se do tohoto zařízení zasadí a máme plnohodnotný stolní počítač, pokud
jedeme někam na cestu, notebook zase vyjmeme a používáme jako notebook. Výhoda: data zůstávají na jednom
místě, není potřeba je kopírovat z notebooku na stolní PC a obráceně.
Penbased - PCS
Jsou bezklávesnicové notebooky a lze je ovládat perem, dotýkajícím se displeje LCD. Pero funguje nejen jako
ukazatel (myš), ale mohou se s ním psát na displej např. znaky, počítač je sejme, rozpozná a zobrazí na displeji
standardní znaky. Obrazovka nemá žádné ukazovátko (kurzor) indikující, kde lze začít psát. Uživatel může začít
psát a kreslit na displeji, kde chce. Z toho je odvozen i název - zápisnikové počítače. Rozměry jsou stejné jako u
notebooku, ale hmotnost je výrazně menší.
Scannery
Požadavky na konfiguraci - 80486, 16 MB RAM, rychlý disk, z důvodu, že při skenování se převádí množství
dat, např. při rozlišení 300x300 dpi formátu DIN A4 - 26 MB.
Základní barvy: červená, modrá, zelená. Barevný skener umí pracovat i černobíle, lze převést do odstínu šedi.
Rozhraní - většinou paralelní nebo SCSI. Jelikož se požadavky někdy odlišují, řada výrobců dodává jako součást
i hardwarové karty.
Princip:
Obrazová předloha je po řádcích osvětlována a odražené světlo je vedeno přes optický systém k přijímači, který
je tvořen senzory, nebo prvky na bázi fotobuněk. Přijímač pak převádí obrazovou informaci na digitální signál a
posílá ji dále počítači.
Přijímač je složen ze stovek fotobuněk. Elektrický signál je úměrný síle světla, které dopadá na buňku. Signál,
který odpovídá jednom pixelu v obraze, je přeměněn na binární číslo. Tmavá místa, která reflektují méně světla,
obdrží nízká čísla, opačně pak světlá místa. Standardem je CCD s 256 stupni šedi, nebo stupni světlosti. Pro
rozlišení 300x300 dpi na předloze DIN A4 jsou potřebné řádky CCD asi s 2600 prvky. U dražších skenerů
(bubnových) se používají fotonásobiče. Jako zdroj světla se většinou používají zářivky. Senzory jsou u
černobílých i barevných stejně. U barevných je obrazová předloha snímána třemi různými barvami. Ze tří dílčích
skenů pak vznikne výsledný obraz.
U stolních:
• 3 pass postup
• 1 pass postup
3 pass postup - celá plocha je nasnímána 3x s různými barevnými filtry. Tzv. true color skenery registrují při
každém průchodu 8 datových bitů na pixel, tzn. barevná hloubka 24 bitů, zobrazení 16,7 mil. barev.
1 pass postup - je rychlejší, předloha je snímána po řádcích všemi třemi barvami, touto metodou pracují
vtahovací skenery.
HP používá 3 přijímače CCD a každým z nich je snímána informace pro jednu určitou barvu, přičemž obraz je
osvětlován dvěma bílými zářivkami a reflektované světlo se dostává k senzorům před dva filtry.
Tiskárny
Požadavky:
• kvalita tisku
• rychlost tisku
• podpora české národní sady
• cena
Impaktní tiskárny
Nejrozšířenější jsou jehličkové tiskárny.
Jehličkové tiskárny
Výhody: jednoduchost obsluhy, nízká cena.
Princip: v tiskové hlavě jsou umístěny jehličky s elektromagnety. Ty jsou propojeny s elektronikou plochým
kabelem. Z řídící elektroniky jsou přiváděny proudové impulzy, kterými jsou vystřelovány jehličky na základě
tvaru tištěného znaku. V daný okamžik jsou přitlačeny k barvící pásce a za ní se nacházejícímu papíru. V
současné době se používají vícejehličkové (9 - 24) - každé lince v rastru přísluší vždy jedna jehla. Znak je
vytvářen pohybem hlavy zprava doleva v krocích, které odpovídají vždy jednomu sloupci v rastru. Některé
pracují i s obousměrným tiskem. Platí, že kvalita tisku je tím větší, čím více jehliček je obsaženo v matici.
Výšky znaků, vytvořené 9 a 24jehličkových tiskáren jsou stejné, 24jehličková hlava používá na znak více teček.
Proto vytváří více kvalitní obraz.
Neimpaktní tiskárny
Laserové tiskárny
Princip: vychází se z technologie elektrostatického kopírování. Na začátku si tiskárna vezme list papíru z
podavače a papír se nejprve pokryje elektrostatickým nábojem. Na tiskový buben se přivádí vysoké napětí (6
kV). Laser prochází po fotocitlivém válci a umisťuje na něj přesné signály, které odpovídají tištěným znakům.
To je jediná funkce laseru, jinak nepřijde s papírem do styku. Až laser uloží signály na válec, tiskárna vypustí
toner, který se přitáhne k nabitým oblastem válce a vytvoří tištěné znaky. Papír, který je nabit na opačnou
polaritu, se vsune pod válec a toner se přenese na papír. Papír pak projde závěrečnou fází, ve které lampy o
vysoké intenzitě trvale spojí toner s papírem. Náboj je přenášen pomocí velmi tenkého drátu - koronační drát.
Dělení laserových tiskáren:
Testování: systémový autotest po zapnutí, testuje se: ROM s programy, ROM s vestavěnými fonty, rozhraní
tiskárny, led diody.
Tryskové tiskárny
Kvalitou tisku se tyto tiskárny blíží laserovým tiskárnám.
Princip: tiskárna vytváří znaky na papíru kapkami inkoustu, které vyletují z jemných trysek uspořádaných v
tryskové hlavě. Uspořádání je sloupcové a barvivo je stříkáno ze zásobníku, který je umístěn za nimi. Soustava
je tvořena systémem piezokeramických trubek, které jsou schopny stříkat 80 tis. kapek/sec. Soustava trubek je
přímo spojená se zásobníkem barviva, který u hlavice s 24 trubičkami postačí pro vytisknutí asi 3 mil. znaků.
Proti zaschnutí inkoustu je čelo trysek vybaveno vzduchotěsným uzávěrem. Uzávěr se otevírá automaticky před
započetím tisku a uzavírá po skončení. Pro případ, že se některá tryska zanese, jsou některé tiskárny vybaveny
speciální rutinou, která po stisknutí určitých ovládacích tlačítek pročistí zanesené trubky tlakem inkoustu.
Princip stříkání kapek je takový, že elektrický impuls přivedený na odporový tepelný článek způsobí ohřátí v
určitém místě trubičky, tímto ohřátím dochází k odpaření inkoustu ve formě bublinek. Ty vyvolají tlak, jenž
vytlačí kapičku inkoustu z trysky na papír. Po skončení impulsu se teplo ztrácí a bublinky se smršťují, tím
vzniká podtlak, který způsobí nasátí nového inkoustu do trubičky. Kompletní konstrukce hlavy je jednoduchá a
hlavice se vyrábí spolu se zásobníkem jako jeden celek.
Tryskové tiskárny
Kvalitou tisku se tyto tiskárny blíží laserovým tiskárnám.
Princip:
Tiskárna vytváří znaky na papíru kapkami inkoustu, které vyletují z jemných trysek uspořádaných v tryskové
hlavě. Uspořádání je sloupcové a barvivo je stříkáno ze zásobníku, který je umístěn za nimi. Soustava je tvořena
systémem piezokeramických trubek, které jsou schopny stříkat 80 tis. kapek/sec. Soustava trubek je přímo
spojená se zásobníkem barviva, který u hlavice s 24 trubičkami postačí pro vytisknutí asi 3 mil. znaku. Proti
zaschnutí inkoustu je čelo trysek vybaveno vzduchotěsným uzávěrem. Uzávěr se otevírá automaticky před
započetím tisku a uzavírá po skončení. Pro případ, že se některá tryska zanese, jsou některé tiskárny vybaveny
speciální rutinou, která po stisknutí určitých ovládacích tlačítek pročistí zanesené trubky tlakem inkoustu.
Princip stříkání kapek je takový, že elektrický impuls přivedený na odporový tepelný článek způsobí ohřátí v
určitém místě trubičky, tímto ohřátím dochází k odpaření inkoustu ve formě bublinek. Ty vyvolají tlak, jenž
vytlačí kapičku inkoustu z trysky na papír. Po skončení impulsu se teplo ztrácí a bublinky se smršťují, tím
vzniká podtlak, který způsobí nasátí nového inkoustu do trubičky. Kompletní konstrukce hlavy je jednoduchá a
hlavice se vyrábí spolu se zásobníkem jako jeden celek.
Barevné tiskárny
Barva (barevné světlo) je elektromagnetické vlnění o vlnové délce mezi 60 až 700 nm. Např. vlnová délka kolem
400 nm odpovídá fialové barvě, 500 nm zelené apod.
Realizace záření na těchto vlnových dékách:
1. aditivní (monitory)
2. substraktivní (tiskárny)
Principem je interakce tří primárních substraktivních barev - azurová, purpurová a žlutá (cyan, magenta, yellow).
Příslušný odstín se získá překrytím těchto barev v tiskovém bodě. Překrytím se získá 8 základních barev:
azurová, purpurová, žlutá, modrá, červená, zelená, bílá, černá. Pokud tam není žádná ze základních barev,
dostaneme bílou. Pokud jsou všechny tři, dostaneme černou.
Princip překrytí - je označován jako CMY. Mnoho tiskáren obsahuje ještě separátní černou barvu, principem
překrytí je pak CMYK.
Parametry:
• dpi, počet vytištěných bodů na palec, pro kvalitní tiskárny 300 dpi a více
• lpi, počet tiskových řádek na palec
• počet barev - kolik barevných odstínu je tiskárna schopna zpracovat.
• INJEKT (piezoelektrická)
• BUBBLEJET (odpařovací)
INJEKT
Principem je řízená změna objemu piezoelektrického krystalu. Když dojde elektrický impuls na destičku
krystalu, jeho přední strana se vymrští dopředu a protlačí tryskou inskoust.
BUBBLEJET
Tisková hlava je vybavena komůrkami pro inkoust a příslušnými topnými tělísky. Tělísko je prudce ohřáto a v
komůrce nad ním, která je naplněna inkoustem příslušné barvy, vznikne bublinka, přetlak, a inkoust se vytlačí.
Kvalitní tisk je jen na kvalitním papíře (rozpíjení).
Voskové tiskárny
Tepelný přenos vosku.
• vnitřní - jsou implementovány přímo v tiskárně (deska řídící elektroniky - ROM, PROM)
• nahraditelné - na disketách v souboru, zavádí se do paměti tiskárny
Menu příkazy
• PCONSOLE
• PRINTCON
• PRINTDEF
Hlavní pojmy:
Sdílená tiskárna - tiskárna připojena k serveru, na níž lze tisknout z jiných stanic
Tiskový server - je program běžící na serveru (.NLM modul) nebo vyčleněné stanici (EXE soubor), může
obsluhovat jednu až šestnáct tiskáren
Tiskové fronty - jsou fronty tiskových úloh na serveru, může být libovolný počet tiskových front, zakládá je
supervizor pomocí PCONSOLE
Jméno tiskové fronty - je znakový řetězec, jednoznačně identifikující tiskové fronty v rámci jednoho serveru
Tisková úloha - obsahuje kopii souboru, který se má vytisknout a požadavky na způsob vytisknutí (počet kopií,
jméno formuláře). Zadává se přes NPRINT, CAPTURE a PCONSOLE.
BANNER je úvodní identifikační stránka z výstupu tiskové úlohy, obsahuje: jméno uživatele, číslo spojení
stanice, ze které byla úloha zadání se serverem , jméno tištěného souboru, jméno adresáře, jméno tiskové fronty,
jméno tiskového serveru, který provedl tisk, datum a čas tisku.
Konfigurace tiskové úlohy - definuje se v PRINCON.
Formulář - definuje se v PRINTDEF, přiřazuje se mu jméno a číslo.
Tisk v síti je založen na vytváření tiskových front (queue), které jsou tvořeny na serveru jako mezisklad
požadavků uživatelů.
NPRINT název souboru PRINT Q_O
Na serveru adresář PRINT Q_O
Supervizor musí:
• vytvořit fronty
• provést konfiguraci PRINT serveru
• provést aktivaci PRINT serveru
Typy uživatelů:
Operátor tiskového serveru - má právo ovládat tiskový server, fronty, formuláře tiskáren atd.
Operátor tiskové fronty - má právo ovládat tiskovou frontu, měnit pořadí úloh, zastavovat frontu
Uživatel tiskové fronty - smí posílat do fronty nebo v ní rušit své tiskové úlohy
Připojení tiskáren:
• paralelní
• sériové
Paralelní rozhraní- používají na napětí a na jiné sledy signálů pro navazování spojení.
Při použití sériového rozhraní je nutno nastavit správné přenosové (komunikační) parametry.
ÚVOD DO ASP
Technologie Active Server Pages (ASP) se na Internetu stala běžným pojmem, i přestože se dá říci, že je docela
nová. Poskytuje efektivní dynamické generování stránek, dokázala zčásti vytlačit i takové technologie jako CGI
a PHP. V tomto článku se dozvíte něco do úvodu o programování ASP
Na Internetu jste se již určitě setkali s dokumentem, který měl příponu ASP. Pro koncového uživatele se soubor
jeví jako obyčejné HTML. Jak je to ale na straně serveru?
ASP je skript, který dynamicky generuje dokument formátu HTML. Obsah výsledného dokumentu je závislý na
mnoha věcech. Může to být například:
Každý dokument se generuje individuálně. Tzn. odkáže-li se uživatel na dokument s příponou ASP, je dokument
nejprve vygenerován a teprve poté poslán uživateli.
Nyní si ukážeme, jak takový ASP skript pracuje. Nejprve si prohlédněte toto jednoduché schéma, abyste měli
představu o průběhu vytváření výsledného dokumentu:
Toto schéma je příkladem funkce skriptu, který generuje uvítací zprávu pro návštěvníky stránky v závislosti na
aktuální čas (na serveru).
Hlavní výhodou skriptu je to, že jeho obsahem je HTML dokument, do něhož jsou pouze vloženy příkazy pro
generování proměnných částí stránky. Skript ASP najde využití hlavně při práci s databázemi. V praxi to může
vypadat tak, že uživatel do formuláře ve svém prohlížeči zadá hledaný výraz. Obsah fomuláře se odešle skriptu,
ten prohledá databázi a vygeneruje výsledný dokument HTML, který obsahuje výsledek hledání.
Pro tvůrce WWW stránek je však důležité promyslet si, pro co využít obyčejného HTML dokumentu a pro co
nasadit ASP skript. Každé otevírání dokumentu ASP totiž může hodně zatěžovat server, který musí vykonávat
příkazy pro generování dokumentu. Mnoho příkazů se může přenést prohlížeči k uživateli např. v podobě
JavaScriptu, který může sám vykonat již zmíněný příklad (viz. schéma výše). Dále je nutno optimalizovat kód
skriptu, tedy stažit se vytvořit skript co nejrychlejší, aby byl server co nejméně zatížen.
Za výhodu ASP lze považovat i volnost při výběru skriptovacího jazyka. ASP lze totiž programovat prakticky v
jakémkoliv programovacím jazyku, server ho však musí ovládat. Standartně se používa jazyk VisualBasicScript
(zkráceně VBScript), který se jen nepatrně odlišuje od programování ve Visual Basicu (umíte-li Visual Basic a
HTML, nebude to vůbec těžké vytvořit ASP skript), dále je to JScript, který je obdobou JavaScriptu.
Jak se v ASP odlišuje HTML od skriptovacích příkazů? Příkazy se uzavírají mezi znaky <% a %>. A zde si
ukážeme příklad, jak vypadá vnitřek originálního, ještě serverem nezpracovaného, ASP souboru. Příkaz
response.write slouží k výpisu následující proměnné nebo výrazu a funkce Now vrací aktuální datum a čas na
serveru.
Dnešní datum a čas je <% response.write Now() %>
V tomto příkladu se nezávisle na skutečnostech do výsledného dokumentu vygeneruje text "Dnešní datum a čas
je" a dále následuje obsah proměnné Now(). U uživatele tedy může přijmutý dokument vypadat takto:
If podmínka then
příkazy při splněné podmínce
ElseIf podmínka 2 then
příkazy při nesplněné předchozí podmínce a splněné podmínce 2
Else
příkazy pří žádné nesplněné podmínce
End If
Teď jste se seznámili s některými příkazy a funkcemi a nyní již ke slíbenému příkladu:
Růžičkova stránka o růžích
<%
Dim Hodina
Hodina = Hour(Now)
If Hodina >= 8 And Hodina <= 18 Then
%>
Dobrý den
<% ElseIf Hodina >= 18 And Hodina <= 21 then%>
Dobrý večer
<% Else %>
Dobrou noc. Ještě nespíte?
<% End If %>
Opět nás někdy navštivte, nashledanou.
Bude-li 10 hodin, zobrazí se vám tato stránka:
Užití ASP je samozřejmě velice široké, protože široké jsou schopnosti skriptovacích jazyků. Lze využívat funkcí
systrémových knihoven, ActiveX objektů a dalších programů, pracovat s databázemi a dalšími soubory. Zde jsou
obecné příklady využití:
Toto je pro začátek k úvodu do ASP skriptu pro začátečníky. Máte-li jakékoliv dotazy, napiště, abych věděl, o
čem mám psát v dalším díle.
ASP A FORMULÁŘE
Jediným způsobem, jak pro potřeby skriptu ASP získat od uživatele konkrétní data je odeslat je pomocí
formuláře tomuto skriptu. Skript však musí umět tyto informace zpracovat. Jak na to, se dozvíte v tomto článku
na praktické ukázce.
Už jste asi viděli mnoho formulářů, které po vyplnění odeslaly vámi zadaná data na server a poté se objevila
odpověď či vyhodnocení vašich údajů. V tomto článku najdete popis, jak na to jednoduše a rychle. K otestování
výsledku vámi vytvořených formulářů a skriptů však budete potřebovat server, protože zde použité ASP skripty
v jazyku VBScript potřebují ke své práci Web Server. K tomu účelu může samozřejmě posloužit Microsoft
Personal Web Server, který je nabízen zdarma.
ASP (Active Server Pages) jsou skripty, které obsahují kód buď VBScript, nebo JavaScript. Slouží ke
zpracování, vyhodnocení a výpisu výsledků dle toho, co jim bylo zadáno. K předání zadaných informací slouží
dvě metody.
Za prvé metoda GET, která informace předá jako parametry.
Příklad: http://www.server.cz/delej.asp?parametr1=hodnotax¶metr2=hodnotay
V tomto případě budou ASP předány parametry parametr1 (s hodnotou "hodnotax") a parametr2 (s hodnotou
"hodnotay")
Druhá metoda se nazývá POST - údaje jsou předány přímo.
Tato řádka popisuje, že při odeslání formuláře (tlačítkem Převést) bude použita metoda GET a data budou
poslána souboru Doit.asp:
<% @Language="VBScript"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Výsledek dotazu</title>
</head>
<body>
<%
Dim Req, Act, Nazev, Dat,x
Act = Request.QueryString("action")
Dat = Request.QueryString("data")
If not IsNumeric(Act) Then %>
Tento ASP skript provede zvolenou operaci a vrátí vygenerovanou hodnotu. Převede text na malá či velká
písmena.
• direktivami
• instrukcemi.
Direktivy nemají přesnou syntaxi zápisu. Pro označení proměnných, návěští, konstant se používají symbolická
jména - identifikátory. V assembleru je identifikátor libovolné slovo složené ze znaků: $, % , - , ?, A...Z, a...z, 0-
9. Identifikátor nesmí začínat číslicí a nelze pro ně použít rezervovaná slova. Malá a velká písmena se v
assembleru nerozeznávají.
Paměť je rozdělena na segmenty o velikosti 64 kB. Každý segment je určen segmentovou adresou, která je
uložena v některém ze segmentových registrů. Velikost adresy je 16 bitů. Posunutí v segmentu je relativní
adresa, vzhledem k jeho počátku, určuje offset. Instrukce programu leží vždy v segmentu označeném registrem
CS. Direktiva MODEL umožnuje automatické definování segmentů a jejich vlastností.
Syntaxe:
MODEL paměťový model
Paměťový model blíže určuje jedno ze slov, slovo určuje velikost programu.:
• TINY
• SMALL
• MEDIUM
• COMPACT
• LARGE
• HUGE
• THUGE
• TPASCAL
• FLAT
DATA
Pro definici dat je syntaxe:
[jméno] direktiva [výraz [, výraz...]]
Jméno je identifikátor, který označuje paměťové místo, je to ukazatel na místo v daném segmentu. Obsahuje
adresu a instrukce o velikosti dat. Velikost určuje direktiva:
Direktiva Velikost
DB 1 byte
DW 2 byte (slovo)
DD dvojslovo (32 bitů)
DQ čtyřslovo (64 bitu)
DF 6 bytů (80386 ukazatel FAR)
DP 6 bytů (80386 ukazatel FAR)
DT 10 bytů (pro reálná čísla)
Výraz: definuje obsah paměťového místa. V případě, že nechceme inicializovat, uvedeme ?. Když ano,
uvedeme libovolnou číselnou hodnotu nebo výraz, který se vyhodnotí na číselnou hodnotu. U direktivy DW lze
inicializaci provést pomocí řetězce znaků, uzavřeného v úvozovkách nebo apostrofech. Jednotlivé znaky se
nahradí ascii hodnotami, kde se pro každý znak vytvoří místo o velikosti 1 B. Výrazy se vyhodnocují při
překladu zdrojového textu. Základem výrazu jsou konstanty. Číselné konstanty se mohou zapisovat ve dvojkové,
osmičkové, desítkové a šestnástkové soustavě. Číslo musí vždy začínat číslicí. Implicitní soustava je určena
direktivou RADIX. Číslo v jiné než implicitní soustavě se napíše tak, že se za něj napíše základ (znak).
RADIX
Syntaxe:
RADIX základ
Základ - 2, 8, 10, 16.
Soustava Znak
Dvojková B
Osmieková O,Q
Desítková D
Šestnáctková H
Větvení programu:
Ve vyšších programovacích jazycích se provádí příkazy IF, GOTO, atd. U asembleru se větvení provádí pomocí
instrukcí skoku.
Instrukce skoku: podmíněné, nepodmíněné.
Nepodmíněný skok
Syntaxe:
JMP [vzdálenost] cíl
Cíl je návěští, na které chceme skočit, pokud skáčeme uvnitř segmentu, je vzdálenost NEAR, jinak FAR.
Např.
JMP NEAR Reet
..
..
Reet: MOV DX, OFFSET BUFFER
Podmíněný skok
Syntaxe:
J podmínka návěští
Provádí se na základě nastavení jednotlivých bitů v registru příznaků. Návěští u podmíněného skoku musí být ve
vzdálenosti -128 až +127 bytů od instrukce skoku. Podmínka určuje, kdy se skok provede. Před provedením
instrukce podmíněného skoku je nutno nastavovat bity v příznakovém registru. Provádí se instrukcí CMP.
Např.
CMP BL,2
JA ERROR
..
..
ERROR:MOV DX,OFFSET MESSAGE
MOV AH,09H
INT21H
CMP
Syntaxe:
CMP cíl, zdroj
Instrukce odečte zdroj od cíle a podle toho nastaví bity v příznakovém registru, obsah cíle ani zdroje se nemění.
Cykly
V assembleru se realizují pomocí instrukcí skoku. Pomocí JNZ je realizován cyklus DO - WHILE.
Příklad:
CODESEG
..
návěští:
<tělo cyklu>
JNZ návěští
INC
Syntaxe:
INC reg
Instrukce přičte ke svému operandu jedničku a výsledek do něj opět uloží.
DEC
Syntaxe:
DEC reg
Instrukce odečte od svého operandu jedničku a výsledek do něj opět uloží.
DIV
Syntaxe:
DIV oper
Instrukce dělí celá čísla bez znaménka, má jen jeden operand, výsledkem dělení je dvojice čísel: celočíselný
podíl, celočíselný zbytek.
Velikost operandu Dělenec Dělitel Podíl Zbytek
8 bitů AX operand AL AH
16 bitů DX:AX operand AX DX
32 bitů EDX:EAX operand EAX EDX
Např. při bytovém dělení je dělenec v registru AX, podíl v AL a zbytek v AH. Znamená to, že umístění dělence,
podílů a zbytků závisí na velikosti operandů.
Zásobník
LIFO (Last In First Out)
POP A
Instrukce vybírá 8 základních registrů ze zásobníku:
DI, SI, BP, SP, BX, DX, CX, AX. Lze ji nahradit osmi instrukcemi POP.
Ukládání na zásobník:
PUSH
Syntaxe:
PUSH oper
Instrukce uloží obsah registru, paměti nebo přímo hodnotu na zásobník. Ukazatel vrcholu zásobníku ukazuje na
naposledy uloženou položku. Nejprve se odečtou od obsahu registru SP 2 (ukládáme-li slovo) nebo 4 (ukládáme-
li dvojslovo), takže registr SP ukazuje na volné místo. Pak se zapíše obsah registru, paměti nebo konstanty. Při
ukládání do zásobníku se adresa registru SP snižuje.
PUSH A
Instrukce ukládá 8 základních registrů do zásobníku:
AX, CX, DX, BX, SP, BP, SI, DI. Po provedení této instrukce je obsah registru AX na nejvyšší adrese v
zásobníku a DI je na nejnižší adrese v zásobníku.
ADD
Syntaxe:
ADD oper1, oper2
Instrukce provádí součet dvou operandů. oper1 = oper1 + oper2
Např:
MOV AX,2
MOV BX,3
ADD AX,BX ; AX [5]
MOV
Syntaxe:
MOV oper1, oper2
Instrukce naplní operand oper1 operandem oper2, přitom oper2 zůstane beze změny.
Např:
MOV BX,4
MOV BX,AX
MUL
Syntaxe:
MUL oper1
Instrukce provádí násobení celých čísel bez znaménka.
Velikost 1. činitel 2. činitel Součin
8,00 AL operand AX
16,00 AX operand DX:AX
32,00 EAX operand EDX:EAX
1. oper1 je 1B
Oper1 se vynásobí registrem AL a výsledek se uloží do AX. Když je výsledek větší než 1B,
nastaví se příznaky OF a CF, jinak se oba příznaky nulují.
2. oper1 je slovo
3. oper1 je dvojslovo
Oper1 se vynásobí registrem EAX a výsledek se uloží do EDX a EAX tak, že nižší část
výsledku je v registru EAX a vyšší v EDX.
SUB
Syntaxe:
SUB oper1, oper2
Instrukce provádí odčítání celých čísel. oper1 = oper1 - oper2
Logické instrukce
AND
Syntaxe:
AND oper1, oper2
Instrukce provádí logický součin operandů podle vzorce. oper1 = oper1 AND oper2
Instrukce AND
1. bit 2. bit Výsledný bit
0 0 0
0 1 0
1 0 0
1 1 1
NOT
Syntaxe:
NOT oper1
Instrukce provádí negaci všech bitů operandu oper1 tak, že bit s hodnotou 1 bude nulový a naopak.
Příklad: NOT BX
OR
Syntaxe:
OR oper1, oper2
Instrukce provádí logický součet operandů podle vzorce. oper1 = oper1 OR oper2
Instrukce OR
1. bit 2. bit Výsledný bit
0 0 0
0 1 1
1 0 1
1 1 1
XOR
Syntaxe:
XOR oper1, oper2
Instrukce provádí neekvivalenci operandů podle vzorce. oper1 = oper1 XOR oper2
Instrukce XOR
1. bit 2. bit Výsledný bit
0 0 0
0 1 1
1 0 1
1 1 0
Procedury
Procedura je libovolná část kódu programu, která je ukončena instrukcí RET. Návěští označuje začátek
procedury.
CALL
Syntaxe:
CALL oper1
Instrukce provede vstup do podprogramu tak, že nejprve se na zásobník uloží návratová adresa a pak se provede
skok do podprogramu. Návratová adresa: segment - vyšší část adresy, offset - nižší část adresy. V závislosti na
tom, zda podprogram ve stejném segmentu jako hlavní program je i: NEAR - na zásobník se uloží jen offsetová
část adresy.
Podle typu volání je i instrukce RET: RETN, RETF.
Instrukce RET způsobí návrat z procedury.
RET
Syntaxe:
RET oper1
Oper1 udává, kolik bytů se odstraní ze zásobníku po vyjmutí návratové adresy.
CODESEG
..................
CALL NEAR PROC1
....................
PROC1:
;zde bude kód procedury
RETN
Při použití direktivy MODEL nemusíme specifikovat, zda je procedura blízká nebo vzdálená. Překladač vybere
správný typ podle zadaného modelu. Předávání parametrů pomocí zásobníku:
na zásobník se umístí předávané parametry instrukcí PUSH.
Např:
MOV AX,PARAM1
PUSH AX
MOV AX PARAM2
PUSH AX
CALL PROC2
Adresa Obsah
SP Návratová adresa
SP + 2 Parametr 2
SP + 4 Parametr 1
Po návratu z procedury je nutno hodnoty ze zásobníku vyjmout. Provádíme instrukci POP.
Bridge
Lokální pocítacové síte se v poslední dobe cím dál tím více zproneverují svému prívlastku "lokální"; jejich dosah
se zacíná merit spíše na kilometry než na metry a pocet jejich uzlu se mnohdy místo na jednotky pocítá na
desítky až stovky. Budování takovýchto sítí pak ale již zacíná narážet na ruzná technická omezení, vyplývající z
použitého druhu kabeláže. O tom, jak je tomu pri použití koaxiálního kabelu, jsme se již zminovali
v predchozích vydáních této rubriky - jakmile je treba propojit uzlové pocítace na vetší vzdálenost, než dovoluje
jeden souvislý segment kabelu (tj. 500 metru u tzv.
tlustého ci 185 metru u tzv. tenkého koaxiálního kabelu), nebo je třeba zapojit více stanic, než kolik je prípustné
pripojit k jednomu segmentu (tj. 100 u tlustého a 30 u tenkého kabelu), je zapotrebí použít více kabelových
segmentu. Ty je ovšem nutné mezi sebou vhodne propojit. Jak jsme si již také naznacili, takovéto propojení je
vždy realizováno "krabickou", která ale muže fungovat více ruznými zpusoby. Minulý díl této rubriky jsme
venovali jedné z možností, spocívající v prubežném zesilování signálu, prenášených jedním nebo druhým
smerem, a v jejich nezbytné regeneraci. Šlo tedy o prípad, kdy zmínená "krabicka" funguje jako pouhý digitální
zesilovac, který všechno, co "zaslechne" z jedné
strany (tj. z jednoho kabelového segmentu), okamžite "zopakuje" druhé strane (druhému segmentu, resp. všem
ostatním segmentum, které jsou na nej napojeny). Proto se takto fungujícímu zarízení ríká opakovac (repeater).
Pokud bychom chteli opakovac zaradit do nekteré z vrstev, které se dnes u
pocítacových sítí s tak velkou oblibou rozlišují, pak by nutne šlo o tu nejnižší z nich (oznacovanou jako fyzická).
Opakovac totiž skutecne pracuje na nejnižší možné úrovni, na které rozlišuje pouze jednotlivé bity (resp.
diskrétní stavy císlicových signálu), ale nijak nevnímá jejich význam. A práve to je jeho
velkou výhodou i nevýhodou soucasne. Jelikož se opakovac nemusí zdržovat interpretací jím procházejících dat,
muže být velmi rychlý - muže pracovat "v reálném case" a okamžite predávat z
jedné strany na druhou skutecne vše, co kde zaslechne. To ale není zdaleka vždy výhodné.
Predstavme si jednoduchý príklad: dva kabelové segmenty spojené opakovacem a ctyri uzlové pocítace A, B, C
a D pripojené tak, že uzly A a B jsou na jednom segmentu a uzly C a D na druhém. Ted si predstavme, že uzel A
práve komunikuje s uzlem B. Jelikož se oba tyto uzly nachází ve stejném segmentu, mohla by veškerá jejich
komunikace zustávat pouze "uvnitr" tohoto segmentu a
vubec by nemusela být prenášena i do druhého segmentu, kde navíc brání prípadné soubežné komunikaci uzlu C
a D. Pokud jsou ale oba segmenty spojeny opakovacem, ten není schopen rozpoznat, co by mohlo zustat lokální,
a co nikoli, a proto musí prenášet z jednoho segmentu do druhého skutecne vše. Nevhodnost takovéhoto
zpusobu fungování opakovace je v sítích typu
Ethernet ješte umocnena podstatou jejich prístupové metody, která pripouští možnost tzv. kolizí (neboli situací,
kdy více uzlu zacne vysílat najednou - viz CW 33/93). V ethernetovských sítích kolize opakovaci prochází, a šírí
se tak z jednoho segmentu do všech ostatních (i když její prícina muže mít
Lokální charakter). Pokud bychom chteli, aby "krabicka" mezi dvema kabelovými segmenty sama
dokázala rozpoznat, co musí prenést z jedné strany na druhou, a co naopak nemusí, pak je treba ji vybavit urcitou
mírou inteligence. Pokud tato inteligence stací práve na to, aby se "krabicka" dokázala
sama rozhodnout, zda data mohou zustat lokální v urcitém segmentu (a pak s nimi jednoduše nic
nedelat), nebo zda nikoli (a pak se zachovat jako opakovac a rozeslat je do všech ostatních segmentu), pak jde o
tzv. bridge (cesky: most, nekdy též: mustek). Kdybychom tento požadavek ješte zprísnili a chteli, aby "krabicka"
v tomto druhém prípade nerozesílala data do všech ostatních segmentu, ale vybrala z nich jen jeden (ten, který
leží na ceste ke konecnému príjemci), pak by již šlo zase o jiný druh "krabicky" (o tzv. smerovac, o kterém si
budeme povídat príšte). Most tedy ke své funkci potrebuje znát formát prenášených dat, a to alespon natolik,
aby si z nich dokázal odvodit, kdo je jejich príjemcem a kdo odesilatelem. Krome toho pak potrebuje i informaci
o tom, které uzly
se nachází ve kterých segmentech. Tuto druhou skupinu informací muže most získat ruznými zpusoby. Jednou z
možností je apriorní "vyplnení tabulky", kterou most ve vhodné forme dostane
pri svém spuštení a podle které pak pracuje, aniž by ji sám jakkoli menil. To je jiste velmi robustní rešení,
vhodné pro takové síte, jejichž konfigurace se mení jen zcela výjimecne. V praxi je ale toto rešení používáno jen
velmi málo, protože existují jiná, ješte výhodnejší rešení. Jedním z nich je nezadávat mostu apriorne umístení
jednotlivých uzlu síte v konkrétních segmentech, ale ponechat na nem, at si tuto informaci zjistí sám. To je
možné, protože most musí analyzovat každý prijatý blok dat
a sledovat, kdo je jeho odesilatelem a kdo jeho príjemcem. Most si tedy muže dát do souvislosti adresu
odesilatele se segmentem, ze kterého príslušný blok dat prijal, a z toho si odvodit, že odesílající uzel se nachází
práve v tomto segmentu. Takto se most dokáže postupne sám naucit vše, co ke své práci potrebuje. Na pocátku
je sice "úplne hloupý", ale tím není nijak narušena korektnost jeho fungování - je pouze méne efektivní, a to ješte
jen na relativne velmi krátkou dobu. Jestliže totiž most na pocátku ješte nedokáže rozpoznat, že urcitý blok dat
by mohl zustat lokální v príslušném
segmentu, rozešle jej i do všech ostatních segmentu. Z první odpovedi se však již dokáže náležite poucit.
Takovýto zpusob fungování mostu se oznacuje jako transparentní (transparent bridging), a príslušné mosty se
pak podle toho oznacují jako transparentní. Nekdy se v této souvislosti používá i výstižný prívlastek samoucící
(self-learning). Mosty tohoto typu jsou velmi oblíbené zvlášte v sítích typu Ethernet, kde se jiné druhy mostu
prakticky nepoužívají. Pro korektní funkci mostu je ovšem velmi duležitý jeden predpoklad: jednotlivé kabelové
segmenty síte nesmí být propojeny pomocí mostu tak, aby zde vznikaly cykly (tj. musí jít o acyklický graf, resp.
o dusledne stromovitou strukturu). Jinak
by totiž samoucící se most mohl "zaslechnout" jeden a tentýž blok dat (tj. od jednoho a téhož odesilatele) z více
stran a nedokázal by si správne odvodit, ve kterém segmentu se tento odesilatel nachází. Mosty samozrejme lze
vybavit další inteligencí, která jim umožní rozpoznat a odstranit prípadné zacyklení síte. O tom si ale povíme
zase až nekdy príšte.
Brouter, gateway
Pojmy opakovac (repeater), most (bridge) a smerovac (router), kterými se to v dnešních pocítacových sítích jen
hemží, mají jednu velkou prednost - jejich interpretace je vzácne jednotná. Když se napríklad rekne opakovac, je
ihned jasné, že jde o takové zarízení, které propojuje dva ci více segmentu pocítacové síte, a samo pracuje na
úrovni fyzické vrstvy. Most také propojuje dva ci více segmentu, ale pracuje na úrovni bezprostredne vyšší, tj. na
úrovni linkové vrstvy, zatímco smerovac pracuje na ješte vyšší úrovni, a to na úrovni sítové vrstvy. Existuje
dokonce i prechodný typ mezi smerovacem a mostem - zarízení, kterému se v anglictine ríká brouter (jako
složenina od: bridge/router). Zpusob fungování tohoto zarízení vychází vstríc takovým protokolum, které vubec
nepocítají s existencí sítové vrstvy, a klasický smerovac, který pracuje práve na úrovni této sítové vrstvy, by si s
nimi nedokázal
poradit. Príkladem je obstarožní protokol NetBIOS pocítacu PC, ale obdobne je na tom napríklad i protokol LAT
firmy DEC. S takovýmito protokoly si však dokáže poradit zmínený brouter - pokud narazí na takový protokol,
který pocítá s existencí sítové vrstvy a je možné jej tzv. smerovat, pak se brouter chová jako smerovac. Pokud
však narazí na jiný protokol, který nedokáže smerovat (tj. zpracovat na úrovni sítové vrstvy), pak se zachová
jako most (bridge). Existuje však ješte další termín, který se v souvislosti se vzájemným propojování sítí velmi
casto používá: gateway (cesky: brána). Tento termín již nemá zdaleka takové štestí, jako opakovac, most,
smerovac i brouter -
jeho interpretace se casto dosti ruzní. Nekdy je tento pojem používán jako spolecný zastrešující termín pro
všechny ostatní termíny: v tom smyslu, že napríklad most je takový druh brány, která
pracuje na úrovni linkové vrstvy, zatímco smerovac je taková brána, která pracuje na úrovni sítové vrstvy. Jindy
je brána (gateway) ztotožnována jen se smerovacem. Význacným príkladem je terminologie sítí na bázi rodiny
protokolu TCP/IP: zde se pod pojmem gateway (brána) bežne rozumí smerovac. V soucasné dobe se ale i zde
zacíná místo nesprávného pojmu gateway používat mnohem správnejší termín IP router (IP smerovac). V užším
slova smyslu se ale bránou rozumí takové zarízení, které pracuje na úrovni ješte vyšší, než je vrstva sítová (tj. na
transportní až aplikacní
vrstve). Pro správné pochopení významu bran je dobré si uvedomit jednu významnou skutecnost: pocítacové
síte nejsou všechny stejné. Práve naopak, často se mohou i velmi významne lišit. Na tom, jak dalece se liší, pak
závisí i možnosti jejich propojení na úrovni jednotlivých vrstev. Obecne platí, že
cím vetší je odlišnost, tím vyšší je vrstva, na které je možné realizovat jejich vzájemné propojení.
Z tohoto pohledu pak brána slouží k propojování tech nejvíce odlišných sítí. Velmi casto pracují brány až na
úrovni nejvyšší, tj. aplikacní vrstvy, kde zajištují prevod dat mezi jednotlivými aplikacemi. Príkladem mohou být
ruzné druhy poštovních bran (mail gateways), které umožnují predávat elektronickou poštu z jedné síte do druhé.
Ruzné síte totiž mohou používat ruzný formát jednotlivých zpráv (hlavne hlavicky), jiný zpusob adresování, a
napríklad i jiný zpusob kódování jednotlivých znaku v tele i hlavicce zprávy. Zajistit potrebnou konverzi pak
dokáže až brána, pracující na aplikacní úrovni, protože pouze na této úrovni muže "vnímat" strukturu
prenášených dat, a dokáže tak rozpoznat jednotlivé zprávy a správně interpretovat (a zkonvertovat) jejich
obsah. Pro brány, pracující na nižší úrovni, by šlo jen o souvislý proud dat, jejichž význam by na této úrovni již
nebyl znám.
Hub
Jedním z nejtvrdších oríšku naší soucasné pocítacové terminologie je bezesporu vhodný preklad anglického
termínu hub. Ne ani tak proto, že i v anglictine je obsah tohoto pojmu znacne široký - problémem je spíše ubránit
se jeho doslovnému poceštení, které v sobe skýtá opravdu netušené
možnosti: jak by se vám napríklad líbily sebevedomé reklamní slogany typu: "Naše huby jsou ty nejlepší!" ci
nabídky nových služeb, hlásající: "Opravujeme rozbité huby". Kdoví, možná by na to prispela i Všeobecná
zdravotní pojištovna, když podle soucasných zákonu uživatelé fakticky platí zdravotní pojištení i za výpocetní
techniku, kterou si museli porídit z cistého zisku své firmy, a
odepisovat ji mohou jen postupne. Nebo že by tato služba prišla nekdy vhod tomu, kdo to takhle vymyslel?
Vratme se ale radeji zpet k meritu veci. V minulém vydání této rubriky (na téma: transceiver, drop cable, AUI a
BNC) jsme si popisovali, jakým zpusobem se v sítích sbernicového typu pripojují na spolecné prenosové
médium jednotlivé uzly. Pritom bylo podstatné, že tímto prenosovým médiem byl koaxiální kabel, umožnující
vytváret vícebodové spoje. Co ale delat v prípade, kdy chceme použít jiný druh prenosového média – napríklad
kroucenou dvoulinku ci optické vlákno - které umožnuje vytváret pouze dvoubodové spoje? Tedy které
umožnuje propojit mezi sebou práve a pouze dva úcastníky? Zde jsou v principu vylouceny jakékoli odbocky
prímo na vlastním spoji a jediným rešením se stává vytvorení odbocek ješte v rámci výstupních obvodu (budicu
a prijímacu), ke kterým se prenosové spoje teprve pripojují. Vlastne to znamená vytvorit pro každý jednotlivý
dvoubodový spoj samostatné prípojné místo, s vlastními budici a prijímaci, vlastním konektorem atd. Pokud pak
budeme chtít vytvorit sít s kruhovou topologií, budeme potrebovat, aby každý její uzel mel dve takováto prípojná
místa - po jednom pro spoj s každým ze svých dvou sousedu. Pro stromovou topologii (odpovídající binárnímu
stromu) bychom potrebovali v koreni dve prípojná místa, v listech
bychom vystacili s jediným, ale ve všech ostatních uzlech bychom potrebovali tri. Podobne pro hvezdicovou
topologii - zde bychom ve všech uzlech krome stredového vystacili opet s jediným prípojným místem, ale ve
stredovém uzlu jich potrebujeme tolik, kolik je ostatních uzlu. No a práve zde by asi již nebylo únosné
(predevším z konstrukcních duvodu), aby všechna tato prípojná místa, se všemi souvisejícími obvody a
konektory, byla zabudována do vlastního uzlového pocítace (to muže být únosné pro dve ci ctyri místa, ale již
asi ne pro 32, 64 atd.). Zde se stává výhodnejším rešit tato prípojná místa jako samostatný konstrukcní celek,
který ve své podstate funguje jako rozbocka a nahrazuje odbocky prímo na vlastním spoji odbockami
vytvorenými ješte v rámci budicích obvodu. No a práve takovémuto konstrukcnímu celku se v anglictine ríká
hub. V doslovném prekladu znamená anglické "hub" náboj ci hlavu kola, hrdlo trubky nebo zarážku a v
preneseném významu pak hlavu, stred ci centrum (napr. "up to the hub" - až po krk, "a hub of commerce" -
stredisko obchodu apod.). Své místo má i ve slangu: napríklad mestu Boston se nekdy ríká "Hub of the
Universe". "Pocítacový" hub je pak obecne jakékoli zarízení, které slouží k rozvetvení kabeláže v pocítacových
sítích, resp. k soustredení více individuálních spoju do jednoho místa. Proto je asi vecne nejsprávnejší prekládat
tento anglický termín jako rozbocovac ci rozvetvovac, méne vhodne pak jako koncentrátor (protože tento pojem
již je používán k oznacování neceho jiného - viz dále). V praxi ovšem existuje široká škála ruzných hubu
(pardon: rozbocovacu). Ty nejjednodušší jsou pouze pasivními rozbockami, které nijak neupravují prenášený
signál a ani jej nezesilují. Ponekud dokonalejší verze rozbocovacu pak mohou soucasne fungovat i jako digitální
zesilovace a zesilovat prenášený signál (aniž by jej jakkoli logicky vyhodnocovaly ci zpracovávaly). S temito
dvema druhy rozbocovacu se mužeme setkat
napríklad u sítí ARCnet, kde jsou oznacovány jako pasivní, resp. Aktivní rozbocovace. Huby (rozbocovace)
jsou ovšem i tzv. jednotky MAU (Multistation Access Unit), používané v sítích Token Ring firmy IBM. Jde o
samostatné "krabicky", ke kterým lze pripojit až 8 uzlových pocítacu (pokud tento počet nedostacuje, lze
pridávat další jednotky MAU). Zajímavé je to, že jednotlivé uzlové pocítace se pripojují prímo na jednotky
MAU tak, jako kdyby šlo o sít s hvezdicovou topologií (v jejímž stredu je jednotka MAU). Ve skutecnosti
ovšem jde o kruhovou topologii - jednotlivé uzly se sice pripojují jediným kabelem, ale ten je tvoren dvema
spoji, které s pomocí propojení uvnitr jednotek MAU vytvárí kruh. Jakou to má logiku? Zkuste si predstavit
"normální" kruh, ve kterém z každého
uzlu vedou dva kabely, každý na opacnou stranu. A ted si predstavte, že s tímto uzlem se neco stane - at již se
samotným uzlovým pocítacem, nebo s kabely, které jej propojují s obema jeho sousedy. Závada na tomto
jediném uzlu vyradí z cinnosti celý kruh. Náprava není principiálne težká - nejprve je
třeba lokalizovat závadu a pak docasne preklenout místo, kde k ní došlo (napr. natažením provizorního kabelu,
který opet uzavre prerušený kruh). Pokud je ale kruhová topologie realizována fyzickým usporádáním do
hvezdy, je mnohem snazší hledat závadu na jediném míste (v jednotce MAU) a odstranit ji jednoduchým
odpojením té prípojky, která závadu zpusobuje. Navíc je možné
vybavit jednotku MAU vlastní inteligencí, která jí umožní, aby sama lokalizovala prípadné závady, a dokonce i
to, aby sama prijala nezbytná nápravná opatrení, odpojila vadné uzly, a informovala o tom správce. V síti, která
má nekolik málo uzlu, je to možná zbytecný luxus, ale když máte na starosti sít se stovkami ci tisíci uzlu, pak
jiste velmi oceníte, když se sít dokáže o sebe postarat sama. Další výhodou centralizovaného propojení s
využitím rozbocovacu je ivetší flexibilita - prípadné zmeny v kabelových rozvodech lze provádet velmi snadno,
pouhým odpojením od jednoho prípojného místa a pripojením k jinému. Velká výhoda je i v tom, že samotné
rozbocovace (huby) lze zapojovat do stromu, a tak velmi jednoduše rozširovat pocet prípojných míst tam,kde
jsou zapotrebí. Práve toto zrejme byl hlavní duvod, proc se použití rozbocovacu výrazným zpusobem prosadilo i
do sítí typu Ethernet, které predpokládají sbernicovou topologii. Souvisí to i s nástupem tzv. kroucené dvoulinky
jako alternativy ke koaxiálnímu kabelu, pro který byl standard Ethernetu puvodne vyvinut. Zatímco ale koaxiální
kabel umožnuje vytváret vícebodové spoje, kroucenou dvoulinku lze použít jen pro spoje dvoubodové. Proto si
její nasazení prímo vynutilo používání rozbocovacu (hubu), což ale zase na druhé strane umožnilo vytváret
kabelové rozvody se stromovitou ci ruzne kombinovanou strukturou
místo jednoho souvislého kabelu, který musel procházet kolem všech jednotlivých uzlu a který stacilo prerušit v
jediném bode, aby celá sít byla mimo provoz. Vybavení nekterých rozbocovacu vlastní inteligencí pak prineslo
cetné další výhody v oblasti správy síte, a také tím zvýšilo její celkovou
provozní spolehlivosti. Pro správné pochopení pojmu "hub" je dobré si ješte naznacit, v cem se liší
od zarízení, kterému se obecne ríká koncentrátor. Zkusme si predstavit instalaci zvonku v dome s mnoha byty.
Z každého bytu v urcitém patre vede od zvonku dvojice vodicu na chodbu, kde se pridávají obdobné dvojice
vodicu z ostatních bytu, a spolecne ústí do jednoho spolecného kabelovodu, který je pak vede až k panelu se
zvonkovými tlacítky. Tento kabelovod lze prirovnat ke koncentrátoru, nebot soustreduje jednotlivé dvojice
vodicu a dále je vede spolecne, i když každý z nich si zachovává samostatnou existenci. Když pak stlacíte urcité
zvonkové tlacítko, zacne zvonit zvonek v jednom konkrétním byte. Rozbocovaci (hubu) by naopak odpovídal
jediný dvoužilový kabel, na který by byly z jedné strany pripojeny dvojice vodicu od všech zvonku v
jednotlivých bytech, a na druhé strane jediné zvonkové tlacítko. Po jeho stlacení by pak zvonily zvonky ve všech
bytech.
Koncentrátor je tedy zarízení, které sdružuje n vstupu do jediného výstupu takovým zpusobem, který je vratný
(tj. který umožnuje jednotlivé kanály od sebe zase kdykoli oddelit). Príkladem mohou být takové koncentrátory,
které po jediném spoji prenáší data pro nekolik terminálu (tj. na jednom fyzickém spoji vytvárí více logických
spojení, pro každý terminál jedno), ci ruzné druhy koncentrátoru používaných v telefonní technice (a umožnující
prenášet více telefonních hovoru po jediném kanálu).
Naproti tomu rozbocovac (hub) sdružuje jednotlivé své vstupy nevratným zpusobem - vlastne všechno okamžite
"promíchá". Pokud je vybaven vlastní inteligencí, ta se soustreduje na dohled nad funkcností jednotlivých vstupu
(napríklad na kontrolu, zda nekterý z nich není zkratován apod.), na sber ruzných statistických údaju, na
dynamickou rekonfiguraci (odpojení některých vetví) apod., ale nijak netransformuje data, která jsou
rozbocovacem prenášena.
Základní pojmy
Řadící metoda
Je obecně postup, jehož provedením získáme setříděný výsledek podle daného kritéria. Každá řadící
metoda má svůj odlišný postup, jakým dá setříděná data na výstup.
Přirozenost metody
Řadící metoda se nazývá přirozená, jestliže doba potřebná k seřazení již seřazené podmnožiny údajů je
menší, než doba potřebná na seřazení zbývající neuspořádané podmnožiny. Pokud tato podmínka není
splněna, pak se metoda označuje za nepřirozenou.
Stabilita algoritmu
Algoritmus je stabilní, jestliže zachovává stejné pořadí záznamů se stejným klíčem. Tato vlastnost je
požadována v těch případech, ve kterých skupiny záznamů se stejnou hodnotou klíčové položky ještě
uvnitř řadíme podle jiného klíče.
Rychlost algoritmu
Někdy také nazývána algoritmická složitost, lze chápat jako počet provedení porovnání klíčových
položek, která jsou nutná pro získání uspořádaní posloupnosti. Algoritmická složitost pro N záznamů je:
• logaritmická O(log N)
• lineární O(N)
• polynomiální O(P(N)) (např. kvadratická O(n2), nebo kubická O(n3) )
• exponenciální O(2N)
• faktoriální O(N!), nebo O(NN)
Už snad jenom pro upřesnění, časově nejvýhodnější je složitost logaritmická, nejhorší případ je složitost
faktoriální a jí podobné.
begin
for j:=1 to n do
begin
x:=a[j];
k:=j;
for i:=j+1 to n do
if x<a[i] then begin x:=a[i]; k:=i; end;
pom:=a[i];
a[i]:=a[k];
a[k]:=pom;
inc(j);
end;
end.
Předpokládejme, že část pole od indexu 1 až po K je setříděná. Vezmeme K+1 prvek a vložíme jej na správné
místo do již uspořádané posloupnosti a za seřazenou považujeme posloupnost od 1 do K+1. Na začátku
považujeme za uspořádanou posloupnost pouze prvek 1.
Metoda se chová přirozeně a je stabilní. Avšak mezi rychlé metody zrovna nepatří.
var i, j: index;
x: prvek;
a: array [index] of prvek;
begin
for i:=2 to n do
begin
x:=a[i];
a[0]:=x;
j:=i-1;
while x<a[j] do
begin
a[j+1]:=a[j];
dec(j);
end;
a[j+1]:=x;
end;
end.
Quick Sort
Metoda Quick Sort je založená na rekurzi. Využívá principu dělení řazeného pole. Řazené pole rozdělíme na dvě
části A a B, pro které bude platit, že všechny prvky z A jsou menší než libovolný prvek z B. Toto provádíme
rekurzivně tak dlouho, dokud celé pole není seřazené. Část algoritmu, která provádí rozdělování pole na části A
a B, může pracovat např. tak, že hledá zleva nejbližší další prvek, který je větší nebo roven dělící hodnotě x, a
hledá zprava nejbližší další prvek, který je menší nebo roven dělící hodnotě x. Tyto prvky se vzájemně
vyměňují. V této činnosti se pokračuje tak dlouho, dokud proti sobě postupující indexy, pomocí kterých se
prochází řazená část pole, nepřekříží. Hodnota x se obvykle volí jako prostřední prvek. (tzv. medián)
Metoda není stabilní a nepracuje přirozeně. Je však jednou z nejrychlejších řadících metod, i když může být
někdy na obtíž přítomná rekurze.
BEGIN
trid(1,n);
END.
Bubble Sort
Bublinkové třídění je v principu podobné jako metoda přímého výběru, rozdíl je ve vyhledávání minima a jeho
záměna s prvním prvkem neseřazené podposloupnosti. Neseřazená část pole se prochází zprava doleva a
porovnávají se postupně každé dva sousední prvky pole - nejsou-li vzájemně seřazeny ve smysly výsledného
řazení, vymění se.
Co se týče rychlosti, jde snad o nejhorší řadící metodu. Vhodná je jenom k otestování, zda daná posloupnost je
uspořádaná, neboť v takovém případě metoda projde posloupností pouze jednou.
begin
for i:=2 to n do
for j:=n downto i do
if a[j-1]>a[j] then
begin
x:=a[j-1];
a[j-1]:=a[j];
a[j]:=x;
end;
end.
Zapisovací a přepisovací CD-RW mechaniky ukládají data na CD-R a CD-RW média. Na trhu je dnes několik
desítek značek a druhů médií, které se liší cenou i délkou.
Původní specifikace CD hovoří o délce média 74 minut. Toto číslo vzniklo zřejmě proto, aby se na tehdy nové
médium vešla celá Beethovenova Devátá symfonie, která má délku právě necelých 74 minut.
Čtyřiasedmdesátiminutová CD-R a CD-RW média jsou dnes standardem, jejž akceptovali všichni výrobci. Na
takové médium se vejde přibližně 650 MB dat, i když vzhledem ke struktuře souborů nemusí být toto číslo zcela
přesné.
Postupem času se začala vyrábět média také v jiných délkách. Nejdříve se objevily malé disky s průměrem
pouhých 8 cm, na která se vejde 21 minut záznamu, což odpovídá asi 200 MB dat. Pomineme-li to, že jsou
menší, přenosnější a vypadají velmi exoticky, jen stěží najdeme mnoho důvodů pro jejich koupi. Jsou nejen
relativně tedy vůči své kapacitě ale většinou také absolutně dražší než média běžných délek a v některých
přehrávačích mohou způsobovat problémy.
Před několika lety se začaly objevovat CD--R disky s kapacitou 80 minut, které pojmou kolem 700 MB dat.
Původně byly použitelné především pro zálohování či kopírování originálních CD s délkou mezi 74 a 80
minutami, dnes se však pomalu stávají standardem a některé zprávy hovoří dokonce o tom, že na ně výrobci
přejdou ze 74minutových. S 80minutovými CD-R médii nejsou žádné problémy s kompatibilitou, drtivá většina
přepisovacích i CD mechanik je schopna s nimi pracovat, a ani ve spotřební elektronice se nesetkáváme s
potížemi.
Zvláštní variantou disků jsou tzv. Audio CD-R, která mají garantovanou kompatibilitu s audiozapisovačkami v
domácích systémech a jsou také snadno čitelné v CD přehrávačích.
Rovněž na poli CD-RW médií se s příchodem vysokorychlostních vypalovaček udála malá revoluce. Změnou
struktury a chemického složení aktivní vrstvy CD-RW se rozdělila média na klasická a tzv. High Speed CD-RW.
Zajímavé však je to, že High Speed CD-RW jsou použitelná pouze v High Speed CD-RW mechanikách s
rychlostí zápisu 4x až 10x a nelze na ně zapisovat v běžných CD-RW jednotkách.
Ač je to k nevíře, kompaktní disky jsou vynálezem starým už téměř dvacet let. Prvotně byly určeny pouze jako
hudební nosiče, ale postupem času se zjistilo, že je možné použít jich také jako nosičů datových. Na začátku
90. let pak technologie postoupila tak daleko, že bylo možné vytvořit CD bez lisování, speciálním zápisem na
prázdné medium. Tato technika se záhy začala nazývat CD Recordable (CD-R).
CD-RW
Přepisovatelné disky CD-RW jsou dalším pokračováním úspěšné ságy kompaktních disků. Stejně jako u jiných
kompaktních disků je jako nosné médium použit drážkovaný polykarbonátový substrát, na kterém je naneseno
několik vrstev, z nichž ta nejdůležitější je slitina Ag-In-Sb-Te. Protože princip jejich čtení je shodný s jinými
typy CD, i zde se musí využívat různé odrazivosti materiálu. Slitina při běžné teplotě může setrvávat ve dvou
stavech amorfním a krystalickém. Při čtení míst s krystalickou fází laser prostoupí až k reflexní vrstvě a odrazí
se, zatímco v místech s amorfní fází se rozptýlí.
Zápis na CD-RW se provádí laserovým paprskem s vlnovou délkou 780 nebo 650 nm, který ohřeje slitinu
aktivní vrstvy na teplotu 500-700 st. Celsia. Slitina se tak velmi rychle začne tavit a při následném ochlazení
dojde k fázové přeměně do amorfního stavu.
Mazání média se provádí zahřátím slitiny pod teplotu tání avšak nad krystalizační teplotu (200 st. Celsia) po
dostatečně dlouhou dobu. Po ochlazení se fáze slitiny navrátí zpět z amorfní do základní krystalické, a médium
se chová jako prázdné. Tato technologie opakovaných, teplem vyvolaných změn fáze slitiny Ag-In-Sb-Te se
nazývá "Phase Change".
Většina vypalovacích programů dovede disk vymazat buď vcelku, což trvá několik desítek minut, nebo je
možné za pár minut smazat z disku pouze TOC. Také to způsobí, že se médium chová jako prázdné, avšak
zbytky dat na povrchu CD-RW mohou být bezpečnostním problémem v místech s požadovaným utajením.
Následné čtení je stejné jako čtení disků CD-ROM nebo CD-R, jen s tím rozdílem, že čtecí mechanika musí být
uzpůsobena k práci s médii s nižší odrazivostí. Touto vlastností jsou vybaveny všechny nově prodávané CD-
ROM mechaniky.
S CD-RW přišel také nový způsob zápisu. Aby bylo možné použít CD-RW stejně jako disketu, používá se tzv.
Packet Writing. Při zápisu touto metodou se nevytvářejí tracky a sessions stejně jako při klasickém zapisování,
ale data se ukládají do malých paketů s různou nebo stejnou velikostí (podle typu Packet Writingu). Pakety jsou
uzavřeny pouze v bajtech servisních kódů, a proto se výrazně omezují nepříjemné ztráty prostoru na CD při
zápisu metodou Multi-session. Jestliže je však potřeba takto zapsané médium číst v klasické CD mechanice,
software uzavře paketový zápis do několika sessions běžného zápisu ISO 9660.
Také ceny CD-RW médií se od svého uvedení posunuly směrem dolů a dnes je možné koupit jeden kus v
cenách kolem 100 Kč. CD-RW disky se výborně hodí na dlouhodobé zálohování, neboť garantovaná doba
životnosti bývá uváděna nad 30 let. Bohužel však v tomto případě vychází cena uloženého megabajtu dat dost
vysoko, a proto je pro dlouhodobé zálohy lepší použít levnější, avšak stejně odolná média CD-R. Na krátkodobé
zálohy, případně zálohy, které se musejí často nahrazovat novými verzemi, zvlášť s důrazem na možnost čtení v
moderních CD-ROM mechanikách, jsou CD-RW disky tím pravým.
Životnost
Jak jsme již poznamenali, u CD-RW médií je běžně udávaná doba životnosti 30 let. CD-R média se poslední
dobou v tomto parametru dost zlepšila, a dnes se odhaduje životnost vypálených dat na 70 až 200 let. Velké
rozdíly v tomto směru jsou způsobeny různými metodami matematické modelace životnosti materiálu, které
provádějí různí výrobci. V současnosti se vyvíjí norma ANSI pro přesnější a porovnatelnější odhady životnosti
dat na CD-R. V každém případě ještě dnes nelze s jistotou tvrdit, jak dlouho data na CD-R vydrží, neboť
technologie je to příliš mladá, než aby se nějaké větší množství disků již stihlo "zkazit".
Závěrem
Technologie CD-R a CD-RW jsou obrovským průlomem do oblasti osobního i firemního zálohování. Jejich
velkou výhodou je až na výjimky skvělá kompatibilita se stávajícími mechanikami CD-ROM. Také cena
zapisovacích mechanik, CD-R a CD-RW médií i kvalitního softwaru nahrává jejich většímu rozšíření. Velmi
dobře vypadající životnost záznamů je dalším trumfem v boji o zákazníka, který si cení svých dat a zálohuje.
Jestli se na obzoru rýsuje nějaká hrozba pro CD, pak je to jedině DVD a DVD-RAM/RW. Na to si však budeme
muset ještě nějakou dobu počkat.
BIOS
Slovo BIOS je zkratka z angličtiny (Basic Input Ouput Systém) a znamená to: Základní vstupně výstupní systém.
Jinými slovy tvoří rozhraní mezi hardwarem a vyššími vrstvami programového vybavení. Programy které však
přímo kontaktují hardware jsou nepřenositelné a málo univerzální vůči typu počítače. BIOS je pak programová
část počítače velice závislá na typu počítače a jeho technickém uspořádání. Kvůli tomu je pak pro každý typ a
složení třeba jiný BIOS. A tudíž je z toho jasné že je součástí každého počítače typu PC.
Jeho velkou výhodou je , že představuje standardizované programové rozhraní. jelikož vstupní body a parametry
procedur jsou jednoznačně definovány, tedy nezávisí na typu obsluhované periférie, nebo na vývoji počítače ani
na vývoji Biosu samotného. Tento standart ze strany vyšších vrstev je dána tím, že pro přístup k Biosu je
vyhrazená část přerušovacích vektorů, (programové přerušení, realizované instrukcí INT). přičemž jsou pro
BIOS vyhrazeny vektory přerušení: 5H,10H-1FH a 40H-5FH, z nichž část je určena pro přístup k datovým
strukturám. Toto pak umožňuje daný podprogram úplně změnit pouhým přesměrováním vektorů přerušení.
Při čemž BIOS musí plnit i jiné funkce:
- provádí úvodní text 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 sytému prostředky pro realizaci víceúrovňového prostředí
Aby se činnost Biosu a počítače vůbec spustila musí být BIOS umístěn do pevné paměti počítače v oblasti v níž
mikroprocesor začíná svou činnost po přivedení napájení. Po zapnutí provádí BIOS šest základních kroků:
nastaví konfiguraci počítače z CMOS paměti, provede autonomní test počítače, inicializace periférie, nainstaluje
obslužné rutiny přerušení Biosu, vyhledá svoje rozšíření na přídavných deskách a provádí instalaci těchto
rozšiřujících rutin a konečně spustí zavádění operačního systému.
1. Nastavení SETUP BIOSU
2.9 Exit
Umožňuje opustit Setup Biosu buď s potvrzením a uložením změn nebo bez uložení provedených změn.
Disková rozhraní
ROZDĚLENÍ
• ST 506
• ESDI
• SCSI
• IDE
• Enhanced IDE
ST 506
Používalo se u prvních počítačů PC, je to analogové rozhraní, kdy impulsy jsou vedeny plochým kabelem z
hlavy disku do řadiče a zpět, kde jsou vyhodnocovány. Z tohoto důvodu musí být kabely velmi krátké. Propojení
je dvěma datovými kabely 2 x 20 vodičů. Používaná modulace je MFM. Rozhraní se používá pro disky do
kapacity 40 MB. Možnost napojení dvou disků.
ESDI
Je digitální, používá modulaci RLL, 34 sektorů na jednu stopu. Jedná se o sériovou komunikaci mezi řadičem a
diskem.
SCSI
Je to systém, kdy do základní desky je zasunut řadič speciální sběrnice, ke kterému jsou připojovány jednotlivé
disky. Sběrnice je tvořena 50-ti žilovým kabelem. Maximální vzdálenost mezi propojením zařízení je do 6 m, při
větších vzdálenostech se používá spínač sběrnice. Hostitelský adaptér je iniciátor komunikace i adresát, bývá
připojen do rozšířené sběrnice základní desky. Iniciátor komunikace je libovolné zařízení, které požaduje
komunikaci se zařízením jiným. U normálních konfigurací je iniciátorem základní deska. Adresát je pevný disk s
řadičem. Tento systém umožňuje, aby jako jeden adresát bylo pomocí jednoho adaptéru propojeno až 8 periférií.
SCSI obsluhuje: pevné disky, tiskárny, optické disky, scanery. Příkladem nestandardního použití sběrnice jsou
adaptéry tiskáren, které přemění rozhraní centronix na SCSI. Je to 8 bitové rozhraní.
SCSI 2
Vychází z SCSI, je výkonnější (16-ti a 32 bitová komunikace), možnost napojení různých typů zařízení.
IDE
Nejrozšířenější rozhraní, pro disky WD, řadič umístěn většinou na spodní straně disku. V rozšiřující sběrnici je
zasunuta karta pro oddělení signálů. Řadič je jednoduchý, používají se tzv. kombinované řadiče, které obsahují
porty k připojení: dvou pevných disků, dvou pružných disků, dva sériové porty COM, jeden až dva paralelní
porty LPT, game port. Dva pevné disky jsou obsluhovány jako MASTER-SLAVE. Řadič spolupracuje se
standardním BIOSem.
Enhanced IDE
Vylepšené rozhraní IDE odstraňující některé z nedostatků rozhraní IDE. Umožňuje zapojení až čtyř zařízení,
zapojení i jiných zařízení než jsou pevné disky (např. CD-ROM, páskové mechaniky apod.). Eliminuje omezení
kapacity disku na 512 MB a využívá vyšší přenosovou rychlost.
JAVASKRIPTY
K čemu jsou skripty a k čemu je použít na webové stránce
Použitím skriptu můžete své webové stránky přeměnit ze staticky vyhlížejících na dinamické, které reagují na
podměty uživatelů přímo v jejich počítači aniž by došlo k znovu načtení ze strany webového serveru.To má za
následek odlehčení serveru od neustálého spojení s klientským počítačem a v konečném důsledku i rychlejší
komunikaci s uživatelem internetu. Pomocí skriptů určitě upoutáte případné návštěvníky Vašich stránek, na
kterých jistě pobudou díky ním déle a neodsurfují někam jinam.Skripty můžete ovládat,měnit jakoukoliv část
Vašich stránek bez zásahu ze strany serveru po načtení dané stránky.Změnit můžete třeba obrázek, blok textu
nebo na stránky umístit nějaký zajímavý vizuální efekt.
Internet Explorer je nejrozšířenějším webovým prohlížečem u nás a proto doporučuji psát skripty určené pro
zpracování tímto prohlížečem.Samozřejmě, že můžete upravit skript tak, aby ho bylo možné bez chybně zobrazit
také v prohlížeči Netscape Navigatoru.Ten ale používá nepatrná část uživatelů.Pokud se rozhodnete své skripty
na stránkách zpřístupnit i uživatelům, kteří používají tento browser, budete muset provést, ne vždy určité úpravy
( to se bude hlavně týkat JS scriptu).Ale pokud se rozhodnete psát skripty pouze pro Internet Explorer nemělo by
to nějak uškodit Vašim webovým stránkám.
Microsoft Visual Basic Scripting Edition (VBScript) a upravenou verzi Java Scriptu pojmenovanou Jscript. Dále
ho můžeme doplnit o podporu dalších skriptovacích jazyků jako je například velice známý jazyk Perl.Prohlížeč
funguje totiž jako skriptovací hostitel.Toho lze hlavně využít u aplikací, které používá omezený počet uživatelů a
jenž mohou mít všichni nainstalován příslušný skriptovací stroj.
VBScript
Tento skriptovací jazyk vycází z programovacího jazyka Microsoft Visual Basic, s kterému je velmi
podobný.Internet Explorer je zatím jediným prohlížečem, který ho podporuje.Používá se hlavně na serverech
Microsoft Internet Information Server (IIS) za použití technologie Active Server Pages (ASP).V prohlížeči
Internet Explorer není VBScript součástí minimální instalace, ale v případě potřeby se automaticky nahraje z
Internetu.
Programovací jazyk Java Script byl vyvinut společností Netscape Communications.S jazykem Java sdílí některé
konstrukce a část syntxe.Jscript je verze Java Scriptu , která je Implementována v prohlížeči Internet
Explorer.Zvětší části by však měl Jscript odpovídat Java Scriptu.Prohlížeče Internet Explorer 4.0 a Netscape
Navigator 4.06 a vyšší podporují standart ECMA-62, ve kterém jsou obsaženy hlavní funkce z jazyků Jscriptu a
Java Script, aby nedocházelo k nekompatibilitě.
Skripty se dají poměrně rychle naučit a snadno použít.Obsahují, ale některá omezení, zejména bezpečnostní
opatření.Neumožňují totiž číst a zapisovat soubory na pevném disku klientského počítače, to proto, aby nedošlo
za nevědomosti uživatele k případné ztrátě či zničení jeho dat. Pokud, ale chceme pracovat se souborovým
systémem počítače, přistupovat k disku lze použít technologii Windows Scripting Host ke spuštění samotného
skriptu mimo prohlížeč pomocí prvku Active X File Systém, který si musí uživatel nainstalovat a aktivovat.
Další omezení se týká příliš pomalého provádění u algoritmicky náročných operacích, které bývají ještě navíc
poměrně složité.
Skripty lze dále použít k ověřování formuláře, multimediálním operacím nebo pro oběktový model dokumentu
(DHTML).
Z pohledu uživatele jsou skripty transparentní a neviditelné.Vytvořený skript lze ihned vyzkoušet v prohlížeči,
bez nutnosti převedení do strojového kódu počítače jako tomu je je třeba u jazyka C++. Skriptovácí jazyky
VBScript a JScript jsou ve své podstatě komplikované a jejich úplné pochopení není příliš snadné, protože
vycházejí s programovacích jazyků a jsou s nimi doslova prorostlé.Ale pro vytvářeni skriptů na webové stránky
nám poskytují velmi výkonný a jednoduchý nástroj.
Software Engineering
Programování je umění - tak to alespoň tvrdí mnozí, kteří se programováním zabývají. Přitom mají v mnohém
pravdu, programování skutečně může být uměním - dokud jsou vytvářené programy takového rozsahu, že je bez
problémů zvládne napsat jediný člověk, v dostatečně krátkém čase, a navíc za takovým účelem, kdy "krása a
elegance" je ceněna více než funkčnost a hlavně spolehlivost celého programu. Jde vlastně o takové
programování, které by bylo možno s jistou mírou nadsázky označit jako "programování v malém".
Ale jak to potom vypadá s "programováním ve velkém"? Jak dopadají velké softwarové projekty, na kterých
musí spolupracovat celé týmy programátorů a dalších odborníků a na jejichž výsledku pak mnohdy bytostně
závisí normální fungování nejrůznějších úřadů, nemocnic, letišť, továren a kdoví čeho ještě? Dopadají většinou
naprosto stejně jako mnohé projekty srovnatelného rozsahu v různých průmyslových odvětvích - například ve
stavebnictví, strojírenství, zemědělství apod. Tedy končí později, než předpokládal původní plán, stojí více, než
na kolik zněl původní rozpočet, a mnohdy ani příliš nesplňují představy toho, kdo jejich vypracování zadal.
Dokonce jsou známy i takové softwarové projekty velkého rozsahu, které musely být ještě v průběhu svého
řešení zcela zrušeny; již proinvestované prostředky pak bylo třeba jednoduše odepsat. Ve světle skutečného
postupu realizačních prací se totiž ukázalo, že původní odhady složitosti, pracnosti a náročnosti těchto projektů
(včetně finanční náročnosti) jsou zpracovány "špatně" ne o nějaká malá procenta či desítky procent, ale o celé
tisíce procent!
Jak se ale takových situací vyvarovat? Jak zajistit, aby i "programování ve velkém" dopadalo dobře, aby
výsledky splňovaly představy zákazníka i dodavatele a měly dostatečnou kvalitu?
Mnozí významní lidé kolem počítačů si poměrně brzy uvědomili, že cesta vede jedině přes utužení disciplíny
neboli přes zavedení určitého řádu a přes aplikaci systematických metod a postupů do toho, co bylo až do té
doby chápáno spíše jako umělecká záležitost, stojící na individuálních schopnostech jedinců - zvláště pak, jde-li
o softwarové projekty většího kalibru. Tento tlak vyšel poněkud překvapivě z akademických kruhů, koncem
šedesátých a počátkem sedmdesátých let, a souvisel jistě i s tím, že práv ě v té době se objevovaly takové
prostředky a metodologie, které většímu dodržování disciplíny v programování vycházely účinně vstříc (viz
minulý příspěvek na téma "Strukturované programování").
Myšlenka, na které bylo navrhované řešení postaveno, je velmi jednoduchá - nechť se i při řešení velkých
softwarových projektů důsledně uplatňují takové postupy a metody, které se v jiných oblastech průmyslu
úspěšně používají pro řešení projektů srovnatelného či ještě většího rozsahu. Dovedeno téměř ad absurdum:
udělejme z "programování ve velkém" průmyslovou výrobu, a používejme pak obdobné nástroje a postupy, jaké
se používají tam. Samozřejmě se vším, co k tomu patří - od důkladné analýzy potřeb zadavatele přes projekční
fáze, organizační a řídicí postupy při vlastní realizaci, pro důslednou kontrolu kvality, testování, školení
uživatelů, řízený přechod na používání nového systému, podporu při provozu atd.
Jde tedy vlastně o důslednou aplikaci vědeckých poznatků, znalostí, postupů a zásad při programování ve
velkém a o ústup od nesystematického přístupu ve stylu "programování je umění". Jde tedy o aplikaci toho,
čemu se v angličtině obvykle říká dosti široce "engineering" a co se pak, aplikováno na tvorbu programových
celků, označuje jako software engineering (neboli softwarové inženýrství).
Structured programming
Máte rádi noviny a časopisy, které vás na první stránce nalákají spoustou lákavých titulků, dále vám nabídnou
několik prvních vět příslušného článku, a pak už vás jen odkáží na stránku xy, kde najdete pokračování? Také se
vám stává, že když vás nějaký titulek a prvních pár vět zaujme a vy se pustíte do hledání další části slibného
článku, že v průběhu tohoto hledání buď zapomenete, co to vlastně hledáte, nebo "po cestě" zaujme vaši
pozornost něco úplně jiného?
Těm, kteří noviny píší a vydávají, se nedivte - vždyť jejich cílem je prodat co možná nejvíce výtisků, a tak se
snaží vtěsnat na titulní stránku co možná nejvíce bombastických titulků a slibných úvodů, které čtenáře nalákají.
Příliš se však již nestarají o to, pomoci čtenáři, aby při čtení "udržel myšlenku".
Má ale takovýto přístup obdobu i ve světě počítačů? Bohužel ano, a mnohdy ne malou. Povšimli si toho mnozí
již v dávných dobách začátků programování, a to v souvislosti s používáním příkazu GOTO, který ve vyšších
programovacích jazycích realizuje skok v programu. Tedy vlastně přenesení řízení z jednoho místa na místo jiné,
které se může nacházet "blízko", ale stejně tak dobře "na hony daleko". Počítači, který takovýto program
provádí, to nijak nevadí - on svou "myšlenku" (představovanou obsahem registrů, paměti atd.) dokáže udržet bez
problémů. Ale co člověk, který takovýto program teprve píše, který jej ladí nebo který se v něm snaží alespoň
nějak orientovat? Pro něj takovýto skok může představovat dosti značnou změnu, při které už pro něj může být
nemalým problémem "udržet myšlenku" a zůstat nadále "v obraze". V důsledku toho se pak také dopouští více
chyb, než by mělo být obvyklé. A co teprve když takovýchto náhlých skoků bude celá řada, budou na sebe
postupně navazovat a půjdou vysloveně "na přeskáčku"?
Tím, kdo poprvé veřejně upozornil na nevhodnost takovéhoto přístupu, byl známý holandský profesor Edsger
Dijkstra - bylo to v dopise, který poslal redakci prestižního časopisu Communications of the ACM a který v něm
byl otištěn v březnu roku 1968 pod titulkem "Příkaz GOTO je považován za škodlivý" ("GOTO statement
considered harmful"). Profesor Dijkstra v tomto článku vyjádřil názor, že kvalita programátorů (a tím i jejich
programů) je nepřímo úměrná počtu použitých příkazů GOTO. Tedy že čím více příkazů GOTO je v nějakém
programu použito, tím hůře je takovýto program srozumitelný pro samotného autora i kohokoli jiného, tím více v
takovémto programu bývá chyb, tím hůře se v něm tyto chyby hledají a odstraňují a tím hůře se takovýto
program v budoucnu upravuje, rozšiřuje atd.
Zmíněný článek profesora Dijsktry odstartoval rozsáhlou polemiku odborné veřejnosti. Ta nakonec vyústila ve
formulování zásad, jejichž dodržování vnáší do vytvářených programů určitý řád, podporuje jejich celkovou
"průhlednost" a srozumitelnost, a tím současně i snižuje riziko chyb, pomáhá při potřebě ladění, usnadňuje
pozdější upravování apod.
Tyto zásady ve své podstatě říkají, že programy by neměly být sestavovány "tak, jak někoho právě napadne",
nekoordinovaným "splácáním" všeho možného, s následným řešení všech důsledků, které takovýto
nekoordinovaný a nesystematický přístup přináší. Místo toho požadují, aby základními stavebními kameny
programů byly takové části, které jsou dostatečně malé a "průhledné" (například bloky po sobě jdoucích
elementárních příkazů), a větší celky pak byly sestavovány z menších celků výhradně pomocí takových pravidel
(resp. s využitím takových programových konstruktů), které zachovávají potřebný řád a strukturu (jako například
podmíněné příkazy, různé druhy cyklů apod.). Naopak tato pravidla požadují, aby byly v maximální možné míře
vyloučeny takové mechanismy a konstrukty, které do programů vnáší chaos (jako právě nešťastný příkaz
GOTO).
Programy psané důsledně podle takovýchto zásad zcela automaticky a vlastně úplně "zadarmo" získávají velmi
přehledné a systematické vnitřní členění (též: vnitřní sktrukturu). Proto jsou také tyto zásady označovány jako
zásady strukturovaného programování (structured programming).
Macro
Programování může být i fyzicky náročnou záležitostí - považujeme-li za fyzicky náročné intenzivní bušení do
klávesnice. Někdy se totiž může stát, že naprogramování něčeho konkrétního dá opravdu hodně práce, resp.
vyžádá si „naťukání" opravdu velkého kusu zdrojového textu. Přitom samozřejmě velmi záleží na schopnostech
a stylu konkrétního programátora, ale nezanedbatelný vliv zde má i výrazová schopnost použitého
programovacího jazyka. Není jistě těžké nahlédnout, že čím vyšší je úroveň programovacího jazyka, tím větší je
semantický obsah jednotlivých syntaktických elementů tohoto jazyka. Neboli, řečeno srozumitelnější mluvou:
tím více znamená to, co v daném jazyce napíši. Zdaleka „nejukecanějšími" jsou proto programy v jazyku
symbolických adres, neboli v asembleru. Zde se mnohdy člověk dříve upíše, než něco skutečně smysluplného
naprogramuje.
Není proto divu, že lidé se brzy začali ohlížet po takových mechanismech, které by jim usnadnily psaní
rozsáhlejších zdrojových textů, a tuto mnohdy dosti monotónní činnost co možná nejvíce zefektivnily. Vcelku
logicky se pak takovéto mechanismy vyvinuly a došly největšího uplatnění u těch „nejukecanějších"
programovacích jazyků, tedy u nejrůznějších asemblerů. Společným charakteristickým rysem všech těchto
mechanismů je skutečnost, že fungují na textové úrovni - můžeme si je představit jako automatické dosazování
celých kusů textu na určená místa. A to ještě dříve, než překladač (asembler) začne doopravdy překládat
zdrojový text.
V souvislosti s těmito mechanismy se používá výstižný termín makro (angl.: macro). Jako tzv. tělo makra se
označuje vzor textu, který má být na určité místo zdrojového programu dosazen. Takovýchto vzorů ale může být
více (samozřejmě různých), a tak každý z nich musí mít vhodné označení - tzv. jméno makra. Vše pak funguje
následujícím způsobem: pokud nechceme nějaký text vypisovat vícekrát, napíšeme jej jen jednou, jako vzor, a
opatříme jej vhodným jménem. Tím tzv. definujeme makroinstrukci (též: makropříkaz, zkráceně jen makro).
Když pak někde potřebujeme napsat stejný text, nemusíme jej skutečně vypisovat - stačí místo něj uvést jméno,
které jsme přiřadili příslušnému makru (makroinstrukci, makropříkazu). Toto se většinou označuje jako volání
makra (macro call), i když to není příliš výstižné: volání by totiž naznačovalo odskok na jiné místo v programu,
zatímco zde k žádnému odskoku nedochází. Zde se naopak vezme příslušný text, a dosadí se na místo, kde bylo
makro voláno. Pokud je makro tímto způsobem voláno například na deseti místech, je efekt stejný, jako kdyby
byl příslušný text desetkrát rozepsán na zmíněných deseti místech (a existoval v deseti exemplářích). Místo
„rozepsání" se však hovoří o tzv. rozvoji makra (macro expansion). Naproti tomu při skutečném volání by
příslušný podprogram existoval jen jednou.
Jak jsme si již naznačili, možnost používat makra vznikla nejprve u různých překladačů jazyka symbolických
adres, neboli asemblerů. Příslušné překladače se pak ale již označovaly jako makroasemblery , což mělo
zdůraznit právě jejich schopnost práce s makoinstrukcemi (makry). Pro správné pochopení jejich podstaty je
vhodné si představit, že jde o běžný překladač-asembler, před který se předřadí ještě jeden pomocný překladač,
fungující jako textový preprocesor. Jeho úkolem je provedení všech rozvojů maker, neboli dosazení textů,
tvořících těla maker, na místa jejich volání. V praxi přitom nejde o skutečně samostatný předřazený překladač,
ale pouze o samostatný průchod překladače zdrojovým textem, při kterém dochází výhradně k rozvoji maker,
zatímco k vlastnímu překladu dochází až při dalším průchodu (či průchodech).
Jednotlivá makra přitom nemusí zdaleka představovat jen „neměnné" kusy texty. Ve většině konkrétních případů
mohou mít makra i různé parametry, mohou se větvit v závislosti na různých podmínkách, jejich rozvoje se
mohou předčasně ukončovat, makra se mohou do sebe vnořovat apod. Vždy samozřejmě záleží na konkrétním
makrojazyku, který určuje přesná pravidla pro definice, volání a rozvoje maker. Zdůrazněme si ale jednu velmi
podstatnou skutečnost, která je klíčová pro správné pochopení celé podstaty maker a jejich odlišení od
mechanismu podprogramů - makra jsou výhradně záležitostí zdrojového textu, a s jeho překladem zanikají.
Naproti tomu podprogramy překlad „přežijí", a existují i v přeložených a spustitelných programech.
Makra, makrojazyky a možnost používání makroinstrukcí však nejsou výhradní záležitostí programování na
úrovni asembleru - analogické mechanismy dnes mají zabudovány i překladače mnohých vyšších
programovacích jazyků. Jejich cílem je přitom totéž, co bylo cílem na úrovni asembleru: zefektivnit práci
programátora, který píše zdrojový text.
Programování na nejrůznějších úrovních však není zdaleka jedinou činností, při které lidé musí vykonávat
neustále se opakující činnosti - které je zcela zákonitě přestávají bavit, jakmile je mají dělat vícekrát. A jakmile
člověka něco nebaví, příslušnou činnost dělá pomalu, s chybami, nepřesně atd. Není proto divu, že i tvůrci
nejrůznějších aplikací zabudovali do svých výtvorů obdobu „maker". Setkáme se s nimi například v textových
editorech, ve spreadsheetech a v mnoha dalších aplikacích. Někdy jde jen o skromné prostředky, umožňující
předem „nahrát" sekvenci příkazů a pak je následně přehrát. Jindy jde až o celé propracované makrojazyky, které
umožňují vybudovat nad daným produktem úplně novou aplikaci, šitou na míru konkrétním specifickým
potřebám.
Je nutno dodat, že tyto požadavky jsou opravdu minimální a že v současné době by člověk asi těžko sháněl takto
zastaralý počítač. Pro přijatelnou práci by bylo možná lepší doporučit procesor alespoň Pentium 133 (pro
náročné hry až Pentium III nebo AMD K7), pevný disk alespoň 1 GB (spíše více), grafickou kartu s minimálně 4
MB video paměti, CD-ROM alespoň 8x speed, zvukovou kartu, software podporující většinu multimediálních
formátů a standardů
Zvuková karta
DAC (Digital-analog conversion)
Jádrem každého digitálního zařízení vyrábějícího analogový signál, v našem případě zvuk, je digitálně-
analogový převodník. To je elektronický obvod, jež v pravidelných časových intervalech převádí číslicový údaj
na analogový. Jednoduše řečeno z nějakého čísla, které obdrží na vstupu, vyrobí na výstupu napětí, jež je tomuto
číslu přiřazeno. Například číslu 255 přiřadí hodnotu napětí
10 V a co je mezi tím se postupně rozdělí, v našem případě každá jednotka bude znamenat zvýšení napětí o 10 V
/ 255 = 0,0392 V. Uvedený příklad odpovídá převodníku s 8bitovým rozlišením
(8 bitů znamená čísla od 0 do 255).
Pokud budeme mít převodník s rozlišením 16 bitů, budou jim odpovídat čísla od 0 do 65535 a v našem případě
napě?ové schůdky budou velké 10 V / 65535 = 0,00015 V.
Všechny zvukové karty se v zásadě skládají ze tří víceméně navzájem nezávislých částí:
• digitální části
• zdroje zvuku
• rozhraní MIDI.
Digitální část (A/D a D/A převodník) je určena pro digitální nahrávání a reprodukci tónu a zvuku. Uplatní se
např. při řízení hlasu nebo při přehrávání souboru .WAV. Nemá jako jediná vůbec nic společného s MIDI.
Druhou částí je zdroj zvuku (syntetizátor), který jen nereprodukuje hrané zvuky, ale podle pokynů pro
programování sám uměle vyrábí tóny a hluky. To je hlavně třeba pro napodobování hudebních nástrojů k
hudebnímu podmalování počítačových her nebo pro reprodukci souborů MIDI. V syntetizátoru se moderní
zvukové karty liší nejvíc. Jednodušší modely pracují s čipem OPL 2 nebo OPL 3 firmy YAMAHA.Oba čipy
pracují na základě frekvenční modulace (FM), což znamená, že se zvuky vytvářejí z jednoduchých nebo
několikanásobně se překrývajících vlnových tvarů.
Mezi nejznámější patří SoundBlaster, Diamond Monster
Některé karty mají integrované i radio přijímače.
K dobrému zvukovému zážitku patří i reproduktory vybavené pro prostorový zvuk (3D Sound) zvyšující zážitek
z multimediálních aplikací a her.
Video karty
umožňují rychlé překreslování obrazovky (a tak zrychlují celý počítač...) a přehrávání videa na obrazovce. Jsou
vybaveny videopamětí, která slouží k urychlení karty (čím více paměti, tím lépe). V současné době se prodávají
ještě tzv. 3D akcelerátory (Voodoo, TNT), které vedle video karty zrychlují hlavně 3D objekty (nejčastější
použití ve hrách). Některé video karty mají integrované i přijímače televizního signálu.
• boot viry
• souborové viry.
Nerezidentní virus způsobí nákazu jen po spuštění napadeného souboru. Běžně nakazí několik souborů obvykle
v aktuálním adresáři.
Rezidentní virus se po spuštění napadeného souboru umístí v operační paměti. Nejčastěji to bývá v konvenční
paměti, pomocí přerušení INT 12 zajistí, aby nebyl přepsán jiným programem. Rezidentní virus se může
nacházet v konvenční paměti, v paměti EMS a v prvním 64 kB segmentu paměti extended (tedy 0-1088 kB).
Rezidentní virus může napadnou libovolně velký počet souborů.
• diskety
• sí?ové linky ( při zapojení v síti )
• telefonní linka ( při použití modemu )
• výměnné pevné disky
• disky CD ROM
1. Vypneme počítač.
2. Zavedeme systém z čisté DOS diskety chráněné proti zápisu.
3. Z diskety spustíme antivirový program. Pokud chceme spouštět antivirový program z napadeného
disku, nejprve ho zkopírujeme z diskety na pevný disk. Antivirový program spuštěný z pevného disku
poskytuje větší možnosti při léčení, jeho práce je rychlejší.
4. Jestliže se jedná o souborový virus, napadené soubory necháme" vyléčit", pokud máme soubory
zálohované, je vhodnější napadené soubory smazat a nainstalovat nové. Po vyléčení i lepším
antivirovým programem ne vždy soubory pracují korektně.
5. Jestliže jde o boot virus, necháme provést obnovu boot sektorů antivirovým programem, nebo příkazem
SYS si provedeme obnovu sami (SYS spouštíme z diskety).
6. Jestliže se jedná o virus v MBR, zálohujeme si nejprve všechny systémové oblasti a zkontrolujeme
funkčnost záložních kopií. Antivirové programy občas poškodí při odstraňování tohoto viru tabulku
partition, čímž způsobí ztrátu dat. Jestliže dokáže náš antivirový program virus v MBR odstranit, nebo
umí sektor obnovit z diskety, provedeme jeho obnovení.
7. Zkontrolujeme všechny diskety.
8. Informujeme o nákaze uživatele, se kterými si vyměňujeme diskety
• softwarová
• hardwarová
Softwarová ochrana
Softwarová ochrana je realizována antivirovými programy. Služby, které antivirové programy poskytují lze
rozdělit do tří skupin:
Konkrétní antivirové techniky vyhledávají pouze známé viry podle virové databáze, kterou je nutné aktualizovat.
Většinu takto nalezených virů je možné ze souborů nebo z boot sektorů také odstranit, a to buď s použitím
informací o viru, který příslušný soubor infikoval nebo s použitím původních informací o souboru, které
popisují, jak vypadal před infekcí. Největší výhodou této metody je její rychlost, tato metoda se tedy používá pro
pravidelné kontrolování pevného disku. Známé viry je také možné vyhledávat v každém spouštěném,
kopírovaném, otevíraném souboru a v zaváděcích sektorech všech disket, které do počítače vkládáme. K tomu je
určen rezidentní ovladač, který lze zavádět vždy po spuštění počítače. Tento ovladač se zavádí v config.sys a je
tedy v paměti ještě dříve, než se načte command.com (což je obvyklá základna většiny virů). Samozřejmě
nechybí možnost prohledat pamě? na přítomnost rezidentních virů.
Obecné antivirové techniky se snaží najít a pokud je to možné i odstranit neznámý virus. První metodou, jak
najít neznámý virus je tzv. srovnávací test. Při prvním spuštění tohoto testu si program zapíše důležité informace
o souborech (velikost, datum, čas, atributy a kontrolní součty). Při dalších spuštěních porovnává tyto informace s
aktuálním stavem. Pokud v těchto údajích došlo ke změně většího rozsahu, je pravděpodobné, že počítač byl
napaden virem. Antivirový program AVG obsahuje i heuristickou analýzu. Heuristická analýza podrobně
analyzuje obsah souborů na pevném disku a vyhledává v něm různé podezřelé konstrukce (přímé zápisy na disk,
převzení kontroly nad operačním systémem apod.). Heuristická analýza je obecně fungující metoda, není tedy
závislá na virové databázi. Automaticky se při této metodě provádí test i na známé viry. Pokud je tedy soubor
označen za napadený, prohledává se v databázi virů a jméno viru je vypsáno, v opačném případě je virus
označen jako neznámý. Program obsahuje tzv. plnou heuristickou analýzu (heuristická analýza s emulací kódu),
kdy se antivirový program přímo pokouší emulovat činnost počítače při spuštění programu. Nevýhoda metody je
v tom, že často dochází k falešným poplachům, kdy některé soubory jsou označovány jako napadené. Avšak
vzhledem k zvětšování počtu stále složitějších virů, bude v budoucnu tato metoda nejčastěji používaná. Test
prostředí na souborové viry spočívá v tom, že program vygeneruje na disk soubory typu .com a .exe, potom je
kopíruje a provádí s nimi různé operace, přičemž vždy kontroluje jejich obsah. Pokud se při manipulaci s nimi
změní jejich obsah, je velmi pravděpodobné, že se na návnadu právě chytil virus. Obdobně je program schopen
vygenerovat na disketu prázdný zaváděcí sektor a poté kontrolovat, byl-li nějak změněn.
Preventivní antivirové techniky se doporučí využívat pokud možno ještě předtím, než se virus v počítači usídlí.
Spočívají v zálohování některých důležitých informacích o počítači, podle nichž bude v případě potřeby možné
obnovit původní stav. Pomocí programu si můžeme uložit obsah paměti CMOS, tabulku rozdělení pevného
disku apod. Po napadení počítače lze tyto informace zpětně obnovit.
Jiné antivirové programy (F-PROT, SCAN) obsahují další užitečnou funkci - vkládání vlastních virových
řetězců. Tato metoda se však neuplatní v případě polymorfního viru.
Hardwarová ochrana
Kromě softwarové ochrany před viry existuje i možnost hardwarové ochrany. Ta je realizována pomocí
rozšiřující karty. Karta obsahuje pamě? ROM se speciálním softwarem.
Základní funkce:
Přerušovací systém
Princip přerušení:
n -1, n atd. jsou adresy instrukcí. Pokud při běhu programu dojde k žádosti o přerušení, dokončí se právě
probíhající instrukce a systém zajistí úklid kontextu do zásobníku pro přerušení. Kontext obsahuje obsahy
střadače registrů v době přerušení a dále je uložena návratová adresa n +1 hlavního programu. Je proveden
odskok na adresu instrukce pro obslužnou rutinu (podprogram), přerušení je obslouženo. Instrukce konec
přerušení zajistí přepsání kontextu zpět do registru (dojde k vyprázdnění zásobníku pro přerušení a přes
návratovou adresu hlavního programu je tento spuštěn a dále běží.
Dále se dělí:
• vektorové
• maskovatelné
Maskovatelné je druh přerušení, které závisí na nastavení klopného obvodu tzv.masky, který podle stavu na
výstupu povolí nebo nepovolí přerušení. K tomu je určen v příznakovém registru bit IF (Interupt flag), který při
nastavení do jedničky zajistí maskovatelné přerušení.
Jelikož periferních zařízení je více než dvě, přidává se k procesorům řadič přerušení, který je řadí podle
důležitosti (priority) a sděluje procesoru o jaký druh přerušení jde. Při každém přerušení se volá obslužná rutina,
která je k tomu určena.
Procesor pracuje s vektorovým systémem přerušení. Tabulka vektorů je uložena v operační paměti, většinou
od adresy 0 a každý vektor má velikost 4B. Je to celá adresa (segment i offset) a v operační paměti zabírá asi
1kB. Procesor rozezná 256 přerušení (0-255). Některé vektory jsou pevně určeny a nelze je měnit.
Tabulka vektoru:
00000 Dělení nulou vektor 0
00004 Krokování vektor 1
00008 Nemaskovatelné přerušení vektor 2
00012 INT 3 vektor 3
Aritmetické přetečení vektor 4
27 rezervovaných vektorů
224 volných vektorů
U maskovatelného přerušení dodá řadič přerušení i číslo vektoru, které specifikuje některou z periferií. 27
vektorů si rezervovali tvůrci systému a většinou nejsou využity.
Repeater
Natáhnout odnekud nekam kabel nemusí být nijak težké. Pokud ale potrebujete vybudovat kabelový rozvod pro
lokální pocítacovou sít typu Ethernet a rozhodnete se tak ucinit pomocí koaxiálního kabelu, budou vám v ceste
stát nekterá významná omezení, vyplývající jednak z fyzikálních vlastností samotného kabelu a jednak ze
zpusobu komunikace v ethernetovských sítích. O tom, že v sítích typu Ethernet lze používat ruzné druhy kabelu,
jsme se již nekolikrát zmínili v drívejších vydáních této rubriky. Již dríve jsme si také uvedli, že pro ruzné druhy
kabeláže byly vypracovány samostatné standardy (resp. doplnky standardu), a to organizací IEEE (Institute of
Electrical and Electronic Engineers). V soucasné dobe jsou nejvýznamnejší standardy 10Base-T (pro tzv.
kroucenou dvoulinku) a 10Base-5 (pro tzv. tenký koaxiální kabel), zatímco puvodní standard pro tzv. tlustý
koaxiální kabel (oznacovaný také jako 10Base-5) postupne ztrácí na své aktuálnosti, protože se používá cím dál
tím méne. Není ostatne divu - tzv. tlustý koaxiální kabel má sice vetší dosah, ale je o hodne dražší než kabel
tenký a dosti špatne se instaluje, protože je velmi tuhý a težko ohebný (jeho dovolený polomer ohybu je 25 cm).
Principiálne nejjednodušší je situace u kroucené dvoulinky – ta umožnuje vytváret pouze dvoubodové spoje,
které tudíž mohou vést jen mezi koncovým uzlem a prípojným místem nejbližšího rozbocovace (hub-u, viz
minulý príspevek této rubriky). Navíc maximální vzdálenost je cca 100 metru. Oba druhy koaxiálních kabelu
však umožnují vytváret mnohobodová spojení, tj. mohou na ne být pripojeny více než dva uzly. Nemuže jich
ovšem být libovolne mnoho, ale nejvýše 100 (na jeden segment tlustého koaxiálního kabelu), resp. 30 (v prípade
tenkého kabelu). Dalším omezením je i minimální odstup mezi dvema sousedními uzly, který ciní 2,5 metru u
tlustého kabelu a 0,5 metru u tenkého kabelu. Nejvetším omezením však bývá maximální délka souvislého
segmentu kabelu, a to 500 metru u tlustého a 200 metru (presneji 185) u tenkého kabelu. Jak se ale zachovat v
prípade, když se dostanete do konfliktu s temito omezeními? Minimální odstup mezi dvema uzly asi nebude
vetším problémem, ale co když potrebujete pripojit víc než povolený maximální pocet uzlu? Nebo – a to je
zrejme nejcastejší prípad - potrebujete preklenout vetší vzdálenost než maximálních 500, resp. 200 metru?
Možných rešení tohoto problému existuje více. Všechna predpokládají použití dvou (ci více) souvislých
segmentu kabelu, mezi které se vloží jako propojující clánek zvláštní "krabicka". Rozdíl mezi jednotlivými
rešeními je pak v tom, jak tato "krabicka" funguje. Dnes se podrobneji zastavíme u jednoho z možných rešení,
které predpokládá, že príslušná "krabicka" funguje jako digitální zesilovac, a oznacuje se jako repeater (cesky:
opakovac). Jedním z hlavních duvodu, proc musí být maximální délka souvislého kabelu omezena, je
skutecnost, že šírí-li se kabelem signál, dochází k jeho útlumu (tj. k zeslabení). Má-li být signál dopravován na
vetší vzdálenosti, musí být po ceste vhodne zesílen. Práve toto je hlavní úkol opakovace. Při troše dobré vule si
lze predstavit, že vše, co toto zarízení "zaslechne" (na jednom segmentu kabelu), zase ihned "zopakuje" (do
druhého, resp. do všech ostatních segmentu) - odsud také jeho název. Další významnou funkcí opakovace je i
dohled nad "cistotou" digitálního signálu. Pri prenosu kabelem totiž krome útlumu dochází i k ruzným
deformacím a zkreslením signálu, a ty má opakovac za úkol kompenzovat (a prijímaný signál před jeho
opetovným odesláním vhodne vytvarovat). Podstatné je ovšem to, že opakovac funguje v reálném case a je
vlastne plne "pruchozí". Nemá žádnou pamet a vše, co z jedné strany prijme, zase ihned vyšle, a to všemi
ostatními smery, které pro nej existují. Díky tomu se také nemusí zajímat o to, co vlastne skrz nej prochází. A
práve tím se opakovac odlišuje od jiných druhu "krabicek", které se již snaží interpretovat to, co z ruzných stran
"slyší", a na základe toho se pak dokáží rozhodnout, co mají propustit, a co nikoli. Zpusob fungování
opakovace je tedy analogický k funkci rozbocovace (hub-u), kterým jsme se zabývali v minulém vydání této
rubriky. Tomu odpovídá i konstrukcní provedení opakovacu - ty nejjednodušší sice umožnují propojit mezi
sebou práve a pouze dva segmenty koaxiálního kabelu, ale tzv. vícevstupové opakovace (multiport repeaters)
nabízí více pripojných míst, z nichž ke každému lze pripojit jeden kabelový segment. Použití opakovacu v
lokálních sítích typu Ethernet však má i jedno duležité omezení: mezi žádnými dvema uzly nesmí být více než
dva opakovace. Duvodem je prístupová metoda (CSMA/CD, viz CW 33/93), založená na možnosti detektovat
kolize a na predpokladu, že kolizi dokáží rozpoznat všechny uzly. Použití opakovacu totiž vnáší nezanedbatelné
zpoždení do celkové doby, kterou signálu trvá, než urazí cestu z jednoho konce síte na druhý. Pokud by tato
doba presáhla urcitou hranici, mohlo by dojít k velmi zajímavé, ale bohužel velmi nežádoucí situaci: kolize by
byla detektovatelná jen v cásti síte, a nikoli v celé síti (napríklad jen "uprostred", a nikoli "na koncích").
Podmínka, že mezi žádnými dvema uzly nesmí být více než dva opakovace (spolu s maximální délkou
souvislého segmentu kabelu), zajištuje takovou dobu šírení signálu, která práve naznacenou situaci vylucuje.
Znamená ovšem tato podmínka soucasne i to, že v žádné ethernetovské síti nesmí být více než dva opakovace?
Odpoved je naštestí záporná. Jedním duvodem je skutecnost, že toto omezení platí jen do nejbližší "krabicky",
která funguje jiným zpusobem než jako opakovac (jak, o tom bude rec príšte). I bez této jiné "krabicky" však lze
najít takovou topologii síte, ve které muže být opakovacu více, ale zásada maximálne dvou opakovacu mezi
libovolnými dvema uzly bude dodržena – rešením je nám již dobre známá sbernicová topologie, v jejímž rámci
se jednotlivé segmenty kabelu pripojují pres opakovace na spolecný páterní segment.
Router
V posledních dvou vydáních této rubriky jsme se zabývali pojmy opakovac (repeater) a most (bridge). Rekli
jsme si, že v obou prípadech jde o "krabicku", která vzájemne propojuje dva ci více kabelových Segmentu
lokálních pocítacových sítí. Rozdíl mezi opakovacem a mostem pak spocívá v tom, jak vlastne fungují:
opakovac je pouhým digitálním zesilovacem, kterýzesiluje a regeneruje prijímané signály a okamžite je vysílá i
do všech ostatních kabelových segmentu, které jsou na nej pripojeny. Naproti tomu most (bridge) se chová
inteligentneji, a snaží se zbytecne neplýtvat prenosovou kapacitou jednotlivých segmentu. Jeho hlavní funkce
spocívá v odfiltrovávání takových dat, která mají svého odesilatele i príjemce v jednom a témže segmentu, a
která tudíž není nutné predávat i do Jiných segmentu. Další funkcí mostu je pak cílené predávání dat jen do toho
segmentu, ve kterém se nachází jejich skutecný príjemce (pokud jsou k mostu pripojeny více než dva segmenty).
Aby mohl tuto svou úlohu plnit, musí být schopen interpretovat prenášená data alespon do takové míry, aby z
Nich poznal odesilatele a príjemce. Jestliže jsme si opakovac minule zaradili v rámci vrstvových sítových
modelu do nejnižší, tzv. fyzické vrstvy, pak most je nutné zaradit do vrstvy bezprostredne vyšší, neboli vrstvy
linkové. Na úrovni této vrstvy jsou prenášené bloky dat oznacovány jako rámce (frames) a jsou vybaveny
adresou svého odesilatele a príjemce. Konkrétní forma této adresy pritom závisí na druhu síte, resp. na použité
prenosové technologii. Napríklad v sítích typu Ethernet se na úrovni linkové vrstvy používají 48bitové adresy,
zatímco napríklad v sítích Arcnet jsou tyto adresy jednobytové. Podstatné je ovšem to, že v rámci linkové vrstvy
jsou jednotlivé rámce prenášeny vždy jen mezi dvojicemi uzlu, které spolu bezprostredne sousedí (v tom smyslu,
že mezi nimi existuje prímé spojení). Most, který pracuje na úrovni linkové vrstvy, proto "vnímá" skutecnou
topologii síte jen "na prímou viditelnost", a o existenci takových uzlu, se kterými nemá prímé spojení, nic
netuší. Tretím druhem "krabicky", která muže propojovat dva ci více kabelových segmentu, je tzv. smerovac
(router). Ten si již uvedomuje topologii celé síte, a díky tomu je pak schopen rozhodnout, kudy vede cesta do
nejakého vzdáleného uzlu. Prijme-li nejaký blok dat, umí se rozhodnout, kterým smerem jej poslat dál, aby se
nakonec (po prípadném pruchodu dalšími mezilehlými uzly) dostal až ke svému konecnému adresátovi. K tomu
ovšem smerovac nevystací se stejnými informacemi, jaké má k dispozici most (bridge), ale musí se do
prenášených bloku dat dívat hloubeji. V praxi to znamená, že smerovac pracuje na úrovni tzv. sítové vrstvy,
která je bezprostredne nad vrstvou linkovou. Na této úrovni se prenášeným blokum dat ríká obvykle pakety
(packets). Ty jsou opatreny jiným druhem adres, než jaké se používají na úrovni linkové vrstvy, a jsou vkládány
do rámcu linkové vrstvy (proto se smerovac musí dívat do prenášených dat "hloubeji"). Hlavním úkolem
smerovace je tedy rozhodnout, kterým smerem posílat jednotlivé pakety tak, aby se dostaly až ke svým
koncovým adresátum. Tomuto rozhodování (a jeho praktickému naplnování, tj. posílání paketu ve zvoleném
smeru) se ne náhodou ríká smerování (routing). Smerovac pritom vychází ze znalosti topologie síte a na ni pak v
jednotlivých prípadech aplikuje algoritmus volby dalšího smeru prenosu. Tomuto algoritmu se ríká metoda
smerování. Muže mít mnoho ruzných podob - od neadaptivních statických algoritmu, které vychází z predem
dané tabulky a nijak nereagují na jakékoli zmeny stavu síte, až po takové algoritmy, které se dynamicky
prizpusobují zmenám v topologii síte, pretížení jednotlivých prenosových cest i jiným zmenám. Mezi
opakovacem na jedné strane a mostem se smerovacem na strane druhé existuje zásadní rozdíl v tom, že
opakovac prenáší data v reálném casu, zatímco most a smerovac nikoli. Ty totiž musí nejprve nacíst celý paket ci
rámec (nebo alespon jeho cást) do své vyrovnávací pameti, a teprve pak se podle jeho obsahu mohou
rozhodnout, co s ním. Mezi mostem a smerovacem pak existuje další zásadní rozdíl v tom, že most je pro ostatní
uzly neviditelný, zatímco existenci smerovace si ostatní uzly musí plne uvedomovat. Most totiž funguje na
principu odposlechu - odesilatel adresuje svuj rámec skutecnému príjemci, o kterém se domnívá, že s ním má
prímé spojení (tj. že se nachází ve stejném segmentu jako on sám). Ve skutecnosti ale jde pouze o iluzi, kterou
vytvárí most. Ten totiž toto vysílání zachytí, rámec prijme sám a na základe v nem obsažených adres jej zase
vyšle do toho segmentu, ve kterém se skutecný príjemce doopravdy nachází. Naproti tomu smerovac, který
pracuje na úrovni bezprostredne vyšší vrstvy, je pro odesilatele již plne viditelný. Pokud nejaký uzel potrebuje
odeslat paket príjemci v jiném segmentu, opatrí jej adresou tohoto príjemce a vloží jej do rámce linkové vrstvy,
který ale pošle smerovaci! Ten rámec "rozbalí", najde v nem paket sítové vrstvy a v nem adresu koncového
príjemce. Podle ní se pak rozhodne, kudy paket poslat dál. Když tak uciní, paket znovu vloží do rámce linkové
vrstvy a pošle jej ve zvoleném smeru. Príjemcem tohoto rámce pak muže být bud konecný adresát paketu (pokud
se v príslušném segmentu již nachází), nebo opet další smerovac, ve kterém se celý proces opakuje.Na rozdíl od
mostu jsou tedy smerovacum jednotlivé pakety explicitne adresovány. Zásadní rozdíl je tedy i v tom, jakou iluzi
vytvárí jednotlivým uzlum most a jakou smerovac. V prípade mostu je výsledný efekt takový, že jednotlivé
kabelové segmenty logicky splývají v jeden celek (a most, který tuto iluzi vytvárí, je sám o sobe neviditelný),
zatímco pri použití smerovace si jednotlivé segmenty z pohledu ostatních uzlu ponechávají svou vlastní identitu
a smerovac je plne viditelnou bránou mezi nimi.
Počítače dělíme
• analogové
• číslicové
• hybridní
ANALOGOVÉ POČÍTAČE
Pro svoji činnost využívají modelování na základě matematických podobností. Dělí se z mnoha hledisek.
Nejrozšířenější jsou elektronické a hlavní funkce vykonávají tzv. operační jednotky. Mohou být v provedení jak
ss tak i v st. Pro vlastní modelování se používají ss. K jeho základním jednotkám patří tzv. pasívní jednotky
(sčítací odpory, kondenzátory, derivační a integrační články).
K aktivním částem patří operační zesilovač. Spojení aktivních a pasívních částí jsou tvořená vlastní operační
jednotkou, které jsou určitý děj schopny modelovat. Podle funkce se dále dělí analogový počítač na matematické
stroje, simulátory, trenažéry (pro výcvik pilotů letadel, lodí). Analogové počítače se neustále zdokonalují a
slouží v technické praxi.
ČÍSLICOVÉ POČÍTAČE
Tyto počítače pracují se dvěma stavy 0 a 1. Od roku 1952 dominuje ve výpočetní technice Van Neumanova
architektura, která se vyznačuje minimálními hardwarovými nároky a částečně i velmi jednoduchými
softwarovými strukturami. Z těchto důvodů představuje tato architektura stále ještě páteř dnešní výpočetní
techniky.
CPU má střadač pro zpracování aritmetických a logických funkcí, instrukční registr pro čtení a dekódování
instrukcí, čítač instrukcí pro řízení adresové sběrnice a indexový registr pro krátkodobé uchovávání dat při
zpracování numerických a logických operací. pro vstup a výstup dat jsou navíc ještě zapotřebí odpovídající
rozhraní I/O porty (input, output).
Princip: mikroprocesor přečte instrukci tak, že nejprve vyšle adresu na adresovou sběrnici, přitom reaguje
programovatelná pamě? vysíláním datové informace pro datovou sběrnici. Mikroprocesor přečte instrukci z
datové sběrnice a uloží ji do registru instrukce, kde je dekódována a pak prováděna. V první fázi se instrukce čte
a dekóduje, ve druhé fázi se provádí vlastní funkce instrukce. Nevýhoda je v tom, že se musí čekat, než se
provede první instrukce. Teprve potom se může dekódovat další instrukce (postupným zpracováváním). Tuto
nevýhodu částečně odstraňuje pipeling, který dekóduje instrukce předem.
Číslicové počítače
• CISC
• RISC
CISC
Systémy s rozsáhlým komplexním souborem instrukcí jsou založeny na architektuře CISC (Complex Instruction
Set Computer). Jsou to např. procesory VAX firmy Digital Equipment, série mikroprocesorů 80X86 Intel a
680X0 firmy Motorola. Pro tyto procesory je typická implementace architektury pomocí mikroprogramování.
Výsledkem je velký počet specializovaných typů instrukcí, z časového pohledu mohou trvat až 300 strojových
cyklů. Mikroprogramování poskytuje možnost nabízet spektrum strojů se stejnou architekturou, ale přesto
rozdílnou hardwarovou realizací. S rostoucím objemem sady instrukcí však bylo pro překladače překládající
programy do strojového kódu využít celou škálu speciálních instrukcí. Z toho vyplývá, že komplexní instrukce
jsou používány jen zřídka. Při zpracování programu z vyššího programovacího jazyka se velká část času
spotřebuje na čtení informace z pracovní paměti a naopak. Tyto poznatky vedly ke vzniku nové architektury s
redukovanou sadou instrukcí (RISC)
RISC
I RISC procesor vystačí pouze se 30 typickými instrukcemi. RISC počítač musí s tímto souborem pracovat
častěji než CISC, ale díky většímu počtu registrů může program proběhnout rychleji, protože většina operací se
koná přímo mezi registry a pamětí. CISC CPU má sadu obvykle 16 registrů, zatím co RISC má až 100 volných
registrů. Z toho důvodu není centrální jednotka vůbec zatěžována a mimo to je mikrokód zbytečný. Instrukce
jsou implementovány hardwarově (nejsou dekódované). Podstatné vlastnosti RISC - architektury umožňující
vysokou propustnost dat, mají malý počet jednoduchých instrukcí, instrukce s pevnou délkou a pevným
formátem, přímá hardwarová interpretace instrukcí, jednocyklový příkazový režim a díky internímu režimu
Pipeling překrývané provádění po sobě následujících instrukcí. Hlavní nárůst rychlosti RISC byl dosažen
použitím velkého množství registrů. Tím, že odpadly mikroprogramy, mohla být uvolněna celá oblast na
povrchu čipu, která byla tradičně používaná pro mikroprogramy a použitá pro velmi rychlou pamě?. U procesorů
RISC je jednodušší a rychlejší změna návrhu čipu, než u komplikovaných a komplexních struktur CISC. Počítač
RISC se nevyznačují jen vysokou rychlostí, ale také silnou orientací na operační systém UNIX. Tato kombinace
dnes běžných počítačových systémů se na trhu PC pevně usadila. Architektura RISC má slabinu ve výpočtech v
plovoucí desetinné čárce, proto byl zaveden speciální koprocesor pro numerické výpočty.
1. nízkoúrovňové formátování - ověření komunikace mezi řadičem a pevným diskem, vytvoření struktury
disku
2. vytvoření partition - rozdělení disku
3. vysokoúrovňové formátování s případnou instalací operačního systému
Nízkoúrovňové formátování
Z dokumentace je nutno znát základní parametry pevného disku (stopy, hlavy, sektory na stopu a počáteční stopu
pro předkompenzaci zápisu). Předkompenzace zápisu se používá od určité stopy směrem ke středu disku, jelikož
sektory mají menší plochu pro zapsání dat, jako vně disku.Proto se zapisuje jinou hodnotou zápisového proudu.
Nutno mít zaváděcí disketu se softwarem pro nízkoúrovňové formátování.Program pro nízkoúrovňové
formátování je uložen v ROM řadiče.Vyvolání příkazem DEBUG,po promptu se zadá G=XXXX:YYYY, kde
XXXXh je startovací adresa programu (většinou bývá uvedena v dokumentaci k řadiči).
obvykle
nebo
1. Create DOS partition or logical DOS drive (vytvoření DOS partition nebo logic.disku)
2. Set active partition (nastavení aktivní partition)
3. Delete DOS partition or logical DOS drive (smazání partition nebo logic jednotky)
4. Display partition information (zobrazení info o partition)
Co je to TeX?
Úvod
Snad se moc nezmýlíme, pokud budeme tvrdit, že největší část strávená prací s počítačem se týká zpracování
textu. Od vynálezu knihtisku roku 1450 Gutenbergem se toho, pravda, hodně změnilo, ale snaha efektivně a
esteticky předávat informace zůstala.
V současné době většina uživatelů prochází jakousi pyramidou programů na zpracování textů. Většinou začíná s
T602 nebo nějakým podobným jednoduchým editorem. Může se ale stát, že potřebuje používat větší množství
fontů, začlenit do textu obrázek, graf nebo tabulku. Pak má ovšem velmi bohatou nabídku, zejména pokud se
týká textových procesorů běžících pod MS-Windows (AmiPro, MS Word, WinText602, WordPerfect atd.).
Pokud ani to uživateli nestačí, jsou pro něj těsně pod vrcholem pomyslné pyramidy připraveny DTP programy
jako Ventura Publisher, PageMaker, 3B2 nebo QuarkXPress. Pokud by uživatel absolvoval tuto dlouhou cestu
formou legálně zakoupených programů (jak jinak by také mohl), přišlo by ho to na pěkných pár desítek tisíc. A
to ještě nedosáhl vrcholu pyramidy. Co se na něm skrývá? Ano, odpověď můžete naleznout v názvu článku, je to
TeX. Slovo TeX se čte "tech", pochází totiž z řeckého (dovednost, umění).
Zvídavý čtenář, který slyší o TeXu poprvé si asi položil otázku, proč by nejdokonalejší měl být program, o
kterém v žádném z mnoha počítačových magazínů, které čte, nebylo ani písmenko. O typografických kvalitách
TeXu se vás pokusím přesvědčit v následujících odstavcích článku. S kvalitou souvisí i cena, která je pro většinu
uživatelů důležitá. Tento program je "public domain", byl vytvořen na půdě Stanfordské university a jeho autor
Donald Ervin Knuth ho věnoval široké veřejnosti k používání. Komerčně se šíří pouze některé speciální verze.
Mezi TeXem a ostatními textovými editory jsou velké rozdíly. U většiny editorů se text píše a průběžně
zobrazuje už tak, jak bude vypadat (tzv. WYSIWYG -- What You See Is What You Get -- "co vidíš, to
dostaneš"). Narozdíl od nich TeX potřebuje na svůj vstup text připravený v podstatě libovolným ASCII
editorem, který kromě vlastního textu obsahuje příkazy, které určují jak se má s textem pracovat, tj. určují typ
použitého písma, druh zarovnávání atd. Někdy se tedy můžeme setkat s označením WYWIWYG (What You
Want Is What You Get -- "co chceš, to dostaneš"). Už nyní je tedy patrné, že zatímco z našich obvyklých
programů dostaneme pouze to, co vidíme, z TeXu obdržíme to, co opravdu potřebujeme.
Už samotný důvod vzniku TeXu může našinci připadat zvláštní. Na začátku roku 1977 byl Knuth nespokojen se
sazbou své knihy "The Art of Computer Programming", která byla připravována nedokonalou analogovou
fotosazbou. O pár týdnů později se seznámil s možnostmi digitální fotosazby, změnil plány na příští rok a
rozhodl se vytvořit jazyk počítačové typografie TeX. Na podzim roku už byla hotova verze programu, která
potvrdila možnost vytvoření takového programu. Pro nově vzniklý software bylo důležité ujmout se a získat
budoucí uživatele. TeX je určen především pro sazbu náročných matematických textů, a proto Knuth 4. ledna
1978 přednesl pro Americkou matematickou společnost přednášku, kde vyzdvihl možnosti a přednosti TeXu.
V srpnu 1978 se TeX dostal k prvním uživatelům. Dnes je tato verze označována jako TeX 78. O dva roky
později, 22. února 1980, byla založena organizace, sdružující uživatele TeXu, která se jmenuje TUG (TeX Users
Group) a téměř současně s jejím vznikem začal vycházet TUGBoat -- časopis plně věnovaný problematice
TeXu. Později vznikaly i lokální organizace TUG, u nás existuje CSTUG, který mimo jiné čtyřikrát ročně
vydává "Zpravodaj Československého sdružení uživatelů TeXu". Další významnou verzí je TeX82, který byl
rozšířen o vylepšenou skupinu fontů Computer Modern. V roce 1989 byl Knuthem TeX přepracován tak, aby
mohl pracovat se vstupním souborem, který obsahuje znaky s kódem 0-255 (do té doby podporoval pouze 128
kódů). Tak vznikl TeX 3.0, který je navíc multilinguální, tj. v jednom textu lze dělit slova podle pravidel různých
jazyků.
TeX je velice mocný a dokonalý "formátovač" zejména pro matematické texty. Z této jeho specializace a veliké
flexibility vyplývá pro začínajícího uživatele nepřátelskost a složitost celého programu. Aby bylo usnadněno
zpracování textu, byly vytvořeny soubory maker, které uživateli mnohé usnadní. Nejznámějšími jsou PlainTeX,
LaTeX, AmSTeX a LamSTeX. PlainTeX je nejjednodušší nadstavba a všechna ostatní makra ji používají jako
svůj základ. LaTeX je určen zejména pro sazbu rozsáhlých publikací, a to nejen matematických, podporuje
tvorbu obsahu, rejstříku a křížových referencí. AmSTeX je uzpůsoben pro sazbu složitých kratších
matematických dokumentů a v LamSTeXu je patrná tendence rozšiřovat makra o nové další funkce a tím je
vlastně sbližovat; je to totiž jakýsi "míšenec" AmSTeXu a LaTeXu.
Je velmi obtížné nějak stručně popsat způsob tvorby stránky TeXem, neboť v originální dokumentaci je tomuto
tématu věnováno skoro 100 stran. Dopustíme se tedy na tomto místě mnoha zjednodušení, které však nic nemění
na komplikovanosti a dokonalosti sázecího algoritmu TeXu.
Tvorba stránky má dvě fáze, které probíhají téměř současně. V první fázi se čte vstupní soubor a každému znaku
se přiřadí jeho kategorie. Ze vstupního textu jsou zároveň vypuštěny přebytečné mezery a komentáře. Druhou
fází je vlastní sazba stránky. Obecně lze říci, že se postupuje od nejjednodušších objektů k složitějším. Přitom za
nejjednodušší objekt považujeme písmeno, které je charakterizováno svou šířkou, výškou nad účaří a hloubkou
pod účaří. Tato písmenka jsou pak na základě těchto údajů skládány do slov a ta (s pomocí mezer, které mají
definováno kromě své optimální velikosti i to o kolik mohou být smrštěny či roztaženy) do řádků, ty pak
postupně do odstavců a ty po složení dají již konečný objekt -- stránku.
Z předchozího vypadá popis tvorby stránky velmi jednoduše, ve skutečnosti jsme ale opomněli spoustu
možností, jako umístění tabulek na stránku, obtékání textu kolem obrázků, sazbu do sloupců, horní a dolní
záhlaví, poznámky pod čarou a spoustu dalších. Vzhledem ke komplikovanosti sazby se TeX automaticky podle
potřeby pohybuje mezi šesti režimy práce. Každý z režimů má na starost specifické úkoly: skládání písmenek na
řádku a do slov, skládání řádek do odstavců, skládání odstavců na stránku (i do více sloupců), doplňování
stránky o záhlaví, sazbu matematických vzorců atd.
Velice zajímavý je například způsob tvorby odstavce. TeX nejprve zkusí vysázet odstavec tak, aby nemusel
použít dělení slov. Tato fáze je velmi rychlá, protože nemusí zjišťovat, jak je které místo slova vhodné k dělení.
Pokud se mu to nepodaří (není-li šířka řádky příliš malá, stane se to málokdy), doplní slova o údaje o vhodnosti
dělení a celý odstavec zpracuje znovu již s možností dělit slova.
TeX kontroluje i spoustu takových maličkostí, jako je to, aby odstavec nezačínal na poslední řádce stránky, nebo
naopak nekončil na první řádce stránky. Dále TeX kontroluje, aby poslední slovo odstavce nebylo na samostatné
řádce, a spoustu dalších "maličkostí", které ve skutečnosti velmi pozvednou estetický vzhled dokumentu.
Zpracování textu probíhá v cyklu, který se skládá ze tří částí. První část je příprava vstupního textu pomocí
libovolného textového editoru. Tento vstupní soubor obsahuje kromě textu i řídící posloupnosti, které určují
vzhled dokumentu, tj. formát řádky, odstavce a stránky, a které mohou ovlivnit mnoho dalších parametrů. TeX
obsahuje asi 300 primitivních funkcí; další složitější posloupnosti mohou být definovány v průběhu zpracování
textu (například již zmíněné balíky maker jako PlainTeX a další). Tak narozdíl od běžných textových procesorů,
kde se pro tisk speciálních matematických symbolů, řeckých písmen apod. používají různé klávesnice, TeX
obsahuje makra pro jejich sazbu; pokud tedy chceme například napsat , stačí do vstupního souboru zapsat
$\alpha$. Protože TeX vznikl v USA, jsou názvy řídících posloupností většinou odvozeny od anglických slov
nebo jejich zkratek.
Primitivní funkce je možné podle jejich činnosti zařadit do několika skupin:
• primitivní funkce řídící zlom a zarovnávání odstavců, a to včetně prostředků pro ovlivnění dělení slov;
• primitivní funkce ovlivňující celkový formát stránky -- velikost a umístění, zlom stránky, horní a dolní
záhlaví, poznámky pod čarou, umístění obrázků a tabulek;
• primitivní funkce řídící velikosti mezer -- mezi písmeny, slovy, odstavci a symboly v matematických
vzorcích;
• primitivní funkce pro speciální zarovnávání textu -- tabulky, matice atd.;
• primitivní funkce umožňující definováních nových řídících posloupností;
• primitivní funkce měnící chování TeXu;
• primitivní funkce ovládající práci TeXu;
• primitivní funkce umožňující pracovat s externími soubory -- začleňovat je do vstupního souboru, měnit
je a vytvářet nové.
Takto připravený vstupní soubor potom necháme přeložit TeXem, ten vytvoří .dvi soubor (device independant),
který popisuje vzhled jednotlivých stránek tak, že stránka je soubor kódů znaků a příslušných fontů s údajem o
jejich umístěná na stránce. Z těchto údajů pak může být dokument vytištěn nebo zobrazen na libovolném
výstupním zařízení; tento soubor je tedy naprosto nezávislý na výstupním zařízení. To je také jedna ze silných
stránek TeXu -- možnost tisknout dokumenty na čemkoliv, počínaje devítijehličkovou tiskárnou a konče
osvitovou jednotkou s rozlišovací schopností několik tisíc dpi.
O vlastní zobrazení dokumentu, tj. .dvi souboru, se stará ovladač příslušného zařízení, který z informace
obsažené v .dvi souboru a bitových map jednotlivých písmenek vytvoří konečnou podobu dokumentu a zobrazí
ji na obrazovce nebo tiskárně.
Sazba matematiky
Rozebírat zde podrobně všechny možnosti matematické sazby nemůžeme, a proto si jen na jednoduchém
příkladu ukážeme, jak se to dělá. Dejme tomu, že potřebuje vysázet následující vzorec:
Do vstupního souboru stačí zapsat: $$ \lim_{n \rightarrow \infty} \left(1 + {1 \over n} \right)^n = e $$, což není
vůbec nepodobné tomu, jak by vám tento vzorec v Americe nadiktovali do telefonu.
Co se týče začleňování grafiky do textu, je na tom TeX na první pohled poněkud hůř. Umožňuje pouze
vynechání místa pro začlenění obrázku, popř. může do tohoto místa uložit informaci o obrázku pro ovladač
výstupního zařízení. Vysvětlení pro toto chování TeXu je jednoduché. TeX vytváří .dvi soubor, který je na
výstupním zařízení nezávislý, kdežto grafický obrázek je vždy určen pro výstupní zařízení s určitou rozlišovací
schopností.
Je tu však je ještě jedna možnost, vhodná zejména pro technické obrázky a grafy průběhu různých
matematických funkcí: pomocí METAFONTu, programu na generování fontů pro TeX, vytvořit font, který
obsahuje požadované obrázky. S nimi se pak pracuje jako s jednotlivými písmeny, které jsou stejně jako ostatní
písmena nezávislá na výstupním zařízení.
Poslední dobou se objevuje mnoho programů, které umožňují, většinou až na úrovni ovladače obrazovky nebo
tiskárny, začlenit do dokumentu obrázek v některém z rozšířených grafických formátů (PCX a jiné), nebo z
různých programů (např. MATHEMATICA).
Kromě bitmapových obrázků lze do dokumentu zařazovat i obrázky v PostScriptu (EPS), při jejichž použití není
ztrácena nezávislost na rozlišovací schopnosti výstupního zařízení.
A jak je to s češtinou?
Přizpůsobení nějakého softwaru pro určitý jazyk můžeme rozdělit do několika stupňů:
1. zpracování národních znaků, tj. pro češtinu znaků s akcenty (háček, čárka, kroužek a případně přehláska
a stříška);
2. národní speciality -- třídění, formát data a měny a ustálené typografické zvyklosti;
3. dělení slov podle pravidel příslušného jazyka;
4. převedení příkazů a klíčových slov do národního jazyka -- tento bod nacionalizace je velmi diskutabilní,
neboť s jeho splněním padá kompatibilita se systémy pro jiná národní prostředí.
Nejdůležitější věc, práce s českými písmy, je na první pohled velmi elegantně vyřešená už v původní anglofonní
verzi TeXu. Písmo Computer Modern totiž obsahuje tzv. létající akcenty, samostatné znaky, které mohou být
umístěny nad kterýmkoliv jiným písmenem. Bohužel kvůli malé zkušenosti D.E. Knutha s jazyky, které
používají háček, není tvar tohoto znaménka příliš povedený. Mnohem větším nedostatkem je ale algoritmus
používaný pro umísťování akcentů nad písmena. TeX to řeší nejjednodušším možným způsobem, akcent umístí
nad logický střed boxu písmenka. To bohužel vždy není opticky nejlepší, zejména u větších fontů, zvláště pak
skloněných (slanted a italica). Jisté problémy jsou ještě se znaky jako `ť' a `ď', neboť apostrof se nechová jako
typický akcent.
Jediné úplné řešení je tedy vytvořit nové fonty, které budou obsahovat znaky s již umístěnými akcenty (tyto
fonty ovšem budou nekompatibilní s ostatními), a používat TeX 3.0, který umožňuje zpracovat osmibitovou
vstupní abecedu. Na setkání uživatelů CS-TeXu v červenci, byla přednesena přednáška o nové verzi programu
(ten byl zároveň rozšířen mezi členy sdružení CSTUG), která mimo jiné obsahuje zmíněné osmibitové fonty s již
umístěnými akcenty.
Jelikož je TeX velmi variabilní systém, není problém předefinovat takové věci jako je formát data a typografické
zvyklosti. Tuto novou definici například obsahuje styl czech.sty.
Dělení slov je jednou z nejobtížnějších částí každého systému na zpracování textu. Pro češtinu, stejně tak jako
pro většinu jazyků, neexistují zcela jednoznačná pravidla pro dělení. Při dělení slova v češtině má přednost
dělení mezi příponou (případně předponou) a kořenem slova, slovo se může dělit po slabikách, ale jak bezpečně
rozeznat slabiku. Navíc ještě čeština obsahuje slabikotvorné souhlásky, které celou situaci značně komplikují.
Existuje samozřejmě mnoho dalších kritérií pro dělení slov, ale nemá smysl je zde jmenovat. V současné době
existují dva způsoby dělení slov, pomocí algoritmického popisu pravidel dělení a pomocí tabulky dělení. TeX
využívá druhou možnost, tj. algoritmus dělení řízený tabulkou. Ten poskytuje docela slušné výsledky a
dokonalost řádkového zlomu TeXu navíc omezuje potřebu dělení slov na minimum.
Na závěr se ještě zmíníme o jednom typografickém pravidlu, specifickém pro češtinu. Na konci řádky nesmí
zůstat neslabičná předložka. To lze v TeXu snadno vyřešit pomocí tzv. aktivního znaku `~', který představuje
mezeru, ale v místě použití zakazuje lámat řádku. Existuje krátký program vlnka.exe, který ve vstupním textu za
všechny neslabičné předložky automaticky doplní tento znak.
Závěr
O tom, zda používat TeX, či nikoli, musí rozhodnout každý uživatel sám. Pokud je se svým stávajícím systémem
na zpracování textu spokojen, není důvod, proč měnit, zvláště když je TeX, díky své zcela odlišné filozofii od
jiných systémů na zpracování textů, poměrně komplikovaný. Pokud však potřebujete sázet spoustu matematiky,
jinou možnost ani nemáte -- nic lepšího ještě dlouho existovat nebude.