460-2016/05 – Operační systémy (OSY)
Garantující katedra | Katedra informatiky | Kredity | 5 |
Garant předmětu | Ing. Petr Olivka, Ph.D. | Garant verze předmětu | Ing. Petr Olivka, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | 2 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2019/2020 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem předmětu je vysvětlit funkci operačního systému, popsat jeho jednotlivé části, objasnit jejich funkci a demonstrovat praktickou implementaci.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Projekt
Anotace
V předmětu jsou probrány základní principy a způsoby implementace operačních systémů. Studenti získají přehled o principech moderních operačních systémů,
jejich funkcích a použitých metodách.
I když jsou přednášeny obecné metody, je předmět zaměřen na rodinu operačních systémů Unix. Po ukončení předmětu budou studenti schopni aplikovat své znalosti při tvorbě programů využívajících procesy i vlákna a několik typů meziprocesní komunikace.
Povinná literatura:
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/
Doporučená literatura:
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)
Další studijní materiály
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Praktické znalosti jsou ověřovány v každém cvičení na zadaných a bodovaných příkladech.
Teoretické znalosti jsou ověřeny zkouškou.
E-learning
Další požadavky na studenta
Dobrá znalost programování v jazyce C/C++.
Základní znalost práce v OS Linux.
Prerekvizity
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
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ů.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky