-
-
Notifications
You must be signed in to change notification settings - Fork 46.6k
Add Earliest Deadline First scheduling code #11384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
for more information, see https://pre-commit.ci
Requesting review: @cclauss |
arrival_times = [0, 1, 2] | ||
burst_times = [3, 5, 2] | ||
deadlines = [5, 7, 6] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
arrival_times = [0, 1, 2] | |
burst_times = [3, 5, 2] | |
deadlines = [5, 7, 6] | |
jobs = (Job(0, 3, 5), Job(1, 5, 7), Job(2, 2, 6)) |
from __future__ import annotations | ||
|
||
|
||
def calculate_waiting_times( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please correct the docstrings or comments if they are incorrect. Is ticks
correct or is it seconds, hours, months? The name burst_time
is not obvious so please use the docstrings or comments to explain. Is the overall process time-boxed (e.g. all jobs must be completed in 60 ticks)?
def calculate_waiting_times( | |
from typing import NamedTuple | |
class Job(NamedTuple): | |
arrival_time: int # Time in ticks when this job first becomes available to be processed. | |
burst_time: int # Number of ticks that this job takes to complete. | |
deadline: int # Time in ticks when this job must be complete or it is not worth running. | |
__slots__ = () | |
def calculate_waiting_times( |
The best way to prove that you are doing this right would be to take one or both of the diagrams in the Wikipedia article and ensure that your results exactly match their results. For instance... Use the same Job field names. Perhaps you could use DataClass instead of a NamedTuple so you can add |
Describe your change:
Checklist: