Přeskočit na hlavní obsah
Přeskočit hlavičku
Ukončeno v akademickém roce 2021/2022

Operační systémy

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

Osnova předmětu

1. Operační systém, historie, koncept (procesy, soubory, systémová volání, shell), struktura OS (monolitické, vrstvené, virtuální a client-server OS).
2. Procesy, meziprocesová komunikace, semafory, monitory, zprávy, čítače událostí.
3. Klasické IPC problémy, problém obědvajících filosofů, problém čtenářů a spisovatelů, problém spícího holiče.
4. Plánování procesů - Round-Robin, priority, vícenásobné fronty, první job dříve, dvojúrovňové plánování.
5. Řízení paměti, mono- a multi-programování, využití paměti, pevné oblasti, dynamické oblasti, bitmapy, spojované seznamy, alokace odkladného prostoru.
6. Virtuální paměť, stránkování, algoritmy výměny stránek.
7. Modelování algoritmů stránkování, tvorba stránkovacích systémů, segmentace.
8. Souborový systém - soubory, adresáře, implementace souborového systému.
9. Bezpečnost souborového systému, bezpečné prostředí, principy ochrany, uživatelská autentizace.
10. Ochranné mechanismy, chráněné domény, seznamy přístupu, ochranné modely.
11. Vstup/výstup, řadiče, DMA, principy I/O, obsluha přerušení, ovladače zařízení.
12. Zablokování, podmínky zablokování, modely, detekce zablokování a obnovení stavu.
13. Vznik zablokování, prevence zablokování, dvoufázové uzamčení, zdánlivé zablokování.
14. Nové trendy v OS, RT systémy, OS pro embeded zařízení.

Cvičení:
1. Úvodní seznámení s programováním v Unixu.
2. Využití přesměrování pro programování vlastních aplikací. SSH, remote shell.
3. Používání Makefile, statické a dynamické knihovny.
4. Procesy, základní meziprocesní komunikace pomocí rour.
5. Příkaz exec, přesměrování stdin a stdout.
6. Sokety, soketový server, soketový klient
7. Využívání vláken v procesech.
8. Semafory v meziprocesní komunikaci.
9. Fronta zpráv, sdílená mapěť.
10. Zamykání souborů.
11. Práce na projektu, konzultace.
12. Prezentace a odevzdání projektu.

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

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)