poli homepage

Do not adjust to the system. Adjust the system!



Numbers of hours: Lecture 25h, Lab 10h, Independent learning 70h.

Assessment: 2-hour exam: 60%, Lab work 40% (5x8 points). Minimum is 51 points?

Program: 1 + 12x2h lectures and 5x2h lab (odd week) +2h spare.


Communication: Matrix, room OSY-EFREI.

Tasks: Kelvin.

Source codes

Study materials

Use your login and password.

  • [TAN] Andrew S. Tanenbaum, Modern Operating Systems, 4rd edition:
    PDF, Source.
  • A. D. Marshall, Programming in C, UNIX System Calls and Subroutines using C:
    Archive, Source.
  • Neil Matthew, Richard Stones, Beginning Linux┬«Programming, 3th edition:


  • Richard Stevens, Stephen Rago, Advanced Programming in the UNIX Environment, 3rd Edition:
    PDF, Zdroj.


  1. Introduction, system in labs, study materials, server linedu.vsb.cz, the same for APPS subject.
  2. Concept of OS, [TAN] 1.1, 1.5.0-1.5.4, 1.6.1
    Write program in C/C++, compile and run it, redirect input and output.
  3. Concept of OS, processes, process states, process switching.
    [TAN] 2.1, 2.1.1, 2.1.2, 2.1.4, 2.1.5, 2.1.6, 2.1.7
  4. Scheduling algorithms, preemptive and RT.
    [TAN] 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4
    Create process, create pipe, send data by pipe.
  5. Race condition, critical section, interrupt, TSL, sleep and wakeup, semaphore.
    [TAN] 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.5
  6. Semaphore, monitor.
    [TAN] 2.3.5, 2.3.7
    Program example of POSIX semaphore usage between processes.
  7. Memory management, allocation with list and bitmap, virtual memory, segmentation. Algorithms for page selection.
    [TAN] 3.2.3, 3.3, 3.4, 3.7
  8. Shared memory for IPC.
    Program example of POSIX anonymous shared memory between processes.
  9. Input/Output, principles of I/O HW and SW.
    [TAN] 5.1, 5.1.1, 5.1.2, 5.2, 5.2.1, 5.3, 5.3.1, 5.3.2, 5.3.3, 5.3.4.
  10. Optimization of I/O communication. Writing to file and send data via pipe.
  11. Disk Arm Scheduling, algorithms.
    [TAN] 5.4, 5.4.1, 5.4.3
    Implementation and simulation of scheduling.


Requirements: Linux/Unix with compiler gcc/g++. Any text editor or IDE for C-language (e.g. Eclipse CDT or Visual Code).

Preparation (homework) and tasks assignment in Kelvin.

  1. Programming in C, stdin, stdout, stderr, argiments from comamnd line
  2. Processes, create process, pipes.
  3. Processes, semaphores, critical section.
  4. Processes, shared memory, semaphores.
  5. I/O communication, speed of writing to file and speed of communication via pipe.

Design by poli 2021