This repository contains assignments completed for CS3305 (Operating Systems) at Western University.
- Implementation of a parallel password cracking program using fork()
- Features:
- Sequential and parallel execution modes (-f flag)
- Multiple child processes for distributed workload
- Process synchronization using wait()
- Focus on process creation, parent-child relationships, and basic IPC
- Large integer multiplication using pipes between parent and child processes
- Features:
- Decomposition of 4-digit numbers
- Two-way communication using pipes
- Step-by-step calculation tracking
- Focus on pipe-based IPC and process coordination
- Prime number calculation using multiple threads
- Features:
- Parallel prime number detection
- Work distribution across threads
- Thread synchronization
- Performance optimization using 6k±1 optimization
- Focus on thread creation, synchronization, and parallel algorithms
- Implementation of three CPU scheduling algorithms:
- First Come First Served (FCFS)
- Shortest Job First (SJF)
- Round Robin (RR)
- Features:
- Process simulation with arrival and burst times
- Waiting and turnaround time calculations
- Detailed execution steps output
- Focus on scheduling algorithms and process management
- Movie theater seat booking system using threads
- Features:
- Concurrent seat booking requests
- Mutex locks for seat reservation
- Conflict resolution
- Transaction logging
- Focus on thread synchronization, mutex locks, and race condition prevention
- Understanding of process management and creation
- Experience with inter-process communication
- Knowledge of multi-threading and synchronization
- Practice with CPU scheduling algorithms
- Implementation of concurrent programming concepts