CPEN 307:Operating Systems (Prerequisite: FAEN 112)

Main block


History and overview of operating systems including reasons for studying operating systems, description of purpose of operating system, services and characteristics of good operating system, relevance of operating system to computer engineering. Design principles: functions of a typical operating system, mechanisms to support client-server models, design issues, structuring methods, processes and resources, concept of APIs to operating systems, device organization, interrupts and implementations, concepts of user and system states and protection. Concurrency: states and state diagrams, dispatching and context switching, role of interrupt, concurrency execution, mutual exclusion problem and solution, deadlock and its causes and prevention, semaphores and monitors, producer-consumer problems and synchronization. Process scheduling and dispatch: preemptive and non-preemptive scheduling, schedulers and policies, processes and threads, deadlines and real-time issues. Memory management: memory types and hierarchy, memory management hardware, swapping and partitions, paging and segmentation, placement and replacement policies, working sets and thrashing, caching. File systems: files – data, metadata, operations, organization, sequential and non-sequential; directories – content and structure; file system – partitioning, mount and unmount, virtual file; special purpose file, naming, searching access and backups. Device management: characteristics of parallel and serial devices, buffering strategies, direct memory access, recovery from failure. Security: overview of security systems, security methods and devices, protection, access and authentication, models of protection, memory protection, encryption and recovery management.