Course Description:
The objective of this lab is to get the hands on experience about operating system concepts, process creation, process synchronization, inter-process communication, process scheduling and memory management techniques. Students will also work on development of multi-threading applications.

Course Learning Outcomes:
CLO:1 Illustrate operating systems concepts for processes creation, task synchronization and inter-process communication.
CLO:2 Implement inter-process communication methods, processes scheduling algorithms and memory allocation techniques using software tools.
CLO:3 Design and implement medium complexity algorithm for process synchronization and scheduling using inter process communications and synchronization technqiues.

Lab Experiments:
1. Introduction to operating systems, basic commands, and editors
2. Process Creation using fork and exec commands
3. Mutual Exclusion using semaphores
4. Process Synchronization using semaphores and mutex
5. Implementation of producer-consumer problem
6. Implementation of Reader Writer problem
7. Implement inter process communication
8. Implementation of round robin scheduling algorithms
9. Execute FCFS and SJF scheduling algorithms
10. Algorithms for deadlock detection and avoidance.
11. Implementation of first fit and best fit memory allocation methods
12. Disk space management and File protection mechanisms.