没有合适的资源?快使用搜索试试~ 我知道了~
首页操作系统第四版习题解析:CPU利用率与并发执行分析
操作系统第四版习题解析:CPU利用率与并发执行分析
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 168 浏览量
更新于2024-07-01
收藏 1.55MB DOC 举报
"操作系统第四版课后习题答案.doc" 这篇文档包含了操作系统课程的第四版课后练习题及其解答,主要涉及操作系统管理和资源调度等核心概念。以下是对部分内容的详细解析: 1. 第一章的问题讨论了CPU利用率的计算。在原始情况下,系统内存能容纳4个用户进程,而每个进程80%的时间都在等待I/O,所以CPU的利用率可以通过公式1 - (等待概率)^进程数来计算。增加1MB内存后,系统可以同时运行9个进程,因此CPU利用率显著提高。解答通过比较两种情况下的利用率,计算出利用率提高了47%。 2. 第二章的问题探讨了并发执行中的CPU空闲和等待情况。在这个例子中,两个程序A和B并发执行,程序A的执行轨迹包括计算和打印,而程序B则包含计算、输入和更多计算。解答通过绘制并发执行图来分析CPU的空闲时段(100至150ms)以及程序B等待CPU的时段(180至200ms)。 3. 第三章的问题涉及到多道程序设计和调度策略。三道程序A、B、C按照优先级运行,解答提供了它们的内部计算和I/O操作时间图,并分析了抢占式和非抢占式调度下的运行时间。在抢占式调度中,所有程序完成总共需要190ms,比单道运行节省了70ms;而在非抢占式调度下,虽然没有给出具体时间,但可以理解它将比抢占式花费更多时间,因为程序执行不会被中断。 这些习题解答涵盖了操作系统中的关键知识点,如内存管理、CPU调度、I/O操作、并发执行和系统性能优化。这些问题的解决方法对于理解和掌握操作系统原理至关重要,特别是对于学习如何有效地分配和利用系统资源以及提高系统效率有深远影响。
资源详情
资源推荐
16 / 205
( 3 )时间片轮转法
按次序 ABCDEABDEABEAEA 轮转执行。
作业
执行时间
等待时间
周转时间
带权周转时间
A
B
C
D
E
10
6
2
4
8
20
l6
4
l2
20
30
22
6
16
28
3
3 .66
3
4
3. 5
作业平均周转时间
作业平均带权周转
时间
T = ( 30 + 22 + 6 + 16 + 28 ) / 5 = 20.4
W = ( 3 + 3.66 + 3 +4 + 3.5 ) / 5 = 3.43
17 / 205
12 (l)假定一个处理器正在执行两道作业,一道以计算为主,另一道以输入输出
为主,你将怎样赋予它们占有处理器的优先级?为什么?
(2)假定一个处理器正在执行三道作业,一道以计算为主,第二道以输入输出为
主,第三道为计算与输入输出均匀。应该如何赋予它们占有处理器的优先级使得
系统效率较高?
答:处理器调度算法会考虑以下因素:作业响应时间要求;让 CPU 尽量和外围
设备并行工作;限制一个计算进程长时间霸占处理器。因而,( 1 ) FO 为主作业
优先级高。(2 ) 输入输出为主作业优先级最高,输入输出均匀的作业其次,而
计算为主作业的优先级最低。
13 请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切
换,则 CPU 需要哪些信息?请描述用硬件完成进程切换的工作过程。
答:该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的 PCB 的
指针。当系统中发生了一个事件,如 FO 结束事件,CPU 便可把运行进程的上
下文保存到专用硬件寄存器指针指向的 PCB 中保护起来,然后,CPU 转向中
断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中
断服务例程,于是,便可启动中断服务例程工作。
14 设计一条机器指令和一种与信号量机制不同的算法,使得并发进程对共享变
量的使用不会出现与时间有关的错误。
解:
18 / 205
( l )设计机器指令。
设计一条如下的”测试、比较和交换”三地址指令,提供了一种硬件互斥解决方
案:
TC&S
R1
R3
B2
D2
该指令的功能如下:
l ) C 为一个共享变量,由地址 2 、即变址(B2 ) + D2 给出,
(2 )(Rl )与(C )比较,
(3 )如果(Rl ) = ( C )则(R3)→C ,并置条件码为"00" ,
如果(R1 )≠(c )则(C )→Rl ,并置条件码为"01 " .
( 2 )编写进程访问共享变量的程序。
对每个访问共享变量 C 的进程,编写访问共享变量的程序段为:
陆界区程序
说明
( C )→Rl ;
loop2 : ( R1 ) → R3 ;
Add /decrease R3 ;
TC & S ;
R( condition = 01 )
loop2 ;
共享变量 C 的值保护到 RI 中。
Rl 的值传送到 R3 中,进程修改共享变量时,先对 R3
操作(不是直接操作 C )。
R3 加 1 /减 1 ,进程归还/申请由共享变量 C 代表
的共享资源(假定每次一个)。
执行”测试、比较和交换”指令。
条件码=01 ,转向循环 loop2 ;否则离开临界区。
19 / 205
( 3 )程序执行说明。
此解与互斥使用共享变量的思路绝然不同,并发运行的进程可不互斥地访问它们
的共享变量。此方案认为造成共享变量 C 值错误的原因在于:一个进程(Pl )
在改变 C 值的过程中,另一个进程伊 2 )插进来也改变了 C 的值,而本进程
(Pl)却不知道,造成了 c 值结果不正确。如果有办法使本进程口 1 )能知道 C
值是否改变,改变的话在继承改变了的 C 值的基础上,再作自己的改变操作,
则就不会导致共享变量 C 值的错误。为此,本解决方案中,当一个进程 l)准备
改变 C 值时,先把 C 的值保护在 Rl 中,然后,通过 R3 来改变共享变量 C 的
值。当要把新的值(即 R3 内的值)送 C 之前,先要判断一下在本进程(P1 )
工作期间是否有别的进程口 2 )插进来也改变了 C 的值(并发进程 P1 、P2
的执行完全会造成这种情况),方法是:将扭 1 )中被保护的 C 的原来值,与
C 的当前值比较,若相等,说明 C 值未被改变过,则将本进程(Pl )修改过的
新值送 C (即(R3 ) 一 C ) ;若不相等,说明 C 值在工作期间被改变过,则
应该继承 C 的新值(即(C )一 Rl )并且返回到 loop2 处重新对 C 值计数,
以此保证 C 值的最终结果的正确性。这里提与”进程工作期间”指的是一个进程
从开始至结束对共享变量 C 值的操作的这段时间,也就是执行进程,' I 晦界区”
这段程序的时间。此外,在进程进入临界区之前,应等待直到 C 为非。(即有
资源可用)为止。
20 / 205
( 4 )举例。
假定系统中有静态分配资源磁带机共 3 台,被 N 个进程共享,由共享变量 C 来
代表可用磁带机台数,其初值为 3 。现有并发进程 P1 和 P2 均申请使用磁带机,
执行临界区程序。
进程 Pl 执行临界区程序
( C )→R1 ;因(C)=3 ,故(R1) = 3 。
loop2: ( Rl )→R3 因(R1 ) = 3 ,故(R3 )当前也=3 。
decrease R3 :申请使用磁带机,做减 1 操作,故(R3 )=2.
TC & S 执行”测试、比较和交换,, TC & S 指令。
如果 R1=(C )则(R3 )→C,即(C)=2 ,并置条件码为”00" , 跳出临界
区程序,去使用磁带机。
如果(Rl ) ≠ (C) ,例如,( C )=2 ,说明进程 P2 抢先申请了磁带机,所以,
C 与保护在 R1 中的值不一样了(C 的值必
小于 Rl 的值),应以 C 的当前值为准,执行(C ) Rl ( R1 此时变为 2 ) ,并
置条件码为”01 " ,转向 foopZ 。于是伍 1 ) = 2 , 跟着(R3 卜 2 。接着卿)
减 1 后应=l 了。再执行 TC & S 时,由于伍 1 卜(C ) = 2 ,会使 C 变为 1 。
r ( conditio 二 01 ) loop2 ;
巧单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先
算法进行调度,哪一种算法性能较好?请完成下表:
作业
提交时间
运行时间
开始时间
完成时间
周转时
间
带权周
转时间
剩余204页未读,继续阅读
智慧安全方案
- 粉丝: 3728
- 资源: 59万+
下载权益
电子书特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功