Vyučující
|
-
Brenkus David, Ing. Ph.D.
|
Obsah předmětu
|
1. Úvod do distribuovaných systémů, vlastnosti, architektura, požadavky, modely. 2. Komunikace mezi procesy, posílání zpráv, volání vzdálených podprogramů. 3. Skupinová komunikace, spolehlivé protokoly pro skupinovou komunikaci. 4. Transakce, vnořené transakce, distribuované transakce, uzamykání, časové značky, obnova po chybě. 5. Čas, synchronizace času, logické a fyzické hodiny. Algoritmy synchronizace času. 6. Distribuované algoritmy, rozdělení, základní vlastnosti, synchronizace, semafory. 7. Uvíznutí systému, vyloučení, prevence, detekce. Uvíznutí v distribuovaných systémech. 8. Konzistentnost, modely orientované na klienta a na data, replikace souborů, distribuovaná sdílené paměť. 9. Bezpečnost v distribuovaných systémech. Napadení, ochrana zdrojů, šifrování, otisk zprávy. 10. Bezpečná komunikace, ověřování pravosti uživatele, distribuce klíčů. 11. Distribuovaný systém souborů, příklady (NFS, AFS). 12. Peer-to-peer systémy, distribuované hashovaní tabulky. 13. Bezdrátové senzorické sítě.
|
Studijní aktivity a metody výuky
|
Prezentace práce studentů, Individuální konzultace, Studium metodou řešení problémů, Samostatná práce studentů, Samostudium studentů, Samostudium literatury, Přednáška, Cvičení
- Příprava na zkoušku [10-60]
- 45 hodin za semestr
- Kontaktní výuka
- 65 hodin za semestr
- Příprava na dílčí test [2-10]
- 12 hodin za semestr
- Příprava prezentace (referátu) [3-8]
- 8 hodin za semestr
- Vypracování seminární práce v magisterském studijním programu [5-100]
- 50 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
prokázat znalost počítačových sítí na úrovni KIV/PSI |
prokázat znalost operačních systémů na úrovni KIV/OS |
prokazovat znalost programovacího jazyka C |
prokazovat znalost konečných automatů i jejich realizaci v programovacím jazyce |
orientovat se v abstraktních datových typech a jejich implementaci v jazyce C |
prokazovat znalost operačního systému Linux včetně programování síťových aplikací |
prokazovat znalost vytváření paralelních procesů a vláken |
prokazovat znalost synchronizačních metod v operačním systému Linux |
Odborné dovednosti |
---|
použít základní vývojové a verzovací nástroje |
základní dovednosti pro práci s personálním počítačem pod operačním systémem Linux |
na základní uživatelské úrovni používat některé z vývojových prostředí jazyka C |
vytvářet složitější programy v jazyce C |
vytvářet komunikační programy pod operačním systémem Linux v s využitím BSD socketů |
Obecné způsobilosti |
---|
mgr. studium: používají své odborné znalosti, odborné dovednosti a obecné způsobilosti alespoň v jednom cizím jazyce, |
Výsledky učení |
---|
Odborné znalosti |
---|
orientovat se v problematice distribuovaných systémů |
prokázat teoretické znalosti o různých problémech, jejichž korektní řešení vyžaduje koordinaci činnosti programů, pracujících odděleně, včetně algoritmů, používaných pro jejich řešení |
prokázat hluboké znalostí o síťovém programování, zejména o systémových funkcích |
prokázat hlubokou znalost o grafickém programovém rozhraní |
prokazovat znalost vybraných distribuovaných algoritmů |
prokazovat znalost problematiky synchronizace času, konzistentnosti, vícenásobných kopií, distribuovaných transakcí, distribuovaných souborových systémů, P2P sítí |
prokazovat znalosti z oblasti spolehlivosti a detekce chyb v distribuovaných systémech |
Odborné dovednosti |
---|
mít praktické zkušenosti s programováním paralelních procesů, vláken a jejich synchronizací |
umět předávat data mezi procesy a vlákny pod operačním systémem UNIX (Linux) |
orientovat se v příkazech operačního systému Linux, zejména v příkazech, které se týkají síťových aplikací. Provádět analýzu nastavení sítě včetně kontroly tohoto nastavení a diagnostiky problémů |
navrhnout a realizovat síťové aplikace typu server/klient. Navrhnout a realizovat implementaci vybraných distribuovaných algoritmů |
být schopen ladit programové vybavení v distribuovaném prostředí |
provádět analýzu aplikace včetně lokalizace případných chyb |
Obecné způsobilosti |
---|
mgr. studium: dle vyvíjejících se souvislostí a dostupných zdrojů vymezí zadání pro odborné činnosti, koordinují je a nesou konečnou odpovědnost za jejich výsledky, |
mgr. studium: plánují, podporují a řídí s využitím teoretických poznatků oboru získávání dalších odborných znalostí, dovedností a způsobilostí ostatních členů týmu, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Cvičení (praktické činnosti), |
Individuální konzultace, |
Přednáška založená na výkladu, |
Řešení problémů, |
Samostudium, |
Samostatná práce studentů, |
Odborné dovednosti |
---|
Prezentace práce studentů, |
Samostatná práce studentů, |
Obecné způsobilosti |
---|
Přednáška založená na výkladu, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Test, |
Seminární práce, |
Kombinovaná zkouška, |
Průběžné hodnocení, |
Odborné dovednosti |
---|
Individuální prezentace, |
Seminární práce, |
Obecné způsobilosti |
---|
Písemná zkouška, |
Doporučená literatura
|
-
Coulouris, George; Dollimore, Jean; Kindberg, Tim. Distributed systems : concepts and design. 3rd ed. Harlow : Addison-Wesley, 2001. ISBN 0-201-61918-0.
-
Tanenbaum, Andrew S.; Van Steen, Maarten. Distributed systems : principles and paradigms. Upper Saddle River : Prentice Hall, 2002. ISBN 0-13-088893-1.
|