Detail předmětu

Operační systémy 2

OS2 Ak. rok 2005/2006 letní semestr 6 kreditů

Aktuální akademický rok

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.

Garant předmětu

Jazyk výuky

česky

Zakončení

zkouška

Rozsah

  • 39 hod. přednášky
  • 8 hod. pc laboratoře
  • 18 hod. projekty

Zajišťuje ústav

Získané dovednosti, znalosti a kompetence z předmětu

Návrh paralelních programů s vlákny POSIX 1003.1, znalost použití synchronizačních nástrojů, virtuální paměti a programové rozhraní systému souborů.

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

Cíle předmětu

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

Požadované prerekvizitní znalosti a dovednosti

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

Literatura studijní

Literatura referenční

Osnova přednášek

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

Osnova počítačových cvičení

  1. Programátorské prostředí Unix - gcc, ld, gdb, make.
  2. Verifikace paralelních programů - spin a PROMELA.
  3. Spouštení procesů, zjišťování stavu, řízení prací.
  4. Komunikace mezi procesy v Unixu - sdílená paměť, fronta zpráv, semafory.

Průběžná kontrola studia

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

Kontrolovaná výuka

V polovině semestru písemná půlsemestrální zkouška a 4 projekty. Půlsemestrální zkouška nemá náhradní termín. Za projekt lze získat body pouze při odevzdání do vyhlášeného termínu. Za pozdní odevzdání projektu je 0 bodů.

Nahoru