One of the courses I’m taking this semester is CSE 303 Operating System Design. Since the course has started I’ve learned a lot about how operating systems function and the overall responsibility of operating systems. Recently we’ve been learning about scheduling processes. The operating system is responsible for allocating resources to each process, which is a difficult task.
On the last homework assignment, we got to work with a scheduling simulator (above) that allowed us to put in processes with certain parameters, such as CPU time or block time and run them under specific conditions for the CPU and scheduler. The scheduler conditions varied in things like scheduling algorithm used and quantum time (quantum is the maximum amount of time a process is allowed to use the CPU before being swapped out with another process in certain scheduling algorithms).
Above is some sample output from the simulator. It shows the parameters for the simulation processes and the scheduler, as well as common statistics for each process, like how long it was blocked or when it finished. Unfortunately, the table with the information on each process is misaligned, so the headers don’t match up with the data. Using the simulator was very cool and allowed us to see what was going on with the CPU and other resources while multiple process were running at once, as well as what conditions could cause serious problems for a PC and how to avoid them. Much of what I’ve learned in this course has given me a new understanding on how my PC runs and a new respect for the people who design operating systems.