Last update: doc. RNDr. Petr Hnětynka, Ph.D. (26.05.2022)
The course extends the topics of the NSWI004 Operating Systems course. It offers a more detailed look at the
advanced features and technical implementation of the existing operating systems, together with a broader look at
the architectural diversity and requirements imposed on operating systems in various contexts. The course can
include invited lectures of industrial experts.
Last update: 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.
Course completion requirements - Czech
Last update: 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.
Literature -
Last update: 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
[11] Tanenbaum A. S., Woodhull A.: Operating Systems Design and Implementation, Prentice Hall, 2006
Last update: 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
[11] Tanenbaum A. S., Woodhull A.: Operating Systems Design and Implementation, Prentice Hall, 2006
Syllabus -
Last update: prof. Ing. Petr Tůma, Dr. (26.05.2022)
A. Implementation view of operating systems
(1) Programming languages, runtimes and other implementation tools. The boot process and other features requiring non standard programming techniques.
(2) Interfacing and interacting with hardware, firmware and applications. Backwards compatibility. Portability. Representing and abstracting hardware.
(3) Debugging and performance tuning. Observability. Post mortem analysis.
(4) Interaction with the memory hierarchy, advanced memory management. Modern persistent stores. Supporting direct access to persistent memory devices.
(5) Implementation aspects of modern file systems. Storage management, redundancy, backup.
(6) Inter-process communication. Synchronous vs asynchronous. Network protocols and interfaces. Near data computing. Support for distributed computing.
(7) Advanced synchronization on shared data. Memory consistency models. Methods for effectively exploiting parallelism, highly parallel hardware.
(8) Security and reliability. Vulnerabilities in hardware and software. Methods and mechanisms for improving security and reliability. High availability. Certification and verification.
(9) Possible other topics: Virtualization, software virtual machines, resource management, service management, patching, real-time etc.
B. Architectural view of operating systems
(1) Motivation, criteria and requirements impacting system architecture. Build time and run time configuration.
(2) Design principles. Relationship between hardware and system structure. Capabilities. Software components.
(3) Architectural design patterns and typical representatives (monolithic kernel, microkernel, separation kernel, exokernel, unikernel, hypervisor, disaggregated kernel etc.). User space architecture.
The topics are not necessarily discussed in the order listed. Specific content can also change to reflect current trends or accommodate guest lecturers from the industry.
Last update: 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.