Operating System Simulator
Welcome to the Operating System Simulator demonstration! This project was one of my favorite assignments during my higher education. Not only did I learn alot about operating systems and how they work, but I expanded my coding abilities by planning and coding this large scale project. This simulator demonstrates different CPU scheduling methods given two custom files containing the information needed to run the simulation. I'll go over the specific files and what some of the data does below. You will see in the output examples that there are two main scheduling types - preemptive and non-preemptive. Although both will use threads, the non-preemptive methods will use a function called pthread_join which adds bounded waiting in order to wait for the operation to finish before continuing. The preemptive methods will actually launch the thread to run on its own and implement the use of an interrupt manager to await the thread finishing. It also incorporates waited blocking when the process is running a thread so it can launch an additional thread as long as it is from a different process. This means if we launch 5 threads from our 5 processes we will be in CPU Idle and wait until one of the processes is done. This project used linked lists extensively for the management of the PCB blocks, the opcodes, the log files and the memory management. In addition, there are custom data structures that contain system codes for different error messages and print messages in addition to the interrupt manager.
Config File
What is this data?
This is the Configuration data script. The Config data contains important information such as the scheduling method, memory available, the input/output (I/O) cycle and CPU cycle times, and more display related information. There is also a "log to" section and a "log file path". These are the options selectable for viewing the simulation running in the console, in addition to the option to have it stored in a log file. Down below you can see examples of the log file outputs!
Metadata File
Simulator Example Runs
Download Simulator Files
Contact
To contact me, please reach out through either of these social platforms or, email me directly.