Název:

Operační systémy 2

Zkratka:OS2
Ak.rok:ukončen 2005/2006
Semestr:letní
Studijní plán:
ProgramOborRočníkPovinnost
EI-BC-3VTB2.st/2.rčvolitelný
EI-MGR-3VTN3.volitelný
EI-MGR-5VTI2.st/3.rčvolitelný
Vyučovací jazyk:čeština
Informace pro zapsané:http://www.fit.vutbr.cz/study/courses/OS2/private/
Kredity:6 kreditů
Ukončení:zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvičenílab. cvičenípoč. cvičeníjiná
Rozsah:3900818
 zkouškatestycvičenílaboratořeostatní
Body:57150028
Garant:Lampa Petr, Ing., CVT
Přednášející:Lampa Petr, Ing., CVT
Cvičící:Kašpárek Tomáš, Ing., CVT
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Centrum výpočetní techniky FIT VUT v Brně
Prerekvizity: 
Jazyky C a C++ (CPP), UITS
Operační systémy 1 (OS1), UITS
 
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ů.
Anotace:
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.
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ů.
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ů.
Dovednosti, znalosti a kompetence obecné:
Hlubší znalosti funkce výpočetních systémů a systémového programová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.
Osnova ostatní - projekty, práce:
  1. Verifikace paralelního algoritmu ve spinu.
  2. Spouštění procesů a synchronizace v Unixu.
  3. Předávání zpráv mezi procesy v Unixu.
  4. Zasílání signálů a obsluha signálů v Unixu.
Literatura referenční:
  1. Bic, L.: The Logical Design of Operating Systems, Prentice-Hall, 1988, ISBN 0-13-540139-9
  2. Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming, Addison-Wesley, 2000, ISBN 0-201-35752-6
  3. Nutt, G.J.: Operating Systems: A Modern Perspective, Addison-Wesley, 2000, ISBN 0-201-61251-8
  4. Stevens, R.,W.: Advanced Programming in The Unix Environment, Addison-Wesley, 1992, ISBN 0-201-56317-7
  5. Vahalia, U.: Unix Internals: The New Frontiers, Prentice-Hall, 1996, ISBN 0-13-101908-2
  6. McKusick, M.K., Bostic, K., Karels, M.,J., Quaterman, J.S.: The Design and Implementation of the 4.4BSD Operating System, Addison-Wesley, 1996, ISBN 0-201-54979-4
  7. Schimmel, K.: UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers, Addison-Wesley, 1994, ISBN 0-201-63338-8
  8. Butenhof, D.R.: Programming with POSIX Threads, Addison-Wesley, 1997, ISBN 0-201-63392-2
  9. Tannenbaum, A.S.: The Modern Operating Systems, Prentice-Hall, 2001, ISBN 0-13-031358-0
Literatura studijní:
  1. Bic, L., Shaw, A.C.: Operating Systems Principles, Prentice-Hall, 2003, ISBN 0-13-026611-6
  2. Raymond, E.S.: The Art of Unix Programming
  3. Open Sources: Voices from the Open Source Revolution
Průběžná kontrola studia:
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ů.