Computer Systems
This page will describe various computer system projects that I have worked on during my time at Northeastern. All projects are written in C++ and will run on any operating system. These projects are small and are meant to mimic a prototype that could be implemented in a Linux operating system. Link to Computer system Code
Multi Level FeedBack Queue
The Multi Level Feedback Queue is setup to have three Queues (implemented as Lists). The three Queues are designed to represent the High/1, Medium/2, and Low/3 Priority Queues that are used to hold processes before they are utilized by the CPU. The program is implemented by creating three Lists (Level 1, Level 2, Level 3) and adding various processes to these Lists until the user stops the program. The "Process" added to the MLFQ has three parameters:
- int pid -which is the process id of the program
- int process_length - which is how long the process will take in seconds to run
- bool IOreq - which is an optional parameter that allows a progam to make an I/O request
- add_process - Add another process to the queue
- boost 2- This will boost queue 2 to the highest Priority Queue
- boost 3- This will boost queue 3 to the highest Priority Queue
- kill - This will delete a process. This is used to represent a frozen process that needs to be deleted (ex. contorl+shift+esc)
Swapping
This program is an experiment that is designed to simulate a "loader" i.e. a software application that swaps programs in and out of Disk. The program works by swapping programs in and out of RAM with the following specifications:
- Fixed RAM size. A fixed RAM size will mimic real world hardware limitations.
- Limited buffer/Cache (16 bytes) space between main and secondary memory to represent real world buffer storage.
- We will have a finite amount of disk space as well. The size of this space will be 100 bytes.
- Kill requests are allowed. A kill request will kick a program out of memory. This request will also be sent to the front of a Queue. This will shift all programs back in the Queue if there is space and will kick the last added program out of memory if there is no space.
- Test 1 - No I/O & no Kill requests
- Test 2 - Two Kill and no I/O requests
- Test 3 - No Kill and 2 I/O requests
- Test 4 - Two Kill and two I/O requests

Multi Level Page Table
The muti-level page program creates a class and then allocates program strings into pre-defined space. The pre-defined space is used to represent RAM. The results of the experiment can be seen below.

blank text