《操作系统导论》实验一:模拟进程状态转换

本文介绍了《操作系统导论》实验一的内容,涉及进程状态转换的模拟。通过process-run.py脚本,展示了不同参数下进程运行、I/O请求、CPU利用率及时间单位的计算,解释了SWITCH_ON_END和IO_RUN_IMMEDIATE参数对执行时间的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.作业包:process-run.py
2.作业说明:在这里插入图片描述
3.作业要求:

(1)使用参数-l 5:100,5:100 运行 process-run.py
参数 -l PROCESS_LIST:逗号分隔的进程列表,形式是X1:Y1,X2:Y2,...,其中X代表进程指令数,Y(0~100)代表运行指令还是声明I/O请求
在这里插入图片描述在这里插入图片描述
该命令运行进程0,运行5条指令,且每条指令的CPU占用率为100%,此时进程1处于就绪状态,进程0运行完毕,CPU运行进程1,执行同样操作,总用时10单位时间。

(2)使用参数-l 4:100,1:0 运行 process-run.py
在这里插入图片描述
该命令运行进程0,运行4条指令,且每条指令的CPU占用率为100%,之后进程1发出I/O请求,CPU阻塞该进程,I/O执行3单位时间,CPU解除进程1的阻塞状态,进程1执行完成操作,总用时10单位时间。

(3) 切换进程顺序:-l 1:0,4:100
在这里插入图片描述
该命令运行进程0发出I/O请求,CPU阻塞该进程,并执行I/O操作,同时CPU运行进程1,运行4条指令,且每条指令的CPU占用率为100%,4个单位时间后I/O操作和进程1均运行完成,进程0执行完成操作,总用时6个单位时间。

(4) SWITCH_ON_END 参数会使得CPU等待I/O操作的完成
在这里插入图片描述
SWITCH_ON_END参数会使得CPU等待I/O操作的完成。
该命令运行进程0发出I/O请求,CPU阻塞该进程,并执行I/O操作4个单位时间,然后进程0执行完成操作,同时CPU运行进程1的指令,运行4个单位时间,总用时9个单位时间。

(5) SWITCH_ON_IO 参数会使得CPU在I/O操作时同时运行进程,为该模拟器的默认操作,结果与(3)一致

(6)(7) IO_RUN_IMMEDIATE参数 VS IO_RUN_LATER参数
为增强对比,减少I/O请求为2条,CPU进程为1个。
在这里插入图片描述
两者的区别在于I/O操作执行完是CPU先接受下一个I/O请求,还是运行进程指令。由于采用默认模式SWITCH_ON_IO,CPU执行指令与I/O操作同时进行,因而 IO_RUN_IMMEDIATE快一个单位时间。

(8)题为上述命令综合运用,提高不大,不做。

1.目的: 自行编制模拟程序,通过形象化的状态显示,深入理解进程的概念、进程之间的状态转换及其所带来的PCB内容 、组织的变化,理解进程与其PCB间的对应关系。 2. 内容及要求: 1) 设计并实现模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 2) 独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。 3) 合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。 4) 设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。 5) 代码书写要规范,要适当地加入注释。 6) 认真进行预习,完成预习报告。 7) 实验完成后,要认真总结,完成实验报告。 3.使用的数据结构及说明: 在本实验中,主要用到的数据结构是PCB的结构,其中PCB的数据结构如下: struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下个指针 } ; 其中,P_Id,和P_Name用来标示进程,而P_State用来标示进程的五种状态:Create_state,Ready_state,Block_state,Run_state,Exit_state。P_Runtime标示要完成进程所需要的间。P_Requiry标示进程的执行所需要的其他条件,当其他的条件满足,则P_Requiry置1,否则置0。Struct PCB * next 用来指向同队列中的下个PCB块。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值