Programme type: Undefined
Study form: Fulltime
The course is an introduction into the classical theory of operating systems (OS). Students learn about basic notions, such as processes and threads and their communication, scheduling algorithms, race conditions, critical sections and synchronization problems and mechanisms, process deadlock, virtual memory using paging or segmentation, management of I/O devices, file systems and finally the basic issues of security. Experience with programming in the C language is expected.
Operating system, process, thread, deadlock, synchronization, memory, filesystem.
1. Introduction to OS. Architecture and types of OSs.
2. Processes and threads, their implementation. Scheduling algorithms.
3. Interprocess communication (IPC) - race conditions, critical sections, synchronization mechanisms.
4. Classical IPC problems - definitions and solutions.
5. Deadlock - definition, Coffman's conditions, strategies for dealing with deadlock.
6. Memory management - basic techniques.
7. Virtual memory - paging.
8. Virtual memory - page replacement algorithms.
9. Virtual memory - segmentation. Swapping.
10.Input/output - drivers of peripheral devices.
12.Distributed computation, client/server, clusters.
13.Security in OS.
1. C/C++ programming in Unix.
2. Unix: processes, process communication, process synchronization.
3. Unix: threads, threads synchronization, thread's library (POSIX, Solaris, Linux).
4. Unix: 1. semestral project.
5. Unix: 1. semestral project.
6. Kernel modules in Linux.
7. C/C++ programming in MS Windows.
8. MS Windows: processes, process communication, process synchronization.
9. MS Windows: threads, threads synchronization, threads library (POSIX, Windows XP).
10. MS Windows: 2. semestral project.
11. MS Windows: 2. semestral project.
12. Monitors (Java, .NET).
1. Tanenbaum, A.: Modern Operating Systems, 2nd Ed., Prentice Hall, ISBN 0130313580, 2001.
2. Stallings, W.: Operating Systems, 4th Ed., Prentice Hall, ISBN 0130319996, 2001.
3. Materials in Internet.