Py学习  »  Python

python中的fcfs调度算法

Faiq Yazdani • 5 年前 • 1452 次点击  

我需要实施 先到先得 python中的调度算法,所以我必须按升序对到达时间进行排序。我明白错误 list index out of range . 分类的条件应该是什么?我认为我的情况是正确的,但不起作用。

arrival_time=[]

burst_time=[]

ch=int(input("Enter number of processes:"))

i=0

while i<ch:

    a=int(input("Enter arrival time:"))
    b=int(input("Enter burst time:"))
    arrival_time.insert(i,a)
    burst_time.insert(i,b)
    i=i+1

print("Process Arrival Time  Burst Time ")
print(arrival_time,burst_time)

count=0

for j in range(ch-1):
     for l in range(l+1+count,ch):
        if arrival_time[j]>arrival_time[l+1+count]:
            temp=arrival_time[j]
            arrival_time[j]=arrival_time[l+1+count]
            arrival_time[l+1+count]=temp
     count=count+1


print(arrival_time)  
k=0
sum=0
print("Gantt Chart")

while k<ch:
    if k==0:
        sum=sum+burst_time[k]      
        print(arrival_time[k],"------",sum)

    elif k>0:

        sum1=sum+burst_time[k]       
        print("-------",sum1)

    k=k+1
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43220
 
1452 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Ijaz Ahmad Khan
Reply   •   1 楼
Ijaz Ahmad Khan    6 年前
bt=[]
print("Enter the number of process: ")
n=int(input())
print("Enter the burst time of the processes: \n")
bt=list(map(int, raw_input().split()))

wt=[]
avgwt=0
tat=[]
avgtat=0

wt.insert(0,0)
tat.insert(0,bt[0])

for i in range(1,len(bt)):
   wt.insert(i,wt[i-1]+bt[i-1])
   tat.insert(i,wt[i]+bt[i])
   avgwt+=wt[i]
   avgtat+=tat[i]

avgwt=float(avgwt)/n
avgtat=float(avgtat)/n
print("\n")
print("Process\t  Burst Time\t  Waiting Time\t  Turn Around Time")

for i in range(0,n):
   print(str(i)+"\t\t"+str(bt[i])+"\t\t"+str(wt[i])+"\t\t"+str(tat[i]))
   print("\n")

print("Average Waiting time is: "+str(avgwt))
print("Average Turn Arount Time is: "+str(avgtat))

运行: enter image description here