Course Descriptions:
Introduction: what is an operating system, history, evolution, and philosophy of operating systems, operating system structure and services; process and process management: the process concept, threads, inter process communication and synchronization (race conditions, critical sections, semaphores, monitors, classical IPC problems), CPU scheduling (basic concepts, scheduling criteria, and scheduling algorithms); deadlocks (avoidance, prevention, and detection); memory management: basic memory management (mono programming without swapping and paging, multiprogramming with fixed partitions, fragmentation, memory binding, relocation and protection), multiprogramming with variable partitions (physical and virtual memory, memory allocation algorithms, paging, page replacement algorithms, segmentation); file systems: access methods, directory structure, file sharing and protection; input/output: overview, direct memory access, disk I/O; security: authentication, intrusion detection, encryption.
Objective:
At the end of the course, students will be able to
Course Content: