460-4158/01 – Implementation in Operating Systems (IvOS)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Mgr. Ing. Michal Krumnikl, Ph.D. | Subject version guarantor | Mgr. Ing. Michal Krumnikl, Ph.D. |
Study level | undergraduate or graduate | Requirement | Choice-compulsory type A |
Year | 1 | Semester | summer |
| | Study language | Czech |
Year of introduction | 2024/2025 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
The aim of the course is to introduce students to advanced programming techniques in operating systems. In the course, students will get a practical introduction to the implementation of the basic elements of operating systems and file system mechanisms. Upon completion of the course, they will be able to design their programs efficiently to maximize the use of available operating system resources.
Upon completion of the course, students will be able to:
- Identify the different layers of an operating system and describe the main functions.
- Describe the internal processes of an OS with respect to the process life cycle.
- Create applications running directly on a specific system without the support of extension runtime libraries.
- Modify software development practices to enable better use of system resources.
Teaching methods
Lectures
Tutorials
Summary
The course will discuss advanced programming methods in operating systems. Students will learn the details of the internal structure and implementation of operating systems, process scheduling techniques, and the organization of file system data and metadata.
Compulsory literature:
Recommended literature:
Way of continuous check of knowledge in the course of semester
Ongoing analysis of the topics discussed and their practical implementation. Evaluation of independently solved tasks.
Requirements for credit: successful completion of independent assignments during the semester.
Final verification of learning outcomes:
full-time and combined form of study - written examination.
E-learning
Other requirements
Knowledge of a higher programming language (C#, Java, C++, etc.)
Basics of mobile application development and familiarity with at least one mobile platform.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
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.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.