Skip to main content
Skip header

Implementation in Operating Systems

Type of study Follow-up Master
Language of instruction English
Code 460-4158/02
Abbreviation IvOS
Course title Implementation in Operating Systems
Credits 4
Coordinating department Department of Computer Science
Course coordinator Mgr. Ing. Michal Krumnikl, Ph.D.

Subject syllabus

Lectures
- Operating system architecture, characteristics of mobile and embedded systems.
- Internal structure of operating systems, implementation of system calls and modules.
- Implementation of process management, concurrent processing. Signal handling and processing.
- Features of process schedulers, their setup, real-time (RT) processes.
- Power management, power saving and power planning techniques.
- Implementation of device drivers, communication with peripherals.
- Working with files and I/O devices. Memory mapped files.
- I/O operations synchronous and asynchronous; blocking vs. non-blocking mode.
- File systems. Basic features; journaling file systems and flash memory systems.
- Implementation of user file systems and their embedding in user-space.

Exercise (on PC classroom)
- Select and poll functions, blocking and non-blocking I/O communications.
- Sockets, ways of setting their behaviour and properties.
- Implementation of a simple HTTP server.
- Multi-threaded server with interprocess/inter-thread synchronization.
- Implementation of a custom process scheduler with priorities and prevention of process starvation.
- Runtime monitoring of Round-robin (RR) and Lottery Scheduling (LS) schedulers, their comparison.
- Processes, signals and their capture and masking.
- Implementation of a simple file system (FS) in read-only mode.
- Extending the FS implementation to include writing, formatting and possible consistency checking.
- Monitoring of I/O device data flows and network interfaces.

Literature

[1] TANENBAUM, Andrew S. a BOS, Herbert. Modern operating systems. 4th ed., Global. Boston: Pearson, [2014]. ISBN 978-1-292-06142-9 .
[2] STEVENS, W. Richard a RAGO, Stephen A. Advanced programming in the UNIX environment. 3rd ed., Upper Saddle River: Addison-Wesley, [2013]. ISBN 978-0-321-63773-4 .
[3] LOVE, Robert, Linux System Programming: Talking Directly to the Kernel and C Library. 2nd ed., O'Reilly Media, [2013]. ISBN 978-1-449-33953-1 

Advised literature

[1] TANENBAUM, Andrew S. a WOODHULL, Albert S. Operating systems: design and implementation. 3rd ed., The Minix book. Upper Saddle River, N.J.: Pearson Prentice Hall, [2009]. ISBN 978-0-13-505376-8 .
[2] FOX, Richard. Linux with operating system concepts. Second edition. Boca Raton: CRC Press, Taylor & Francis Group, 2022. ISBN 978-1-032-06345-4 .