操作系统例题汇总文档格式.docx
- 文档编号:20035369
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:22
- 大小:181.86KB
操作系统例题汇总文档格式.docx
《操作系统例题汇总文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统例题汇总文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
〔3〕在该例中,当程序A使用完设备甲时,由于CPU正被程序B占用,所以程序A必须等待一段时间〔如虚线所示〕。
同理,当程序B第二次使用完CPU准备使用设备动时,由于此时设备乙正被程序A占用,所以程序B也必须等待一段时间〔如虚线所示〕,这时CPU将空闲〔如虚线所示〕。
例1.4试述分时系统与实时系统,并比拟它们的区别。
解:
分时系统是指在一个系统中多个用户分时地使用同一计算机。
实时系统是指计算机及时响应外部事件的请求,在规定时限完成对该事件的处理,并控制所有实时设备和实时任务协调一致地运行。
实时系统与分时系统的主要区别有两点。
(1)分时系统的目标是提供一种通用性很强的系统,有较强的交互能力,而实时系统那么大都是具有特殊用途的专用系统,交互能力略差;
〔2〕分时系统对响应时间虽有要求,但一般来说,响应时间由人所能承受的等待时间来确定;
而实时系统对响应时间要求更高,一般由控制系统或信息处理系统所能承受的延迟时间来决定。
1.3习题
1.填空题:
(1)当CPU执行操作系统代码时,称处理机处于〔A〕执行态〔B〕目态〔C〕管态〔D〕就绪态
(2)在以下性质中,不是分时系统的特征。
〔A〕多路性〔B〕交互性〔C〕独占性〔D〕成批性
(3)以下仅一条指令只能在管态下执行。
〔A〕读取时钟指令〔B〕访管指令〔C〕屏蔽中断指令〔D〕取数指令
2.何谓管态〔系统态〕和目态〔用户态〕?
3.一般从哪几方面对操作系统的性能进展评价?
4.试说出几种你所熟悉的操作系统名称,并说明其特征。
5.试列举UNIX操作系统的特点。
6.根据你使用计算机系统的经历,说明操作系统的作用。
7.试说明批处理系统、分时系统和实时系统的主要特征。
8.如何理解网络操作系统的主要功能?
9.A,B两个程序,A按顺序使用CPU10s,使用设备甲5s,使用CPU5s,使用设备乙10s,最后使用CPU10s;
程序B按顺序使用设备甲10s,使用CPU10s,使用设备乙5s,使用CPU5s,最后使用设备乙10s。
请问:
(1)在顺序执行程序A和B时,CPU的利用率是多少?
(2)在多道程序环境下执行时,CPU的利用率是多少?
例题:
考虑5个进程P1,P2,P3,P4,P5,见表2.1。
规定进程的优先数越小,优先级越高。
试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。
假设忽略进程的调度时间。
〔1〕先来先效劳调度算法;
〔2〕时间片轮转调度算法〔时间片为1ns〕;
进程
创立时间
运行时间
优先数
P1
3
P2
2
6
5
P3
4
1
P4
P5
8
〔3〕非剥夺式优先级调度等法;
〔4〕剥夺式优先级调度算法。
表2.l例2.5数据表
练习题
一、单项选择题
1、一个进程是。
〔清华大学1996〕
A由协处理机执行的一个程序B一个独立的程序+数据集
CPCB构造与程序和数据的组合D一个独立的程序
2、并发进程之间。
A彼此无关B必须同步C必须互斥D可能需要同步或互斥
3、是进程调度算法。
A时间片轮转法B先来先效劳C响应比高者优先D均衡调度算法
4、当时,进程从执行扎转变为就绪状态。
〔西北工大1999〕
A进程被调度程序选中B时间片到C等待某一事件D等待的事件发生
5、系统中有n〔n>
2〕个进程,并且当前没有执行进程调度程序,那么不可能发生。
A有一个运行进程,没有就绪进程,剩下的n-1个进程处于等待状态
B有一个运行进程和n-1个就绪进程,但没有进程处于等待状态
C有一个运行进程和1个就绪进程,剩下的n-2个进程处于等待状态
D没有运行进程但有2个就绪进程,剩下的n-2个进程处于等待状态
6、支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中不是引起操作系统选择新进程的直接原因。
〔复旦大学1999〕
A运行进程的时间片用完B运行进程出错
C运行进程要等待某一事件的发生D有新进程进入就绪状态
二、判断题
1、在剥夺式进程管理方式下,现运行进程的优先级不低于系统中所有进程的优先级。
2、进程是一个独立的运行单位,也是系统进展资源分配和调度的根本单位。
3、程序的并发执行是指同一时刻有两个以上的程序,它们的指令在同一处理器上执行。
4、进程由进程控制块和数据集以及对该数据集进展操作的程序段组成。
5、并发是并行的不同表述,其原理一样。
三、问答题
1、操作系统中为什么要引入进程的概念?
为了实现进程的并发运行,操作系统在进程管理方面应做那些工作?
〔大学1997〕
2、试比拟进程与程序的区别。
〔工业大学2000〕
3、进程与线程的主要区别是什么?
〔西北工大1999〕
例:
假设某系统中有4种资源〔R1,R2,R3,R4〕,在某时刻系统中共有5个进程。
进程P1,P2,P3,P4,P5的最大资源需求数向量和此时已分配到的资源数向量分别为
进程当前已分配到资源最大资源需求
P1〔0,0,1,2〕〔0,0,1,2〕
p2〔2,0,0,0〕〔2,7,5,0〕
P3〔0,0,3,4〕〔6,6,5,6〕
P4〔2,3,5,4〕〔4,3,5,6〕
P5〔0,3,3,2〕〔0,6,5,2〕
系统中当前可用资源向量为〔2,1,0,0〕。
问:
〔1〕当前系统是否是平安的?
〔2〕如果进程3已发出资源请求向量〔0,1,0,0〕,系统能否将资源分配给它?
解:
〔1〕进程的最大资源需求数减去当前进程已获得的资源数就是进程仍需的资源数。
此时各个进程的仍需资源数向量为
P1:
〔0,0,0,0〕
P2:
〔0,7,5,0〕
P3:
〔6,6,2,2〕
P4:
〔2,0,0,2〕
P5:
〔0,3,2,0〕
而系统的可用资源向量为〔2,1,0,0〕,这时存在如下进程执行序列,可以使进程顺利执行完毕,所以该状态是平安的。
进程可用资源数
P1完成后:
〔2,1,1,2〕
P4完成后:
〔4,4,6,6〕
P5完成后:
〔4,7,9,8〕
P2完成后:
〔6,7,9,8〕
P3完成后:
〔6,7,12,12〕
〔2〕在P3发出资源请求〔0,1,0,0〕后,假设系统把资源分配给P3,那么各进程已分配资源数为
〔0,0,1,2〕
〔2,0,0,0〕
〔0,1,3,4〕
〔2,3,5,4〕
〔0,3,3,2〕
这时系统可用资源数为〔2,0,0,0〕,各个进程仍需资源向量为
〔6,5,2,2〕
满足资源需求的进程执行序列为
进程可用资源数
〔2,0,1,2〕
〔4,3,6,6〕
〔4,6,9,8〕
此时可用资源已不能满足P2或P3的需求,即此时系统状态是不平安的,系统将拒绝资源请求。
讨论银行家算法的关键是寻找一个进程的运行序列,如果系统按该序列调度进程运行,系统的可用资源就可以满足它们的需求,这时资源分配是平安的;
否那么,假设该进程序列不存在,那么资源分配是不平安的,系统暂不进展资源分配。
一、生产者和消费者问题
1、有n个缓冲区,一个生产者和一个消费者情况:
main()
{intS=1;
//可否进入缓冲区
intfull=0;
//产品数目
intempty=n//可用缓冲区数
intbuffer[n];
intin=0;
//指向下一个可放产品的缓冲区
intout=0;
//指向下一个可取产品的缓冲区
producer();
consumer();
}
producer()
{
While(生产未完毕)
{produceaproduct
P(empty);
P(S);
Buffer[in]=product;
in=(in+1)modn;
V(S);
V(full);
}
consumer()
While(消费未完毕)
{P(full);
TakeaproductfromBuffer[out]
Out=(out+1)modn;
V(empty);
Consumetheproduct
2、m个生产者和k个消费者共享n个缓冲区的情况:
main()
intB[n];
//缓冲区
intp=r=0;
//p表示生产者指针,r表示消费者指针
intS=1;
intempty=n;
//可用缓冲区数
producer-i(i=1,2,…,m);
consumer-j(j=1,2,…,k);
Producer-i(i=1,2,…,m)
while(producingdoesnotend)
{
produceaproduct
B[p]=product;
p=(p+1)modn;
//每放入一个产品,位置指针后移一位
V(full);
Consumer-j(j=1,2,…,k)
while(continuetoconsume)
P(full);
TakeaproductfromB[r]
r=(r+1)modn;
//从第一个开场,消费一个后,指向下一个
V(empty);
Consume
二、读者与写者问题
1、读者与写者有一样的优先级的情况:
//读者与写者,写者与写者间的互斥,即可否修改文件
intSr=1;
//可否修改读者个数
intrc=0;
//读者个数
reader();
writer();
reader()
While(读过程未完毕)
P(Sr);
if(rc==0)
{P(S);
rc=rc+1;
V(Sr);
readfileF
else
rc=rc+1;
V(Sr);
readfileF
rc=rc-1;
if(rc==0)V(S);
writer()
While(写过程未完毕)
P(S);
WritefileF
2、写者优先问题:
intSn=n;
//最多有n个进程可以同时进展读操作
reader(i)
P(Sn);
V(S);
ReadfileF
V(Sn);
writer(j)
P(S)
例题
1、有一个阅览室,读者进入时必须先在一登记表上进展登记。
该表为每一座位列出一个表目,包括座号、。
读者离开时要撤消登记信息。
阅览室有100个座位,试问:
(1)为描述读者的动作,应编写几个程序?
,应该设置几个进程?
进程和程序之间的关系如何?
(2)试用P、V操作描述这些进程之间的同步算法。
2、假设系统有某类资源m*n+1个,允许作业执行过程中动态申请该类资源,但在该系统上运行的每一个作业对该类资源的占有量在任一时刻都不会超过m+1个。
当作业申请资源时,只要资源尚未分配完,那么总能满足它的要求。
但用限制系统中可同时执行的作业个数来防止死锁。
你认为作业调度允许同时执行的最大作业数应为多少?
证明之。
3、假设系统有同类资源m个,被n个进程共享,试问:
当m>
n和m<
n,每个进程最多可申请多少个这类资源而使系统一定不会发生死锁?
4、设Pa,Pb,Pc为一组合作进程,其进程流程图如下所示。
试用信号灯的P、V操作实现这三个进程的同步。
5、医生给病人看病,需要化验,于是医生开出化验单,病人到化验室化验,化验结果送回医生处供医生诊断。
医生看病为一个进程,化验室化验为一个进程,二者需要交换信息,试用信号灯的P、V操作实现这两个进程的同步关系。
6、设有两个优先级一样的进程P1、P2如下:
令信号量S1,S2的初值为0,试问P1、P2并发运行完毕后X=?
y=?
z=?
进程P1进程P2
y=1;
x=1;
y=y+2;
x=x+1;
V(S1);
P(S1);
Z=y+1;
x=x+y;
P(S2);
V(S2);
Y=z+y;
z=x+z;
7、在一个盒子里,混装了数量相等的围棋白子和黑子。
现在要用自动分拣系统把白子和黑子分开。
该系统设有两个进程P1、P2,其中P1将拣白子,P2将拣黑子。
规定每个进程每次只拣一子。
当一进程正在拣子时,不允许另一进程去拣,当一进程拣了一子时,必须让另一进程去拣。
试写出两个并发进程能正确执行的程序。
8、桌上有一只盘子,每次只能放入一个水果。
爸爸专向盘中放苹果,妈妈专向盘中放橘子,一个女儿专等吃盘中的苹果,一个儿子专等吃盘中的橘子。
试用P、V操作写出他们能同步的程序。
例4.1某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。
试问:
〔1〕逻辑地址的有效位是多少?
〔2〕物理地址需要多少位?
〔3〕假定某时刻系统为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5C和093C变换为物理地址。
解〔1〕程序空间的大小为32KB,因此逻辑地址的有效位数是15位。
〔2〕存储空间的大小是16KB,因此物理地址至少需要14位。
〔3〕当页面为1KB时,虚地址0A5C表示页号为00010,页地址是1001011100。
该页在存的第4块,即块号为0100,因此0A5C的物理地址是100,即125CH。
用同样的方法可以求得,093C的物理地址是113CH。
讨论分页存储管理的地址变换非常简单,只要记住一点,由页号查页表得物理块号,然后与页地址拼接成物理地址。
例4.2某段式存储管理中采用如表4.1所示的段表。
〔1〕给定段号和段地址,说明段式管理中的地址变换过程。
〔2〕计算[0,430],[1.10],[2,500〕,[3,400],[4,20],[5,100]的存地址,其中方括号的第一元素是段号,第二元素是段地址。
〔3〕说明存取主存中的一条指令或数据至少要访问几次主存。
解〔1〕为了实现从逻辑地址到物理地址的变换,在系统中需要设置段表存放器,存放段表起站地址和段表长度TL。
在进展地址变换时,系统将逻辑地址中的段号S与段表长度TL进展比拟。
假设S>TL,那么表示段号太大,是访问越界〔段号越界〕,产生越界中断。
假设未越界,那么根据段表的起始地址和段号,计算出该段对应段表项的位置,从中读出该段在存中的起始位置和段长SL,再检查段地址d是否超过该段的段长SL。
假设超过,即d>SL,那么同样发出越界中断信号〔段地址越界〕;
假设未越界,那么将该段的起始地址与段地址d相加,即得要访问的存物理地址。
〔2〕[0,430]的物理地址是219+430=649。
[1,10]的物理地址是3330+10=3340。
因500>100,所以[2,500]越界〔段地址越界〕。
[3,400]的物理地址是1237+400=1637。
[4,20]的物理地址是1952+20=1972。
因5>4,所以[5,100]越界〔段号越界〕。
〔3〕存取主存中的一条指令或数据至少要访问2次主存。
一次是访问段表,另一次是访问需要的指令或数据。
讨论在分段存储管理的地址变换过程中,要点是由段号查段表得段起始地址,然后与段地址相加得物理地址。
但要注意,段地址是二维地址,段号和段地址都有可能越界。
例4.3分页和分段有何区别?
为什么说分段系统较之分页系统更易于实现信息共享和保护?
如何实现?
解分页和分段都采用离散分配方式,但两者有显著的差异。
〔1〕页是信息的物理单位,分页是系统的需要,是为了提高存的利用率;
段是信息的逻辑单位,目的在于更好地满足用户的需要。
〔2〕页的大小固定,且由系统确定,一个系统只能有一种大小的页面;
段的长度不固定,决定于用户的程序。
〔3〕分页的作业地址空间是一维的,单一的线性地址空间;
分段的作业地址空间是二线的,一个地址包括段号和段地址。
在分页和分段存储管理系统中,多个作业并发运行,共享同一存块里的程序或数据是可行的。
为了实现共享,必须在各共享者的段表或页表中分别有指向共享存块的表目。
对分段式系统,被共享的程序或数据可作为单独的一段。
在物理上它是一段,在不同的进程中,可以对应不同的逻辑段,相对来说比拟易于实现。
对分页管理,那么要困难得多。
首先,必须保证被共享的程序或数据占有整数块,以便与非共享局部分开。
其次,由于共享程序或数据被多个进程访问,所以每个进程对共享程序或数据的访问都应该是有限制条件的。
因此,从共享和保护的实现上来看,须共享的程序段或数据段是一个逻辑单位,而分段存储管理中被共享的程序或数据作为一个整体〔一段〕,实现共享和保护就要方便得多。
分段系统的共事是通过两个〔或多个〕进程的段表之相应表目都指向同一个物理段,并设置共享计数来实现的。
每段设置访问方式,就可以实现段的保护。
讨论分页与分段的逻辑地址一个是一维,一个是二维,一定要加以区别。
从共享与保护来讲.分页管理也可以实现,但非常复杂,一般系统不易实现。
例4.4在一个请求分页系统中,假设一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5。
当分配给该作业的物理块数M分别是3和4时,分别采用LRU和FIFO页面替换算法,
F
I
FO
LRU
计算访问过程中所发生的缺页次数和缺页率;
比拟所得结果。
缺页次数=10次,缺页率=〔10/12〕*100%=83%。
通过以上缺页次数和缺页率的分析计算,可以看出,对于LRU算法,增加物理块数,可以减少缺页次数,降低缺页率。
而对FIFO算法,增加物理块数,不一定能减少缺页次数。
讨论计算缺页次数和缺页率时,要注意初始时刻所有物理块为空。
调入页面时,不需要页面替换,但是需要引起缺页中断。
例4.5什么是虚拟存储器?
在分页存储管理系统中如何实现虚拟存储?
解所谓虚拟存储器是指仅把作业的一局部装入存便可运行作业的存储管理系统。
它具有请求调入功能和置换功能,能从逻辑上对存容量进展扩大。
请求分页存储管理系统是在分页管理的根底上实现的。
页表中除了有页号、物理块号两项外,还需要状态位、访问字段、修改位、外存地址等信息。
由于是局部调入存,每当所要访问的页面不在存时,便要产生缺页中断,请求操作系统将所缺页调入存。
缺页中断的处理过程是保存CPU现场;
从外存中找到所缺的页面;
假设存已满,那么选择一页换出,从外存读入所缺的页面,写入存,修改页表。
在进展地址变换时,假设发现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 例题 汇总