Assignments from the Operating Systems course (COL331) at IIT Delhi, taught by Prof. S.R. Sarangi
This repository contains implementations of various operating system concepts using the xv6 teaching OS, as part of the coursework for COL331.
- Implemented custom shell commands and associated system calls in xv6.
- Features:
history
system call to display command history.block
andunblock
system calls to control permissions for other system calls.chmod
system call to modify file permissions.
- Enhanced xv6 with signal handling and a modified scheduler.
- Features:
- Signal delivery and handling, including interrupt, background, and foreground signals.
- Custom signal handler registration.
- Priority boosting added to the scheduler for fairer CPU allocation.
- Added swap memory support to xv6 for better memory management.
- Features:
- Modified disk structure to accommodate swap space.
- Implemented page swapping (in and out) between RAM and disk.
- Adaptive page replacement policy for efficient memory usage.
Each assignment progressively extends the functionality of the xv6 kernel, exploring real-world OS concepts such as process control, memory management, and CPU scheduling.