CTU FEE Moodle
Operating Systems
B232 - Summer 23/24
This course is not present in Moodle. You can visit its homepage by clicking the "Course page (outside Moodle)" button on the right (if available).
Operating Systems - B4B35OSY
Credits | 4 |
Semesters | Winter |
Completion | Assessment + Examination |
Language of teaching | Czech |
Extent of teaching | 2P+2C |
Annotation
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.
Study targets
No data.
Course outlines
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.
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.
Exercises outlines
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.
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.
Literature
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.
2. http://wiki.osdev.org/
3. http://hypervisor.org/
2. http://wiki.osdev.org/
3. http://hypervisor.org/
Requirements
C programming
computer architecture
computer architecture