Review of computer networking. Mechanisms including interprocess communication and remote procedure call. Distributed operating systems design problems: kernels and microkernels, process models, virtual memory, naming and protecting. Distributed file systems. Fundamental problems in distributed computing: naming, ordering of events, replication and atomicity. Case studies.