Skip to main content
Skip header

Operating Systems

Type of study Bachelor
Language of instruction Czech
Code 460-2016/05
Abbreviation OSY
Course title Operating Systems
Credits 5
Coordinating department Department of Computer Science
Course coordinator Ing. Petr Olivka, Ph.D.

Subject syllabus

1. History of Operating systems, their conception and structure.
2. Processes, threads, interprocess communication, race condition, critical section.
3. Interprocess communication, semaphores, monitors, messages, shared memory.
4. Process scheduling, Round-Robin, priority, multiple queues, RT scheduling.
5. OS memory management, virtual memory, paging, page replacement algorithms.
6. Input and output devices, interrupt handling, device drivers, buffers.
7. Deadlock, the occurrence of deadlock, deadlock prevention.
8. File systems - files, directories, implementation of file systems.
9. Security in OS, security of processes and files.
10. Selinux, conception, access control, rules, commands.
11. Virtualization, principles and virtualization levels, usage.
12. RT operating systems, FreeRTOS for embeded devices.
13. FreeRTOS, base programm conception, threads, synchronization.
14. ROS - Robotic OS, conception, nodes, services, topics, commands.

Labs:
1. Programming in OS Linux, Makefile, IDE.
2. Static and dynamic libraries. SSH as remote shell.
3. Processes, process creation, interprocess communication via pipes.
4. Processes, new program in process, redirection of standard input and output.
5. Sockets, socket server, socket client.
6. Threads usage in processes.
7. Usage of semaphores in interprocess communication.
8. Shared memory and message queue for interprocess communication.
9. Threads and their synchronization.
10. Virtualization, virtual computer, configuration, snapshots.
11. Selinux, base conception, control and settings.
12. FreeRTOS, tasks, device control via GPIO.
13. FreeRTOS, tasks synchroznization, communication with PC.
14. ROS, nodes, commands, new node programming.

Project:
Implementation of some well-known IPC problems with socket communication.

Literature

Tanenbaum, Andrew S.: Operating Systems: Design and Implemetation (Prentice-Hall, 1987)
Tanenbaum, Andrew S. Bos H.: Modern Operating Systems Prentice Hall Press, 2014
Cvičení:
Neil Matthew, Richard Stones: Linux - Beginning Linux Programming
A. D. Marshall, Programming in C - UNIX System Calls and Subroutines using C, http://www.cs.cf.ac.uk/Dave/C/

Advised literature

Daniel P. Bovet, Marco Cesani: Understanding the Linux Kernel (O'Reilly, 2003)

Stevens Richard W.: Advanced programming in the Unix Environment (Addison--Wesley, 1993)
Stevens Richard W.: UNIX Network Programming, Volume 1 (Prentice Hall PTR, 1998)
Stevens Richard W.: UNIX Network Programming, Volume 2 (Prentice Hall PTR, 1999)