460-2016/03 – Operační systémy (OSY)

Garantující katedraKatedra informatikyKredity5
Garant předmětuIng. Petr Olivka, Ph.D.Garant verze předmětuIng. Petr Olivka, Ph.D.
Úroveň studiapregraduální nebo graduální
Jazyk výukyčeština
Rok zavedení2016/2017Rok zrušení2021/2022
Určeno pro fakultyFEIUrčeno pro typy studiabakalářské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
OLI10 Ing. Petr Olivka, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Zápočet a zkouška 2+2
kombinovaná Zápočet a zkouška 7+14

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í.

E-learning

Další požadavky na studenta

Znalosti a zkušenosti s programováním v jazyce C/C++.

Prerekvizity

Kód předmětuZkratkaNázevPovinnost
460-2052 UPR Úvod do programování Doporučená

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

Podmínky absolvování jsou definovány pouze pro konkrétní verzi předmětu a formu studia

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2021/2022 (B3973) Automobilové elektronické systémy P čeština Ostrava 2 volitelný odborný stu. plán
2020/2021 (B3973) Automobilové elektronické systémy P čeština Ostrava 2 volitelný odborný stu. plán
2019/2020 (B3973) Automobilové elektronické systémy P čeština Ostrava 2 volitelný odborný stu. plán
2018/2019 (B3973) Automobilové elektronické systémy P čeština Ostrava 2 volitelný odborný stu. plán
2017/2018 (B3973) Automobilové elektronické systémy P čeština Ostrava 2 volitelný odborný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku

Hodnocení Výuky

Předmět neobsahuje žádné hodnocení.