资源简介

大学操作系统课程 综合实验 单处理器系统的时间片轮转进程调度 算法,使用python实现。带注释。

资源截图

代码片段和文件信息

#coding=utf-8

N = 0 #进程的数目
finish = None
ready  = None
tail   = None
run    = None

class PCB:
name  = ‘‘
prio  = 0  #进程优先级
q    = 0 #时间片大小
time  = 0   #剩余时间
count = 0 #循环论转法一个时间片内进程运行时间
state = ‘W‘ #状态标识:‘R‘:运行, ’W‘:等待, ‘F‘:结束
next  = None #指向下一个进程


def insert(e): #插入元素到tail
global tail
tail.next = e
tail = e
e.next = None

def inQueue(): #调度就绪队列的第一个进程投入运行
global ready run
if ready is not None:
run = ready
ready = ready.next
run.state = ‘R‘
run.next = None

else:
run = None

def printtitle(chose): #打印表头
if chose  in {‘p‘ ‘P‘}:
print ‘name time priority state‘
else:
print ‘name    time   count    q     state ‘

def printInfo(chose pcb): #打印每一行的状态信息
if chose in {‘p‘ ‘P‘}:
print ‘%s\t%d\t%d\t\t%c\n‘%(pcb.name pcb.time pcb.state)
else:
print ‘%s\t%d\t%d\t%d\t%c\n‘%(pcb.name pcb.time pcb.count pcb.q pcb.state)

def printAll(chose):#打印每一次执行完的所有进程状态
global run ready
printtitle(chose)

if run is not None:
printInfo(chose run)

pcb = ready
while pcb is not None:
printInfo(chose pcb)
pcb = pcb.next

pcb = finish
while pcb is not None:
printInfo(chose pcb)
pcb = pcb.next

def roundRunInit(chose):#队列初始化
global N run ready finish tail
print ‘>>>>>>>>

评论

共有 条评论