CS3502/project1/README.md
2025-10-09 22:18:56 -04:00

642 B

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 -c phase1/phase1.c -o phase1.bin