Marco Serafini


Distributed and Operating Systems (COMPSCI 677)

This course provides an in-depth examination of the principles of distributed systems in general, and distributed operating systems in particular. Covered topics include processes and threads, concurrent programming, distributed interprocess communication, distributed process scheduling, virtualization, distributed file systems, security in distributed systems, distributed middleware and applications such as the web and peer-to-peer systems. Some coverage of operating system principles for multiprocessors will also be included.

Prerequisites: Students should be able to easily program in a high-level language such as Java, C++ or Python, have had a course on data structures, be familiar with elements of computer architecture and have had previous exposure to the operating system concepts of processes, virtual memory, and scheduling. A previous course on uniprocessor operating systems (e.g., CMPSCI 377) is helpful.

Credits: 3

Textbooks and reading material:

Course Format

Synchronous classes will be offered on Zoom on Mon/Wed 11.15 am - 12.30 pm.

Classes will be recorded and made available online. Synchronous attendance is not mandatory, although it is encouraged. Students who cannot attend synchronously because of the time zone are encouraged to ask questions during the office hours, which will also be synchronous.

Students are expected to attend the lectures, synchronously or asynchronously, and study the material presented during the lectures. They will also have to participate in the following activities: