代码如下:
"""磁盘调度算法,FIFO,SSTF,SCAN,CSCAN"""
import random
from collections import deque
from functools import reduce
path_num = int(input("path_num:"))
Disk_path = [x for x in random.sample(range(0, 201), path_num)]
Begin_path = random.choice(range(0, 201))
Disk_path_order = []
Move_order = []
Sum_moving = 0
Average_moving = 0
class disknode:
"""都是新式类了"""
def __init__(self):
self.val = None
self.next = None
self.pre = None
def initial():
global path_num, Move_order, Disk_path_order, Average_moving,Sum_moving
Disk_path_order = []
Move_order = []
Average_moving = 0
Sum_moving = 0
def display():
print("初始磁道:", Begin_path)
print("磁道请求序列:", Disk_path)
print("磁道调度序列:", Disk_path_order)
print("移动距离序列:", Move_order)
print("总移动距离:", Sum_moving)
print("平均移动距离:", Average_moving)
def fifo():
global Average_moving, Sum_moving
count = 0
while count < len(Disk_path):
if count == 0:
Disk_path_order.append(Disk_path[count])
Move_order.append(abs(Disk_path_order[count] - Begin_path))
else:
Disk_path_order.append(Disk_path[count])