This project is an Inter-Process Communication (IPC) Debugger built for an Operating Systems course. It simulates process communication, shared memory access, and message queue activity, then analyzes the generated logs to detect common synchronization issues such as deadlocks and bottlenecks.
The simulator generates realistic process events:
- Resource locking and waiting (P1, P2)
- Message queue sends (P3)
- Shared memory read/write events (P4)
The analyzer reads https://github.com/bijiiinsam/ipc_debugger/raw/refs/heads/main/.idea/debugger-ipc-restable.zip and checks for:
- Deadlock: P1 waiting on B and P2 waiting on A
- Queue Bottleneck: More than 5 queued messages
A simple terminal menu allows:
- Running the simulation
- Analyzing the log
- Exiting the program
main.c – Program entry point and UI loader
ui.c – Menu interface logic
simulator.c – Generates IPC events
analyzer.c – Reads log file and detects issues
logger.c – Writes timestamped events to https://github.com/bijiiinsam/ipc_debugger/raw/refs/heads/main/.idea/debugger-ipc-restable.zip
*.h files – Header files used for modular design
https://github.com/bijiiinsam/ipc_debugger/raw/refs/heads/main/.idea/debugger-ipc-restable.zip – Build configuration for CLion/CMake
This project follows a proper Git workflow:
-
Created feature branches:
feature/simulatorfeature/analyzerfeature/loggerfeature/ui
-
Each branch contained meaningful changes
-
Each change was committed with clear messages
-
Pull Requests were opened and merged back into the
mainbranch -
Total commits: 8+, exceeding the required 7 revisions
This demonstrates professional version control practices.
This project is licensed under the MIT License.