1、下列关于多任务操作系统的叙述中,正确的是
Ⅰ. 具有并发和并行的特点
Ⅱ. 需要实现对共享资源的保护
Ⅲ. 需要运行在多 CPU 的硬件平台上
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D.Ⅰ、Ⅱ、Ⅲ

答案:C
解析:多任务操作系统可以在同一时间内运行多个应用程序,即多任务操作系统具有并发和并行的特点,即 I 正确;
多个任务必须互斥地访问共享资源,为达到这一目标必须对共享资源进行必要的保护,即 II 正确;
现代操作系统都是多任务的,并不一定需要运行在多CPU的硬件上,单个CPU也可以满足要求,即 III 错误。

2、某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为 1μs。在 T 时刻就绪队列中有 3 个进程 P1、P2 和 P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权如下表所示。
在这里插入图片描述
若优先权值大的进程优先获得 CPU,从 T 时刻起系统开始进程调度, 则系统的平均周转时间

A. 54 μs B. 73 μs C. 74 μs D. 75 μs

答案:D
解析:因优先权值大的进程优先获得CPU,进程的执行顺序为P2 -> P3 -> P1。
P2的周转时间为:1+15+24=40 μs;
P3的周转时间为:18+1+24+1+36=80 μs;
P1的周转时间为:30+1+24+1+36+1+12=105 μs。
系统的平均周转时间为:(40+80+105)/ 3 = 225 / 3 =75 μs。

3、属于同一进程的两个线程 thread1 和 thread2 并发执行,共享初值为 0的全局变量 x。thread1
和 thread2 实现对全局变量 x 加 1 的机器级代码描述如下。
在这里插入图片描述
在所有可能的指令执行序列中,使 x 的值为 2 的序列个数是
A. 1 B. 2 C. 3 D. 4

答案:B
解析:阅读两个线程代码可知,thread1和thread2均是对x进行加1操作,x的初始值为0,若要使最终x=2,只有先执行thread1再执行thread2,或者先执行thread2再thread1,即只有2种可能使x的值为2。

4、 假设系统中有 4 个同类资源,进程 P1、P2 和 P3需要的资源数分别为 4、3 和 1,P1、P2 和 P3 已申请到的资源数分别为 2、1 和 0,则执行安全性检测算法的结果是
A. 不存在安全序列,系统处于不安全状态
B. 存在多个安全序列,系统处于安全状态
C. 存在唯一安全序列 P3、P1、 P2,系统处于安全状态
D. 存在唯一安全序列 P3、 P2、P1,系统处于安全状态

答案:A
解析:由题中数据可知,仅剩最后一个同类资源,若将其分给P1或P2,则均无法正常执行;
若分给P3,则P3正常执行完成后,释放的这个资源仍无法是P1、P2正常执行,故不存在安全序列,系统处于不安全状态。

5、下列选项中,可能导致当前进程 P 阻塞的事件是
Ⅰ. 进程 P 申请临界资源
Ⅱ. 进程 P 从磁盘读数据
Ⅲ. 系统将 CPU 分配给高优先权的进程
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D.Ⅰ、Ⅱ、Ⅲ

答案:C
解析:进程等待某资源为可用(不包括处理机)或等待输入输出完成均会进入阻塞态,即 I、II正确;
系统将CPU分配给高优先权的进程,会使当前进程从运行态变为就绪态,即 III 错误。

6、若 x 是管程内的条件变量,则当进程执行 x.wait() 时所做的工作是
A. 实现对变量 x 的互斥访问
B. 唤醒一个在 x 上阻塞的进程
C. 根据 x 的值判断该进程是否进人阻塞状态
D. 阻塞该进程,并将之插入 x 的阻塞队列中

答案:D
解析:“条件变量”是管程内部说明和一种特殊变量,其作用类似于信号量机制中的“信号量”,都是用于实现进程同步的。需要注意的是,在同一时刻,管程中只能有一个进程在执行。若进程A执行了x.wait()操作,则该进程将会阻塞,并挂到条件变量x对应的阻塞队列上。这样。管程的使用权被释放,就可以有另一个进程进入管程,若进程B执行了x.signal()操作,那么会唤醒x对应的阻塞队列头进程。在Pascal语言的管程中,规定只有一个进程要离开管程才能调用signal()操作。

PS:关于管程常见易错点:
(1)、管程是进程同步工具,解决信号量机制大量同步操作分散的问题;
(2)、管程每次只允许一个进程进入管程;
(3)、管程是被进程调用的,管程是语法范围,无法创建和撤销;
(4)、管程中定义的变量只能被管程内的过访问;
(5)、管程是由编程语言支持的进程同步机制;
(6)、管程不仅能实现进程间的互斥,而且能实现进程间的同步;
(7)、管程的signal操作与信号量机制中的V操作不同;
(8)、管程由局限于管程的共享变量说明、对管程内的数据结构进行操作的一组过程及局限于管程的数据设置初始值的语句组成。

7、当定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是
Ⅰ.内核中时钟变量的值
Ⅱ.当前进程占用 CPU 的时间
Ⅲ.当前进程在时间片内的剩余执行时间
A. 仅Ⅰ、Ⅱ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅲ
D. Ⅰ、Ⅱ、Ⅲ

答案:D
解析:时钟中断的主要工作是处理和时间有关的信息以及决定是否执行调度程序,和时间有关的所有信息,包括系统时间、进程的时间片、延时、使用CPU的时间、各种定时器,即 I 、II 、III均正确。

8、系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求, 这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂粘着的是
A . 先来先服务( FCFS)
B. 最短寻道时间优先( SSTF)
C. 扫描算法( SCAN )
D. 循环扫描算法( CSCAN )

答案:A
解析:当系统总是持续出现某个磁道的访问请求,均持续满足最短寻道时间优先、扫描算法和循环扫描算法的访问条件,会一直服务该访问请求.因此,先来先服务按照请求次序进行调度,比较公平。

PS:磁盘调度算法:
在这里插入图片描述
9、下列优化方法中,可以提高文件访问速度的是
Ⅰ. 提前读
Ⅱ. 为文件分配连续的簇
Ⅲ. 延迟写
Ⅳ.采用磁盘高速缓存
A . 仅Ⅰ、Ⅱ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅲ、Ⅳ
D.Ⅰ、Ⅱ、Ⅲ、Ⅳ

答案:D
解析:II 为文件分配连续的簇、IV采用磁盘高速缓存显然可以提高文件访问速度,即 II、IV正确;
提前读是指在读当前盘块时,将下一个可能要访问的盘块数据读入缓冲区,以便需要时直接从缓冲区读取,提高了文件的访问速度,即 I 正确;
延迟写是先将写数据写入缓冲区,并置上“延迟写“标志,以备不久之后访问,当缓冲区需要再次被分配出去时才将缓冲区数据写入磁盘,减少了访问磁盘的次数,提高了文件的访问速度,即 III 正确。

10、在下列同步机制中,可以实现让权等待的是
A . Peterson 方法
B. swap 指令
C. 信号量方法
D. TestAndSet 指令

答案:C
解析:硬件方法实现进程同步不能实现让权等待,即选项B、D错误;
Peterson算法满足有限等待但不满足让权等待,即选项A错误;
记录型信号量由于引入阻塞机制,消除了不让权等待的情况,即C选项正确。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐