Detail předmětu

Pokročilé operační systémy

FIT-POSAk. rok: 2017/2018

Základní pojmy, jádro operačního systému a jeho struktura. Problematika paralelního programování a synchronizace se zaměřením na synchronizaci v jádře operačních systémů. Uváznutí, metody detekce a prevence. Plánovací algoritmy pro jednoprocesorové systémy. Správa paměti, virtuální paměť, stránkování, implementace virtuální paměti. Vstup a výstup, synchronní a asynchronní operace, ovladače, optimalizace diskových operací. Systémy souborů, metody přidělování diskového prostoru, organizace metadat, odolnost vůči výpadku, příklady systémů souborů. Bezpečnost a ochrana dat.

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

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

Schopnost navrhovat paralelní programy s vlákny POSIX 1003.1, znalost použití synchronizačních nástrojů, virtuální paměti a systémů souborů.

Hlubší znalosti funkce výpočetních systémů a systémového programování.

Prerekvizity

Programování v jazyce C v prostředí Unixu, architektura výpočetních systémů, asembler Intel x86, základní principy funkce operačních systémů.

Způsob a kritéria hodnocení

Hodnocení studia je založeno na bodovacím systému. Pro úspěšné absolvování předmětu je nutno dosáhnout 50 bodů.

Osnovy výuky

Osnova přednášek:
  1. Struktura jádra, rozhraní jádra, volání jádra a přepínání kontextu. Rozhraní systémů Unix, postup standardizace a standardy XPG, POSIX a ISO.
  2. Procesy a vlákna dle standardu POSIX 1003.1, vytváření procesů a vláken, implementace vláken.
  3. Úvod do paralelního programování, synchronizace a prostředky synchronizace, paměťové modely. Implementace vzájemného vyloučení atomickými operacemi čtení a zápis.
  4. Metody synchronizace speciálními atomickými instrukcemi v jednoprocesorových a víceprocesorových systémech se sdílenou pamětí, inverze priority.
  5. Synchronizační nástroje a jazykové konstrukce, klasické synchronizační úlohy.
  6. Plánování procesoru, strategie a implementace, plánovací algoritmy pro jednoprocesorové a víceprocesorové systémy.
  7. Přidělování prostředků, uváznutí, detekce uváznutí a vyhnutí se uváznutí pro SR a CR prostředky.
  8. Správa paměti, organizace paměti, stránkování, tabulka stránek a TLB.
  9. Virtuální paměť, stránkovací algoritmus, nahrazovací algoritmy pro pevný a proměnný počet rámců.
  10. Implementace virtuální paměti a problematika použití virtuální paměti - lokalita, zamykání stránek, sdílení stránek, dynamické knihovny, virtualizace souborů, paměťové nároky jádra.
  11. Vstup a výstup, ovladače, synchronní a asynchronní V/V, optimalizace diskových operací.
  12. Systémy souborů, organizace, přidělování diskového prostoru, ochrana, zotavení, systémy souborů Unix UFS, BSD FFS, Linux EXT, Solaris ZFS a žurnálové systémy souborů.
  13. Ochrana a bezpečnost, ochrana dat, bezpečnostní rizika.

Osnova ostatní - projekty, práce:
Dva projekty v rozsahu 13 hod. hodnocené 20 body na téma:
  • Spouštění vláken a synchronizace v Unixu.
  • Předávání zpráv mezi procesy v Unixu.
  • Zasílání signálů a obsluha signálů v Unixu.

Učební cíle

Seznámit s principy a mechanismy na nichž jsou založena jádra moderních operačních systémů.

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

Znalosti studentů jsou ověřovány vypracováním projektů a závěrečnou zkouškou.

Prerekvizity a korekvizity

Základní literatura

  • Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000, ISBN 0-201-35752-6
  • Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
  • Nutt, G.J.: Operating Systems: A Modern Perspective, Addison-Wesley, 2000, ISBN 0-201-61251-8
  • Vahalia, U.: Unix Internals: The New Frontiers, Prentice-Hall, 1996, ISBN 0-13-101908-2
  • Schimmel, K.: UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers, Addison-Wesley, 1994, ISBN 0-201-63338-8
  • McKusick, M.K., Neville-Neil, G.V.: The Design and Implementation of the FreeBSD Operating System, Addison-Wesley, 2004, ISBN 0-201-70245-2
  • Stevens, W.,R.: Advanced Programming in the UNIX Environment: Second Edition, Addison-Wesley Professional, 2005, 0-201-43307-9

Doporučená literatura

  • Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
  • Open Sources: Voices from the Open Source Revolution, O'Reilly, 1999, ISBN 1-56592-582-3
  • Love, R.: Linux Kernel Development, Second Edition, Pearson Education, 2005, ISBN 0-672-32720-1

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

  • Program IT-MGR-2 magisterský navazující

    obor MBS , libovolný ročník, letní semestr, povinně volitelný
    obor MBI , libovolný ročník, letní semestr, povinně volitelný
    obor MIN , libovolný ročník, letní semestr, volitelný
    obor MMI , libovolný ročník, letní semestr, povinně volitelný
    obor MMM , libovolný ročník, letní semestr, volitelný
    obor MPV , libovolný ročník, letní semestr, volitelný
    obor MIS , 1. ročník, letní semestr, povinný
    obor MSK , 1. ročník, letní semestr, povinně volitelný
    obor MGM , 2. ročník, letní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Struktura jádra, rozhraní jádra, volání jádra a přepínání kontextu. Rozhraní systémů Unix, postup standardizace a standardy XPG, POSIX a ISO.
  2. Procesy a vlákna dle standardu POSIX 1003.1, vytváření procesů a vláken, implementace vláken.
  3. Úvod do paralelního programování, synchronizace a prostředky synchronizace, paměťové modely. Implementace vzájemného vyloučení atomickými operacemi čtení a zápis.
  4. Metody synchronizace speciálními atomickými instrukcemi v jednoprocesorových a víceprocesorových systémech se sdílenou pamětí, inverze priority.
  5. Synchronizační nástroje a jazykové konstrukce, klasické synchronizační úlohy.
  6. Plánování procesoru, strategie a implementace, plánovací algoritmy pro jednoprocesorové a víceprocesorové systémy.
  7. Přidělování prostředků, uváznutí, detekce uváznutí a vyhnutí se uváznutí pro SR a CR prostředky.
  8. Správa paměti, organizace paměti, stránkování, tabulka stránek a TLB.
  9. Virtuální paměť, stránkovací algoritmus, nahrazovací algoritmy pro pevný a proměnný počet rámců.
  10. Implementace virtuální paměti a problematika použití virtuální paměti - lokalita, zamykání stránek, sdílení stránek, dynamické knihovny, virtualizace souborů, paměťové nároky jádra.
  11. Vstup a výstup, ovladače, synchronní a asynchronní V/V, optimalizace diskových operací.
  12. Systémy souborů, organizace, přidělování diskového prostoru, ochrana, zotavení, systémy souborů Unix UFS, BSD FFS, Linux EXT, Solaris ZFS a žurnálové systémy souborů.
  13. Ochrana a bezpečnost, ochrana dat, bezpečnostní rizika.

Projekt

13 hod., nepovinná

Vyučující / Lektor