*** I am looking for someone who has taken this course from Study.com and received a good grade for the assignment ***
Instructions are not clear in the assignment. I didn’t understand what “Service time” is, and how we would use the “period” variable for processes in the input and calculate it again for the output. Does feasible mean that a process is completed before its deadline? How are we going to calculate the CPU time for a process? According to the output example, what do the values in the last line,
“Service: 55, Period 120, finish: 75, 175”
mean, and how do we calculate these values? Why do we have two values for the “finish” variable? Why do we report values for only process 2 and process 1 in the example output, although we have at least 5 processes?
I need a detailed explanation of the questions and variables, and an algorithm to write codes. A Python or Java program is also required according to the instructions.
*** Please note that all source code should be well-documented by using comments.***
**** Someone who has taken this course from Study.com and received a good grade for the assignment can be helpful.***
*** Please only use Python or Java for coding.****
Here are the instructions:
About this Assignment
Operating systems use different methods for real-time job scheduling. Three methods are used: RMS (rate monotonic scheduling), DMS (deadline monotonic scheduling), and EDF (earliest-deadline first). In this assignment, you will explore these topics by creating a real-time job scheduling simulator.
Create a Simulator
Your real-time simulator will be an event-driven simulation. This means the simulation is in one state at any given time, and can only change when a process arrives and when a current running process is complete.
Considering a set of processes to be scheduled, your simulator will simulate how these processes will execute based on a scheduling algorithm. Collect the following data:
Can you create a feasible schedule from your algorithm?
When does scheduling fail?
CPU load/use
You are using next event simulation, meaning an event only happens at a certain time. The simulation state will thus only change at that event, and the clock then moves to the next scheduled event.
You should have an event queue, sorted by time of event that should occur. The simulation will process the event next in line, add more events with future starts, move the clock, and continue until all processes are completed.
The following policies are to be analyzed:
RM: Rate monotonic
DM: Deadline monotonic
EDF: Earliest-deadline-first
Execution of Simulation
Following is the general logic of how the program will run:
Input
The input going into your simulator is a sample file that contains the number of processes, the process switch time, the arrival time, the deadline, and period. Assume that the processes will process in the order they are listed in the input file. The table below shows the fields.
HeaderThe file has a header:
Number of ProcessesProcess Switch
DetailThe file has the following detail lines for each process:
Process NumberArrival TimeRelative DeadlinePeriod
Following is a sample input file:
5 0
1 0 8 12
2 0 10 20
3 0 10 25
4 0 15 28
5 0 20 32
Please create your own input file and generate at least 5 processes. Overhead should be 0. Assume all processes come in at time 0, regardless of RM, DM, EDF.
Service Time
While this program doesn’t specify certain service times for each process to be considered complete, following are some suggestions for each of the methods, in milliseconds.
Running Earliest Deadline First: 0 to 500
Running Deadline Monotonic: 0 to 413
Running Rate Monolithic: 0 to 101
Output
The file out put should show results and analysis of each of the methods (DM, RM, EDF). For example, the results of running the DM algorithm might be displayed as follows:
DM Results:
Schedule feasible from 0 to 280 units. At 280, process 2 did not meet deadline. CPU time took 300 units.
Process 1: Arrival Time: 0, Service: 55, Period 120, finish: 75, 175.
Related Lessons
This assignment covers material presented in the scheduling chapter of this course. Lessons that are helpful for you to complete the assignment are listed below:
Deadline Scheduling for Real-Time Systems
Scheduling Policies for Operating Systems: Importance and Criteria
Job Scheduling in Operating Systems
You may also refer to external, peer-reviewed sources as you complete your coding.
Submission
Submit all source code, well-documented, as to what your steps were. You can use C, C++, Java, Python, etc., but be sure to document well! You can paste the code into a text file or Word document.
Before You Submit
When you complete your assignment, we suggest taking some time to check for any errors or to add any finishing touches. We also suggest that you use online plagiarism checkers, such as PlagScan, to make sure that your assignment is not too similar to any existing materials.
Unless otherwise stated in the assignment instructions, AI-generated content is not permissible. The use of ChatGPT or other AI applications to generate work presented as your own is a form of plagiarism. Plagiarized submissions will NOT be graded and may result in disciplinary actions.