Pokročilé operační systémy - NSWI161
Anglický název: Advanced Operating Systems
Zajišťuje: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2018
Semestr: letní
E-Kredity: 3
Rozsah, examinace: letní s.:2/0, Zk [HT]
Počet míst: neomezen
Minimální obsazenost: 5
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: http://d3s.mff.cuni.cz/teaching/nswi161
Garant: prof. Ing. Petr Tůma, Dr.
Třída: Informatika Mgr. - Softwarové systémy
Kategorizace předmětu: Informatika > Softwarové inženýrství
Prerekvizity : NSWI004
Výsledky anket   Termíny zkoušek   Rozvrh LS   Nástěnka   
Anotace -
Poslední úprava: doc. RNDr. Petr Hnětynka, Ph.D. (26.05.2022)
Předmět tematicky navazuje na základní kurz NSWI004 Operační systémy. Jeho obsahem je podrobnější pohled na pokročilé funkce reálných operačních systémů a technické přiblížení jejich implementace, spolu s širším pohledem na diverzitu architektur operačních systémů a požadavků, které jsou na ně v různých kontextech kladeny. Předmět může být doplněn také zvanými příspěvky odborníků z praxe.
Podmínky zakončení předmětu
Poslední úprava: prof. Ing. Petr Tůma, Dr. (26.05.2022)

Předmět je zakončen písemnou zkouškou z probíraných témat.

Konkrétní požadavky ke zkoušce jsou poskytnuty během výuky.

Je možné alternativní zakončení formou individuálního projektu.

Literatura -
Poslední úprava: Tajemník Katedry (20.04.2016)

[1] Baumann A., Barham P., Dagand P.-E., Harris T., Isaacs R., Peter S., Roscoe T., Schüpbach A., Singhania A.: The Multikernel: A New OS Architecture for Scalable Multicore Systems, Proceedings of the 22nd Symposium on Operating Systems Principles, ACM, 2009

[2] Bonwick J.: The Slab Allocator: An Object-Caching Kernel Memory Allocator, Proceedings of USENIX Summer 1994 Technical Conference, USENIX Association, 1994

[3] Bonwick J., Adams J.: Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources, Proceedings of the GeneralTrack, USENIX Annual Technical Conference, USENIX Association, 2001

[4] Härtig H., Hohmuth M., Liedtke J., Schönberg S., Wolter J.: The Performance of μ-Kernel-Based Systems, Proceedings of 16th ACM Symposium on Operating Systems Principles (SOSP), ACM, 1997

[5] Heiser G., Elphinstone K.: L4 Microkernels: The Lessons from 20 Years of Research and Deployment, ACM Transactions on Computer Systems (TOCS), Volume 34, Issue 1, 2016

[6] Herder J., Gras B., Homburg P., Tanenbaum A. S.: Fault Isolation for Device Drivers, Proceedings of the International Conference on Dependable Systems & Networks, IEEE, 2009

[7] Hunt G., Larus J.: Singularity: Rethinking the Software Stack, ACM SIGOPS Operating Systems Review, Volume 41, Issue 2, ACM, 2007

[8] Levy H.: Capability-Based Computer Systems, Butterworth-Heinemann Newton, 1984

[9] Nutt G. J.: Operating Systems: A Modern Perspective, Addison Wesley, 2002

[10] Stallings W.: Operating Systems: Internals and Design Principles, Prentice Hall, 2012

[11] Tanenbaum A. S., Woodhull A.: Operating Systems Design and Implementation, Prentice Hall, 2006

Sylabus -
Poslední úprava: prof. Ing. Petr Tůma, Dr. (26.05.2022)

A. Pohled na implementace operačních systémů

(1) Programovací jazyky, běhová prostředí a další prostředky pro implementaci operačních systémů. Proces bootování a další aspekty vyžadující méně obvyklé programátorské postupy.

(2) Rozhraní a interakce operačních systémů s hardware, firmware a aplikačními programy. Problematika zpětné kompatibility. Přenositelnost. Reprezentace hardwarových prostředků a abstrakce.

(3) Funkční a výkonnostní ladění operačních systémů. Observabilita. Post mortem analýza.

(4) Interakce s paměťovou hierarchií a pokročilá správa paměti. Moderní prostředky pro permanentní ukládání dat. Podpora permanentní paměti s přímým přístupem.

(5) Aspekty implementace moderních souborových systémů. Správa datových úložišť, redundance a zálohování.

(6) Implementace meziprocesové komunikace. Synchronicita a asynchronicita. Implementace síťových protokolů a síťových rozhraní. Počítání v blízkosti dat. Podpora operačních systémů pro distribuované počítání.

(7) Pokročilé metody synchronizace přístupu ke sdíleným datům. Paměťově-konzistenční modely. Mechanismy pro efektivní využití paralelismů, vysoce paralelní hardware.

(8) Bezpečnost a spolehlivost. Zranitelnosti v hardwaru a v softwaru. Implementace metod a mechanismů pro zvýšení bezpečnosti a spolehlivosti běhu operačních systémů. Vysoká dostupnost. Certifikace a verifikace.

(9) Případná další témata: Virtualizace, softwarové virtuální stroje, správa prostředků, správa služeb, sebemodifikace operačních systémů, real-time atd.

B. Pohled na architektury operačních systémů

(1) Motivace, kritéria a požadavky ovlivňující architekturu operačních systémů. Konfigurace operačních systémů při překladu a při běhu.

(2) Principy návrhu operačních systémů. Vlivy architektury hardwaru na architekturu operačních systémů a opačně. Capabilities. Softwarové komponenty.

(3) Návrhové vzory architektur operačních systémů a jejich reprezentanti (monolithic kernel, microkernel, separation kernel, exokernel, unikernel, hypervisor, disaggregated kernel atd.). Architektura uživatelského prostoru.

Témata nejsou nutně probírána v uvedeném pořadí. Konkrétní náplň semestru může být ovlivněna také aktuálními trendy a případně výběrem hostů z praxe.