Detail předmětu

Operační systémy

FIT-IOSAk. rok: 2024/2025

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

Jazyk výuky

čeština

Počet kreditů

5

Vstupní znalosti

Základy programování v jazyce C.

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

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

Učební cíle

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.

Prerekvizity a korekvizity

Základní literatura

Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 10. vydání, John Wiley & Sons, 2018. (CS)

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

  • Program BIT bakalářský 1 ročník, letní semestr, povinný
  • Program BIT bakalářský 1 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., povinná

Vyučující / Lektor

Osnova

  1. Úvod. Vývoj počítačů a OS. Požadavky na OS, klasifikace OS, standardy. Základní pojmy a obecná struktura OS.
  2. 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.
  3. 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.
  4. Základy programování v Unixu. Jazyky, překladače, principy sestavování programu, dynamicky sestavované knihovny. Standardní utility UNIXu.
  5. Systém souborů. Fyzická a logická struktura disku. Typy souborů, i-uzel, uložení dat souboru na disku.
  6. Přístupová práva k souborům, uživatelé a skupiny, atributy suid a sgid, typická struktura adresářů systému UNIX.
  7. 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.
  8. Správa procesů. Pojem procesu, jeho stavy a representace v systému. Zavedení systému, proces init. Volání fork, exec, exit, wait.
  9. Základní algoritmy plánování procesů.
  10. Vzájemné vyloučení, semafory a další synchronizační prostředky.
  11. Typické synchronizační úlohy. Probém uváznutí (deadlock) a jeho řešení.
  12. Správa paměti. Adresové prostory, překlad adres, stránkování.
  13. Virtualizace paměti.

Projekt

13 hod., povinná

Vyučující / Lektor

Osnova

  1. Tvorba skriptů s využitím shellu a standardních utilit v prostředí operačního systému UNIX.
  2. Synchronizace procesů v prostředí UNIX s využitím jazyka C.