For Mac users looking to run xv6, use this Docker image.
This repository contains solutions for COL633 - Resource Management in Computer Systems assignments, focusing on enhancing the xv6 operating system. Below is a quick summary of each assignment:
Added a username-password login system for the shell with a 3-attempt limit.
Implemented a history command to list executed processes with memory usage and PID.
Created commands to block/unblock system calls for processes invoked by the shell.
Implemented chmod to change file permissions with a custom system call.
Implemented signal handling for process termination, suspension, and resumption.
Modified the xv6 scheduler to incorporate priority-based scheduling and profiling.
Added a memory page inspection feature for active processes.
Introduced adaptive page replacement and disk-based page swapping.