Detail předmětu

Operační systémy a sítě

FEKT-MPC-OSSAk. rok: 2020/2021

První část předmětu je věnována základním principům operačních systémů, správě procesů a vláken, komunikaci mezi procesy, synchronizaci procesů a vláken, správě paměti, souborovým systémům, strukturám operačních systémů a virtualizaci. Druhá část předmětu se zabývá počítačovými sítěmi. Studenti získají informace o síťových protokolech a standardech jako Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP, směrování v IP sítích. Zvláštní pozornost je věnována novému protokolu IPv6.

Garant předmětu

Výsledky učení předmětu

Absolvent je schopen:
- vytvořit jednoduchý aplikační program pro operační systém UNIX/Linux,
- vytvořit jednoduchou síťovou aplikaci založenou na rozhraní POSIX (BSD) socket,
- vytvářet programy s více vlákny,
- aplikovat synchronizační prostředky jako mutex, semafor, podmínková proměnná,
- popsat síťové protokoly a standardy Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP, IPv6 ,
- vysvětlit navázání a ukončení TCP spojení,
- vysvětlit mechanismy objevování sousedů u IPv6.

Prerekvizity

Student, který si předmět zapíše, by měl být schopen vytvořit jednoduchý program v jazyce C, využívat základní knihovní funkce jazyka C, vysvětlit základní činnost Von Neumannova počítače a popsat činnost procesoru při obsluze přerušení.

Doporučená nebo povinná literatura

Perlík, L. Jemný úvod do systému UNIX. Dotisk prvního vydání. České Budějovice: Koop, 2000. 189 s. ISBN 80-85828-28-6. (CS)
Tanenbaum, S., A. Modern operating systems. 3.ed. Upper Saddle River, New Jersey 07458: Pearson Prentice Hall, 2008. 1076 p. ISBN 0-13-600663-9. (EN)
Silberschatz, A., Galvin, P., B., Gagne, G. Operating System Concepts. 8th ed. Hoboken: Wiley, 2010. 972 p. ISBN 978-0-470-233399-3. (EN)
Mitchell, M., Oldham, J., Samuel, A. Pokročilé programování v operačním systému Linux. Praha: SoftPress, 2002. 320 s. ISBN 80-86497-29-1. (CS)
Dostálek, L., Kabelová, A. Velký průvodce protokoly TCP/IP a systémem DNS. 5. akt. vyd. Brno: Computer Press, 2008. 488 s. ISBN 978-80-251-2236-5. (CS)
Matthew, N., Stones, R. Linux Programujeme profesionálně. Praha: Computer Press, 2001. 1079 s. ISBN 80-7226-532-6. (CS)
Lasser, J. Rozumíme UNIXU. Praha: Computer Press, 2002. 252 s. ISBN 80-7226-706-X. (CS)

Plánované vzdělávací činnosti a výukové metody

Metody vyučování zahrnují přednášky a cvičení na počítači. Student vypracuje osm úloh.

Způsob a kritéria hodnocení

Počítačová cvičení jsou hodnocena max. 30 body, z toho 15 bodů za samostatné naprogramování zadaných úloh a 15 bodů za závěrečný test.
Závěrečná zkouška má ústní část a je hodnocena max. 70 body.

Jazyk výuky

čeština

Osnovy výuky

1. Úvod: hodnocení, podmínky ukončení předmětu. Základní pojmy: operační systém (dále OS). uniprogramming, multiprogramming, sdílení času, preemptivní a nepreemptivní multitasking. Abstrakce poskytované OS. Jádro OS, uživatelský mód procesoru a mód jádra. Procesy: tabulka procesů, PCB, stavy procesů, přepínání kontextu, Přístup ke službám OS: systémová volání, API.
2. Plánování procesů. Vytvoření procesů a spuštění programů. Systémová volání fork() a exec(). Identifikátory spojené s procesem. Ukončení procesu. Systémové volání wait().
3. Signály: vymezení pojmu signál, asynchronní a synchronní signály, reakce procesu na signál, doručení a akceptování signálu, blokování obsluhy signálů, důležité signály, zasílá signálů procesům. Řízení úloh.
4. Souborové systémy: implementace souborového systému (pouze základy), tabulky v jádře OS pro práci se soubory, duplikace deskriptorů, přesměrování vstupů a výstupů, typy souborů v OS UNIX/Linux.
5. Vlákna: pojem vlákno, vlákna a procesy, typické multivláknové aplikace, způsoby implementace vláken. Vytváření, ukončování a spojování vláken.
6. Synchronizace procesů a vláken: proč je třeba synchronizovat, kritická sekce, nízkoúrovňové prostředky synchronizace (atomická instrukce, zákaz přerušení, spin-lock), aktivní a pasivní čekání, vysokoúrovňové prostředky synchronizace (mutex, semafor, podmíněná proměnná, bariéra, zprávy). Problém uváznutí.
7. Počítačové sítě: TCP/IP model, vztah k ISO OSI modelu. Fyzická a linková vrstva. Ethernet: rámec Ethernet II, funkce ethernetového přepínače (switche). VLAN, IEEE 802.1Q VLAN Tagging. PoE.
8. IPv4 protokol: funkce IP protokolu, IPv4 datagram, adresování, fragmentace. Směrování. QoS. ICMP protokol. ARP protokol.
9. Protokol TCP: základní přenos dat, zajištění spolehlivosti, řízení toku dat, multiplexing (porty), TCP segment, položky hlavičky, navázání a ukončení TCP spojení. UDP protokol.
10. POSIX sockets API (dříve BSD sockets). Aplikace typu UDP klient, UDP server, TCP klient, TCP server. Iterativní a konkurentní server. Modely realizace konkurentních serverů.
11. IPv6 protokol: formát IPv6 datagramu, zřetězení hlaviček, položky základní hlavičky. Bezpečnostní problém řetězení hlaviček. IPv6 adresy, identifikátory rozhraní, problém ochrany soukromí.
12. DHCPv4 a DHCPv6 protokoly. IPv6 protokol: Mechanismus objevování sousedů. Automatická konfigurace.
13. Struktury OS. Virtualizace.

Cíl

Cílem předmětu je seznámit studenty se základními principy operačních systémů, základy programování uživatelských a síťových aplikací pro OS UNIX/Linux a síťovými protokoly a standardy jako Ethernet, IEEE 802.1Q VLAN, PoE, TCP/IP, IPv6, DNS, DHCPv4/DHCPv6, HTTP, SMTP.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Počítačová cvičení jsou povinná, řádně omluvené zmeškané počítačové cvičení lze po domluvě s vyučujícím nahradit.

Zařazení předmětu ve studijních plánech

  • Program MPC-KAM magisterský navazující, 1. ročník, zimní semestr, 6 kreditů, povinně volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

eLearning