VSB-TUO

Useful links:

Study Materials:



Operating Systems (OSY) - EFREI

Requirements

Numbers of hours: Lecture 10h, Practical Works (Linux Commands 10h + Writing Code 15h), Independent learning 70h.

Assessment: Written exam: 60%, Lab work 40% (5x8 points).

Links:

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:
    PDF,
  • Andrew S. Tanenbaum, Operating Systems. Design and Implementation
    PDF

Advanced:

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

Lectures:

  1. Introduction, system in labs, study materials, server linedu.vsb.cz (similar to APPS course)
    History of Unix & Linux
    Concept of OS, [TAN] 1.1, 1.5.0-1.5.4, 1.6.1
  2. Practical Works - Writing Code
  3. Compilation toolchain. Write program in C/C++, compile and run it, redirect input and output. (see Kelvin for assignment)
  4. Practical Works - Linux Commands
  5. An Introduction to the Linux Command Shell For Beginners
    The GREP command
    RegExr: Learn, Build, & Test RegEx
  6. Linux Architecture, POSIX, System calls
    System Calls, Processes
    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
  7. Practical Works - Writing Code
  8. Write a console application histogram which will read data from standard input and write them back to standard output. Use of open, read, write, close and perror. (see Kelvin for assignment)
  9. Practical Works - Linux Commands
    stdin, stdout, stderr outputs, redirection commands; tee, head, tail
  10. Test your command skills on several practical examples (see Kelvin for assignment)
  11. Processes and scheduling algorithms, preemptive and RT.
    Process tree, priority, system calls (getpid, getgrp, getuid, geteuid)
    [TAN] 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4
  12. Practical Works - Writing Code
  13. Write a forkwait console application. Use fork, waitpid, execve and perror. (see Kelvin for assignment)
  14. Practical Works - Linux Commands
    Process manipulation - top, ps, bg, fg, jobs, nice, htop, kill, killall. System calls getpid(), getuid(), geteuid(). Test application with sticky bit.
  15. File, Directory, Filesystems
    Linux file system structure, EXT filesystem - inodes, blocks. Hard/Soft links
    [TAN] 4.1, 4.2, 4.3, 4.5.2
  16. Practical Works - Writing Code
  17. Working with files, pipes and filedescriptores (pipe, dup, dup2) (see Kelvin for assignment)
  18. Inter-process Communication and Synchronization. Semaphore, monitor, message passing
    [TAN] 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.5 - 2.3.7, 2.3.8
    Signal/IPC commands - kill, killall, ipcs, ipcrm, ipcmk
  19. Inter-process Communication and Synchronization. Classical IPC problems
    [TAN] 2.5
    Producer/Consumer, Dining Philosophers, Readers and Writers problems
  20. Practical Works - Writing Code
  21. Working with signal and handlers, measuring I/O performance (see Kelvin for assignment)
  22. Practical Works - Linux Commands
    BASH scripting, functions, error and interruption handling, signals. Commands kill, killall, trap, command return values
  23. Semaphores - System V and POSIX
    [TAN] 2.3.5 - 2.3.7, 2.3.8
    Program example of POSIX semaphore usage between processes. Critical sections.
  24. Practical Works - Writing Code
    Implement Producer/Consumer problem using Semaphores for counting resources and controlling access to critical section

efrei Operating Systems timetable with topics.

Presentations:

Lecture presentations can be downloaded ONLY from the VSB/TUONET network, for access to the TUONET network it is possible to use VPN concentrator.

  1. Introduction, System Calls
  2. Processes and Threads, Scheduling algorithms, IPC
  3. Input/Output
  4. Filesystems
  5. IPC - critical section, semaphores

Labs:

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 command line
  2. Processes, create process, pipes.
  3. Processes, pipes, stream redirection.
  4. I/O communication, speed of writing to file and speed of communication via pipe.



Design by poli 2021