Odborné tématické okruhy státní zkoušky bakalářského oboru Výpočetní technika (strukturované studium) Pro písemnou část zkoušky se zadávají 2 odborné otázky z výpočetní techniky: 1 otázka z technického vybavení počítačů, 1 otázka z programového vybavení počítačů. Otázky ze společných tématických okruhů mohou být použity v ústní části zkoušky jako doplňující otázky nebo jako otázky mající návaznost na odborné otázky z výpočetní techniky. Odborné tématické okruhy: Technické vybavení počítačů Pokryto předměty: X36LOB, X36SKD, X36APS, X36JPO, X36PZA, X32PTS, X36PKO Kombinační logické obvody Logické funkce a formy jejich popisu. Minimalizace výrazů. Realizace pomocí hradel, univ. modulů a pomocí pamětí. Typické kombinační obvody používané v číslicových počítačích, jejich návrh a realizace. Hazardy v kombinačních obvodech. Sekvenční logické obvody Automatový model sekvenčních obvodů, typy automatů (Mealy, Moore). Minimalizace množiny vnitřních stavů. Synchronní a asynchronní sekvenční obvody. Návrh a realizace pomocí hradel a klopných obvodů a s použitím pamětí. Základní typy klopných obvodů. Programovatelné logické struktury (PLA, FPGA). Určení pracovní frekvence obvodu, metastabilita. Analýza a testování logických obvodů Modely poruchy, citlivá cesta, metody detekce a lokalizace poruch. Základní principy organizace počítačů Von Neumannova a Harvardská architektura, funkce hlavních jednotek. Organizace paměti a reprezentace dat. Základní cyklus počítače. Přerušení, jejich typy, priority přerušení, masky přerušení. Obsluha přerušení na úrovni technického vybavení. Kvantitativní principy architektury počítačů
Kritéria výkonnosti, propustnost a doba výpočtu. Zkušební úlohy a měření výkonnosti. Amdahlův zákon a procesorová výkonnostní rovnice. Architektury souborů instrukcí Základní třídy souborů instrukcí (střadačová, zásobníková, s univerzálními registry), jejich vlastnosti a použití. Kódování instrukcí, operační kód. Strojové instrukce a jazyk symbolických instrukcí. Aritmetické a logické operace v souborech instrukcí. Adresní módy a způsoby uložení dat v paměti. Realizace řídicích instrukcí, podpora volání podprogramů. Klasifikace souborů instrukcí s univerzálními registry. Charakteristické znaky komplexních a redukovaných souborů instrukcí (CISC a RISC). Zobrazení dat a operace Číselné soustavy. Kódy pro zobrazení čísel se znaménkem ve dvojkové soustavě. Realizace základních operací nad dvojkovými čísly bez znaménka a v doplňkovém kódu: sčítání, odčítání, posuvy. Pohyblivá řádová čárka: způsoby zobrazení čísel, provádění základních operací. Alfanumerické kódy. Základní principy bezpečnostních kódů a jejich použití. Paměti a jejich organizace Základní parametry pamětí, vybavovací doba a cyklus paměti. Rozdělení pamětí dle způsobu výběru dat (adresovatelné paměti, LIFO, FIFO, CAM), charakteristika jednotlivých typů, způsob realizace a použití v počítači. Paměťová hierarchie počítače. Skrytá paměť (cache). Virtuální paměť a dynamický překlad adres. Hlavní paměť s prokládaným cyklem. Způsoby implementace současného přístupu do paměti. Řadiče a řídicí jednotky Řadič procesoru a datová cesta; vztahy mezi nimi. Obvodové řadiče a mikroprogramované řadiče: principy, struktura a návrh. Srovnání řadiče procesoru bez proudového zpracování a s proudovým zpracováním instrukcí (instruction pipelining). Proudové zpracování instrukcí Rozdělení procesoru do stupňů (sekcí) proudového zpracování. Hazardy v proudovém zpracování, jejich klasifikace a způsoby odstranění. Pozastavování proudového zpracování, způsob řízení toku instrukcí mezi stupni. Techniky zabraňování datových a řídicích hazardů bez pozastavování. Proudové zpracování instrukcí celočíselných a instrukcí v pohyblivé řádové čárce. Princip proudového zpracování komplexních instrukcí. Pokročilé proudové zpracování; superskalární, superpipelinové a VLIW procesory Paralelní systémy Taxonomie paralelních systémů, Flynnova klasifikace. Vektorové počítače. Architektury multiprocesorových systémů se sdílenou a distribuovanou pamětí. Koherence skrytých pamětí a paměťová konzistence v multiprocesorovém systému se sdílenou pamětí. Instrukční primitivy pro synchronizaci procesů.
Komunikace procesoru s okolím V/V (periferní) jednotky a jejich řízení - DMA, kanály a V/V procesory. Sběrnice - typy, režimy činnosti a přidělování. Standardní systémové a V/V sběrnice. Metody a techniky připojování V/V zařízení. V/V zařízení Displeje, tiskárny, zapisovače. Klávesnice, digitizéry a tablety, skenery, funkce řadiče. Vstup obrazové a zvukové informace pro digitální zpracování. Typická standardní rozhraní. Vnější paměti Magnetický a optický záznam, jeho organizace, kódování; zabezpečení proti chybám. Typická standardní rozhraní vnějších pamětí. Přenosové a datové sítě Vlastnosti přenosových kanálů, metody kódování a modulace. Metalické, optické a rádiové spoje. Přenosové sítě, přístupové sítě, rádiové sítě, sítě ISDN a ATM. Počítačová komunikace Ochrana proti chybám přenosu, potvrzovací schémata. Algoritmy a mechanismy směrování, řízení toku v uzlech sítě a koncových zařízeních. Transportní, relační a presentační služby. Kryptografická ochrana počítačových komunikací. Protokoly Internetu. Podpora distribuovaného výpočtu Technologie klient-server, rozhraní protokolů UDP a TCP. Procedurální komunikace (RPC, Java RMI, SOAP). Odborné tématické okruhy: Programové vybavení počítačů Pokryto předměty: X36TIN, X36DSA, X36OSY, X36PJP, X36DBS, X36SIN Složitost algoritmů Asymptotická složitost. Třídy složitosti P a NP, NP-úplnost. Turingovy stroje, jejich zobecnění, nerozhodutelné problémy. Techniky návrhu algoritmů Rekurze, převod rekurze na iteraci. Algoritmy prohledávání s návratem, dynamické programování. Zametací technika, metoda "rozděl a panuj". Metody řazení
Algoritmy řazení výběrem, vkládáním a zaměňováním. Counting-sort, Heapsort, Merge-sort, Shell-sort, Radix-sort, Quick-sort. Operační a paměťová složitost algoritmů řazení v průměrném, nejhorším a nejlepším případě. Metody vyhledávání Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, půlením, binární vyhledávací stromy). Operační a paměťová složitost algoritmů vyhledávání v průměrném, nejhorším a nejlepším případě. Vícerozměrné vyhledávání, geometrické vyhledávání a geometrické algoritmy. Datové struktury Pole, tabulka, seznam, množina, strom, fronta, zásobník, halda. Základní vlastnosti, operace a jejich složitosti. Grafové algoritmy a jejich složitost Prohledávání grafu do hloubky a do šířky. Orientované grafy, topologické uspořádání, silná souvislost. Minimální kostra grafu, nejkratší cesty. Toky v sítích. Charakter hladových algoritmů a dynamického programování. Řešení úloh prohledáváním stavového prostoru, metody heuristického hledání. Operační systémy Struktura jednouživatelského a víceuživatelského operačního systému (OS). Jádro OS. Procesy, vlákna, jejich plánování a přidělování procesoru. Přidělování sdílených prostředků procesům, problém uváznutí - podmínky vzniku a řešení. Synchronizace paralelních procesů a vláken Časově závislé chyby, kritické sekce, metody vzájemné vyloučení procesů a vláken. Klasické úlohy synchronizace paralelních procesů a způsoby jejich řešení. Správa operační paměti Správa paměti v jednoúlohových a víceúlohových systémech. Odkládání na disk (swapování). Stránkování, segmentace, kombinované techniky správy paměti. Způsoby překladu virtuální adresy na fyzickou adresu. Algoritmy náhrady stránek. Systémy souborů Atributy souborů, typy souborů, operace se soubory. Implementace souborů - datové bloky, způsoby uložení atributů, správa volných bloků. Implementace adresářů. Disková vyrovnávací paměť. Systémy souborů (FAT, UFS, NTFS). RAID. Vyšší programovací jazyky
Datové objekty a jejich typy, vnitřní reprezentace. Ukazatele a dynamické proměnné, správa volné paměti. Jednoduché a strukturované příkazy. Procedury a funkce, bloková struktura, aktivační záznamy. Modulární struktura programu. Výjimky. Objektově orientované prostředky. Lexikální a syntaktická analýza Lexikální analyzátor, prostředky pro jeho specifikaci - regulární gramatiky, konečné automaty, vztah mezi nimi. Programová realizace. Syntaktický analyzátor shora dolů, prostředky pro jeho specifikaci - bezkontextové gramatiky, zásobníkové automaty, vztah mezi nimi. LL(1) gramatiky, transformace gramatik. Programová realizace syntaktického analyzátoru pro LL(1) gramatiky. Syntaxí řízený překlad Prostředky pro specifikaci syntaxí řízeného překladu - překladové gramatiky, atributové gramatiky, atributové překladové gramatiky. LL-atributové překladové gramatiky, programová realizace rekurzívním sestupem s paramatry. Vnitřní formy programu, jazyk zásobníkové počítače, syntaktický strom, příklady překladu základních konstrukcí. Principy databázových systémů Systém řízení bází dat, databáze, datový slovník, víceuživatelský přístup, kategorie DB uživatelů, transakční zpracování, architektura klient-server. Datové modely Konceptuální datové modely, logické databázové modely, fyzické datové modely a jejich souvislosti. Relační databázový model, relace, funkční závislosti, návrh schématu úložiště v relační databázi, normalizace, integritní omezení. Návrh relačního schématu ve 3. NF dekompozicí z univerzální relace. Dotazovací jazyky Relační algebra, SQL (DDL, DML, DCL), QBE. Konceptuální modely používané při analýze Konceptuální datové modely. Abstraktní datové typy jako definice domén, ER-model, model tříd. Konceptuální funkční modely. Model jednání, scénáře případů užití, diagramy komunikace, diagramy datových toků, diagram kontextu, diagramy aktivit. Hierarchie funkcí, minispecifikace elementárních funkcí, popisy operací. Zachycení dynamických závislostí pomocí stavových diagramů, scénářů chování a regulárních výrazů, souvislosti. Univerzální modelovací jazyk UML - notace a diagramy. Logické modely používané při návrhu Návrh logických datových modelů z modelů konceptuálních. Relační logický model. Objektový logický model. Funkční závislosti. Normální formy. Návrh relačního schématu z
konceptuálního datového modelu. Návrh logických funčních modelů. Návrh dekompozicí, návrh na základě datových struktur, objektový návrh, návrh na základě datových toků. Návrhové vzory. Diagramy komponent, diagramy nasazení.