| Course Description: |
This course is concerned with the issues that arise when computational processes are supported in a computer system. The scope is broad enough to include discussion of all the layers of a computer system - from the hardware to large information systems applications, and all sizes of computer system - from systems as small as a single processor, to systems as large as the entire Internet. The principal areas of study are processes and process coordination, concurrency support in operating systems and high level languages, and distributed systems. The following topics are addressed: operating system structure, process management, interaction between system components (processes, devices and processors), mutual exclusion, concurrent programming, semaphores and monitors, inter-process communication, distributed systems, crash resilience and persistent data, deadlock, transaction processing. |