Credit Points: 3.5
Prerequisites: Data structures and algorithms; Computer organization.
The aim of the course is to study operating systems principles and to improve programming skills in C. The material includes the following topics. The concept of operating systems. The concept of a process.The layering approach. The hardware/software interface. The application/OS interface: system calls. The interface/encapsulation approach. CPU scheduling: measures, preemption, some policies. Inter-Process communication mechanisms. Synchronization: hardware solutions; software solutions. Mutexes, semaphores, monitors. Deadlocks: detection, prevention. The memory hierarchy. Segmentation, paging. Caching algorithms. Virtual memory. Introduction to IO devices. File systems: organization and implementation on disks. Communication: TCP/IP.Client/server architecture. Micro kernel.
The course includes extensive programming in C in the Unix environment.