Přeskočit na hlavní obsah
Přeskočit hlavičku

Operační systémy

Typ studia bakalářské
Jazyk výuky angličtina
Kód 460-2016/06
Zkratka OSY
Název předmětu česky Operační systémy
Název předmětu anglicky Operating Systems
Kreditů 5
Garantující katedra Katedra informatiky
Garant předmětu Ing. Petr Olivka, Ph.D.

Subject syllabus

1. Operační systém, historie, koncept (procesy, soubory, systémová volání, shell), struktura OS.
2. Procesy, vlákna, meziprocesová komunikace, souběh, kritická sekce.
3. Meziprocesní komunikace, semafory, monitory, zprávy, sdílená paměť.
4. Plánování procesů - Round-Robin, priority, vícenásobné fronty, RT plánování.
5. Správa paměti OS, využití paměti, virtuální paměť, stránkování, algoritmy výměny stránek.
6. Vstupně výstupní zařízení, obsluha přerušení, ovladače zařízení, vyrovnávací paměti.
7. Zablokování, vznik zablokování, možnosti předcházení zablokování.
8. Souborové systémy - soubory, adresáře, implementace souborového systému.
9. Bezpečnost v operačním systému, bezpečnost procesů, zabezpečení souborů.
10. Selinux: koncepce, řízení přístupu, pravidla, základní příkazy.
11. Virtualizace, principy a úrovně virtualizace, vhodnost použití.
12. RT operační systémy, FreeRTOS pro embeded zařízení.
13. FreeRTOS, základní koncepce programu, vlákna, synchronizace.
14. ROS - Robotický OS, koncepce, uzly, zprávy, témata, příkazy.

Cvičení:
1. Programování v OS Linux, Makefile, IDE,
2. Statické a dynamické knihovny. Využití SSH jako remote shell.
3. Procesy, vytváření procesů, meziprocesní komunikace pomocí rour.
4. Procesy, výměna programu v procesu, přesměrování standardního vstupu a výstupu.
5. Sokety, soketový server, soketový klient.
6. Využívání vláken v procesech.
7. Využití semaforů v meziprocesní komunikaci.
8. Využití sdílené paměti a fronty zpráv v meziprocesní komunikaci.
9. Využívání vláken v procesu a jejich synchronizace.
10. Virtualizace, virtuální počítač, konfigurace, snapshots.
11. Selinux, základní ovládání a nastavení.
12. FreeRTOS, vytváření úloh, ovládání periférií přes GPIO.
13. FreeRTOS, synchroznizace úloh, komunikace s PC.
14. ROS, uzly, příkazy, vytvoření vlastního uzlu.

Projekt:
Implementace vybraného známého IPC problému. Komunikace mezi klienty a serverem bude pomocí soketů.

Literature

Tanenbaum, Andrew S.: Operating Systems: Design and Implemetation Prentice Hall, 1987, český překlad knihy.
Tanenbaum, Andrew S. Bos H.: Modern Operating Systems (4th Edition), Prenitice Hall Press, 2014
Cvičení:
Neil Matthew, Richard Stones: Linux - Začínáme programovat (Computer Press, 2000)
A. D. Marshall, Programming in C - UNIX System Calls and Subroutines using C, http://www.cs.cf.ac.uk/Dave/C/

Advised literature

Maurice J. Bach: Principy operačního systému UNIX (Softwarové Aplikace a Systémy, 1993)
Daniel P. Bovet, Marco Cesani: Understanding the Linux Kernel (O'Reilly, 2003)
Cvičení

Stevens Richard W.: Advanced programming in the Unix Environment (Addison--Wesley, 1993)
Stevens Richard W.: UNIX Network Programming, Volume 1 (Prentice Hall PTR, 1998)
Stevens Richard W.: UNIX Network Programming, Volume 2 (Prentice Hall PTR, 1999)