Concurrent and Distributed Systems

Introduction

A collection of concurrent and distributed constructs that were taught in CST IB, and implemented in C++ as practice.

Concurrent Systems

To Implement

  • Semaphore (lock + cv)
  • Producer consumer
  • Multiple reader single writer
  • Monitors using condition variables
  • Timestamp ordering
  • Optimistic concurrency control
  • Multiple thread simulator

Distributed Systems

To Implement

  • FIFO, causal, and total order FIFO broadcasts
  • replication with quorums (read-after-write and linearised)
  • 2 phase commit and atomic commit