python先来先服务算法
时间: 2023-11-07 21:03:55 浏览: 51
先来先服务(FCFS)算法是一种非抢占式的调度算法,按照作业到达的时间顺序依次执行。在Python中,我们可以使用以下代码实现先来先服务算法:
```python
def fcfs(processes):
# 按照到达时间对进程进行排序
processes.sort(key=lambda x: x.arrive_time)
# 计算每个进程的等待时间和周转时间
total_wait_time = 0
total_turnaround_time = 0
current_time = 0
for process in processes:
# 等待时间 = 当前时间 - 到达时间
wait_time = current_time - process.arrive_time
if wait_time < 0:
wait_time = 0
# 周转时间 = 执行时间 + 等待时间
turnaround_time = process.burst_time + wait_time
# 更新总等待时间和总周转时间
total_wait_time += wait_time
total_turnaround_time += turnaround_time
# 更新当前时间
current_time += process.burst_time
# 计算平均等待时间和平均周转时间
n = len(processes)
avg_wait_time = total_wait_time / n
avg_turnaround_time = total_turnaround_time / n
# 返回结果
return (avg_wait_time, avg_turnaround_time)
```