COURSE AIMS AND OBJECTIVES: Introducing the concepts of modern operating systems .
COURSE DESCRIPTION AND SYLLABUS:
Hierarchically layered structure of the operating systems. Operating system as the interface between users and computing devices. Model of thread (instruction stream) in rudimentary computer. Multithreading based on context switching. Broadening of rudimentary computer with input-output devices. Single character transfer. Interrupt synchronization of input-output. Hardware and software interrupts. Transferring blocks of characters by direct memory access. Execution of threads in multiprocessor systems. Programs, processes, threads. Threads address spaces as process subspaces. Multithreaded realization of systems of tasks. Independent and dependent threads. Determinate systems of threads. Mutual exclusion of threads. Hardware support for mutual exclusion. Model of simple kernel as an environment for thread execution. Kernel functions for binary and general semaphores, for input-output and for time delay. Producer-consumer problem. Thread synchronization. Deadlocks. Concept of monitor. Additional kernel functions for monitor realization. Thread coordination and synchronization by monitors. Timing analysis in computer systems. Deterministic thread scheduling. Basic scheduling models in non-deterministic systems. First-come-first-served and round robin scheduling. Storage management. Properties of backing-store devices. Static and dynamic memory allocation. Problem of fragmentation. Overlaid allocation. Memory allocation by paging. Demand paging. Hardware support for paging: translations look-aside buffer (TLB). Slowdown of process execution caused by page faults. Page replacement strategies. Working set of pages. The role of files in computer systems. File structures. File allocation on disks. File descriptors and file directories. Basic properties of functions for creation and deletion, opening and closing, reading and writing of files. Inter-process communication inside single computer system: shared memory, message passing (between threads in different processes). Basics of networking. Communication in distributed systems: message passing, remote procedure call, distributed shared memory. Mutual exclusion in distributed systems: time ordering of events, local and global clocks. Mutual exclusion protocols: centralized protocol, moving token protocol, distributed Lamport's protocol.