25 lines
642 B
Markdown
25 lines
642 B
Markdown
# 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](https://nixos.org/) installed:
|
|
|
|
```sh
|
|
nix run .#p1-phase1
|
|
```
|
|
|
|
Otherwise, the code must be compiled manually:
|
|
|
|
``` sh
|
|
gcc -c phase1/phase1.c -o phase1.bin
|
|
```
|
|
|