Detail předmětu
Operační systémy a sítě
FEKT-MOSSAk. rok: 2014/2015
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, HTTP, SMTP, fungování systému DNS a DHCP a směrování v IP sítích. Zvláštní pozornost je věnována novému protokolu IPv6.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- vytvořit jednoduchý aplikační program pro operační systém UNIX/Linux,
- vytvořit jednoduchou síťovou aplikaci založenou na rozhraní 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, DNS, DHCPv4/DHCPv6, HTTP, SMTP,
- vysvětlit navázání a ukončení TCP spojení,
- vysvětlit mechanismy objevování sousedů u IPv6.
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Závěrečná zkouška má písemnou část a je hodnocena max. 70 body.
Osnovy výuky
2. Identifikátory spojené s procesy. Čekání na ukončení procesu. Plánování procesů. Signály. Řízení úloh.
3. Souborové systémy. Správa paměti.
4. Přesměrování vstupů a výstupů v UNIXu. Vlákna: implementace vláken, vytvoření vláken, ukončování a spojování vláken.
5. Synchronizace procesů a vláken (kritická sekce, mutex, semafor, podmíněná proměnná, bariéry). Problém uváznutí.
6. Struktura OS, typy jader. Virtualizace. Počítačové sítě: ISO OSI a TCP/IP model. Fyzická a linková vrstva. Ethernet.
7. Přepínaný Ethernet, přepínače (switches). IEEE 802.1Q VLAN Tagging. PoE.
8. IPv4 protokol: IPv4 datagram, IPv4 adresy. ICMP protokol. ARO protokol. Směrování, směrovací tabulka, agregace položek směrovací tabulky, základní algoritmus směrování.
9. Protokoly UDP a TCP. Navázání a ukončení TCP spojení.
10. DHCPv4. IPv6: IPv6 datagram, IPv6 adresy, identifikátory rozhraní.
11. IPv6: Objevování sousedů. Automatická konfigurace. DHCPv6.
12. DNS: domény, zóny, DNS záznamy (Resource Record, RR), typy RR, DNS dotazy, DNS servery, resolvery. DNSSEC.
13. Protokol HTTP, SMTP. Firewally. DMZ (demilitarizovaná zóna).
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
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)
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)
Silberschatz, A., Galvin, P., B., Gagne, G. Operating System Concepts. 8th ed. Hoboken: Wiley, 2010. 972 p. ISBN 978-0-470-233399-3. (EN)
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)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2.Shell: proměnné, speciální proměnné shellu, operátory && a ||, podmínky, příkazy expr, test, konstrukce case, cykly, funkce, interaktivní skripty (příkazy read, switch).
3.Souborový systém UNIXU, typy souborových systémů, inode, adresáře, tvrdé a měkké odkazy. Přístupová práva. Funkce pro práci se soubory a s adresáři.
4.Procesy - kontext procesu, stavy procesu, prostředí procesu, proměnné prostředí, spouštění procesů (funkce fork a exec), ukončení procesu(funkce exit, wait, wait3, wait4), proces init.
5.Sdílení souborů mezi procesy. Přesměrování vstupů a výstupů. Komunikace a synchronizace mezi procesy: roury, FIFO (pojmenované roury), signály, sdílená paměť, semafory.
6.Vlákna, synchronizace mezi vlákny (kritická sekce, mutex, semafor, podmíněná proměnná).
7.Bloková a znaková zařízení, ovladače zařízení, speciální soubory, programování ovladačů zařízení pro Linux.
8.Protokoly Ethernet, IEEE 802.11 (WiFi), TCP/IP, směrování paketů.
9.Protokoly ICMP, DHCP, DNS, SNMP.
10.SMTP, POP3, IMAP4, LDAP. Zabezpečená komunikace pomocí SSL, SSH.
11.Sokety. Síťová komunikace pomocí soketů. Klient. Server.
12.Deamoni (cron, at, xinetd, ...), časová synchronisace. Start OS UNIX, inicializační soubory.
13.OS reálného času - požadavky, základní principy, příklady (Windows CE a RT-Linux).
Cvičení na počítači
Vyučující / Lektor
Osnova
2.Regulární výrazy, příkazy grep, find, sed, awk, kolony.
3.Interaktivní programy v shellu.
4.Programy gcc, gmake. Použití služeb pro práci se soubory a adresáři. Vytváření dočasných souborů.
5.Prostředí procesu. Vytváření procesů (funkce fork, exec), ukončení procesu (funkce wait, wait3, wait4, exit, abort). Získávání informací o procesech.
6.Přesměrování vstupů a výstupů (funkce dup, dup2), kolony (funkce pipe, popen, pclose).
7.Pojmenované roury (FIFO), signály, sdílená paměť.
8.Vlákna - vytváření, spojování vláken, zrušení vlákna, data specifická pro vlákna.
9.Synchronizace vláken - příklady na použití mutexů a semafororů.
10.Synchronizace vláken - příklad na synchronizaci vláken pomocí podmíněné proměnné.
11.Programování klienta pomocí soketů.
11.Programování servru pomocí soketů.
12.Dokončení programování klienta pomocí soketů.
13.Zápočtový test.