1、下列关于线程的描述中,错误的是
A.内核级线程的调度由操作系统完成
B.操作系统为每个用户级线程建立一个线程控制块
C.用户级线程间的切换比内核级线程间的切换效率高
D.用户级线程可以在不支持内核级线程的操作系统上实现
答案:B
解析:应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口,内核为进程及其内部的每个线程维护上下文信息,调度也是在内核中由操作系统完成的,即A选项正确;
在多线程模型中,用户级线程和内核级线程的连接方式分为多对一、一对一和多对多,操作系统为每个用户级线程建立一个线程控制块是属于一对一模型,其他两个模型没有为用户级线程建立一个线程控制块,即B选项错误;
用户级线程的切换可以在用户空间内完成,内核级线程的切换需要操作系统帮助进行调度,需要一定的开销,即用户级线程间的切换比内核级线程间的切换效率高,即C选项正确;
用户级线程的管理工作可以只在用户空间中进行,因此可以在不支持内核级线程的操作系统上实现,即D选项正确。
PS:多线程模型
(1)多对一模型
(2)一对一模型
(3)多对多模型
2、下列选项中,可能会将进程唤醒的事件是
I.I/O 结束
II.某进程退出临界区
III.当前进程的时间片用完
A.仅 I
B.仅 III
C.仅 I、II
D.I、II、III
答案:C
解析:当被阻塞进程等待的某资源(不包括处理机)可用时,进程将会被唤醒。I/O结束后,等待该I/O结束而被阻塞的有关进程会被唤醒,即 I 正确;
某进程退出临界区后,之前会因需要进入该临界区而被阻塞的有关进程会被唤醒,即 II 正确;
当前时间片用完后进入就绪队列等待重新调度,即由运行态变为就绪态,即 III 错误。
PS:
进程状态的转换
关于进程常考易错点:
(1)、阻塞态 ->运行态 转换是不可能发生的;
(2)、当时间片到时或进程被高优先级进程抢占时,进程从运行态转变为就绪态;
(3)、一个进程从运行态变为就绪态,一定会出现进程切换;
(4)、一个进程被唤醒意味着该进程可以重新竞争CPU;
(5)、一个计算机系统中,进程的最大数目主要受到内存大小的限制;
(6)、进程创建完成后会进入就绪队列中;
(7)、进程自身决定从运行态到阻塞态;
(8)、对进程的管理和控制使用原语;
(9)、进程之间可能是无关的,但也可能是有交互性的;
(10)、进程与程序的根本区别在静态和动态特点;
(11)、在任何时刻,一个进程的状态变化不一定引起另一个进程的状态变化;
(12)、系统进程所请求的一次I/O操作完成后,将使进程从阻塞态转变为就绪态;
(13)、就绪态是唯一一个可以由两种状态转变过去的,即运行态 ->就绪态;阻塞态 ->就绪态;
(14)、PCB是进程存在的唯一标志。
3、下列关于系统调用的叙述中,正确的是
I.在执行系统调用服务程序的过程中,CPU 处于内核态
II.操作系统通过提供系统调用避免用户程序直接访问外设
III.不同的操作系统为应用程序提供了统一的系统调用接口
IV.系统调用是操作系统内核为应用程序提供服务的接口
A.仅 I、IV
B.仅 II、III
C.仅 I、II、IV
D.仅 I、III、IV
答案:C
解析:用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的,即 I 正确;
设备管理属于操作系统的功能之一,包括对输入输出设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,即 II 正确;
操作系统不同,底层逻辑、实现方式均不同,为应用程序提供的系统调用接口也不同,即 III 错误;
系统调用时用户在程序中调用操作系统为其服务的子功能,即 IV 正确。
4、下列选项中,可用于文件系统管理空闲磁盘块的数据结构是
I.位图
II.索引结点
III.空闲磁盘块链
IV.文件分配表(FAT)
A.仅 I、II
B.仅 I、III、IV
C.仅 I、III
D.仅 II、III、IV
答案:B
解析:传统的文件系统管理空闲磁盘的方法包括空闲表法、空闲链表法、位示图法和成组链接法,即 I 、III正确;
索引结点是操作系统为了实现文件名与文件信息分开而设计的数据结构,存储了文件的描述信息,索引结点属于文件目录管理部分的内容,即 II 不对;
文件分配表(FAT)的表项与物理磁盘块一一对应,并且可以用一个特殊数字 -1表示文件的最后一块,用 -2 表示这个磁盘块是空闲的,因此文件分配表(FAT)不仅记录了文件中各个块的先后链接关系,同时还标记了空闲的磁盘块,操作系统可以通过FAT对文件存储空间进行管理,即 IV 正确。
5、系统采用二级反馈队列调度算法进行进程调度。就绪队列 Q1 采用时间片轮转调度算法, 时间片为 10ms;就绪队列 Q2 采用短进程优先调度算法;系统优先调度 Q1 队列中的进程,当 Q1 为空时系统才会调度 Q2 中的进程;新创建的进程首先进入 Q1;Q1中的进程执行一个时间片 后,若未结束,则转入 Q2。若当前 Q1、Q2 为空,系统依次创建进程 P1、P2后即开始进程调度, P1、P2需要的 CPU 时间分别为 30ms 和 20ms,则进程 P1、P2在系统中的平均等待时间为
A.25ms B.20ms C.15ms D.10ms
答案:C
解析:进程P1、P2依次创建后进入队列Q1,根据时间片调度算法的规则,进程P1、P2将依次被分配10ms 的CPU时间,两个进程分别执行完一个时间片后都会被转入队列Q2,就绪队列Q2采用短进程优先算法,此时P1还需要20 ms的CPU时间,P2还需要10ms 的CPU时间,所以会被优先调度执行,10ms后进程P2执行完成,之后P1再调度执行,再过20ms后P1也执行完成。进程P1、P2的等待时间分别为下图中的虚横线部分,平均等待时间=(P1等待时间+P2等待时间)/ 2 =(20+10) / 2 = 15。
6、在分段存储管理系统中,用共享段表描述所有被共享的段。若进程 P1和 P2 共享段 S, 下列叙述中,错误的是
A.在物理内存中仅保存一份段 S 的内容
B.段 S 在 P1和 P2中应该具有相同的段号
C.P1 和 P2 共享段 S 在共享段表中的段表项
D.P1和 P2都不再使用段 S 时才回收段 S 所占的内存空间
答案:B
解析:段的共享是通过两个作业的段表中相应表项指向被共享的段的同一个物理副本来实现的,因此在内存中仅保存一份段S的内容,即A选项正确;
段S对于进程P1、P2来说,使用位置不同,所以在不同进程中的逻辑段号可能不同,即B选项错误;
段表项存放的是段的物理地址(包括段始址和段长度),对于共享段S来说物理地址唯一,即P1 和 P2 共享段 S 在共享段表中的段表项,即C选项正确;
为了保证进程可以顺利使用段S,段S必须确保在没有任何进程使用它后才能被删除,可在段表项中设置一个共享进程计数count,即D选项正确。
PS:共享与复制的区别
在共享文件中,由于各个用户指向的是同一个文件,因此只要其中一个用户对文件进行修改,则其他用户均可看到修改后的文件;在复制文件中,一个用户对文件进行修改,只对用户本身不透明,对其他用户均透明,原文件并没有发生改变。
7、某系统釆用 LRU 页置换算法和局部置换策略,若系统为进程 P 预分配了 4 个页框, 进程 P 访问页号的序列为 0, 1, 2, 7, 0, 5, 3, 5, 0, 2, 7, 6,则进程访问上述页的过程中,产生页置换的总次数是
A.3 B.4 C.5 D.6
答案:C
解析:具体页面置换情况如下图所示:
需要注意的是,题中所问的是页置换次数,而不是缺页次数,即前四次缺页未换页的情况不计入在内,即产生页置换的总次数是为5次(缺页产生总次数为9次)
PS:页面置换算法
8、下列关于死锁的叙述中,正确的是
I .可以通过剥夺进程资源解除死锁
II.死锁的预防方法能确保系统不发生死锁
III.银行家算法可以判断系统是否处于死锁状态
IV.当系统出现死锁时,必然有两个或两个以上的进程处于阻塞态
A.仅 II、III
B.仅 I、II、IV
C.仅 I、II、III
D.仅 I、III、IV
答案:B
解析:剥夺进程资源,将其分配给其他死锁进程,可以解除死锁,即 I 正确;
死锁预防是死锁处理策略中最为严苛的一种策略,破坏死锁产生的4个必要条件之一,可以确保系统不发生死锁,即 II 正确;
银行家算法是一种死锁避免算法,无法用于判断系统是否处于死锁状态,即 III 错误;
通过简化资源分配图可以检测系统是否为死锁状态,当系统出现死锁时,资源分配图不可完全简化,只有两个或两个以上的进程才会出现“环”而不能被简化,即 IV正确。
关于死锁常考易错点:
(1)、死锁的避免是根据防止系统进入不安全状态;
(2)、资源有序分配策略破坏了“循环等待”条件;
(3)、一次分配所有资源的方法可以预防死锁的发生,它破坏死锁4个必要条件中的请求并保持;
(4)、死锁的四个必要条件中,无法破坏的是互斥使用资源;
(5)、死锁状态一定是不安全状态,不安全状态不一定是死锁状态;
(6)、采用资源剥夺法可以解除死锁,还可以撤销进程方法解除死锁;
(7)、死锁检测时检查的是资源有向图;
(8)、产生死锁的根本原因是系统资源分配不足和进程推进顺序非法;
(9)、一个进程在获得资源后,只能在使用资源后由自己释放,属于死锁必要条件的不剥夺条件;
(10)、死锁定理是用于处理死锁的预防死锁方法;
(11)、银行家算法是避免死锁的方法。
9、某计算机主存按字节编址,采用二级分页存储管理,地址结构如下所示:
页目录号(10 位) 页号(10 位) 页内偏移(12 位)
虚拟地址 2050 1225H 对应的页目录号、页号分别是
A.081H、101H
B.081H、401H
C.201H、101H
D.201H、401H
答案:A
解析:题中给出的是十六进制,首先将它转化为二进制,然后用二进制地址去匹配中对应的地址结构。
将 2050 1225H转为二进制为: 2050 1225H=0010 0000 0101 0000 0001 0010 0010 0101,其中前10位0010 0000 01对应页目录号,11~20位01 0000 0001对应页号,21~32位0010 0010 0101对应页内偏移。将页目录号和页号单独拿出,转换为十六进制时缺少的位数在高位补零,即为
00
00 1000 0001对应 081H,
00
01 0000 0001对应 101H。
10、在下列动态分区分配算法中,最容易产生内存碎片的是
A.首次适应算法 B.最坏适应算法 C.最佳适应算法 D.循环首次适应算法
答案:C
解析:最佳适应算法总是匹配与当前大小要求最接近的空闲分区,但是大多数情况下空闲分区的大小不可能完全和当前要求的大小相等,几乎每次分配内存都会产生很小的难以利用的内存块,即最佳适应算法最容易产生最多的内部碎片。
PS:动态分区分配算法