This project is an Operating System (OS) implementation focusing on memory management and CPU scheduling. It includes features such as dynamic allocation using the first-fit algorithm, free allocation, reallocate block functionality, kernel heap management including allocation, freeing, and reallocation of pages, and implementing First-In-First-Out (FIFO) and Least Recently Used (LRU) replacement policies. Additionally, it incorporates user heap management, marking pages that must be allocated, freed, and reallocated to the kernel heap upon page fault occurrences. Furthermore, it includes CPU scheduling mechanisms with FIFO and BSD (Berkeley Software Distribution) scheduling algorithms.
Utilizes the first-fit algorithm to allocate memory dynamically, ensuring efficient memory usage.
Allows for the deallocation of memory blocks, freeing up allocated memory for reuse.
Provides functionality to reallocate memory blocks, allowing for resizing and relocation as needed.
Manages memory allocation within the kernel space, including allocation, freeing, and reallocation of pages.
Facilitates the allocation, freeing, and reallocation of pages within the kernel heap, ensuring optimal memory management.
Implements both FIFO and LRU replacement policies for efficient memory usage and management.
Handles memory allocation in the user space, marking pages that must be allocated, freed, and reallocated to the kernel heap during page fault occurrences.
Implements CPU scheduling using the First-In-First-Out (FIFO) algorithm, where processes are executed in the order they arrive.
Incorporates CPU scheduling with the Berkeley Software Distribution (BSD) algorithm, which balances system responsiveness and fairness by dynamically adjusting process priorities.