460-2016/02 – Operační systémy (OSY)
Garantující katedra | Katedra informatiky | Kredity | 6 |
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 | angličtina |
Rok zavedení | 2015/2016 | Rok zrušení | 2021/2022 |
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)
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Bodovaně hodnocené úkoly ve cvičení.
Projekt - implementace IPC problému s použitím procesů a vláken.
E-learning
Další požadavky na studenta
Znalosti a praktické zkušenosti programování v jazyce C/C++.
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 (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ů.
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
Předmět neobsahuje žádné hodnocení.