Definitions of operating systems, their historical evolution, their main parts. Processes, process states, process control section, interrupt systems. Synchronization: parallelism, critical regions, mutual exclusion, mutual exclusion primitives, their implementation. Peterson solution, hardware solutions, Test-and-Set, semaphores, message isolator example, readers and writers, producer-consumer systems, semaphore implementation, integer semaphores. Conditional critical areas, event queues, monitors.
Distributed synchronization: The bakery algorithm, the RicartAgrawala algorithm, token ring methods. Management of memory: (a) Real memory: organization, task, continuous-discontinuous division, method of fixed partitions, rotation. (b) Ideal memory: paging, segmentation, their combinations, average page length, average number of segment-holes, the 50% rule, page replacement methods, locality, working set, on-demand paging, program behavior. CPU and disk scheduling. Impasse theory.