4.1
答:./process-run.py -l 5:100,5:100 命令行要执行的操作是CPU运行两个进程,而且每个进程都包含了5条指令,每条指令的CPU占用率都是100%。所以CPU的利用率一直会是100%。

4.2
答:完成这两个进程需要10单位的时间。首先我们可以知道命令行./process-run.py -l 4:100,1:0中的4:100,1:0表示CPU中一共有两个进程,先运行的进程4:100一共有4条指令,每条指令的CPU占用率都是100%,一共耗去4单位时间。随后的进程1:00表示仅有一条I/O指令,又因为README.md文档已经提示每条I/O指令的默认运行时长为5单位时间(包括了CPU发出指令即将进行I/O操作阻塞进程占去的1单位时间,实际I/O操作等待了4单位时间)。最后I/O操作完毕CPU再解除该进程的阻塞耗去1单位时间。综上一共需要10单位时间。

4.3
答:如果交换了进程顺序那么完成两个进程占去的时间以及CPU占用率和I/O设备占用率都会发生改变。因为process-run.py代码明确指出当未使用参数-S SWITCH_ON_END修饰命令行时,那么默认为SWITCH_ON_IO,当一个进程发出I/O请求时CPU不会去等待它运行结束,而是会切换到下一个进程以此达到更大效率。所以,PID:0进程发起I/O指令,CPU阻塞这个进程占去1个单位时间。随后CPU切换到PID:1进程在等待I/O运行完成的4个单位时间内完成PID:1进程的4个指令。最后I/O执行完成CPU解

最低0.47元/天 解锁文章
968

被折叠的 条评论
为什么被折叠?



