计算机操作系统实验

running=[]
ready=[]
block=[]
#用列表存储进程


#菜单函数
def menu():
    pass
    print('{:*^30}'.format(''))
    print('{: ^30}'.format('1.创建进程'))
    print('{: ^30}'.format('2.时间片结束'))
    print('{: ^30}'.format('3.阻塞进程'))
    print('{: ^30}'.format('4.唤醒进程'))
    print('{: ^30}'.format('5.结束进程'))
    print('{: ^30}'.format('6.退出'))
    print('{:*^30}'.format(''))

#创建进程
def creatNewProcess():
    temp = input('请输入进程名称:')
    if len(running)==0:
        running.append(temp)
    else:
        ready.append(temp)
    # print(ready)



#时间片到
def timeOut():
    if len(running)!=0:
        ready.append(running[0])
        del running[0]
        running.append(ready[0])
        del ready[0]





#阻塞进程
def blockProces():
    if len(running)!=0:
        block.append(running[0])
        del running[0]
        if len(ready)!=0:
            running.append(ready[0])
            del ready[0]







#唤醒进程
def wakeProcess():
    if len(block)!=0:
        ready.append(block[0])
        del block[0]



#结束进程
def endProcess():
    if len(running)!=0:
        del running[0]
    if len(ready)!=0:
        running.append(ready[0])
        del ready[0]







#显示
def display():
    print('running:', end=' ')
    for i in range(len(running)):
        print(running[i], end=' ')
    print()


    print('ready:',end=' ')
    for i in range(len(ready)):
        print(ready[i],end=' ')
    print()


    print('block:',end=' ')
    for i in range(len(block)):
        print(block[i],end=' ')
    print()







#主函数
if __name__=='__main__':
    while 1:
        menu()
        temp=input('请选择功能:')
        if temp=='1':
            creatNewProcess()
            display()
        elif temp=='2':
            timeOut()
            display()
        elif temp=='3':
            blockProces()
            display()
        elif temp=='4':
            wakeProcess()
            display()
        elif temp=='5':
            endProcess()
            display()
        elif temp=='6':
            exit()
        else:
            print('输错了!')




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值