Skip to content
README 1.43 KiB
Newer Older
# Project 4 - CS4760
## by Tony Urschler
## October 31, 2021

## VERSION CONTROL: https://comp.umsl.edu/gitlab/teudmk/urschler.4
## You should have permission to view my entire repository on GitLab

## Contents of the Project Folder
- oss: this is the main executable for the simulator to showcase scheduling
- oss.c: .c file for the executable
- user: this is the executable that the child processes (which oss forks) will run
- user.c: .c file for the executable
- lib_msgqueue.a: a static library that contains functions for both priority queues
- lib_msgqueue.o: .o file for the library
- lib_msgqueue.c: .c file for the library
- config.h: contains various configurables for the project like maximum processes and time
- Makefile: used to clean and compile the code

## How to compile and run the code
- Run the command `make clean`
- Run the command `make`
- Run the executable `oss`
  - `./oss [-h] [-s sec] [-l file]`

## About the Scheduler
The scheduler has two priority queue, high and low. IO-Bound processes are put in the high priority queue, and CPU-Bound are put in the low priority queue. These two queues are given the same amount of time to operate, so generally the high priority queue gets through more processes than the low in a given amount of time (IO bound processes use less CPU time). If one of the queues are empty, the scheduler will check the other queue and dispatch one of those processes to minimize idle time.

** No known errors