SubjectsSubjects(version: 902)
Course, academic year 2022/2023
   Login via CAS
Advanced Operating Systems - NSWI161
Title: Pokročilé operační systémy
Guaranteed by: Department of Distributed and Dependable Systems (32-KDSS)
Faculty: Faculty of Mathematics and Physics
Actual: from 2018
Semester: summer
E-Credits: 3
Hours per week, examination: summer s.:2/0 [hours/week]
Capacity: unlimited
Min. number of students: 5
Virtual mobility / capacity: no
State of the course: taught
Language: Czech, English
Teaching methods: full-time
Additional information:
Guarantor: prof. Ing. Petr Tůma, Dr.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Software Engineering
Pre-requisite : NSWI004
Annotation -
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.
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

[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

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.

Charles University | Information system of Charles University |