| .. | ||
| phase1 | ||
| phase2 | ||
| phase3 | ||
| phase4 | ||
| report | ||
| default.nix | ||
| README.md | ||
| test.nix | ||
CS3502 Project 1: Asynchronous Banking Account Management
This directory contains multiple toy models of asynchronous bank account systems, demonstrating the principles of race condition and deadlock avoidance.
Usage
There are 4 programs labeled Phases 1-4:
- Phase 1: Naive non-supervised multi-threaded account system
- Phase 2: Mutex-based account system
- Phase 3: Deadlock generation
- Phase 4: Deadlock resolution via lock ordering
If you have Nix installed:
nix run .#p1-phase1
Otherwise, the code must be compiled manually:
gcc phase1/phase1.c -o phase1.bin