This repo contains the solutions to the course assignments for CS330(Operating Systems) offered in Fall 2022 at IIT Kanpur. Our group members were Arnav Gupta, Hitesh Anand, Kushagra Sharma and Mandar Wayal.
Task: Implement syscalls like getppid(), waitpid(), pinfo(), custom fork() and some user wrapper functions around syscalls like getpid(), pipe(), etc
Score: 97/100.
Remark for deductions: Execution time computation is buggy. (-3)
Task: Had to implement 4 process scheduling algorithms: \
- Non-preemptive FCFS
- Non-preemptive SJF
- Preemptive RR
- Preemptive UNIX scheduler
Also had to compare these 4 algorithms using some statistics like Batch execution time, Average waiting time, Average turnaround time, Completion time, etc.
Score: 100/100
Task: Had to implement conditional variables and semaphores and use them to solve the Barrier problem and the Multiple Producers-Multiple Consumers Bounded Buffer Problem.
Score: 100/100