You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
This repository contains my solutions to a series of lab assignments for an Operating Systems course. The labs cover fundamental concepts of process and memory management, inter-process communication (IPC), and file systems, providing hands-on experience with low-level system programming.
📋 Topics Covered
LA1: Multi-process applications (fork, wait, exec) — Process creation and management.
LA2: IPC using signals — Inter-process communication with signals.
LA3: Scheduling Algo Simulation — Analyze efficiency of CPU scheduling algorithms.
LA4: IPC using pipes and dup — Implement IPC using pipes & file descriptor duplication.
LA5: IPC using shared memory — Use shared memory for fast and efficient IPC.
LA6: IPC with shared memory + semaphores — Combine SM with semaphores for thread-safe synchronization.
LA7: Multi-threading with pthreads — Develop multi-threaded program using thepthread
LA8: Deadlock in multi-threaded apps — Handle deadlock conditions in concurrent programs.
LA9: Demand paging (no replacement) — Simulate a demand paging system without a page replacement algorithm.
LA10: Demand paging (with replacement) — Extend the simulation to include a page replacement algorithm.
LA11: File system interface — Work with the user-level interface of a file system.
🛠️ Languages & Tools
This project primarily uses theC/C++ programming languages and relies heavily on aUNIX/Linux environment. Key system calls and libraries used include: