操作系统例题汇总.docx
- 文档编号:27199498
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:28
- 大小:185.07KB
操作系统例题汇总.docx
《操作系统例题汇总.docx》由会员分享,可在线阅读,更多相关《操作系统例题汇总.docx(28页珍藏版)》请在冰豆网上搜索。
操作系统例题汇总
1.2例题精选
例1.1如何理解虚拟机的概念?
解:
一台仅靠由硬件组成的计算机一般被称为裸机,不易使用。
操作系统为用户使用计算机提供了许多服务,从而把一台难于使用的裸机改造成了功能更强大、使用更方便的计算机系统,这种计算机系统称为虚拟机。
所谓虚拟,是指把一个物理上的实体变为若干个逻辑上的对应物。
前者是实际存在的,而后者是虚的,只是用户的一种感觉。
在单CPU的计算机系统中能同时运行多道程序,好像每个程序都独享一个CPU,这就是虚拟。
在构造操作系统时,把操作系统分成若干层,每层完成特定的功能,从而形成一个虚拟机。
下层的虚拟机为上层的虚拟机提供服务,这样逐次扩充以完成操作系统的功能。
讨论“虚拟”的概念体现在操作系统的方方面面。
例如,虚拟存储器,使一台只有4MB内存的计算机可以运行总容量远远超过4MB的程序;虚拟外设,能够使多个用户同时访问该外设等。
例1.2什么是多道程序设计,它的主要优点是什么?
解:
所谓多道程序设计是指把一个以上的程序存放在内存中,并且同时处于运行状态,这些程序共享CPU和其他计算机资源。
其主要优点是:
(1)CPU的利用率高:
在单道程序环境下,程序独占计算机资源,当程序等待I/O操作时CPU空闲,造成CPU资源的浪费。
在多道程序环境下,多个程序共享计算机资源,当某个程序等待I/O操作时,CPU可以执行其他程序,这大大地提高了CPU的利用率。
(2)设备利用率高:
在多道程序环境下,内存和外设也由多个程序共享,无疑也会提高内存和外设的利用率。
(3)系统吞吐量大:
在多道程序环境下,资源的利用率大幅度提高,减少了程序的等待时间,提高了系统的吞吐量。
讨论多道程序在计算机中并发地运行是现代计算机系统的重要特征。
早期的单道批处理系统与人工操作相比自动化程度大大提高,但系统中仍有较多的空闲资源,系统的性能较差。
多遭批处理系统虽有很多优点,但这种系统交互能力差,作业的平均周转时间长。
多道程序处理系统要解决的主要问题是,如何使多个程序合理、有序地共事处理机、内存、外设等资源。
例1.3A,B两个程序,程序A按顺序使用CPU10S,使用设备甲5S,使用CPU5S,使用设备乙10S,最后使用CPU10S。
程序B按顺序使用设备甲10S,使用CPU10S,使用设备乙5S,使用CPU5S,使用设备乙10S。
(忽略调度程序执行时间)试问:
(1)在顺序环境下执行程序A和程序B,CPU的利用率是多少?
(2)在多道程序环境下,CPU的利用率是多少?
解
(1)程序A和程序B顺序执行时,程序A执行完毕,程序B才开始执行。
两个程序共耗时80S,其中占用CPU时间为40S,顺序执行时CPU的利用率为50%。
(2)在多道程序环境下,两个程序并发执行,其执行情况如图所示。
可以看出,两个程序共耗时45S,其中占用CPU时间为40S,故此时CPU的利用率为40/45=88.89%。
讨论
(1)在单道程序环境下,程序顺序执行,CPU被一道程序独占,即使CPU空闲,其他程序也不能使用,所以CPU的利用率低。
(2)在多道程序环境下,若干个程序宏观上同时执行,微观上交替执行。
当其中一个程序由于某种原因(例如进行1/O操作)而不能占用CPU时,其他程序就可以占用CPU,提高了CPU的利用率。
(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
0
3
3
P2
2
6
5
P3
4
4
1
P4
6
5
2
P5
8
2
4
(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,则各进程已分配资源数为
P1:
(0,0,1,2)
P2:
(2,0,0,0)
P3:
(0,1,3,4)
P4:
(2,3,5,4)
P5:
(0,3,3,2)
这时系统可用资源数为(2,0,0,0),各个进程仍需资源向量为
P1:
(0,0,0,0)
P2:
(0,7,5,0)
P3:
(6,5,2,2)
P4:
(2,0,0,2)
P5:
(0,3,2,0)
满足资源需求的进程执行序列为
进程可用资源数
P1完成后:
(2,0,1,2)
P4完成后:
(4,3,6,6)
P5完成后:
(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);
P(S);
TakeaproductfromBuffer[out]
Out=(out+1)modn;
V(S);
V(empty);
}
Consumetheproduct
}
2、m个生产者和k个消费者共享n个缓冲区的情况:
main()
{
intB[n];//缓冲区
intp=r=0;//p表示生产者指针,r表示消费者指针
intS=1;//可否进入缓冲区
intfull=0;//产品数目
intempty=n;//可用缓冲区数
producer-i(i=1,2,…,m);
consumer-j(j=1,2,…,k);
}
Producer-i(i=1,2,…,m)
{
while(producingdoesnotend)
{
produceaproduct
P(empty);
P(S);
B[p]=product;
p=(p+1)modn;//每放入一个产品,位置指针后移一位
V(S);
V(full);
}
}
Consumer-j(j=1,2,…,k)
{
while(continuetoconsume)
{
P(full);
P(S);
TakeaproductfromB[r]
r=(r+1)modn;//从第一个开始,消费一个后,指向下一个
V(S);
V(empty);
Consume
}
}
二、读者与写者问题
1、读者与写者有相同的优先级的情况:
main()
{
intS=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
}
P(Sr);
rc=rc-1;
if(rc==0)V(S);
V(Sr);
}
}
writer()
{
While(写过程未结束)
{
P(S);
WritefileF
V(S);
}
}
2、写者优先问题:
main()
{
intS=1;//读者与写者,写者与写者间的互斥,即可否修改文件
intSn=n;//最多有n个进程可以同时进行读操作
reader();
writer()
}
reader(i)
{
P(S);
P(Sn);
V(S);
ReadfileF
V(Sn);
}
writer(j)
{
P(S)
WritefileF
V(S);
}
例题
1、有一个阅览室,读者进入时必须先在一张登记表上进行登记。
该表为每一座位列出一个表目,包括座号、姓名。
读者离开时要撤消登记信息。
阅览室有100个座位,试问:
(1)为描述读者的动作,应编写几个程序?
,应该设置几个进程?
进程和程序之间的关系如何?
(2)试用P、V操作描述这些进程之间的同步算法。
2、若系统有某类资源m*n+1个,允许作业执行过程中动态申请该类资源,但在该系统上运行的每一个作业对该类资源的占有量在任一时刻都不会超过m+1个。
当作业申请资源时,只要资源尚未分配完,则总能满足它的要求。
但用限制系统中可同时执行的作业个数来防止死锁。
你认为作业调度允许同时执行的最大作业数应为多少?
证明之。
3、若系统有同类资源m个,被n个进程共享,试问:
当m>n和m S F Pa Pb Pc 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的物理地址是01001001011100,即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页面替换算法, 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 4 3 2 1 5 F I FO 4 4 4 1 1 1 5 5 5 LRU 4 4 4 1 1 1 5 2 2 2 3 3 3 4 4 4 2 2 3 3 3 4 4 4 4 1 1 2 2 2 3 3 3 1 2 2 2 3 3 3 3 5 计算访问过程中所发生的缺页次数和缺页率;比较所得结果。 缺页次数=10次,缺页率=(10/12)*100%=83%。 通过以上缺页次数和缺页率的分析计算,可以看出,对于LRU算法,增加物理块数,可以减少缺页次数,降低缺页率。 而对FIFO算法,增加物理块数,不一定能减少缺页次数。 讨论计算缺页次数和缺页率时,要注意初始时刻所有物理块为空。 调入页面时,不需要页面替换,但是需要引起缺页中断。 例4.5什么是虚拟存储器? 在分页存储管理系统中如何实现虚拟存储? 解所谓虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储管理系统。 它具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充。 请求分页存储管理系统是在分页管理的基础上实现的。 页表中除了有页号、物理块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 例题 汇总