Detail předmětu

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

FEKT-MPC-OSSAk. rok: 2023/2024

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.

Jazyk výuky

čeština

Počet kreditů

6

Garant předmětu

Vstupní znalosti

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í.

Pravidla hodnocení a ukončení předmětu

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.

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.

Učební cíle

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.
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.

Základní 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)

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

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

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Koncepce výpočetních systémů. Vymezení pojmu OS. Abstrakce poskytované OS. Uživatelský mód a mód jádra. Systémová volání, API, ABI. Procesy a programy. Stavy procesů. Přepínání procesů.
2. Plánování procesů. Možnosti vytváření procesů. Vznik procesu v UNIXu -systémové volání fork. Změna řídícího programu - funkce z rodiny exec.. Ukonšení procesu. Čekání na ukončení procesu - funkce wait.
3. Signály. Fáze zpracování signálu. Asynchronní a synchronní generování signálu. Doručení signálu, akce při doručení signálu. Blokování signálů. Akceptování signálů. Významné signály. Posílání signálů. Řízení úloh.
4. Vlákna. Běžné programovaxí modely multivláknových aplikací. Implementace vláken Rozhraní Pthread.
5 .Synchronizace mezi vlákny (kritická sekce, mutex, semafor, podmíněná proměnná, bariera, zprávy).
6. Souborové systémy. Typy souborů v UNIXu/Linuxu. Tabulky OS pro práci se soubory. Duplikování deskriptorů, přesměrování. Roury.
7. Struktury OS. Virtualizace.
8. Základní principy počítačových sítí. ISO OSI vs. TCP/IP model. Linková a fyzivká vrstva. Ethernet (rámce, MAC adresa).
9., Funkce ethernetového přepínače. VLAN, IEEE 802.1Q VLAN Tagging. PoE.
10. IP protokol (funkce, vlastnosti, adresace, fragmentace). ICMP protokol. Směrování.
11. Protokoly transportní vrstvy. UDP protokol. TCP protokol.
12. IPv6 protokol. IPv6 paket (hlavička, rozšiřující hlavičky ). Adresace, typy IPv6 adres. Identifikátory rozhraní, problém soukromí. ICMPv6.
13. IPv6 objevování sousedů. Automatická konfigurace. Iterativní a konkurentní servery, možnosti realizace iterativního serveru.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1. Základy práce v shellu (bash), základní příkazy echo, pwd, ls, cd, mkdir, cp, mv, rm, cat, less.
2. Překlad programů v C v UNIX/Linux, clang. program na zpracování parametrů příkazové řádky a proměnných prostředí.
3. Program na spouštění nových programů, vytváření nových procesů a čekání naukončení procesu.
4. Program na práci se signály, zasílání signálů procesům.
5. Program na použití časovačů.
6. Program na vytváření vláken.
7. Program na synchronizaci vláken pomocí mutexu.
8. Program na synchronizaci vláken pomocí semaforu (úloha typu dodavatel - odběratel).
9. Program na komunikaci mezi procesy pomocí roury.
10. Program typu server a klient komunikující prostřednictvím lokálních socketů.
11.Program TCP klient s využitím soketů.
11. Program TCP server s využitím soketů.
12. Program UDP servera klient s využitím soketů.
13.Zápočtový test.