460-2016/05 – Operating Systems (OSY)
Gurantor department | Department of Computer Science | Credits | 5 |
Subject guarantor | Ing. Petr Olivka, Ph.D. | Subject version guarantor | Ing. Petr Olivka, Ph.D. |
Study level | undergraduate or graduate | Requirement | Compulsory |
Year | 3 | Semester | winter |
| | Study language | Czech |
Year of introduction | 2019/2020 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Bachelor |
Subject aims expressed by acquired skills and competences
Course goal is to introduce functionality of operating system, describe its parts, explain their usage and show practical implementation.
Teaching methods
Lectures
Tutorials
Project work
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.
Compulsory 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/
Recommended 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)
Way of continuous check of knowledge in the course of semester
Practical knowledges are verified in each exercise on assigned and marked examples.
Theoretical knowledges are verified by an exam.
E-learning
Other requirements
Good skill of programming in C/C++.
Base knowledges of OS Linux usage.
Prerequisities
Co-requisities
Subject has no co-requisities.
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.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction