Detail předmětu

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

FEKT-MOSSAk. rok: 2009/2010

Operační systém (dále OS), základní funkce OS, jádro OS, typy jader, procesy, plánování procesů, procesy v UNIXu, signály, komunikace mezi procesy, souborový systém, příkazové interprety, vlákna, synchronizace mezi vlákny, síťové protokoly (Ethernet, WiFi, TCP/IPv4, směrování, IPv6, DNS, DHCP, HTTP, SMTP), využití unixových soketů pro síťovou komunikaci.

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

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

Pokročilá znalost práce v OS UNIX, vytvářet uživatelké programy a programovat síťové aplikace. Znalost důležitých síťových protokolů.

Prerekvizity

Znalost programování v jazyce C.

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

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

Studenti jsou hodnoceni průběžně během studia na cvičeních. Za semestr tak mohou získat max. 30 bodů (15 bodů za odevzdání zadaných úloh, 15 bodů závěrečný test). Podmínkou udělení zápočtu je účast na všech počítačových cvičeních (toleruje se 1 neomluvená neúčast). Závěrečná zkouška je hodnocena max. 70ti body.

Osnovy výuky

1. Úvodní informace. Koncepce výpočetních systémů, operační systém (dále OS), úkoly a role OS ve výpočetním systému, požadavky na OS, abstrakce poskytované OS. Jádro OS, funkce jádra, typy jader.
2. Procesy, stavy procesů, PCB, přepínání procesů, služby poskytované jádrem procesům, plánování procesů, fronty procesů. OS UNIX, standardizace. Vznik procesu v UNIXu - systémová volání fork a exec, předávání parametrů procesům, proměnné prostředí, ukončení procesu, identifikátory spojené s procesy.
3. Čekání na ukončení procesu - wait, waitpid. Hierarchie procesů v UNIXu, proces init. Signály: vymezení pojmu signál, použití signálů, reakce procesu na signál, významné signály, zasílání signálů procesům (systémové volání kill, příkaz kill), nastavení reakce na signál (systémové volání sigaction), implementace signálů. Řízení úloh.
4. Disky: ATA, SATA, SCSI, adresování sektorů na disku, fragmentace. Disková pole. Soubory a souborové systémy: diskové oblasti, souborové systémy s5 a ufs, superblok, i-uzel.
5. Soubory a souborové systémy: VFS. Typy souborů, tvrdé a měkké odkazy, přístupová práva, funkce pro práci se soubory a adresáři, přesměrování vstupů a výstupů (systémová volání dup, dup2).
6. Komunikace mezi procesy: pojmenované a nepojmenované roury, mapovaná paměť, sdílená paměť, POSIXové fronty zpráv. Vlákna: možné způsoby implementace vláken, vytvoření vláken, spojování vláken.
7. Synchronizece mezi vlákny (kritická sekce, mutex, semafor, podmíněná proměnná).
8. Počítačové sítě ISO a TCP/IP model. Fyzická vrstva. Linková vrstva: Ethernet, WiFi, adrsování, switche.
9. Protokol IPv4: funkce, charakteristika, formát IPv4 datagramu, adresování, organizace spravující Internet. Sockety. Protokol UDP. Protokol TCP (navazání a ukončení spojení, metoda kouzavého okna)
10. Směrování: přímé a nepřímé doručování, směrovací tabulka, agregace položek směrovací tabulky, základní algoritmus směrování, dynamické směrovací protokolyprotokoly, ICMP. Autonomní systémy. Hierarchické směrování.
11. Programování síťových aplikací pomocí rozhraní BSD socket. Funkce TCP klienta, UDP klienta, TCP serveru a UDP serveru. Iterativní a konkurentní servery.
12. IPv6 protokol: Formát IPv6 datagramu, zřetězení hlaviček. Zápis IPv6 adresy. Rozdělení (typy) IPv6 adres. Globální individuální adresy, identifikátor rozhraní. Linkové lokální adresy. Dosahy adres. Objevování sousedů. Automatická konfigurace.
13. Protokol DNS, HTTP, SMTP.

Učební cíle

Seznámit studenty se základními principy a typy operačních systémů, principy a filosofií OS UNIX, prací a programováním v příkazovém interpretu (shellu), nejdůležitějšími deamony a jejich konfigurací, síťovými protokoly, tvorbou uživatelských a síťových aplikací s využitím vláken a programováním driverů pro OS UNIX.

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

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

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)

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

  • Program EEKR-M magisterský navazující

    obor M-KAM , 2. ročník, zimní semestr, volitelný oborový

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 1. ročník, zimní semestr, volitelný oborový

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1.Klasický model operačního systému, funkce jednotlivých vrstev, požadavky na OS, model OS UNIX, jádro, systémová volání, knihovní funkce. Historie a rodokmen OS UNIX, standardizace, adresářová struktura. Příkazové interprety a práce v nich: zástupné znaky, regulární výrazy, standardní vstup a výstup, přesměrování vstupů a výstupů, roury.
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

26 hod., povinná

Vyučující / Lektor

Osnova

1.Manuálové stránky (man, info), použití základních příkazů UNIXu: cat, less, more, head, tail, cut, sort, mail, chmod, chown, chgrp, du, df, tar, bzip. Přesměrování vstupu a výstupu.
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.