The goal of this project is to learn about process scheduling inside an operating system. You will work on the specified scheduling algorithm and simulate its performance.
In this project, you will simulate the process scheduling part of an operating system. You will implement time-based scheduling, ignoring almost every other aspect of the OS. Please use message queues for synchronization.
The operating system simulator, or OSS, will be your main program and serve as the master process. You will start the simulator (call the executable oss) as one main process who will fork multiple children at random times. The randomness will be simulated by a logical clock that will also be updated by oss.
In the beginning, oss will allocate shared memory for system data structures, including a process table with a process control block for each user process. The process control block is a fixed size structure and contains information to manage the child process scheduling. Notice that since it is a simulator, you will not need to allocate space to save the context of child processes. But you must allocate space for scheduling-related items such as total CPU time used, total time in the system, time used during the last burst, your local simulated pid, and process priority, if any. The process control block resides in shared memory and is accessible to the children. Since we are limiting ourselves to 20 processes in this class, you should allocate space for up to 18 process control blocks. Also create a bit vector, local to oss, that will help you keep track of the process control blocks (or process IDs) that are already taken.
2 freelancers are bidding on average $33 for this job
Hi! I am an expert in C, C++ and Operating Systems. I would be easily able to help you regarding any task related to them. Kindly message me to discuss more details. Thank you!