操作系统期末试卷A1

一、单选题(共20分,共10题,每题2 分)

1.    Linux操作系统属于(  )类操作系统。 D

A)单用户单任务; B)单用户多任务; C)多处理机; D)多用户多任务

2.    实时系统的优先级倒置是指 (  ) B

A) 优先数越大优先权越低     B)高优先级进程被低优先级进程延迟或阻塞

C)优先权低的进程优先获得CPU    D)正在执行的高优先级进程被低优先级进程抢占CPU。

3.    可以通过破坏四个必要条件的一个或多个来预防死锁,但破坏(A )是不现实的。     

A、互斥           B、循环等待        C、请求和保持       D、不剥夺

4.    如果单处理器系统中有N个进程,进程有运行、就绪和阻塞三个基本状态,则阻塞进程最多几个,最少几个?(  C    )

A. 1, 0                    B. N-1, 0

C. N, 0                    D. N, N-1

5.    某虚拟存储器的用户编程空间共32个页面,每页为2KB,内存为16KB。假定某时刻用户页表中已调入内存的页面对应的物理块号如下表:

页号

物理块号

0

2

2

4

3

6

5

8

则逻辑地址190A(H)所对应的物理地址为(   C    )?

A. 410A(H)                   B. 110A(H)

C. 310A(H)                   D. 610A(H)

6.    在以下有关存储器的叙述中,不正确的是(  A  )?

    A. 页表一定存放在主存中。

    B. 页表大时,可将页表放在辅存中,而将当前用到的页表调到主存中。

    C. 快表存放在主存中。

    D. 采用快表的依据是程序访问的局部性

7.    把64*64的数组置初值0,数组中每一个元素为一个字。现假定页面的尺寸为每页64个字,数组中的每一行元素存放在一页中。能供这个程序使用的主存块只有一块,开始时把第一页装入了主存。若有程序代码如下,则执行过程中会产生多少次缺页中断?(    D      )

  for j:=1 to 64

       do for i:=1 to 64

            do A[i,j]:=0

A. 4096                B. 64

C. 63                    D. 4095

8.    考虑到移植方便和适应性,应用程序在访问设备时,应该使用(C):

A)物理设备号    B)物理设备命     C)逻辑设备名    D)I/O端口

9.    通常,控制硬盘设备采用(  B )方式

A)程序询问    B)DMA     C)I/O通道      D)中断控制

10.    Unix System V中采用( D )方式组织文件分配的磁盘块。

A)连续组织   B)隐式链式    C)多级索引    D)增量式索引

二、判断题( 共10分,共10题,每题1 分)

( ╳  )(1.一个程序在执行时可以包含多个进程,一段程序指令也可以包含在多个进程中。

(  ╳   )2. 在临界区访问的进程,跟在临界区外没什么区别,可以执行任何操作,比如创建一个新的进程,或者执行I/O操作等。

(   √  )3. 管道通信中,必须确定对方是否存在,只有确定对方已存在时才能进行通信。

(  ╳   )4. 在请求分页系统中,那些已经被修改的页面,在将他们换出时,需要调到对换区,以后调入时从对换区调入。而没有被修改的页面在换出时无需调到对换区,以后换入时从对换区调入。

( √  )5.中断驱动I/O控制方式以字/字节为传输单位,每完成一个字/字节的传输,设备均要向CPU请求一次中断。

( √  ) 6.改进型CLOCK算法将在置换范围内首选最近未被使用过,且驻留内存期间没有被修改过的页面作为被置换页面。

( ╳   ) 7.实时系统能使系统中所有的用户都能得到及时的响应。 ( F )

( ╳   ) 8.分页式存储管理中,页面的大小可以是不相等的。(F)

( ╳   ) 9.文件系统中的源程序是有结构的记录式文件。 (F  )

( ╳   ) 10.线程属于某个进程,它与资源分配有关。  ( F )

二、简答题(共20分)

1.    处理机调度分为哪三级?再描述从装入一个作业开始到执行此作业的整个详细的调度过程。(5分)

处理机调度分为高级调度、低级调度、作业调度。(3分)

作业执行的整个流程有:首先由高级调度也就是作业调度将外存上的作业调入内存,然后为此作业创建进程,并将其加入就绪队列中,启动调度程序(也就是低级调度),如果调度程序根据一定调度算法选择此进程执行则开始执行此作业,从而完成整个作业的调度过程。(2分)

2.    主存储器容量为8MB,虚存容量为2GB,虚地址和物理地址各为多少位?根据寻址方式计算出来的有效地址是虚拟地址还是物理地址?如果页面大小为4kB,页表长度是多少? (6分)

答:

虚地址 31位 (1.5分)        物理地址:23位(1.5分)

物理地址(1.5分)

页表长度  19(1.5分)

3.    如果采用基于优先级可抢占的调度机制,请问在哪些情况下需要启动调度程序?也就是调度时机有哪些?至少说出4种。(4分)

1)一个新进程被创建,并进入就绪队列(1分)

2)当前执行进程因为I/O被阻塞(1分)

3)当前执行进程挂起自己(1分)

4)当前执行进程调用exit,return等函数退出执行(1分)

5)一个阻塞进程被唤醒

6)一个挂起进程被激活

其它类似上述的让当前进程释放CPU的情况,或者就绪队列进入新进程的情况(因为新进程可能是优先级更高的进程,所以需要启动调度程序)。

4.    论述操作系统中的系统调用函数是如何实现的?(4分)

系统调用利用软中断实现(1分),操作系统初始化过程中,会产生一张中断向量表,其中保存了中断服务程序的入口地址,发生软中断后通过中断号找到对应的中断服务程序(2分),从而找到注册到操作系统中的服务系统调用的函数,完成功能。(1分)

三、综合应用题(共30分)

1.    在一个请求分页存储系统中,一个进程的页面走向为4,3,2,1,4,3,5,3,2,1,设分配给该进程的内存块数M=3,采用FIFO页面置换算法(每调进一个新页认为发生一次缺页中断)。求缺页中断次数以及缺页率。(12分)   

      

过程4分

页框\页    4    3    2    1    4    3    5    3    2    1

1    4    4    4    1    1    1    5    5    5    5

2        3    3    3    4    4    4    4    2    2

3            2    2    2    3    3    3    3    1

     F      √ √ √ √ √ √ √                 √    √(每步1分)

缺页中断次数为F=9次,缺页率为f=90℅ (2分)

2.    在一个文件缓冲系统中,为不同的读写需求建立了三种缓冲区(A、B、C),每种缓冲区的块数分别是10、6、8,每个进程在访问文件时,可以请求任意种类任意数量的缓冲区。将采用银行家算法来避免死锁。若系统中只有4个进程要使用缓冲区,当前每个进程使用缓冲区的情况如下表所示:(8分)

              资源

进程

Max

Need

Allocation

A       B      C

A       B     C

A     B     C

P1

3       2       4

0        0     3

3     2      1

P2

9       3       5

7        2     5

2     1      0

P3

5       4       3

2        4     1

3     0      2

P4

2       2       4

0        1     0

2     1      4

1)请问当前状态是安全的吗?写出按照银行家算法计算的过程(建议用表格),给出分析结果。

2)现在进程P2再发出请求(A=0, B=2, C=0),请问是否可以满足该分配请求。

答:问题1)由已经分配的资源数可知,当前可用资源的数量为(0,2,1),即初始Work=(0,2,1),按照银行家算法可以得出如下的分配过程:(后两列每空0.5分)

      资源

进程

Max

Need

Allocation

Work+Allocation

Finish

A  B   C

A  B   C

A   B   C

A   B   C

P4

2   2    4

0   1    0

2    1     4

2   3    5

True

P1

3   2    4

0   0    3

3    2     1

5   5    6

True

P3

5   4    3

2   4    1

3    0     2

8   5    8

True

P2

9   3    5

7   2    5

2    1     0

10  6    8

True

从分析过程可知,存在一个安全序列(P4、P1、P3、P2),由此可知当前状态是安全的。(2分)

答:问题2)如果满足该请求,则剩余资源数为:(0,0, 1),按照银行家算法检查系统的安全性可知剩余资源数无法满足任意进程的需求,因此进入了不安全状态,所以本次请求不能满足。(2分)

      资源

进程

Max

Need

Allocation

A  B   C

A  B   C

A   B   C

P1

3   2    4

0   0    3

3    2     1

P2

9   3    5

7   0    5

2    3     0

P3

5   4    3

2   4    1

3    0     2

P4

2   2    4

0   1    0

2    1     4

3.    存放在某个磁盘上的文件系统,对于采用混合索引分配方式,其FCB中共有13项地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,盘块号需要3个字节来描述,则每个盘块最多存放170个盘块地址:(10分)

(1) 该文件系统允许的最大长度是多少?

(2) 将文件的字节偏移量5000、15000、150000转换为物理块号和块内偏移量。

(3) 假设某文件的索引结点已在内存中,但其他信息均在外存,为了访问该文件中某个位置的内容,最多需要几次访问磁盘?

答:

(1)文件的最大长度为:

    10+170+1702+1703=4942080块=2471040KB(2分)

(2)

 5000/512得商9,余数为392。即逻辑块号为9,块内偏移为392。故可直接从该文件的FCB的第9个地址处得到物理盘块号,块内偏移为392。(2分)

   15000/512得商为29,余数为152。即逻辑块号为29,块内偏移为152。由于10≤29<10+170,而29-10=19,故可从FCB的第10个地址项,即一次间址项中得到一次间址块;并从一次间址块的19项中获得对应的物理盘块号,块内偏移为152。(2分)

  150000/512得商为292,余数为496。即逻辑块号为292,块内偏移为496。由于10+170≤292,故可从FCB的第11个地址项,即二次间址项中获得第1个一次间址块;并从该一次间址块的112项中获得对应的物理盘块号,块内偏移为496。(2分)

(3) 由于文件的索引结点已在内存,为了访问文件中的某个位置的内容,最少需要1次访问磁盘(即通过直接地址直接读文件盘块),最多需要4次访问磁盘(第一次是读三次间址块,第二次读二次间址块,第三次读一次间址块,第四次是读文件盘块)(2分)

四、编程题(共20分)

1.    有一单车道隧道实施单向放行,隧道长度最多能容纳N辆车,在两边端口A和B各设置一个红绿灯控制车流。当隧道内车辆全部开出后,反方向车辆才能进入,否则会死锁。在无车时两边均为绿灯。假设每辆车到达隧道口时都会触发管理这2个红绿灯的控制器主机产生一个子进程,实现灯光控制管理。请使用信号量写出控制器程序(伪代码),能够避免隧道内死锁的发生。(20分)

      mutex = 1 左右过洞公用信号量,

实现先来先过洞 leftmutex=rightmutex=1

从左往右过洞示意如下,从右往左基本和从左往右相同:  

  P(leftmutex);    

 If leftcount = 0 P(rightmutex)

Leftcount++;

V(leftmutex);

左至右过洞;

 P(leftmutex);

Leftcount--;

     If leftcount = 0 V(mutex);

V(leftmutex);

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值