Concurrent course registration simulation in C using POSIX threads.
make./course_registrationThe default run demonstrates:
- 10 concurrent student threads
- CS101 = 2 seats, CS102 = 1 seat, CS103 = 3 seats
- at least 3 high-priority students
- visible contention and priority-based ordering
- Each course has its own mutex/condition variable.
- Student requests are queued per course and processed by priority first, then arrival order.
- One thread is created per registration request.
- Seat counts are updated only while holding the course mutex.