Detail předmětu
Operační systémy
IOS Ak. rok 2021/2022 letní semestr 5 kreditů
Pojem operačního systému (OS) jako součásti programového vybavení. Architektura OS, klasifikace OS. Přehled operačních systémů. Jádro OS UNIX, jeho struktura, textové a grafické uživatelské rozhraní, příkazové jazyky. Systémy ovládání souborů, základní principy implementace vstup/výstupních operací. Správa procesů, přepínání kontextu, plánování, meziprocesová komunikace. Správa paměti, stránkování, virtuální paměť. Synchronizace procesů, semafory a další synchronizační prostředky, uváznutí, stárnutí.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
- 13 hod. projekty
Bodové hodnocení
- 60 bodů závěrečná zkouška (písemná část)
- 10 bodů půlsemestrální test (písemná část)
- 30 bodů projekty
Zajišťuje ústav
Přednášející
Smrčka Aleš, Ing., Ph.D. (UITS)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS)
Cvičící
Kočí Radek, Ing., Ph.D. (UITS)
Kozák David, Ing. (UITS)
Pavela Jiří, Ing. (UITS)
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Vašíček Ondřej, Ing. (UITS)
Vojnar Tomáš, prof. Ing., Ph.D. (UITS)
Stránky předmětu
Získané dovednosti, znalosti a kompetence z předmětu
Studenti znají základní principy operačních systémů (a zejména OS UNIX) a chápou jejich vliv na chod komplexních výpočetních systémů. Studenti jsou schopni využít skriptů pro řešení různých úloh v prostředí OS UNIX.
Cíle předmětu
Cílem je seznámit studenty s principy operačních systémů obecně a dále se základy operačního systému Unix.
Proč je předmět vyučován
Kurs má zejména seznámit studenty se základními koncepty a mechanismy operačních systémů (soubory a souborové systémy, procesy a plánování, meziprocesová komunikace, přidělování paměti), aby byli schopni efektivně využívat služby operačních systémů ve svých budoucích dílech. Kurs dále seznámí studenty se skriptováním v shellu umožňujícím automatizaci řady úkonů běžně prováděných při vývoji, správě i dalším použití výpočetních systémů. Konečně studenti získají také první zkušenosti s tvorbou paralelních programů.
Doporučené prerekvizity
- Úvod do softwarového inženýrství (IUS)
- Základy programování (IZP)
Požadované prerekvizitní znalosti a dovednosti
Základy programování v jazyce C.
Literatura referenční
- Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 10. vydání, John Wiley & Sons, 2018.
Osnova přednášek
- Úvod. Vývoj počítačů a OS. Požadavky na OS, klasifikace OS, standardy. Základní pojmy a obecná struktura OS.
- Operační systém UNIX. Historie a základní vývojové větve. Principy a struktura systému. Struktura jádra, rozhraní a formy komunikace s jádrem.
- Interpret příkazů (shell) v UNIXu. Základní příkazy, programy, skripty. Speciální symboly. Přesměrování vstupu a výstupu, roury, procesy na pozadí, subshell. Proměnné, řídicí struktury.
- Základy programování v Unixu. Jazyky, překladače, principy sestavování programu, dynamicky sestavované knihovny. Standardní utility UNIXu.
- Systém souborů. Fyzická a logická struktura disku. Typy souborů, i-uzel, uložení dat souboru na disku.
- Přístupová práva k souborům, uživatelé a skupiny, atributy suid a sgid, typická struktura adresářů systému UNIX.
- Vstup a výstup. Odpovídající služby jádra. Datové struktury a algoritmy používané jádrem pro podporu vstupu a výstupu.
- Správa procesů. Pojem procesu, jeho stavy a representace v systému. Zavedení systému, proces init. Volání fork, exec, exit, wait.
- Základní algoritmy plánování procesů.
- Vzájemné vyloučení, semafory a další synchronizační prostředky.
- Typické synchronizační úlohy. Probém uváznutí (deadlock) a jeho řešení.
- Správa paměti. Adresové prostory, překlad adres, stránkování.
- Virtualizace paměti.
Osnova ostatní - projekty, práce
- Tvorba skriptů s využitím shellu a standardních utilit v prostředí operačního systému UNIX.
- Synchronizace procesů v prostředí UNIX s využitím jazyka C.
Doporučené volitelné složky programu
- Dobrovolná doplňková demonstrační cvičení, budou-li vypsána.
Průběžná kontrola studia
- Ohodnocení dvou domácích úloh vypracovaných samostatně studenty (max 30 bodů).
- Ohodnocení půlsemestrální zkoušky (max 10 bodů).
Metody vyučování
- Přednášky.
- Samostatné experimenty.
- Samostatná práce na projektech.
Kontrolovaná výuka
- Vypracování dvou domácích úloh, polosemestrální zkouška, kombinovaná závěrečná zkouška (povinná písemná část, ústní dozkoušení dle potřeby).
- Pro získání bodů ze zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 27 body. V opačném případě bude zkouška hodnocena 0 body.
Podmínky zápočtu
Získání alespoň 10 bodů z domácích úloh a půlsemestrální zkoušky.
Způsob kontaktu s vyučujícím
- Primární kontakt emailem, pomocí kterého je možno si domluvit individuální konzultaci s přednášejícími či přidělenými cvičícími (jsou přiděleni v průběhu semestru).
- Možnost diskuse přes webová fóra předmětu (zřízena během semestru).
Zařazení předmětu ve studijních plánech