- Learn and practice essential UNIX commands to understand their functionality and use cases.
- fork()
- exec()
- getpid()
- exit()
- wait()
- close()
- stat()
- opendir()
- readdir()
Click here for solutions
- Simulate commands like
cp
,ls
,grep
, etc., to understand how they function internally and implement them programmatically.
Click here for solutions
- First-Come, First-Served (FCFS)
- Shortest Job First (SJF)
- Priority Scheduling
- Round Robin (RR)
Learn how each algorithm works, and implement them to understand the scheduling behavior in an OS.
- Use Semaphores to manage concurrency and control the number of opened ports.
- Use Monitors to achieve synchronization and resource control.
- Write a program that demonstrates how threads can execute concurrently using the POSIX threads (pthreads) library.
- Implement the classic producer-consumer problem where a producer creates data and a consumer consumes it. Use semaphores for synchronization.
- First Fit: Allocate the first available partition that is large enough.
- Worst Fit: Allocate the largest available partition.
- Best Fit: Allocate the smallest partition that is large enough.
- First-In-First-Out (FIFO)
- Least Recently Used (LRU)
- Least Frequently Used (LFU)
Implement these algorithms to manage how pages are swapped in and out of memory.
- Implement a simulation to manage memory using paging technique, where memory is divided into fixed-size blocks (pages).
- Use the Banker's Algorithm to avoid or prevent deadlocks in a multi-process system by ensuring that the system remains in a safe state.
- Sequential Allocation: Files are stored in consecutive blocks.
- Indexed Allocation: An index block is used to keep track of the file’s blocks.
- Linked Allocation: Each block contains a pointer to the next block.
Simulate these strategies to understand their impact on performance and disk space utilization.
- Download and install the Nachos operating system.
- Experiment with various features and understand the concepts behind OS design and implementation.