|
Vyučující
|
-
Brandejský Tomáš, doc. Ing. Dr.
-
Neradová Soňa, Ing. Ph.D.
-
Hudec Tomáš, Mgr.
|
|
Obsah předmětu
|
1. Koncepce OS, architektura jádra, HW předpoklady. 2. Implementace procesů, posixových signálů, systémová volání. 3. Implementace vláken, problematika globálních proměnných a reentrantnosti funkcí, posixová volání. 4. Plánovací algoritmy, plánování v Linuxu: plánovací třídy a priority -- deadline, real-time (FIFO, RR, statická priorita) a normal (dynamická priorita). 5. Problémy souběhu, víceprocesorové systémy (SMP), kritická sekce, SW a HW řešení. 6. Řešení kritické sekce pomocí nástrojů OS, implementace semaforu a mutexu, systémová volání. 7. Synchronizace pomocí bariéry, podmínkové proměnné a jejich implementace, semaforu, systémová volání. 8. Systémová volání pro komunikaci procesů: roury, sokety, fronty zpráv a jejich využití pro řešení synchronizace a kritické sekce. 9. Řešení synchronizace a kritické sekce pomocí nástrojů programovacích jazyků: koncept monitoru (Java, C#). 10. Deadlock, livelock a vyhladovění. Prevence a řešení. 11. Virtuální paměť: stránkování a související algoritmy (zavádění, výměna a odkládání stránek), víceúrovňové stránkové tabulky, segmentace. Architektura IA-32, PAE, IA-32e (x86_64). 12. Virtualizace: nativní, paravirtualizace, kontejnerová. 13. Principy vývoje OS, bezpečnost (konzistence dat, oprávnění uživatelů, procesů, šifrování, firewall), typy útoků. <span id="aktivity"></span>
|
|
Studijní aktivity a metody výuky
|
Přednášení
- Kontaktní výuka
- 65 hodin za semestr
- Příprava na zápočet
- 6 hodin za semestr
- Semestrální práce
- 39 hodin za semestr
- Příprava na zkoušku
- 30 hodin za semestr
- Sběr materiálu
- 13 hodin za semestr
- Domácí příprava na výuku
- 26 hodin za semestr
|
|
Výstupy z učení
|
Cílem předmětu je rozšířit znalosti obecné teorie operačních systémů (pokročilé koncepty správy paměti, řešení problémů souběhu aj.) a praktickým použitím teorie v posixových operačních systémech se zaměřením na IPC v Linuxu (Inter-Process Communication: systémová volání pro řešení souběhu, komunikace a synchronizace, implementace semaforů, front zpráv, plánovací třídy apod.).
Absolvováním předmětu záskají studenti pokročilý vhled do fungování operačních systémů, zejména správy paměti, procesů a vláken, řešení meziprocesové komunikace a problémů souběhu.
|
|
Předpoklady
|
Uživatelská znalost libovolného unixového (posixového) OS, znalost programovacího jazyka C, základní znalost správy OS.
|
|
Hodnoticí metody a kritéria
|
Ústní zkouška, Písemná zkouška, Posouzení zadané práce
Zápočet: V rámci praktické práce student řeší úlohy typicky zadané jako zdrojový kód s problémem, do kterého je potřeba dopsat řešení. Jejich úspěšné vyřešení je podmínkou získání zápočtu. Získané body se počítají do hodnocení zkoušky.
|
|
Doporučená literatura
|
-
Intel 64 and IA-32 Architectures: Software Developer's Manual: Volume 3A: System Programming Guide, Part 1. [online]. Intel: 2016-09 [cit. 2021-04-27].
-
Standard for Information Technology---Portable Operating System Interface (POSIX): Base Specifications, Issue 7. [online]. New York: IEEE Computer Society and The Open Group, 2016-09-30 [cit. 2021-04-27]. ISBN 978-1-5044-2337-3.
-
BOVET, Daniel Pierre – CESATI, Marco. Understanding the Linux Kernel. 2. vydání. USA: O'Reilly, 2005. ISBN 978-0596005658.
-
BRANDEJS, Michal. UNIX: Materiály k výuce. [online]. Brno: FI MU, 2008 [cit. 2021-04-27].
-
HUDEC, Tomáš. SSH -- Postup pro vzdálené přihlášení pomocí klíče. [online]. Pardubice: Univerzita Pardubice, FEI, 2021-03-02 [cit. 2021-04-27].
-
LOVE, Robert. Linux kernel development. 3. vydání. Upper Saddle River: Addison-Wesley, 2010. ISBN 978-0-672-32946-3.
-
MAUERER, Wolfgang. Professional Linux Kernel Architecture. Wrox, 2008. ISBN 978-0470343432.
-
STALLINGS, William. Operating Systems: Internals and Design Principles. 9. vydání. Pearson, 2018. ISBN 978-0-13-467095-9.
-
STONES, Richard – MATTHEW, Neil. Linux: Začínáme programovat. 4. vydání. Brno: Computer Press, 2008. ISBN 978-80-251-1933-4.
-
TANENBAUM, Andrew Stuart. Modern Operating Systems. 4. vydání. Pearson, 2014. ISBN 978-0133591620.
-
TANENBAUM, Andrew Stuart – AUSTIN, Todd. Structured Computer Organization. 6. vydání. Pearson, 2012. ISBN 978-0132916523.
-
TANENBAUM, Andrew Stuart – WOODHULL, Albert. Operating Systems Design and Implementation. 3. vydání. USA: Prentice Hall, 2006. ISBN 978-0-13-142938-3.
|