Předmět: Operační systémy 1

» Seznam fakult » FEI » KIT
Název předmětu Operační systémy 1
Kód předmětu KIT/NNOS1
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 6
Vyučovací jazyk Čeština
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Brandejský Tomáš, doc. Ing. Dr.
  • Neradová Soňa, Ing. Ph.D.
  • Hudec Tomáš, Mgr.
Obsah předmětu
  1. Koncepce OS, architektura jádra, HW předpoklady.   2. Implementace procesů, posixových signálů, systémová volání.   3. Implementace vláken, problematika globálních proměnných a reentrantnosti funkcí, posixová volání.   4. Plánovací algoritmy, plánování v Linuxu: plánovací třídy a priority -- deadline, real-time (FIFO, RR, statická priorita) a normal (dynamická priorita).   5. Problémy souběhu, víceprocesorové systémy (SMP), kritická sekce, SW a HW řešení.   6. Řešení kritické sekce pomocí nástrojů OS, implementace semaforu a mutexu, systémová volání.   7. Synchronizace pomocí bariéry, podmínkové proměnné a jejich implementace, semaforu, systémová volání.   8. Systémová volání pro komunikaci procesů: roury, sokety, fronty zpráv a jejich využití pro řešení synchronizace a kritické sekce.   9. Řešení synchronizace a kritické sekce pomocí nástrojů programovacích jazyků: koncept monitoru (Java, C#). 10. Deadlock, livelock a vyhladovění. Prevence a řešení. 11. Virtuální paměť: stránkování a související algoritmy (zavádění, výměna a odkládání stránek), víceúrovňové stránkové tabulky, segmentace. Architektura IA-32, PAE, IA-32e (x86_64). 12. Virtualizace: nativní, paravirtualizace, kontejnerová. 13. Principy vývoje OS, bezpečnost (konzistence dat, oprávnění uživatelů, procesů, šifrování, firewall), typy útoků. <span id="aktivity"></span>

Studijní aktivity a metody výuky
Přednášení
  • Kontaktní výuka - 65 hodin za semestr
  • Příprava na zápočet - 6 hodin za semestr
  • Semestrální práce - 39 hodin za semestr
  • Příprava na zkoušku - 30 hodin za semestr
  • Sběr materiálu - 13 hodin za semestr
  • Domácí příprava na výuku - 26 hodin za semestr
Výstupy z učení
Cílem předmětu je rozšířit znalosti obecné teorie operačních systémů (pokročilé koncepty správy paměti, řešení problémů souběhu aj.) a praktickým použitím teorie v posixových operačních systémech se zaměřením na IPC v Linuxu (Inter-Process Communication: systémová volání pro řešení souběhu, komunikace a synchronizace, implementace semaforů, front zpráv, plánovací třídy apod.).
Absolvováním předmětu záskají studenti pokročilý vhled do fungování operačních systémů, zejména správy paměti, procesů a vláken, řešení meziprocesové komunikace a problémů souběhu.
Předpoklady
Uživatelská znalost libovolného unixového (posixového) OS, znalost programovacího jazyka C, základní znalost správy OS.

Hodnoticí metody a kritéria
Ústní zkouška, Písemná zkouška, Posouzení zadané práce

Zápočet: V rámci praktické práce student řeší úlohy typicky zadané jako zdrojový kód s problémem, do kterého je potřeba dopsat řešení. Jejich úspěšné vyřešení je podmínkou získání zápočtu. Získané body se počítají do hodnocení zkoušky.
Doporučená literatura
  • Intel 64 and IA-32 Architectures: Software Developer's Manual: Volume 3A: System Programming Guide, Part 1. [online]. Intel: 2016-09 [cit.&nbsp;2021-04-27].
  • Standard for Information Technology---Portable Operating System Interface (POSIX): Base Specifications, Issue 7. [online]. New York: IEEE Computer Society and The Open Group, 2016-09-30 [cit. 2021-04-27]. ISBN 978-1-5044-2337-3.
  • BOVET, Daniel Pierre &ndash; CESATI, Marco. Understanding the Linux Kernel. 2. vydání. USA: O'Reilly, 2005. ISBN 978-0596005658.
  • BRANDEJS, Michal. UNIX: Materiály k výuce. [online]. Brno: FI MU, 2008 [cit. 2021-04-27].
  • HUDEC, Tomáš. SSH -- Postup pro vzdálené přihlášení pomocí klíče. [online]. Pardubice: Univerzita Pardubice, FEI, 2021-03-02 [cit.&nbsp;2021-04-27].
  • LOVE, Robert. Linux kernel development. 3. vydání. Upper Saddle River: Addison-Wesley, 2010. ISBN 978-0-672-32946-3.
  • MAUERER, Wolfgang. Professional Linux Kernel Architecture. Wrox, 2008. ISBN 978-0470343432.
  • STALLINGS, William. Operating Systems: Internals and Design Principles. 9. vydání. Pearson, 2018. ISBN 978-0-13-467095-9.
  • STONES, Richard &ndash; MATTHEW, Neil. Linux: Začínáme programovat. 4. vydání. Brno: Computer Press, 2008. ISBN 978-80-251-1933-4.
  • TANENBAUM, Andrew Stuart. Modern Operating Systems. 4. vydání. Pearson, 2014. ISBN 978-0133591620.
  • TANENBAUM, Andrew Stuart &ndash; AUSTIN, Todd. Structured Computer Organization. 6. vydání. Pearson, 2012. ISBN 978-0132916523.
  • TANENBAUM, Andrew Stuart &ndash; WOODHULL, Albert. Operating Systems Design and Implementation. 3. vydání. USA: Prentice Hall, 2006. ISBN 978-0-13-142938-3.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr