Subject description - B4B35OSY

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
B4B35OSY Operating Systems
Roles:P Extent of teaching:2P+2C
Department:13135 Language of teaching:CS
Guarantors:Sojka M. Completion:Z,ZK
Lecturers:Sojka M., Štěpán P. Credits:4
Tutors:Chudoba J., Sojka M., Štěpán P., Vlasák J., Záhora J. Semester:Z

Anotation:

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.

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.

Exercises outline:

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.

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/

Requirements:

C programming computer architecture

Subject is included into these academic programs:

Program Branch Role Recommended semester
BPOI_BO_2018 Common courses P 3
BPOI4_2018 Computer Games and Graphics P 3
BPOI3_2018 Software P 3
BPOI2_2018 Internet things P 3
BPOI1_2018 Artificial Intelligence and Computer Science P 3
BPOI1_2016 Computer and Information Science P 3
BPOI_BO_2016 Common courses P 3
BPOI4_2016 Computer Games and Graphics P 3
BPOI3_2016 Software P 3
BPOI2_2016 Internet things P 3


Page updated 28.9.2020 17:51:53, semester: Z,L/2020-1, L/2019-20, Z/2021-2, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)