-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProcess.py
54 lines (49 loc) · 2.49 KB
/
Process.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class Process:
def __init__(self, process_id, arrival_time, CPU_burst_time_1, CPU_burst_time_2, IO_burst_time):
self.process_id = process_id
self.arrival_time = arrival_time
self.CPU_burst_time_1 = CPU_burst_time_1
self.CPU_burst_time_2 = CPU_burst_time_2
self.IO_burst_time = IO_burst_time
self.response_time = -1
self.turn_around_time = -1
self.waiting_time = -1
self.termination_time = -1
self.priority_number = -1
def print_process(selected_process):
print(f"Process ID: {selected_process.process_id} |"
f"Arrival Time: {selected_process.arrival_time} | "
f"CPU Burst Time 1: {selected_process.CPU_burst_time_1} |"
f"IO Burst Time: {selected_process.IO_burst_time} | "
f"CPU Burst Time 2: {selected_process.CPU_burst_time_2} |"
f"Response Time: {selected_process.response_time} | "
f"Turn Around Time: {selected_process.turn_around_time} |"
f"Waiting Time: {selected_process.waiting_time} | "
f"Termination Time: {selected_process.termination_time}")
def copy_process(selected_process):
new_process = Process(selected_process.process_id,
selected_process.arrival_time,
selected_process.CPU_burst_time_1,
selected_process.IO_burst_time,
selected_process.CPU_burst_time_2)
new_process.response_time = selected_process.response_time
new_process.turn_around_time = selected_process.turn_around_time
new_process.waiting_time = selected_process.waiting_time
new_process.termination_time = selected_process.termination_time
return new_process
def process_priority_number(selected_process):
waiting_time = get_process_waiting_time(selected_process)
service_time = selected_process.CPU_burst_time_1
service_time += selected_process.CPU_burst_time_2
priority_number = waiting_time/service_time
selected_process.priority_number = priority_number
return priority_number
def get_process_turnaround_time(selected_process):
tat = selected_process.termination_time - selected_process.arrival_time
selected_process.turn_around_time = tat
return tat
def get_process_waiting_time(selected_process):
tat = get_process_turnaround_time(selected_process)
wt = tat - (selected_process.CPU_burst_time_1 + selected_process.IO_burst_time + selected_process.CPU_burst_time_2)
selected_process.waiting_time = wt
return wt