操作系统实用教程第二版OS习题复习资料文档格式.docx
- 文档编号:19511307
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:26
- 大小:53.62KB
操作系统实用教程第二版OS习题复习资料文档格式.docx
《操作系统实用教程第二版OS习题复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统实用教程第二版OS习题复习资料文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
操作系统的特征有:
并发性,共享性,不确定性,虚拟性。
其中并发性和共享性是其主要特征。
由于操作系统建立并控制着多个并发执行的进程,完成着同时进行的几项任务,进程之间相互制约,并且共享着系统的某些资源,进程的这些活动便形成了操作系统的主要特征。
并且许多事件的产生是随机的,而且事件产生的先后顺序又有许多可能组合,但操作系统必须能处理任何一种可能的事件序列。
所以,操作系统又具有不确定性。
另外,操作系统中还广泛使用了虚拟技术,使得配备了操作系统之后的系统在资源的使用上更加自由和灵活,不受物理设备数量的限制。
7.设一计算机系统有输入机一台、打印机两台,现有二道程序同时投入运行,且程序A先开始运行,程序B后运行。
程序A的运行轨迹为:
计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。
程序B运行的轨迹为:
计算50ms,输入数据80ms,再计算100ms,结束。
要求:
(1)用图画出这二道程序并发执行时的工作情况。
(2)说明在二道程序运行时,CPU有无空闲等待?
若有,在哪段时间内等待?
为什么会空闲等待?
(3)程序A、B运行时有无等待现象?
在什么时候会发生等待现象?
(1)工作情况如图。
程序A
程序B
时间
(2)CPU有空闲等待,它发生在100ms~150ms时间段内,此时间段内程序A与程序B都在进行I/O操作。
(3)程序A无等待现象,程序B在0ms~50ms时间段与180ms~200ms时间段内有等待现象。
打印机
输入设备
t
50ms
100ms
150ms
180ms
200ms
300ms
工作情况的另一种描述形式如下:
进程管理习题
1现代操作系统中为什么要引入“进程”概念?
它与程序有什么区别?
答:
之所以要引入进程的概念,是因为在一些可以并发的程序段之间,存在着某种相互制约的关系,每个程序段的执行不仅要受到其它程序执行的制约,而且还要动态地依赖系统资源的分配情况,因此每个可以并发执行的程序段就会因外界条件的限制而不能运行,被迫处于阻塞状态。
仅用程序的概念无法表示程序的走走停停以及程序运行过程中对资源的竞争现象,因此需要采用一种动态的概念描述并发程序这种走走停停的现象,这就产生了进程的概念。
进程和程序的区别:
(1)进程是程序的执行过程,是动态的过程,属于一种动态概念。
程序是一组有序静态指令和数据的集合,用来指示处理机的操作,是一种静态概念。
(2)从结构上看,每个进程实体是由程序段和相应的数据段两部分构成,并且进程结构中还要包含PCB,即进程控制块。
(3)一个进程可以涉及到一个或几个程序的执行;
反之,同一程序可以对应多个进程,即同一个程序段可以在不同数据集合上运行,可以构成不同的进程。
(4)进程能真实地描述并发执行的过程,而程序仅仅是静态指令堆积的序列。
(5)进程有可创建其他进程的功能,而一般的程序不具有创建其它程序的功能。
(6)每一个程序都是在一个进程现场中运行的。
2叙述进程的并发性和制约性。
并发性是进程的重要特征。
即多道程序中多个进程同时向前推进的过程,没个进程总是与其它进程并发地执行的。
进程的制约性是指一个进程的运行受到另一进程的制约。
比如有的进程可能正在等待另一进程的计算结果而无法运行,或者进程所需的资源被别的进程占有而无法运行。
3进程的含义是什么?
如何构造和描述进程?
进程是程序的一次执行。
进程由“进程控制块+程序+数据”构成,用进程控制块描述进程。
4有三个并发进程,R负责从输入设备读入信息并传送给M,M将信息加工并传送给P,P将打印输出,写出下列条件下的并发程序。
(1)双缓冲区,每个区大小为K。
(2)单缓冲区,其大小为K。
(1)双缓冲区,每个区大小为K,信号量初值如下:
mutexR=mutexP=1;
emptyR=emptyP=k;
fullR=fullP=0;
变量的初值如下:
inR=outR=inP=outP=0;
用类Pascal编写程序如下:
var
mutexR,mutexP,emptyR,fullR,emptyP,fullP:
semaphere;
inR,outR,inP,outP:
integer;
buffer:
array0..k-1ofitem;
bufferP:
procedureR
begin
whiletruedo
输入数据data1;
P(emptyR);
P(mutexR);
bufferR(inR):
=data1;
inR:
=(inR+1)mod(k);
V(mutexR);
V(fullR);
end
end;
procedureM
whiletruedo
begin
P(fullR);
P(mutexR);
data2:
=bufferR(outR);
outR:
=(outR+1)mod(k);
V(emptyR);
对data2进行加工;
P(emptyP);
P(mutexP);
bufferP(inP):
=data2;
inP:
=(inP+1)mod(k);
V(mutexP);
V(fullP);
procedureP:
P(fullP);
P(mutexP)
data3:
=bufferP(outP);
outP:
=(outP+1)mod(k);
V(emptyP);
打印data3;
end
seminitinal(mutexR.v,1;
mutexP.v,1;
emptyR.v,k;
fullR.v,0;
emptyP.v,k;
fullP.v,0);
=0;
cobegin
R;
M;
P;
coend
end.
(2)单缓冲区,大小为k
var
empty,full,ok,mutex:
inR,outR,inP,outP:
buffer:
procedureR:
输入数据data1;
P(empty);
P(mutex);
buffer(inR):
V(mutex);
V(full)
procedureM:
whileturedo
P(full);
==buffer(outR);
=(outR+1)mod(k);
V(mutex);
对data2加工;
buffer(inP):
V(ok);
proedureP:
begin
whileturedo
P(ok);
=buffer(outP);
=(outP+1)mod(k);
V(empty);
打印data3;
seminitial(empty.v,k;
full.v,0;
ok.v,0;
mutex.v,1);
5在生产者与消费者问题的算法中,交换两个V操作的次序会有什么结果?
交换两P操作的次序呢?
说明理由。
交换两P操作的次序有可能造成死锁。
例如,当无空缓冲区时,如果此时生产者先做互斥操作,即:
P(mutex),然后才做同步操作P(empty),由于此时empty=-1造成生产者被阻塞。
当消费者执行到互斥操作P(mutex)时,由于生产者已执行过P(mutex)并未作释放,所以此时mutex=-1,造成消费者也被阻塞,生产者等消费者释放空缓冲区,而消费者则等待生产者释放临界资源的使用权,所以两个进程都无法向前推进而造成死锁。
交换两个V操作的次序不会发生死锁。
6设有三个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲块组成的缓冲池;
B与C也构成一对生产者与消费者(此时B为生产者,C为消费者),共享另一个由m个缓冲块组成的缓冲池。
用P、V操作描述它们之间的同步关系。
mutexA,emptyA,fullA,mutexC,emptyC,fullC:
i,j,a,b:
bufferA:
array0..n-1ofitem
bufferC:
array0..m-1ofitem;
procedureproduceA:
生产者进程A
whileturedo
Producenextproduct;
P(emptyA);
P(mutexA);
bufferA(i):
=products;
i:
=(i+1)mod(n);
V(mutexA);
V(fullA)
end
procedureconsumer_procedurerB:
消费者和生产者进程B
whileturedo
P(fullA);
P(mutexA);
Goods:
=buffer(j);
j:
=(j+1)mod(n);
V(emptyA);
ConsumegoodsandProducenextproductC;
P(emptyC);
P(mutexC);
BufferC(a):
=productC;
a:
=(a+1)mod(m);
V(mutexC);
V(fullC)
procedureconsumerC;
消费者C进程
begin
whileturedo
begin
P(fullC);
P(mutexC);
=bufferC(b);
b:
=(b+1)mod(m);
V(emptyC);
Consumeproduct;
Seminitsal(mutexA.v,1;
mutexC.v,1;
emptyA.v,n;
emptyC.v,m;
fullA.V,0;
fullC.V,0);
b:
cobegin
produceA
consumer_procedurerB;
consumerC
7有一阅览室,共有100个座位。
读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名。
读者离开时要消掉登记内容。
试用P、V操作描述读者进程的同步结构。
mutex:
信号量,用于互斥
full:
信号量,用于同步
table:
array0..n-1ofitem;
登记表
procedurereader;
读者进程
Register_name(table);
Reading;
Delet_name(table);
seminitsal(mutex.v,1;
full.v,100);
初始化
reader;
...
8.引入线程的目的是什么?
引入线程的目的是提高程序执行的并行度。
9引入管程的目的是什么?
引入管程的目的把分散的临界区集中起来管理,为每个可共享的资源设立一个专门的机构来统一管理各进程对该共享资源的访问。
这样使互斥操作更安全,既便于系统管理共享资源,又能保证互斥访问。
10用管程实现读者与写者关系。
管程部分描述如下:
monitorrw;
conditionwrt;
varreadcount:
procedureentryread_start();
readcount:
=readcount+1;
procedureentryread_finish();
=readcount-1;
ifreadcount=0thensingal(wrt)
procedureentrywrite();
ifreadcount>
0thenwait(wrt);
performwriting;
readcount:
=0
主程序部分:
procedurewritter:
repeat
rw.write();
untilfalse;
procedurereader:
repeat
rw.read_start();
performreading;
rw.read_finish();
writter;
coend.
11何谓进程通信?
进程通信是指进程之间的信息交换。
12消息通信机制中应设置哪些基本通信原语?
应设置send(A)(发送消息)原语,A是原语的参数,表示发送区的起始地址。
receive(B)(接受消息)原语,B是接受进程提供的接收区起始地址。
13何谓死锁?
举例说明之。
两个以上的进程相互等待一个永远不可能发生的条件而无法向前推进,这种僵局称为死锁。
例如:
如图所示的单行道上的交通阻塞。
存储管理习题
1.何谓名字空间?
何谓地址空间?
何谓存储空间?
名字空间:
程序中符号名的集合。
地址空间:
在目标模块中的地址的集合。
存储空间:
实际内存地址的集合。
汇编编译地址重定位
连接
名字空间地址空间存储空间
2.在分区分配方案能用于实现虚拟内存吗?
不能,因为虚拟存储最重要的特点就是离散性,而分区分配方案只适用于连续分配方式,即全部程序都放在内存,而不允许程序运行时一部分在内存、一部分在外存。
所以,无法提供内存的逻辑扩充功能。
3.为什么要引入动态重定位?
如何实现?
动态重定位示意图
1000
1100
1300
1400
LOAD1,300
5678
≈
内存
0
100
300
400
某程序的地址空间
+
动态重定位便于程序浮动。
由于在目标模块装入内存时无需对其进行任何修改,因而装入之后再搬迁也不会影响其正确执行。
实现时,需要采用动态重定位硬件机构:
重定位寄存器和加法器。
如图所示。
4.请详细说明,引入分页存储管理是为了满足用户哪几方面的需求?
1、为了充分利用空闲的存储空间,采取内存的不连续分配;
2、为了消除外零头,采用等分内存;
3、为了程序的浮动方便,采用动态地址重定位;
4、为了从逻辑上扩充内存,按照逻辑地址空间来访问程序,采用了虚拟存储管理。
5.为什么说分段系统较之分页系统更易于实现地址变换?
因为分段是按照逻辑功能分段,这样在地址变换时,针对的是一个完整的逻辑功能段,所以可以在实际需要时进行动态连接。
而分页则是按照物理页的大小划分所以一定要事先将所有的页面联接成一个整体后才能实现地址变换。
6.分页存储管理中有哪几种常用的页面置换算法?
试比较它们的优缺点。
(1)先进先出(FIFO)
(2)最近最少使用的淘汰算法(LRU)
(3)最近不经常使用的淘汰算法(LFU)
(4)最优算法(OPT)
FIFO算法最简单,但效率不高。
LRU的近似算法和LFU是较为实用的算法,效果较好,实现也不难。
OPT算法是最佳算法,但并不实用,因为要跟踪各页面方可预测未来,而这种预测往往是困难的。
输入/输出系统习题
1.设备管理的目标和功能是什么?
设备管理的主要目标是:
1)选择和分配输入/输出设备以便进行数据传输操作;
2)控制输入/输出设备和CPU(或内存)之间交换数据;
3)为用户提供一个友好的透明接口,把用户和设备的硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作;
4)提高设备和设备之间、CPU和设备之间以及进程和进程之间的并行操作度,以使操作系统获得最佳效率。
设备管理程序的主要功能是:
1)提供和进程管理系统的接口。
当进程申请设备资源时,该接口将进程的请求转送给设备管理程序;
2)进行设备分配;
3)实现设备和设备、设备和CPU等之间的并行操作;
4)进行缓冲区管理。
2.数据传送控制方式有哪几种?
试比较它们各自的优缺点。
外部设备和内存之间的常用数据传送控制方式有四种。
它们是:
1)程序直接控制方式;
其优点是控制简单,所需硬件支持少。
其缺点是CPU和外部设备只能串行工作,CPU的利用率低;
不能实现设备之间的并行工作;
只适用于那些CPU执行速度较慢,而且外部设备较少的系统。
2)中断控制方式;
其优点是所需硬件支持较少,与程序直接控制方式相比,使CPU的利用率大大提高且能支持多道程序和设备的并行操作。
其缺点是消耗的CPU处理时间较多;
随着外部I/O设备的增多和速度的提高,可能会造成CPU无法响应中断和出现数据丢失现象。
3)DMA方式;
其优点是I/O速度较快,大大减少了CPU进行中断处理的次数;
排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。
其缺点是所需硬件较多;
多个DMA控制器的同时使用会引起内存地址的冲突并使得控制过程进一步复杂化。
4)通道方式;
其优点是I/O速度快,进一步减轻了CPU的工作负担和增加了计算机系统的并行工作能力。
其缺点是控制较复杂,所需的硬件最复杂。
3.何谓通道?
试画出通道控制方式时的CPU、通道和设备的工作流程图。
通道是一个独立于CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。
它有自己的通道指令,可由CPU执行相应指令来启动通道,并在操作结束时向CPU发中断信号。
在运行的时候,通道有自己的总线控制部分,可以进行总线操作。
在有了通道之后,CPU仅需发出一条I/O指令给通道,说明要执行的I/O操作和要访问的I/O设备。
通道接到指令后,就启动相应的通道程序来完成I/O操作。
如下图:
设备
指定通道接收到start指令
通道设置设备的控制寄存器
数据入数据缓冲寄存器
改变设备控制寄存器的内容
传送完毕?
发中断信号,停止I/O操作
否
是
发start指令,指明I/O操作、设备号和对应通道,允许中断位与启动位置1
当前进程等待,调度程序调度其它进程
被调度进程执行
接收到中断信号吗?
转中断处理
CPU
缓冲寄存器的内容入内存
4.何谓中断?
何谓中断处理?
何谓中断响应?
中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实用教程 第二 OS 习题 复习资料