Do not adjust to the system. Adjust the system!
OSY - Requirements for Passing the Course
Full Time Study - Winter Semester 2023/24
A student can receive a maximum of 100 points for an exam and credit.
These will be divided into 45 points for the credit and 55 points for the exam.
Exam
The exam will consist of two parts: programming and theory.
It will be possible to get 25 points (min. 13) for programming and 30 points (min. 15) for theoretical knowledge.
The programming part of exam will be in lab on computer with OS Linux.
The same configuration as is during semester in labs.
Computers will not be connected to internet and every student will have new empty home directory.
Only man pages will be available together with documentation
C++ Reference.
The programming time will be cca 2 hours.
The programming will be focused to processes, threads, files, pipes, sockets, semaphores and shared memory.
The correct functioning of the program and the method of implementation will be evaluated.
Theoretical part of exam will be oral at the board.
Everybody will answer cca 3 questions in 20 minutes.
For exams will be open 3 therms.
Content of theoretical part for examsee below.
Credit
It is necessary to obtain at least 23 points from 45 to obtain credit.
Labs will be organized in tree blocks:
- Files and processes, 5 labs, 15 points (min. 8).
- IPC: Interprocess communication - 5 labs, 20 points (min. 10).
- Free RTOS - 3 labs, 10 points (min. 5).
Spare exercises only in severe cases.
Lectures and study materials
Content of this subject is specified in
IS Edison.
Study materials:
For download use your login and password.
- Tanenbaum Andrew S., Bos Herbert: Modern Operating Systems - 4th edition - PDF.
- Tanenbaum Andrew S., Albert S. Woodhull: Operating Systems - Design and Implementation - 3nd edition - PDF.
- Tanenbaum Andrew S., Albert S. Woodhull: Operating Systems - Design and Implementation - 2nd edition - PDF.
OSY Exercise Resources.
Study materials for download
Programs for download
Source codes on GitHub.
Tasks for labs
Kelvin.
Exercise outline
- Programming in C/C++, usage of stdin, stdout, stderr. Redirection.
Basic Linux commands..
Basic functions: open, close, read, write and function for FILE*.
- Makefile, static and dynamic library..
- Access rights for files, working with files.
Functions: stat, lstat, fstat.
- Processes and pipes.
Functions: fork, wait, pipe.
- Processes and redirection of stdin a stdout.
Functions: fork, wait. pipe, dup2 a exec*.
- Sockets.
Functions: socket, bind, listen, accept, connect.
- Threads.
Functions: pthread_create, pthread_exit, pthread_join, ...
- Noname semaphores.
- Named semaphores and shared memory.
- Message queue.
- Free RTOS: thread and scheduling.
- Free RTOS: interrupts.
- Free RTOS: Sockets.
Theoretical Part of Exams
- 1. Introduction
- 1.1 What is Operating System
- 1.2 History of Operating System - only keywords job, batch system, multiprogramming, spooling, timesharing.
- 1.5 Operating System Concept - Processes, Files
- 1.6 System Calls - main classification (from book and labs)
- 2. Processes and threads
- 2.1 Processes (2.1.1, 2.1.4, 2.1.5, 2.1.6)
- 2.2 Threads - Thread Usage, Posix threads, Threads implemented in Kernel
- 2.3 IPC - the whole chapter
- 2.4 Scheduling - 2.4.1, 2.4.3
- 2.5 Classical IPC Problems
- 3. Memory managements
- Address space, 3.2.3 Managing Free Memory
- 3.3 Virtual Memory (32 bits)
- 3.4 Page Replacement Algorithms
- 3.7 Segmentation
- 5. Input/Output
- 5.1.1 I/O Devices
- 5.2 Principles of I/O Software
- 5.3 I/O Software Layers
- 6. Deadlock
- 6.1 Resources
- 6.2 Introduction to Deadlock
- 6.3 The Ostrich Algorithm
- 6.4 Deadlock Detection and Recovery
- 6.5 Deadlock Avoidance
- 6.6 Deadlock Prevention