两道操作系统题目---多道程序
来源:互联网 发布:ahp 判断矩阵 matlab 编辑:程序博客网 时间:2024/06/05 08:54
通过一个多道编程的具体例子,来看看多道编程时计算机里面事件的发生顺序和多道编程环境下系统响应时间的提升。
假定我们有4个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU,每个程序的启动时间和其需要使用CPU进行计算机的分钟数如表4-1所示。
从0点0分开始到0点10分,系统里只有1个程序,因此属于单道编程状态。单道编程时CPU的利用率为20%,因此第1个程序在该10分钟里总共使用了CPU达2分钟(其他8分钟都用来进行I/O了)。0点10分到0点15分,系统里面有两个程序,因此属于2道编程。2道编程时CPU利用率为36%,则在5分钟时间内,CPU使用了1.8分钟。假定这两个程序完全平等,则每个程序使用CPU的时间是0.9分钟。至此,程序1总共运行了2.9分钟CPU时间,程序2运行了0.9分钟CPU时间。
从0点15分开始到0点20分,系统里面有3个程序,因此属于3道编程状态。3道编程时CPU的利用率为48.8%,则在这5分钟时间内,CPU被占用了大约2.4分钟(其他2.6分钟都用来I/0了)。同样,假定所有程序完全平等,则每个程序使用CPU的时间为0.8分钟。至此,程序1总共运行了3.7分钟CPU时间,程序2运行了1.7分钟CPU时间,程序3运行了0.8分钟CPU时间。此时,程序1离结束所需要的CPU时间最短,仅为0.3分钟。
从0点20分开始,系统里面有4份额程序,因此属于4道编程。我们知道4道编程时CPU利用率为59%而如果程序1想再运行0.3分钟CPU时间,则整个系统需运行时间约为2分钟(2分钟时间内CPU共被使用1.2分钟,平均每个程序使用CPU时间为0.3分钟)因此在0点22分时,第一个程序执行完毕,系统变为3道编程。
多道编程比起单道编程,系统平时响应时间缩短了11.375分钟,响应时间减少了41.37%。多道编程带来的好处到底有多少和每个程序的性质、多道编程的度数、进程切换消耗等有关。但一般说来,只要度数适当,多道编程总是利大于弊。
假定我们有3个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU。每个程序启动时间和其需要使用进行计算的分钟数如下,不考虑进程切换时间。
程序编号 启动时间 需要CPU时间(分钟)
1 00:00 3.5
2 00:10 2
3 00:15 1.5
请问在多线程/进程环境下,系统的总响应时间是()
A.22.5 B.23.5 C.24.5 D.25.5
解释:
CPU利用率:io处理占总时间比例p 则多道程序 cpu占用率 为 1-p^n只有 多个都处于等待才不是cpu时间。
做出的正确结果应该是23.47,也就是答案B
分析过程:
分析步骤:
0-10分钟的时候,只有一个进程1在运行。
单进程CPU占有率是20%,所以这10分钟内,进程1消耗了2分钟的CPU。进程2是0,进程3也是0
然后在10-15分钟内,有两个进程在运行(1和2),双进程的CPU利用率是36%,
所以,这五分钟内,CPU一共利用了1.8分钟,平均分给每个进程,是0.9分钟。
此时,进程1已经占用了CPU 2.9分钟,还需要0.6分钟,这时候有三个进程在运行,所有总的CPU时间需要1.8分钟。
三进程的CPU利用率是48.8%,所以总共需要1.8/0.488=3.69分钟。这时,进程1已经3.5分钟的CPu利用时间利用完了。
此时还剩下2和3号进程在运行。
2号进程还需要0.5分钟,所以0.5×2/0.36=2.78,此时2号进程的2分钟CPU时间也利用完了。
3号进程还需要0.4分钟的CPU利用时间。0.4/0.2 = 2
- 两道操作系统题目---多道程序
- 分时操作系统和多道程序操作系统的区别
- 分时操作系统和多道程序操作系统的区别
- 单道批处理操作系统、多道批处理操作系统以及分时操作系统区别
- 操作系统的多道编程
- 什么是多道程序?
- 多道程序 cpu利用率
- 多道程序系统
- 多重处理与多道操作系统
- 操作系统的多道编程笔记
- 操作系统学习笔记(一)--批处理、多道程序系统、分时操作系统、实时操作系统和操作系统操作
- 操作系统学习笔记(三):多道程序的基础——空分复用
- 操作系统是如何工作的?——简单多道程序内核代码内核分析
- 一个简单的时间片轮转多道程序内核操作系统工作流程
- 操作系统是如何运行的(时间片轮转多道程序内核代码)
- 从一个简单的时间片轮转多道程序内核代码看操作系统如何运行
- 基于时间片轮转多道程序内核代码分析操作系统的工作过程
- 通过一个简单的时间片轮转多道程序内核代码,分析linux操作系统系统
- C++ primer笔记——第五章 表达式
- 深入分析Java多态性
- 题目1065:输出梯形
- 输入一个字母打印出字母菱形
- RestFul API
- 两道操作系统题目---多道程序
- 看果粉如何让拾主自动归还丢失的iPad
- 线程与进程的区别
- toLowerCase()方法 toUpperCase()方法
- AC自动机
- 为应用提供文件的拖放功能
- WPF学习之路由事件
- [转]Android的Handler总结
- Qt+OpenGL 3ds模型的导入