Skip to content

Commit 658ea22

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent e5d5c57 commit 658ea22

File tree

1 file changed

+45
-13
lines changed

1 file changed

+45
-13
lines changed

scheduling/cpu_scheduling_interface.py

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ def _simulate_fcfs(self) -> Generator[tuple[int, str, list[str]], None, None]:
7474
process["completion"] = t
7575

7676
# shortest job first non preemptive
77-
def _simulate_sjf_np(self) -> Generator[tuple[int, str | None, list[str]], None, None]:
77+
def _simulate_sjf_np(
78+
self,
79+
) -> Generator[tuple[int, str | None, list[str]], None, None]:
7880
"""
7981
Simulates Shortest Job First (Non-Preemptive).
8082
@@ -87,7 +89,11 @@ def _simulate_sjf_np(self) -> Generator[tuple[int, str | None, list[str]], None,
8789
processes = sorted(self.processes, key=lambda process: process["arrival"])
8890
done = 0
8991
while done < len(processes):
90-
ready = [process for process in processes if process["arrival"] <= t and "completion" not in process]
92+
ready = [
93+
process
94+
for process in processes
95+
if process["arrival"] <= t and "completion" not in process
96+
]
9197
if not ready:
9298
t += 1
9399
yield (t, None, [])
@@ -101,13 +107,19 @@ def _simulate_sjf_np(self) -> Generator[tuple[int, str | None, list[str]], None,
101107
done += 1
102108

103109
# shortest job first preemptive
104-
def _simulate_sjf_p(self) -> Generator[tuple[int, str | None, list[str]], None, None]:
110+
def _simulate_sjf_p(
111+
self,
112+
) -> Generator[tuple[int, str | None, list[str]], None, None]:
105113
"""Simulates SJF Preemptive scheduling."""
106114
t = 0
107115
processes = sorted(self.processes, key=lambda process: process["arrival"])
108116
done = 0
109117
while done < len(processes):
110-
ready = [process for process in processes if process["arrival"] <= t and process["remaining"] > 0]
118+
ready = [
119+
process
120+
for process in processes
121+
if process["arrival"] <= t and process["remaining"] > 0
122+
]
111123
if not ready:
112124
t += 1
113125
yield (t, None, [])
@@ -122,12 +134,18 @@ def _simulate_sjf_p(self) -> Generator[tuple[int, str | None, list[str]], None,
122134
t += 1
123135

124136
# priority non preemptive
125-
def _simulate_priority_np(self) -> Generator[tuple[int, str | None, list[str]], None, None]:
137+
def _simulate_priority_np(
138+
self,
139+
) -> Generator[tuple[int, str | None, list[str]], None, None]:
126140
"""Simulates Priority (Non-Preemptive) scheduling."""
127141
t = 0
128142
done = 0
129143
while done < len(self.processes):
130-
ready = [process for process in self.processes if process["arrival"] <= t and "completion" not in process]
144+
ready = [
145+
process
146+
for process in self.processes
147+
if process["arrival"] <= t and "completion" not in process
148+
]
131149
if not ready:
132150
t += 1
133151
yield (t, None, [])
@@ -141,12 +159,18 @@ def _simulate_priority_np(self) -> Generator[tuple[int, str | None, list[str]],
141159
done += 1
142160

143161
# priority preemptive
144-
def _simulate_priority_p(self) -> Generator[tuple[int, str | None, list[str]], None, None]:
162+
def _simulate_priority_p(
163+
self,
164+
) -> Generator[tuple[int, str | None, list[str]], None, None]:
145165
"""Simulates Priority (Preemptive) scheduling."""
146166
t = 0
147167
done = 0
148168
while done < len(self.processes):
149-
ready = [process for process in self.processes if process["arrival"] <= t and process["remaining"] > 0]
169+
ready = [
170+
process
171+
for process in self.processes
172+
if process["arrival"] <= t and process["remaining"] > 0
173+
]
150174
if not ready:
151175
t += 1
152176
yield (t, None, [])
@@ -244,8 +268,12 @@ def setup_ui(self) -> None:
244268
self.arrival_e.grid(row=1, column=1)
245269
self.burst_e.grid(row=2, column=1)
246270
self.priority_e.grid(row=3, column=1)
247-
ttk.Button(form, text="Add", command=self.add_process).grid(row=4, column=0, pady=5)
248-
ttk.Button(form, text="Delete", command=self.delete_process).grid(row=4, column=1)
271+
ttk.Button(form, text="Add", command=self.add_process).grid(
272+
row=4, column=0, pady=5
273+
)
274+
ttk.Button(form, text="Delete", command=self.delete_process).grid(
275+
row=4, column=1
276+
)
249277

250278
algo_frame = ttk.Frame(self.root)
251279
algo_frame.pack(pady=10)
@@ -267,7 +295,9 @@ def setup_ui(self) -> None:
267295
self.quantum_e = ttk.Entry(algo_frame, width=5)
268296
self.quantum_e.insert(0, "2")
269297
self.quantum_e.pack(side="left")
270-
ttk.Button(algo_frame, text="Run", command=self.run_scheduling).pack(side="left", padx=10)
298+
ttk.Button(algo_frame, text="Run", command=self.run_scheduling).pack(
299+
side="left", padx=10
300+
)
271301

272302
self.ready_label = ttk.Label(self.root, text="Ready Queue:")
273303
self.ready_list = tk.Listbox(self.root, height=3)
@@ -338,7 +368,9 @@ def animate(self) -> None:
338368
current_pid = pid
339369
colors.setdefault(pid, plt.cm.tab20(len(colors) % 20))
340370
self.ax.barh(0, 1, left=x, color=colors[pid])
341-
self.ax.text(x + 0.5, 0, pid, ha="center", va="center", color="white", fontsize=9)
371+
self.ax.text(
372+
x + 0.5, 0, pid, ha="center", va="center", color="white", fontsize=9
373+
)
342374
x += 1
343375
self.ax.set_xticks(range(x + 1))
344376
self.ax.set_yticks([])
@@ -363,7 +395,7 @@ def show_results(self) -> None:
363395
total_rt += row[6]
364396
n = len(self.engine.stats) or 1
365397
self.avg_label.config(
366-
text=f"AVG WT = {total_wt/n:.2f} | AVG TAT = {total_tat/n:.2f} | AVG RT = {total_rt/n:.2f}"
398+
text=f"AVG WT = {total_wt / n:.2f} | AVG TAT = {total_tat / n:.2f} | AVG RT = {total_rt / n:.2f}"
367399
)
368400

369401

0 commit comments

Comments
 (0)