Detail předmětu
Operační systémy
IOS Ak. rok 2023/2024 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
Kočí Radek, Ing., Ph.D. (UITS)
Kozák David, Ing. (UITS)
Lengál Ondřej, Ing., Ph.D. (UITS)
Pavela Jiří, Ing. (UITS)
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Rozsíval Michal, Ing. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Vašíček Ondřej, Ing. (UITS)
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í
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
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)
Lengál Ondřej, Ing., Ph.D. (UITS)
Pavela Jiří, Ing. (UITS)
Rogalewicz Adam, doc. Mgr., Ph.D. (UITS)
Rozsíval Michal, Ing. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Vašíček Ondřej, Ing. (UITS)
Stránky předmětu
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.
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.
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.
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ů).
- 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
- Program BIT, 1. ročník, povinný
- Program BIT (anglicky), 1. ročník, povinný
- Program IT-BC-3, obor BIT, 1. ročník, povinný