-
-
Notifications
You must be signed in to change notification settings - Fork 46.8k
Create non_preemptive_shortest_job_first.py #6169
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
Create non_preemptive_shortest_job_first.py #6169
Conversation
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.
You might want to take a look at https://github.com/TheAlgorithms/Python/blob/master/scheduling/shortest_job_first.py. Because your implementation is more maintainable, it's okay to replace some of its code, e.g. in calculate_waitingtime
but it's up to you.
@@ -0,0 +1,116 @@ | |||
# SJF | |||
""" | |||
Non-preemptive Shortest Job First |
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.
I think SJF is non-preemptive itself? So I think this program is similar to https://github.com/TheAlgorithms/Python/blob/master/scheduling/shortest_job_first.py
so we can get rid of non_preemptive_
from filename
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.
The SJF is a non-preemptive scheduling algorithm.
I should name mine without non_preemptive_
, but there is the same name but different algorithm. (what you mentioned)
The existing program is a preemptive variant of SJF.
So I add non_preemptive_
to distinguish them.
If we get rid of non_preemptive_
, I think the other filename(original shortest_job_first.py
) also should be renamed to shortest_remaining_time.py
.
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.
Ah ok, you may rename scheduling/shortest_job_first.py
to scheduling/preemptive_shortest_job_first.py
def calculate_waitingtime( | ||
arrival_time: list[int], burst_time: list[int], no_of_processes: int | ||
) -> list[int]: | ||
|
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.
and has remaining execution time is put into the ready_process. | ||
The shortest process in the ready_process, target_process is executed. | ||
""" | ||
while completed != no_of_processes: |
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.
This block of code can be used to improve https://github.com/TheAlgorithms/Python/blob/master/scheduling/shortest_job_first.py
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.
Thank you for your pull request!🤩
Describe your change:
Checklist:
Fixes: #{$ISSUE_NO}
.