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:

As programs are added, the user can use three functions to manipulate the program: Things to note about the program: If a process is added and all three queues are full, the program will not be added unless it has high priority. If it has high priority the last program added to Queue 3 will be removed from the Queue. Processes only have a finite amount of time to use the CPU. If these processes run out of time (i.e. process_length > CPU time allotted) they will get re-added to the end of Queue 3. This process is used to simulate a real Linux based concurrent operating system. If a program is using an I/O request the program is kicked out of the CPU while the I/O request is being completed. Once complete, the process goes back to the front of Queue 1. This will increase CPU utilization even through it increases CPU trapping.

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:

The experiment is designed to determine which swapping policy (random Vs. FIFO) will terminate faster when given a pre-defined set of programs to run. The experiment will take 8 programs with various commands and will run them 200, 400, 800 and 1600 times per experiment. We will run four different experiments (each containing 8 programs) on the two swapping policies. The time taken to get through the four iterations will be plotted for each experiment. The program specifications for each experiment are listed below. The results of the exepriment can be seen below:

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

An error has occurred. This application may no longer respond until reloaded. Reload 🗙