【系统分析师之路】第十四章 操作系统(习题汇总)

【系统分析师之路】第十四章 操作系统(习题汇总)

■知识点汇总

知识点汇总

■习题汇总

01.进程的五态模型包括运行状态、活跃就绪状态、静止就绪状态、活跃阻塞状态和静止阻塞状态。针对下图的进程五态模型,为了确保进程调度的正常工作,(a)、(b)和©的状态分别为(),并增加一条()。
进程五态模型
A.静止就绪、静止阻塞和活跃阻塞
B.静止就绪、活跃阻塞和静止阻塞
C.活跃阻塞、静止就绪和静止阻塞
D.活跃阻塞、静止阻塞和静止就绪
A.运行→(a)的等待边
B.运行→(b)的等待边
C.(a)→运行的恢复或激活边
D.活动就绪→(b)的等待边

解答:答案选择D|A。在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化,因此进程一般有三种基本状态:运行、就绪和阻塞。但是由于进程的不断创建,系统资源特别是主存资源已不能满足进程运行的要求。这时,就必须将某些进程挂起,放到磁盘对换区,暂时不参加调度,以平衡系统负载;或者是系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
进程五态模型

  • 活跃就绪是指进程在主存并且可被调度的状态
  • 静止就绪是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态
  • 洁跃阻塞是指进程在主存,一旦等待的事件产生便进入活跃就绪状态
  • 静止阻塞是指进程对换到辅存时的阻塞状态

只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。

02.某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,…,n)管理机票销售。假设Tj(j=1,2,…,m)单元存放某日某航班的机票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的订票张数。初始化时系统应将信号量S赋值为( )。Pi进程的工作流程如下图所示,若用P操作和V操作实现进程间的同步与互斥,则图中空(a),空(b)和空©处应分别填入( )。
A.0
B.1
C.2
D.3
A.P(S),V(S)和V(S)
B.P(S),P(S)和V(S)
C.V(S),P(S)和P(S)
D.V(S),V(S)和P(S)

在这里插入图片描述
解答:答案选择B|A。第一空如果S=2,那么就有可能出现两个终端同时出一张票的情况,如果S=0, 第一次执行P操作之后S就等于了-1,也就是说这个时候已经没有了可用资源而进入等待或者说是死锁的状态。
P操作和V操作是相互对应的关系,所以不管是否出票,都要再执行P操作之后执行V操作。

03.进程P1、P2、P3、P4、P5的前趋图如下。若用PV操作控制进程并发执行的过程,则需要相应于进程执行过程设置5个信号量S1、S2、S3、S4和S5,且信号量初值都等于零。下图中a处应填写();b和c、d和e处应分别填写(),f、g和h应分别填写()。
前驱图
信号量
A. P(S1)和P(S2)
B. V(S1)和V(S2)
C. P(S1)和V(S2)
D. P(S2)和V(S1)
A. P(S1)和P(S2)、V(S3)和V(S4)
B. P(S1)和P(S2)、P(S3)和P(S4)
C. V(S1)和V(S2)、P(S3)和P(S4)
D. P(S1)和V(S3)、P(S2)和V(S4)
A. P(S3)V(S4)、V(S5)和P(S5)
B. V(S3)V(S4)、P(S5)和V(S5)
C. P(S3)P(S4)、V(S5)和P(S5)
D. V(S3)P(S4)、P(S5)和V(S5)

解答:答案选择:B|D|C。箭头指向元是V操作释放资源让下一个结点执行,箭头指向先是P操作阻塞。
P1进程运行结束需要利用V操作分别通知P2和P3进程,所以用V(Sl)操作通知P2进程,用V(S2)操作通知P3进程。

04.假设某系统采用非抢占式优先级调度算法,若该系统有两个优先级相同的进程P1和P2,各进程的程序段如下所示,若信号量S1和S2的初始值都为0。进程P1和P2并发执行后a,b和c的结果分别为()。
//P1程序段
Begin{
a=1
 a=a+1
 V(S1)
c=a+5
P(S2)
a=a+c
}
//P2程序段
Begin{
b=2
b=b+1
P(S1)
 b=a+b
V(S2)
c=b+c
}
A.9
B.12
C.13
D.14
A.5
B.6
C.9
D.10
A.4
B.6
C.12
D.13

解答:答案选择D|A|C。此题还是考查信号量在两个进程之间互斥的使用。
如果P1进程先执行,执行到P(S2)为止,a=2,c=7,然后P1被阻塞;
这个时候P2开始执行,b=5,c=12,然后P2执行完,继续回到了P1进程;
执行a=a+c=2+12=14,然后结束P1进程;
这个时候a=14,b=5,c=12.

05.假设系统有m个同类的互斥资源,当n个进程共享这m个互斥资源时,每个进程的最大需求数是w。在这种情况下,系统可能产生死锁的是()。
A.m=4,n=3,w=2
B.m=4,n=2,w=3
C.m=5,n=2,w=3
D.m=5,n=3,w=2

解答:答案选择B。这是一道很简单的估算题。首先给每个进程1个资源,然后再给每个进程1个资源(如果有的话),依次类推。到某个阶段,如果没有1个进程的资源得到满足,且系统已经没有可用资源,则会发生死锁。显然,选项B中,首先给2个进程分别分配1个资源(这时系统还剩下2个资源),接着再分别为每个进程分配1个资源(这时系统还剩下0个资源),但这2个进程的资源都没有完全满足,不能运行,即发生死锁。

06.假设系统中有三类互斥资源R1、R2、R3,可用资源数分别是9、8、5。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如表5-1所示,如果进程按(3)序列执行,那么系统状态是安全的。
在这里插入图片描述
A.P1->P2->P4->P5->P3
B.P2->P1->P4->P5->P3
C.P2->P4->P5->P1->P3
D.P4->P2->P4->P1->P3

解答:答案选择C。所谓安全状态,是指系统能按某种进程顺序(P1,P2,…,Pn),来为每个进程Pi分配其所需的资源,直到满足每个进程对资源的最大需求,使每个进程都可以顺利完成。如果无法找到这样的一个安全序列,则称系统处于不安全状态(死锁)。如何保证系统处于安全状态可以避免死锁的发生,银行家算法是一个古典的测试算法。银行家算法的基本思想是:当某个进程提出申请时,必须判断将资源分配给该进程后,会不会引起死锁。若不会,则进行分配;否则就不分配。这样做能保证在任何时刻至少有一个进程可以得到所需的全部资源而执行结束,并将归还资源加入到系统的剩余资源中,这些资源又至少可以满足一个进程的最大需求,于是保证所有进程都能在有限的时间内得到需求的全部资源。按照银行家算法的思想,当进程请求资源时,系统将按如下原则分配资源:(1)当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。(2)进程可以分期请求资源,但请求的总数不能超过最大需求量。(3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。(4)当系统现有的资源能满足进程尚需资源数时,.必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。在本题中序列已经给出,我们只需将4个选项按其顺序执行一遍,便可以判断出现死锁的三个序列。在判断之前,先求出各资源的剩余数:R1=9-(1+2+2+1+1)=2R2=8-(2+1+1+2+1)=1R3=5-(1+1+3)=0由于R3,资源为0,系统不能再分配R3资源了,所以不能一开始就运行需要分配R3资源的进程。因此,A和D显然是不安全的,下面只需考虑选项B和C。首先,看序列P2->P4->P5->P1->P3是否安全,如表5-2所示。因此,该序列是安全的。最后,看序列P2->P4->P5->P1->P3是否安全,如表5-3所示。这时候,我们发现进程P1需要凡资源为5个,系统能提供的R1资源为4个,所以序列无法进行下去,为不安全序列。

07.假设某银行拥有的资金数是10,现在有4个用户a、b、c、d,各自需要的最大资金数分别是4、5、6、7。若在图a的情况下,用户a和b又各申请1个资金,则银行分配后用户a、b、c、d尚需的资金数分别为 () ;假设用户a已经还清所有借款,其情况如图b所示,那么银行的可用资金数为 ()
。若在图b的情况下,银行为用户b、c、d各分配资金数1、1、2,则银行分配后用户b、c、d已用资金数分别为 () 。
在这里插入图片描述
A.2、2、3、3,可用资金数为0,故系统状态是不安全的
B.3、3、3、5,可用资金数为0,故系统状态是不安全的
C.2、2、4、6,可用资金数为2,故系统状态是安全的
D.3、3、3、5,可用资金数为2,故系统状态是安全的
A.4
B.5
C.6
D.7
A.4、3、2,尚需资金数分别为1、3、5,故系统状态是安全的
B.4、3、3,尚需资金数分别为1、3、4,故系统状态是安全的
C.4、3、2,尚需资金数分别为1、3、5,故系统状态是不安全的
D.4、3、3,尚需资金数分别为1、3、4,故系统状态是不安全的

解答:答案选择C|A|D。分析本题考查操作系统进程管理方面的基础知识。

  • 第一空的正确答案为C。因为在图a的情况下,用户a和b各申请1个资金,则系统分配后用户a、b、c、d的已用资金数分别为2、3、2、1,可用资金数为2,故尚需的资金数分别为2、2、4、6。由于可用资金数为2,能保证a或b运行结束。假定a运行结束释放资源后,可用资金数为4,能保证b或c运行结束。同理,b运行结束释放资源后,可用资金数为7,能保证c或d运行结束。最终c运行结束,释放资源能使d获得所需资金运行结束,故系统状态是安全的。
  • 第二空的正确答案为A。因为银行家的总资金数是10,为用户b、c、d分配了3、2、1,故可用资金数为4。
  • 第三空的正确答案为D。因为在图b的情况下,系统为用户b、c、d已分配资金数为3、2、1,系统又为用户b、c、d分配资金数为1、1、2,则系统分配后用户b、c、d已用资金数分别为4、3、3。这样导致系统的可用资金为0,故系统状态是不安全的。

08.进程P有六个页面,页号分别为0-5,页面大小为4K,页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不再内存。假设系统给进程P分配了4个存储块,进程P要访问的逻辑地址为16进制5A29H,那么该地址经过变换后,其物理地址应为16进制();如果进程P要访问的页面4不在内存,那么应该淘汰页号为()的页面。
在这里插入图片描述
A.1A29H
B.3A29H
C.5A29H
D.6A29H
A.0
B.1
C.2
D.5

解答:答案选择D|B。4K等于2的12次方,也就是说页面内的是物理地址,5A29H中也就是说A29H总共12位是页内的物理地址,而高位5就是逻辑地址。而页号5对应的页帧号等于6,于是就第一空物理地址就是6A29。
访问位 1最近访问过,0表示最近未被访问
页号为0,1,2,5四个页面中,只有页号为1的这个页面中访问位为0,也就是最近没有被访问过,就是就淘汰这个页号。

09.设进程的段表如下图所示,逻辑地址()可以转换为对应的物理地址。
在这里插入图片描述
A.(0,1597),(1,30)和(3,1390)
B.(0,128),(1,30)和(3,1390)
C. (0,1597),(1,98)和(3,1390)
D.(0,128),(1,98)和(3,1066)

解答:答案选择B。主要看段长和偏移量的对比结果。在(段号,偏移量)中,偏移量不能超过段长。

10.虚拟存储系统中的页表有快表和慢表之分,下面关于页表的叙述中正确的是()。
A.快表与慢表都存储在主存中,但快表比慢表容量小
B.快表采用了优化的搜索算法,因此比慢表的查找速度快
C.快表比慢表的命中率高,因此快表可以得到更多的搜索结果
D.快表采用快速存储器件组成,按照查找内容访问,因此比慢表查找速度快

解答:答案选择D。由于程序在执行过程中具有局限性,因此对页表中各存储字的访问并不是完全随机的,即在一段时问内,对页表访问只是局限在少数几个存储字内。把最近访问过的页表部分存放在快速存储器中组成快表(也称为转换检测缓冲器TLB)。采用按内容查找的相联存储器组成快表以实现并行查找。

  • 慢表存储在主存储器中,按地址访问,用软件实现。
  • 快表是慢表的小小的副本,一般在16行至64行之间(几十个字),它是一块小容量的相联存储器,它的基本思想是大大缩小目录表的存储容量,从而大大加快查表速度。
  • 快表是把页表存放在Cache中;慢表是把页表放在内存中。
  • 快表与慢表构成了一个两级存储系统。查表时,由虚页号同时去查找快表和慢表,如果在快表中查到与用户虚地址相等的存储字,就立即终止慢表的查表过程,并读出存储字中的实页号送入到主存的地址寄存器中。如在快表中没有查找到,就花费一个访主存时间查慢表

11.某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况,若磁盘上的物理块依次编号为:0,1,2。。。系统中字长为32位,每一位对应文件存储器身上的一个物理块,取值0和1分别表示空闲和占用,如下图所示,
位示图
假如将4195号物理块分配给某文件,那么该物理块的使用情况在位示图中的第()个字中描述;系统应该将()。
A.129
B.130
C.131
D.132
A.该字的第3位置"0"
B.该字的第3位置"1"
C.该字的第4位置"0"
D.该字的第4位置"1"

解答:答案选择D|B。(4195+1)/ 32 = 131.125(其中32是字长)。这就表示前131个块都已经被使用了,所以只能在第132个字中描述。
4195-3=4192,且位示图中用1表示有数据,那么第二空就选B。

12.以下关于在IO设备与主机间交换数据的叙述中,错误的是(C)
A.中断方式下,CPU需要执行程序来实现数据传输
B.中断方式和DMA方式下,CPU与IO设备都可同步工作
C.中断方式和DMA方式相比,快速IO设备更适合采用中断方式传递数据
D.若同时接到DMA请求和中断请求,CPU优先响应DMA请求

解答:答案选择C。快速IO设备用于数据量大,更加适合采用DMA方式,因为DMA方式比程序中断程序控制更加的高效。

  • DMA方式:比如用于磁盘,在主存和外存之间实现高速,批量数据交换。
  • 程序中断方式:比如用于键盘,它适合于小数据量但实时性要求高的场合。

13.假设文件系统采用索引节点管理,且索引节点有8个地址项,addr[0]~addr[7],每个地址项的大小为4字节,addr[0]~addr[4]采用直接地址索引,addr[5]~addr[6]采用一级地址索引,addr[7]采用二级间接地址索引,假设磁盘索引块和磁盘数据块的大小均为1KB字节,文件File1中逻辑块号为5和261的信息,则对应的物理块号分别是(),101号物理块存放的是()
在这里插入图片描述
A.89和90
B.89和136
C.58和187
D.90和136
A.File1的信息
B.直接地址索引表
C.一级地址索引表
D.二级地址索引表

解答:答案选择C|D。第二空看图就可以识别出来,没有难度;
addr[0]对应的逻辑块号为0,物理块号为50
addr[1]对应的逻辑块号为1,物理块号为67
addr[2]对应的逻辑块号为2,物理块号为68
addr[3]对应的逻辑块号为3,物理块号为78
addr[4]对应的逻辑块号为4,物理块号为89
addr[5]对应的逻辑块号为5,物理块号为58.
addr[6]对应的逻辑块号为261,物理块号为187.
每个地址项是4字节,而磁盘数据块大小为1KB,那么一个磁盘数据块可存放256个数据,加上直接地址索引的5个逻辑地址,第261块号就在第二个数据块第一个位置。

14.在一个单CPU的计算机系统中,采用了可剥夺式(抢占式)优先级的进程调度方案,且所有任务可以并行使用IO设备,下表列出了三个任务T1,T2,T3的优先级,独立运行时占用CPU和IO设备的时间。
如果操作系统的开销忽略不计,这三个任务从同时启动到全部结束的总时间为()ms。CPU的空闲时间共有()ms。

在这里插入图片描述
A.41
B.71
C.87
D.123
A.15
B.18
C.24
D.54

解答:答案选择C|B。首先要明确的是,可以并行使用IO设备的前提下,需要抢占的资源就只有单核的CPU了。
0~15ms:T1在使用CPU
15~30ms:T2在使用CPU
31~33ms:T3在使用CPU,因为此时T1需要再占用,而T1优先度高于T3,这个时候发生抢占T3->T1
34ms~41ms:T1使用CPU,在此时T1已经可以执行完了了。
42ms~48ms:切换回T3,执行7ms后,T2的IO做完了,这个时候又要抢占T3->T2
49ms~56ms:T2运行中,运行8ms后,T2就已经做完了。这个时候又要T2->T3
57ms~61ms:T3前半部分的15ms运行完了,这个时候需要等待IO操作运行完了,于是CPU空闲18ms
61ms~78ms:CPU空闲
79ms~87ms:运行完后半部分的T3。到此为止所有都完成了。全部结束的总时间为87ms

15.某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法,假定系统为每个作业分配4个页面的主存空间,其中一个页面用来存放程序,现有某作业的程序如下:
在这里插入图片描述
设每个页面可存放200个整数变量,变量ij存放在程序页中。初始时,程序及i和j均在内存,其余3页为空。若矩阵A按行序存放,那么当程序执行完后共产生()次缺页中断;若矩阵A按列序存放,那么当程序执行完后共产生()次缺页中断。
A.50
B.100
C.5000
D.10000

解答:答案选择A|C。此题考查页表的存储缺页中断。
A[i,j]=0这个语句总共需要执行10000次。每个页面可存放200个整数变量,有三个可用的页面,那么最多可以载入600个整数变量。
按行存放时,每个页面调入的200变量刚好是程序处理的200个变量,所以缺页次数为10000/200=50。而按列存放时,虽然每个页面调取数据时,同样也读入了200个变量,但这200个变量中,只有2个是近期需要访问的(如:第1个页面调入的是A[,1]与A[,2],但程序近期需要访问的变量只有A[1,1]和A[1,2]),所以缺页次数为:10000/2=5000。

  1. 若矩阵A按行序存放
    初始的时候页内是什么也没有的,这个时候产生缺页中断,并载入A1.1-》A2.100;
    读完200个整数,第201个数据找不到了,这个时候产生缺页中断,并载入A3.1-》A4.100;
    同理再读完200个整数,第401个数据找不到了,这个时候产生缺页中断,并载入A5.1-》A6.100;
    到这里为止产生的缺页中断只有载入页,没有把页置换出去的。
    当读第601个整数时找不到了,这个时候需要淘汰掉A1.1-》A2.100并载入A7.1-》A8.100;
    以此类推,执行10000次的话,就需要50次缺页中断。
  2. 若矩阵A按列序存放
    既然按行需要50次缺页中断,按列的话每行读取2个整数后,第三个整数就找不到了。这个时候产生缺页中断。
    按这样计划,读完一行100个整数就需要50次缺页中断,10000个整数有100行,那么50*100=5000.
发布了514 篇原创文章 · 获赞 299 · 访问量 89万+

猜你喜欢

转载自blog.csdn.net/Last_Impression/article/details/104529565