Include a brief summary of the course topics and requirements, the general format of the course, and the methods of evaluation.

Skills and knowledge students should have prior to beginning the course:
Course Topics:

* Structure of a process: address space, registers, program counter and the stack. * Asynchronous activity: hardware and software interrupts, service routines. * Multiprogramming: programming for concurrency, process and thread, shared data, race conditions, critical sections and tools/techniques for multiprogramming such as mutual exclusion, semaphores and strict message passing. * Memory management: memory allocation, stack, heap, virtual memory. * File systems: file organization and interfacing with secondary storage. * The operating system kernel: internals and interfacing via system calls. * Distributed computing: communication, client/server model, remote procedure calls.

Course Format:
Method of evaluation: