#--*-- coding:utf-8 --*--
#python3.5
#Author:YouHan
pcb = []
n = int(input("请输入你的进程数:"))
#输入函数
def inPcb():
i = 0
while(i < n):
print("**************************************")
pName = input("请输入第 %d 个进程名:" % (i+1))
arriveTime = int(input("请输入到达时间:"))
serviceTime = int(input("请输入服务时间:"))
"""将数据放入列表中
startTime=开始时间 finishTime=完成时间
zzTime=周转时间 dqzzTime=带权周转时间
AzzTime=平均周转时间 AdqzzTime=平均带权周转时间
"""
# 进程名,到达时间,服务时间,开始,完成,周转,带权周转
pcb.append([pName, arriveTime, serviceTime, 0, 0, 0, 0])
i += 1
#先来先服务算法
def FCFS():
#对列表按照到达时间进行升序排序 x:x[1]为依照到达时间进行排序
pcb.sort(key = lambda x:x[1], reverse = False )
#计算开始、完成时间
for i in range(n):
if(i == 0):
startTime = int(pcb[i][1])
pcb[i][3] = startTime
pcb[i][4] = startTime + int(pcb[i][2])
elif(i > 0 and int(pcb[i - 1][4]) < int(pcb[i][1])):
startTime = int(pcb[i][1])
pcb[i][3] = startTime
pcb[i][4] = startTime + int(pcb[i][2])
else:
startTime = pcb[i - 1][4]
Python3实现FCFS(先来先服务算法)和SJF(最短进程优先算法)
最新推荐文章于 2024-08-04 14:57:14 发布
该博客介绍如何使用Python3实现两种进程调度算法:FCFS(先来先服务)和SJF(最短进程优先)。通过用户输入进程信息,程序计算并输出每个进程的开始时间、完成时间、周转时间和带权周转时间,以及平均周转时间和平均带权周转时间。
摘要由CSDN通过智能技术生成