written or oral exam.
Workload for exams
Students should develop the following skills/acquire a good knowledge of:
- the role and the functions of operating systems
- design decisions for the management of OS resources
- mechanisms for the coordination of and the synchronization between parallel processes
- network communication and OS security
- introduction to operating systems (definition, history, important abstractions, OS architectures)
- processes and threads (process states, data structures and mechanisms for process management, multithreading)
- process synchronization and deadlock (mutual exclusion & condition synchronization, synchronization mechanisms and constructs, synchronization problems: producer-consumer, reader-writer, dining philosophers, deadlock, deadlock conditions, deadlock avoidance, deadlock prevention, deadlock detection
- memory management (allocation, relocation, segmentation, paging, virtual memory management, page replacement, protection and sharing)
- input-output and disk management (devices and device characteristics, I/O operations, drivers, buffering, disks, file systems, file system organization)
- networking (introduction, protocols, OS and networking)
- security and protection (threats, security measures, design for security, access control, authentification, encryoption)
Didactic concept: The listed topics will be introduced in the lecture, illustrative examples will be presented. Selected programming problems will be assigned in the accompanying lab course.