Operating Systems
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
B4B35OSY | Z,ZK | 4 | 2P+2C | Czech |
- Course guarantor:
- Michal Sojka
- Lecturer:
- Michal Sojka, Petr Štěpán
- Tutor:
- Jan Chudoba, Matěj Kafka, Lukáš Maruniak, Michal Sojka, Petr Štěpán, Jiří Vlasák, Jiří Záhora
- Supervisor:
- Department of Control Engineering
- Synopsis:
-
Lecture introduces operation system's basic concepts and principles as processes, threads, communication and synchronization, virtual memory, drivers, file systems, basic security aspects. These topics are theoretically described and demonstrated on Linux and Windows OS with multi-core systems. Practical exercises from OS in C programming language will be solved on labs. Students will work with Linux OS and micro-kernel NOVA.
- Requirements:
-
C programming
computer architecture
- Syllabus of lectures:
-
1. Computer architecture, OS history and types, OS components.
2. Interrupt and exception handling. System calls.
3. Processes, threads, context switch, scheduling, local vs. global scheduling, processor affinity.
4. Process synchronization, synchronization errors, shared resources (non-preemptive sections, semaphore, mutex, spin-lock, Java synchronize), deadlock.
5. Interprocess synchronization (signal, pipe, message passing)
6. Virtual memory, page fault, swapping, copy-on-write, process start, relocation, dynamic libraries.
7. Memory management, memory allocation (in OS kernel, in user space, heap).
8. Security, trusted computing base, buffer overflow, ASLR, antiviry, encryption.
9. Input/output, data storage, network interfaces, USB, HID, drivers (Linux, Win).
10. File systems, journalling, data integrity, disc cache.
11. Graphic subsystem, frame buffer, HW acceleration, parallel computationy.
12.Virtualization.
13. OS trends, mobile OS (Android)
14.
- Syllabus of tutorials:
-
1. Introduction, shell, programming in C, makefile - programming test
2. shell, scripts.
3. System calls, Linux (assembler, C)
4. System calls, micro-kernel NOVA
5. Synchronization in C - exercise threads synchronization (Linux)
6. IPC exercise (pipe synchronization, signal handling, Linux)
7. ELF loading and starting (NOVA)
8. Thread switch (NOVA)
9. Semaphore, pre-emptive multitasking (NOVA)
10. Security, buffer overflow exploit (Linux)
11. Memory allocation (heap, Linux)
12. File system implementation (NOVA)
13. File system submission.
- Study Objective:
- Study materials:
-
1. TANENBAUM, Andrew S a Albert S WOODHULL. Operating systems design and implementation. 3rd ed. Upper Saddle River: Prentice-Hall, c2006, xvii, 1054 s. ISBN 0131429388.
- Note:
- Further information:
- https://osy.pages.fel.cvut.cz/
- Time-table for winter semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Open Informatics - Computer Science 2016 (compulsory course in the program)
- Open Informatics - Internet of Things 2016 (compulsory course in the program)
- Open Informatics - Software 2016 (compulsory course in the program)
- Open Informatics - Computer Games and Graphics 2016 (compulsory course in the program)
- Open Informatics (compulsory course in the program)
- Open Informatics (compulsory course in the program)
- Open Informatics - Artificial Intelligence and Computer Science 2018 (compulsory course in the program)
- Open Informatics - Internet of Things 2018 (compulsory course in the program)
- Open Informatics - Software 2018 (compulsory course in the program)
- Open Informatics - Computer Games and Graphics 2018 (compulsory course in the program)