Skip to main content
Skip header

Operating Systems

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2016/05
Number of ECTS Credits Allocated5 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *Third Year
Semester when the Course Unit is deliveredWinter Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites
PrerequisitiesCourse Unit CodeCourse Unit Title
460-2052Introduction to Programming
Name of Lecturer(s)Personal IDName
OLI10Ing. Petr Olivka, Ph.D.
Summary
The subject represents basic priciples and implementation methods of operating systems. Principles of modern operating systems, their functions and used methods.
Even there are lectured universal methods, this subject is focused to Unix family. After this study, students will bi able write program with processes and threads and some base types of interprocess comunication.
Learning Outcomes of the Course Unit
Course goal is to introduce functionality of operating system, describe its parts, explain their usage and show practical implementation.
Course Contents
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.
Recommended or Required Reading
Required Reading:
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/
Tanenbaum, Andrew S.: Operating Systems: Design and Implemetation Prentice Hall, 1987, český překlad knihy.
Tanenbaum, Andrew S. Bos H.: Modern Operating Systems (4th Edition), Prenitice Hall Press, 2014
Cvičení:
Neil Matthew, Richard Stones: Linux - Začínáme programovat (Computer Press, 2000)
A. D. Marshall, Programming in C - UNIX System Calls and Subroutines using C, http://www.cs.cf.ac.uk/Dave/C/
Recommended Reading:
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)
Maurice J. Bach: Principy operačního systému UNIX (Softwarové Aplikace a Systémy, 1993)
Daniel P. Bovet, Marco Cesani: Understanding the Linux Kernel (O'Reilly, 2003)
Cvičení

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)

Planned learning activities and teaching methods
Lectures, Tutorials, Project work
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Credit and ExaminationCredit and Examination100 (100)51
        CreditCredit45 (45)23
                Soubory, roury, procesyOther task type15 8
                Meziprocesní komunikaceOther task type20 10
                FreeRTOSOther task type10 5
        ExaminationExamination55 (55)28
                Programování, praktická částWritten examination25 13
                Teoretická částOral examination30 15