|
|
Hlavní nabídka Prohlížení IS/STAG
Nalezené předměty, počet: 1
Stránkování výsledků vyhledávání
Nalezeno 1 záznamů
Export do Xls
Informace o předmětu
KIV / DSA
:
Popis předmětu
Pracoviště / Zkratka
|
KIV
/
DSA
|
Akademický rok
|
2024/2025
|
Akademický rok
|
2024/2025
|
Název
|
Distribuované systémy a algoritmy
|
Způsob zakončení
|
Zkouška
|
Způsob zakončení
|
Zkouška
|
Akreditováno / Kredity
|
Ano,
6
Kred.
|
Forma zakončení
|
Kombinovaná
|
Forma zakončení
|
Kombinovaná
|
Rozsah hodin
|
Přednáška
3
[HOD/TYD]
Cvičení
2
[HOD/TYD]
|
Zápočet před zkouškou
|
Ano
|
Zápočet před zkouškou
|
Ano
|
Automatické uznávání zápočtu před zkouškou
|
Ano v případě předchozího hodnocení 4 nebo nic.
|
Počítán do průměru
|
ANO
|
Vyučovací jazyk
|
Čeština
|
Obs/max
|
|
|
|
Automatické uznávání zápočtu před zkouškou
|
Ano v případě předchozího hodnocení 4 nebo nic.
|
Letní semestr
|
6 / -
|
0 / -
|
0 / -
|
Počítán do průměru
|
ANO
|
Zimní semestr
|
0 / -
|
0 / -
|
0 / -
|
Opakovaný zápis
|
NE
|
Opakovaný zápis
|
NE
|
Rozvrh
|
Ano
|
Vyučovaný semestr
|
Letní semestr
|
Vyučovaný semestr
|
Letní semestr
|
Minimum (B + C) studentů
|
nestanoveno
|
Volně zapisovatelný předmět |
Ano
|
Volně zapisovatelný předmět
|
Ano
|
Vyučovací jazyk
|
Čeština
|
Počet dnů praxe
|
0
|
Počet hodin kontaktní výuky |
0
|
Hodnotící stupnice |
1|2|3|4 |
Periodicita |
každý rok
|
Hodnotící stupnice pro zp. před zk. |
S|N |
Periodicita upřesnění |
|
Základní teoretický předmět |
Ne
|
Profilující předmět |
Ano
|
Základní teoretický předmět |
Ne
|
Hodnotící stupnice |
1|2|3|4 |
Hodnotící stupnice pro zp. před zk. |
S|N |
Nahrazovaný předmět
|
KIV/DS
|
Vyloučené předměty
|
Nejsou definovány
|
Podmiňující předměty
|
Nejsou definovány
|
Předměty informativně doporučené
|
KIV/PSI
|
Předměty,které předmět podmiňuje
|
KIV/DISZ
|
Graf četnosti udělených hodnocení studentům napříč roky:
Obrázek PNG
,
XLS
|
Cíle předmětu (anotace):
|
Seznámit studenty s architekturou distribuovaných systémů a s vybranými typy distribuovaných algoritmů. Seznámit studenty s typickými úlohami distribuovaných systémů. Naučit je realizovat vybrané distribuované algoritmy ve vhodném programovacím jazyce nebo pomocí vhodných komponent a ladit je v prostředí operačního systému typu UNIX (Linux).
|
Požadavky na studenta
|
Řešení dvou samostatných programovacích úloh. Písemná zkouška, doplněná podle potřeby ústním pohovorem.
Z důvodu průběžné aktualizace předmětu je pro získání zápočtu při opakovaném zapsání předmětu (viz SZŘ čl. 24 odst. 3) nutné souhlasné vyjádření garanta předmětu.
|
Obsah
|
1. Úvod do distribuovaných systémů, jejich vlastnosti, architektura, požadavky, modely a cíle návrhu.
2. Distribuované algoritmy, rozdělení, základní vlastnosti a řešené úlohy, aplikace distribuovaných algoritmů, detekce uvíznutí v distribuovaném systému.
3. Volba koordinátora, vzájemné vyloučení, řazení událostí, správa skupin a spolehlivá skupinová komunikace, atomický broadcast a vzájemná shoda.
4. Problematika ladění distribuovaných systémů, logické časové značky, konzistentní globální stav, pozorovatelnost a monitoring
5. Řešení základních koordinačních úloh distribuovaných výpočtů pomocí distribuovaných úložišť
6. Zobecnění distribuované shody, replikace, replikovaný stavový automat, Paxos a RAFT
7. Konzistentnost v distribuovaných systémech, CAP teorém, přehled modelů konzistence, CRDT - Conflict-free Replicated Data Types
8. Modely konzistence orientované na klienta a na data.
9. Transakce, vnořené transakce, distribuované transakce, uzamykání, časové značky, obnova po chybě. Blockchain, Saga pattern, orchestrace vs choreografie procesů
10. Architekturální návrhové vzory v distribuovaných systémech, hexagonální architektura, strategie fragmentace dat, distribuované hashovací tabulky, událostmi řízené zpracování, reaktivní služby, CQRS, event sourcing, FaaS
11. Správa zdrojů a plánování úloh v distribuovaných systémech
12. Swarm intelligence, inteligentní sítě, distribuovaná simulace
13. Bezpečnost v distribuovaných systémech, základy PKI, SCEP, autentikační služby, OAuth a JWT
|
Aktivity
|
|
Studijní opory
|
|
Garanti a vyučující
|
|
Literatura
|
|
Časová náročnost
|
Všechny formy studia
|
Aktivity
|
Časová náročnost aktivity [h]
|
Kontaktní výuka
|
65
|
Vypracování seminární práce v magisterském studijním programu [5-100]
|
50
|
Příprava na zkoušku [10-60]
|
45
|
Celkem
|
160
|
|
Předpoklady
|
Odborné znalosti - pro úspěšné zvládnutí předmětu se předpokládá, že je student před zahájením výuky schopen: |
prokázat znalost počítačových sítí na úrovni KIV/UPS 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 programování síťových aplikací
prokazovat základní znalost vytváření paralelních procesů a vláken
prokazovat znalost synchronizačních metod v operačním systému Linux (POSIX rozhraní) |
Odborné dovednosti - pro úspěšné zvládnutí předmětu se předpokládá, že student před zahájením výuky dokáže: |
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 s využitím BSD socketů
|
Obecné způsobilosti - před zahájením studia předmětu je student schopen: |
mgr. studium: dle rámcového zadání a přidělených zdrojů koordinují činnost týmu, nesou odpovědnost za jeho výsledky, |
mgr. studium: srozumitelně a přesvědčivě sdělují odborníkům i laikům informace o povaze odborných problémů a vlastním názoru na jejich řešení, |
|
Výsledky učení
|
Odborné znalosti - po absolvování předmětu prokazuje student 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 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ů
prokazovat znalosti z oblasti spolehlivosti a detekce chyb v distribuovaných systémech
|
Odborné dovednosti - po absolvování předmětu prokazuje student 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 - po absolvování předmětu je student schopen: |
mgr. studium: používají své odborné znalosti, odborné dovednosti a obecné způsobilosti alespoň v jednom cizím jazyce, |
|
Hodnoticí metody
|
Odborné znalosti - odborné znalosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Průběžné hodnocení, |
Písemná zkouška, |
Odborné dovednosti - odborné dovednosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Demonstrace dovedností (praktická činnost), |
Průběžné hodnocení, |
Obecné způsobilosti - obecné způsobilosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Písemná zkouška, |
|
Vyučovací metody
|
Odborné znalosti - pro dosažení odborných znalostí jsou užívány vyučovací metody: |
Přednáška s diskusí, |
Skupinová konzultace, |
Samostudium, |
Odborné dovednosti - pro dosažení odborných dovedností jsou užívány vyučovací metody: |
Cvičení (praktické činnosti), |
Demonstrace dovedností, |
Skupinová konzultace, |
Obecné způsobilosti - pro dosažení obecných způsobilostí jsou užívány vyučovací metody: |
Přednáška s aktivizací studentů, |
|
|
|
|