Detail předmětu

Operační systémy

FIT-IOSAk. rok: 2019/2020

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

Výsledky učení 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.

Prerekvizity

Základy programování v jazyce C.

Doporučená nebo povinná literatura

Skočovský, L.: Principy a problémy operačního systému Unix, 2. vydání, 2008.
Soubor materiálů prezentovaných na přednáškách a zveřejněných přes Internet.
Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 9. vydání, John Wiley & Sons, 2012.
Tanenbaum, A.: Modern Operating Systems, 4. vydání, Prentice Hall, 2014.
Tanenbaum, A.S., Woodhull, A.S.: Operating Systems Design and Implementation, 3. vydání, Prentice Hall, 2006.
Raymond, E.S.: The Art Of Unix Programming, Addison-Wesley, 2003.
Yosifovich, P., Russinovich, M.E., Solomon, D.A., Ionescu, A.: Windows Internals, 7. vydání, Microsoft Press, 2017.

Způsob a kritéria hodnocení

  • Ohodnocení dvou domácích úloh vypracovaných samostatně studenty (max 30 bodů).
  • Ohodnocení půlsemestrální zkoušky (max 10 bodů).

Podmínky zápočtu:
Získání alespoň 10 bodů z domácích úloh a půlsemestrální zkoušky.

Jazyk výuky

čeština, angličtina

Cíl

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.

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

  • Vypracování dvou domácích úloh, kombinovaná závěrečná zkouška.
  • 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.

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

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

  • Program IT-BC-3 bakalářský

    obor BIT , 1. ročník, letní semestr, 5 kreditů, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

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. Základní principy grafického uživatelského rozhraní X-Window.
  5. Standardní utility UNIXu.
  6. Systém souborů. Fyzická a logická struktura disku. Typy souborů, i-uzel, uložení dat souboru na disku.
  7. Přístupová práva k souborům, uživatelé a skupiny, atributy suid a sgid, typická struktura adresářů systému UNIX.
  8. 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.
  9. Správa procesů. Zavedení systému, proces init. Volání fork, exec, exit, wait. Stavy procesu, plánovač.
  10. Správa paměti. Adresové prostory, překlad adres, stránkování.
  11. Virtualizace paměti.
  12. Vzájemné vyloučení, semafory a další synchronizační prostředky.
  13. Typické synchronizační úlohy, uváznutí (deadlock), stárnutí.

Projekty

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.

eLearning