资源描述
操作系统题库【注】本题库按照讲课内容的顺序进行组织,仅供15软件操作系统课程期末复习使用。复习时可先理解每一讲PPT的内容以及教材相应的章节,然后通过做题巩固所学知识。期末考试涉及的知识点大部分已覆盖,但并不意味着考题一定会从此题库中出,出题的形式肯定会有变化。1. 概述(1) 操作系统属于_。A. 硬件B. 系统软件C. 通用库D. 应用软件【注】操作系统是管理计算机硬件与软件资源的计算机程序,例如Windows,Linux,Android,iOS等。应用软件一般是基于操作系统提供的接口,为针对使用者的某种应用目的所撰写的软件,例如Office Word,浏览器,手机游戏等。而通用库,一般是指为了便于程序开发,对常用的程序功能封装后被调用的程序。(2) 以下哪个不能用于描述操作系统?A. 使计算机方便使用B. 可以管理计算机硬件C. 可以控制应用软件的执行 D. 负责生成应用软件【注】操作系统负责管理计算机的硬件资源,使得用户不需要关心硬件的工作过程,极大地方便了计算机的使用。我们日常使用计算机,往往已经在使用了特定的操作系统,例如Windows,而在操作系统上,会同时运行多个应用软件,例如浏览器,音乐播放器等,为了让一个或者多个软件能够正常使用有限的硬件资源,操作系统需要管理应用程序的执行过程。一般来说,像浏览器,音乐播放器,和其他应用软件,都是由特定的个人和团队开发的,操作系统不负责生成应用软件。(3) 以下不属于操作系统的功能是_。A. 进程调度B. 内存管理C. 视频编辑D. 设备驱动【注】视频编辑是一个特定的功能,不是系统范围内的共性需求,具体完成这个功能的是视频编辑应用软件。(4) 操作系统中的多道程序设计方式用于提高_。A. 稳定性B. 效率C. 兼容性D. 可靠性1 【注】在计算机内存中同时存放几道相互独立的程序,使它们在管理程序(早期的操作系统)控制之下,相互穿插的运行。这样可以使得几道独立的程序可以并发地共同使用各项硬件资源,提高了资源的利用率。(5) 下面对于分时操作系统的说法,正确的是_。A. 应用程序执行的先后顺序是完全随机的B. 应用程序按照启动的时间依次执行C. 应用程序可以交替执行D. 应用程序等待的时间越长,下一次调度被选中的概率一定越大【注】分时操作系统把多个程序放到内存中,将处理机(CPU)时间按一定的时间间隔(简称时间片)分配给程序运行,这样CPU就可以轮流地切换给各终端用户的交互式程序使用。由于时间片很短,远小于用户的交互响应延迟,用户感觉上好像独占了这个计算机系统。应用程序执行的先后顺序主要是由操作系统的调度算法和应用程序本身的行为特征来确定的。(6) 关于操作系统,说法正确的是_。(多选)A. 操作系统属于软件B. 操作系统负责资源管理C. 操作系统使计算机的使用更加方便 D. 操作系统必须要有用户程序才能正常启动【注】操作系统是一种软件,特定指是系统软件,其更功能是管理计算机资源,让用户和应用程序更方便高效地使用计算机。(7) 多道批处理系统主要考虑的是_。(多选)A. 交互性B. 及时性C. 系统效率D. 吞吐量【注】交互性和及时性是分时系统的主要特征。多道批处理系统主要考虑的是系统效率和系统的吞吐量。2. 系统启动、中断、异常和系统调用(1) 下列选项中,不可能在用户态发生的是_。A. 系统调用B.外部中断C. 进程切换D. 缺页【注】系统调用是提供给应用程序使用的,由用户态发出,进入内核态执行。外部中断随时可能发生;应用程序执行时可能发生缺页;进程切换完全由内核来控制。(2) 下列选项中,会导致用户进程从用户态切换到内核态的操作是_。(整数除以0; sin()函数调用;读磁盘read系统调用)2 A. 、B. 、C. 、D. 、【注】函数调用并不会切换到内核态,而除零操作引发中断,中断和系统调用都会切换到内核态进行相应处理。(3) 系统调用的主要作用是_。A. 处理硬件问题B. 应对软件异常D. 管理应用程序C. 给应用程序提供服务接口【注】应用程序一般无法直接访问硬件,也无法执行特权指令。所以,需要通过操作系统来间接完成相关的工作。而基于安全和可靠性的需求,应用程序运行在用户态,操作系统内核运行在内核态,导致应用程序无法通过函数调用来访问操作系统提供的各种服务,于是通过系统调用的方式就成了应用程序向OS发出请求并获得服务反馈的唯一通道和接口。(4) 用户程序通过_向操作系统提出访问外部设备的请求。A. I/O指令B. 系统调用C. 中断D. 创建新的进程【注】应用程序一般无法直接访问硬件,也无法执行特权指令。所以,需要通过操作系统来间接完成相关的工作。而基于安全和可靠性的需求,应用程序运行在用户态,操作系统内核运行在内核态,导致应用程序无法通过函数调用来访问操作系统提供的各种服务,于是通过系统调用的方式就成了应用程序向OS发出请求并获得服务反馈的唯一通道和接口。(5) 下列关于系统调用的说法错误的是_。A. 系统调用一般有对应的库函数B. 应用程序可以不通过系统调用来直接获得操作系统的服务C. 应用程序一般使用更高层的库函数而不是直接使用系统调用D. 系统调用可能执行失败【注】系统调用是应用程序向操作系统发出服务请求并获得操作系统服务的唯一通道和结果。如果操作系统在执行系统调用服务时,产生了错误,就会导致系统调用执行失败。(6) 以下关于系统调用和常规调用的说法中,错误的是_。A. 系统调用一般比常规函数调用的执行开销大B. 系统调用需要切换堆栈C. 系统调用可以引起特权级的变化D. 常规函数调用和系统调用都在内核态执行3 【注】系统调用相对常规函数调用执行开销要大,因为这会涉及到用户态栈和内核态栈的切换开销,特权级变化带来的开销,以及操作系统对用户态程序传来的参数安全性检查等开销。(7) 操作系统处理中断的流程包括_。(多选)A. 保护当前正在运行程序的现场B. 分析是何种中断,以便转去执行相应的中断处理程序C. 执行相应的中断处理程序D. 恢复被中断程序的现场【注】中断是异步产生的,会随时打断应用程序的执行,且在操作系统的管理之下,应用程序感知不到中断的产生。所以操作系统需要保存被打断的应用程序的执行现场,处理具体的中断,然后恢复被打断的应用程序的执行现场,使得应用程序可以继续执行。(8) 下列程序工作在内核态的有_。(多选)A. 系统调用的处理程序C. 进程调度B. 中断处理程序D. 内存管理【注】A-D都是操作系统的主要功能,需要执行相关的特权指令,所以工作在内核态。(9) BIOS从磁盘读入的第一个扇区是什么内容?为什么没有直接读入操作系统内核映像?【答】BIOS完成硬件初始化和自检后,会根据CMOS中设置的启动顺序启动相应的设备,这里假定按顺序系统要启动硬盘。但此时,文件系统并没有建立,BIOS也不知道硬盘里存放的是什么,所以BIOS是无法直接启动操作系统。另外一个硬盘可以有多个分区,每个分区都有可能包括一个不同的操作系统,BIOS也无从判断应该从哪个分区启动,所以对待硬盘,所有的BIOS都是读取硬盘的0磁头、0柱面、1扇区的内容,然后把控制权交给这里面的MBR(MainBoot Record)。 MBR由两个部分组成:即主引导记录MBR和硬盘分区表DPT。在总共512字节的主引导分区里其中MBR占446个字节(偏移0-偏移1BDH),一般是一段引导程序,其主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。DPT占64个字节(偏移1BEH-偏移1FDH),一般可放4个16字节的分区信息表。最后两个字节“55,AA”(偏移1FEH,偏移1FFH)是分区的结束标志。3. 物理内存管理(1) 某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空),采用最佳适配(Best Fit)算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,则此时主存中最大空闲分区的大小是_。4 A. 7MBB. 9MBC. 10MBD. 15MB【注】空闲分区链变化:55(初始);40(分配15MB后);10(分配30MB后);10-15(释放15MB后);2-15(分配8MB后);2-9(分配6MB后)。(2) 一个分段存储系统中,地址长度为32位,其中段号占8位,则最大段长为_。A. 28字节B. 216字节C. 224字节D. 232字节【注】在段访问机制中,如果采用的是单地址方案,则段号的位数+段内偏移的位数=地址长度,所以段内偏移占了32 - 8= 24 比特。(3) 某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为210字节,页表项大小为2字节,逻辑地址结构为“|页目录号|页表号|页内偏移量|”逻辑地址空间大小为216页,则表示整个逻辑地址空间的页目录表中包含的表项的个数至少为_。A. 64B. 128C. 256D. 512【注】页大小为210字节,页表项大小为2字节,则一页可以存放210/2=29个页表项,逻辑地址空间大小为216页,故需要216个页表项,即需要216/29 = 27 = 128个页面用于保存页表项。所以页目录表中包含的表项的个数至少为128,每个表项指向一个二级页表。(4) 一般情况下,_的速度最快。A. CPU L1缓存B. CPU L2缓存C. 内存D. 磁盘【注】访问速度上 cache Main Memory Disk;cache中 L1 L2 L3 . 越靠近CPU速度越快,容量越小。(5) 分页系统中, 逻辑地址到物理地址的变换是由_决定的。A. 段表B. 页表C. 物理结构D. 重定位寄存器【注】分页系统中,页表负责转换逻辑地址到物理地址。(6) 分段系统中, 逻辑地址到物理地址的变换是由_决定的。A. 段表 B. 页表 C. 物理结构 D. 重定位寄存器【注】分段系统中,段表负责转换逻辑地址到物理地址。(7) 连续内存分配算法中的First Fit(最先匹配)算法,其空闲分区链的顺序为_。A. 空闲区首地址递增C. 空闲区大小递增B. 空闲区首地址递减D. 空闲区大小递减5 【注】First Fit是指按地址来寻找第一个满足要求的空闲块,其空闲分区链的顺序也就是按空闲块首地址递增。(8) 连续内存分配算法中的Best Fit(最佳匹配)算法,其空闲分区链的顺序为_。A. 空闲区首地址递增C. 空闲区大小递增B. 空闲区首地址递减D. 空闲区大小递减【注】Best Fit是指寻找一个大小最合适的空闲块,要求空闲块按照大小排列,其空闲分区链的顺序为按大小递增。(9) 连续内存分配算法First Fit(最先匹配)的缺点是_。A. 算法复杂B. 大的空闲分区会被分割D. 分配速度慢C. 容易产生外部碎片【注】First Fit算法非常简单,分配速度也较快。但是First Fit不考虑实际的需求和找到的空闲分区的大小的匹配度,所以容易产生外部碎片。(10) 连续内存分配算法Best Fit(最佳匹配)的缺点是_。A. 算法复杂B. 大的空闲分区会被分割D.回收速度慢C. 分配速度慢【注】Best Fit算法也非常简单,分配速度较快。由于选取的空闲分区大小都很合适,所以基本不会出现大的空闲分区总是被分割的情况。但是在此算法中,内存回收则涉及了很多操作:判断左右邻居是否是空闲分区,如果不是,则插入此空闲分区到合适的地方,如果是则合并空闲块,并把合并后的结果插入到合适地方;但是由于空闲分区链不是按地址排序的,所以上述操作需要遍历几次链表用于查找和插入,速度较慢。(11) 连续内存分配算法Worst Fit(最差匹配)的缺点是_。A. 算法复杂B. 大的空闲分区会被分割D. 容易产生很小的空闲分区C. 分配速度慢【注】Worst Fit每次使用最大的空闲分区,按照需求分割相应的大小,所以会造成大的空闲分区总是被分割。其算法比较简单,分配速度也很快。(12) 应用程序中的逻辑地址到物理内存中的物理地址的转换机制建立的过程发生_程序过程中。A. 编译B. 链接C. 加载D. 运行6每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。这样,第一次找到的能满足要求的空闲区,必然是最佳的。然而在宏观上却不一定。因为每次分配后所切割下来的剩余部分总是最小的,这样在存储器中会留下许多难以利用的小空闲区。 【注】在编译器编译和链接程序的过程中都只涉及到逻辑地址,跟机器的配置无关,这也是编译链接所生成的可执行文件可以直接在相同系统的其它机器上使用的原因。而在操作系统加载应用程序时,操作系统负责建立应用程序的段表或页表。将逻辑地址和实际物理地址对应起来,之后应用程序在运行过程中CPU才能根据逻辑地址通过段表或页表正确地访问到物理地址。(13) 对于分页系统与分段系统,下列说法正确的是_。A. 页的大小跟具体执行程序有关B. 都属于非连续分配C. 段的大小固定且由系统确定D. 分段技术和分页技术是不能共存在一个系统中的【注】页的大小由CPU硬件规定的规范,并由操作系统进行初始化和管理,跟具体执行程序无关; 段的大小是指程序的数据段、代码段等每段的大小,和具体程序相关;分段技术和分页技术是按照需求进行动态的分配和回收,是非连续分配,它们可以融合使用,也称段页式管理。(14) 每道程序能在不受干扰的环境下运行,主要是通过_功能实现的。A. 内存分配B. 内存保护C. 内存回收D. 内存扩充【注】内存访问需要将逻辑地址和重定位寄存器(基址寄存器)进行加运算之后才能访问物理地址,而内存保护主要是使用界地址寄存器来实现对逻辑地址的限制,以免逻辑地址越界而造成物理地址访问越界,进而对别的程序进行干扰。(15) 分页系统中的页面对_透明,是_管理的。A. 程序员、编译器B. 程序员、操作系统D. 程序员、链接器C. 操作系统、编译器【注】分页由操作系统控制,用户并不能感知。(16) 在启动页机制的情况下,在CPU运行的用户进程访问的地址空间是_。A. 物理地址空间B. 逻辑地址空间C. 外设地址空间D. 都不是【注】用户进程访问的内存地址是虚拟地址,即逻辑地址。(17) 页目录表的基址是保存在寄存器_。A. CR0B. CR1C. CR2D. CR37 【注】CR3.(18) 关于分段系统和分页系统说法正确有_。(多选)A. 页是系统层面的内存管理的单位,分页的目的主要是由于操作系统管理的需要;段是编写程序层面的内存管理的单位,分段的目的主要是为了能更好地满足程序员开发的需要B. 页的大小是固定的,而且由系统确定。段的长度却是不固定的,决定于程序员所编写的程序C. 分段系统会产生外碎片,分页系统会产生内碎片D. 分段可灵活的控制存取访问,可根据各段的特点决定访问权【注】分段系统中段的大小是跟程序相关的,分段系统中每次分配的大小就是相应段的真实大小所以没有内部碎片;但是却会产生不满足任何段大小的空闲分区,就是外部碎片。(19) 连续内存分配的算法中,会产生外碎片的是_。(多选)A. 最先匹配算法B. 最差匹配算法C. 最佳域完整性:为保证数据在录入、修改、导入等操作中的正确性,可以设置保证数据正确性的约束条件,使数据只能在一定范围内才能存进数据库,实现“域完整性保护”匹配算法D. 都不会【注】三种算法都会有外碎片4. 虚拟内存管理(1) 下列关于虚拟存储器的叙述中,正确的是_。A. 虚拟存储只能基于连续分配技术C. 虚拟存储容量只受外存容量的限制B. 虚拟存储只能基于非连续分配技术D. 虚拟存储容量只受内容容量的限制【注】采用连续分配方式的时候,会使得相当一部分内存空间都处于空闲状态,造成内存资源的严重浪费,无法从逻辑上扩大内存容量。只能基于非连续分配技术。(2) 在缺页处理过程中,操作系统执行的操作可能是_。(修改页表;磁盘I/O;分配页帧)A. 仅、B. 仅、C. 仅、D. 、【注】如果还有可分配给程序的内存,那么会分配新的页帧,修改页表,从磁盘读取内容放入到分配的页帧中。(3) 一个虚拟存储器系统中,主存容量16MB,辅存容量1GB,地址寄存器位数32位。那么虚存最大容量为_。A. 1GBB. 16MBC. 1GB + 16MBD. 4GB8 【注】虚拟存储器的最大容量跟虚拟地址空间有关,是232。(4) 为了使得内存需求较大的程序能够正常运行,常需要通过外存和内存的交换技术,这被叫做_技术。A. 虚拟机B. 内存分配C. 进程调度D. 虚拟存储【注】虚拟机用于模拟真实物理机器,单独的内存分配技术可以不考虑使用外存,进程调度则用于管理进程的执行时间和次序等。虚拟存储是指当真实内存不能满足需求的时候,可以将程序需要的代码和数据放到内存中,暂时不需要的放到外存上;通过内存和外存的不断交换,来满足程序的运行需求。(5) 虚拟内存是为了应对_的问题。A. 内存访问速度过慢B. 内存管理困难D. 磁盘访问过慢C. 内存容量不满足程序需求【注】虚拟内存是应对内存容量不能满足程序需求的情况,并不能解决内存内存和外存访问速度的问题。(6) 一般来讲,虚拟内存使得程序的运行速度_。A. 加快B. 不变C. 变慢D. 变得极不稳定【注】由于虚拟内存有可能造成外存和内存的不断交换,虽然能够满足大程序的运行需求,但是程序的运行速度相比没有虚拟内存的情况下会变慢。(7) 虚拟内存常用的页面淘汰技术,主要利用了程序的_特征。A. 健壮性B. 完整性C. 局部性D. 正确性【注】程序的局部性是指程序呈现在某段时间内只访问程序的某一部分代码和数据的特性,而页面置换算法可以利用这一特性使常被访问的页面不被淘汰也就减少了缺页率。(8) 在虚拟页式内存管理系统中,页表项中的访问位给_提供参考价值。A. 分配页面B. 页面置换算法C. 换出页面D. 程序访问【注】页面置换算法可能需要根据不同页面是否被访问,访问时间和访问频率等进行淘汰页面的选择。(9) 在虚拟页式内存管理系统中,页表项中的修改位供_使用。A. 分配页面B. 页面置换算法C. 换出页面D. 程序访问9 【注】页面换出的时候,需要判断外存上的相应页面是否需要重写。如果内存中该页面在使用期间发生了修改,则相应的修改位被设置,用于换出的时候通知操作系统进行外存相应页面的修改。(10) 在虚拟页式内存管理系统中,页表项中的_供程序访问时使用。A. 访问位B.修改位C. 状态位D. 保护位【注】页表项的状态位用于指示该页是否已经调入内存,供程序访问时使用,如果发现该页未调入内存,则产生缺页中断,由操作系统进行相应处理。(11) 在虚拟页式内存管理系统中,发生缺页的概率一般取决于_。A. 内存分配算法B. 内存读取速度C. 内存写入速度D. 页面置换算法【注】缺页率的高低跟实际能分配的物理内存的大小,以及系统中的页面置换算法相关。差的页面置换算法可能造成需要访问的页面经常没有在内存中,而需要进行缺页中断处理。(12) 页面置换算法的优劣,表现在_。A. 程序在运行时能够分配到的页面数B. 单位时间内,程序在运行时得到的CPU执行时间C. 程序在运行时产生的页面换入换出次数D. 程序本身的访存指令个数【注】页面置换算法在满足程序运行需求的同时,应尽量降低页面的置换次数,从而降低运行开销。(13) 选择在将来最久的时间内不会被访问的页面作为换出页面的算法叫做_。A. 最优页面置换算法B. LRUC. FIFOD. CLOCK【注】LRU是换出在过去的时间里最久未被访问的页面;FIFO是换出最先被换入的页面;CLOCK类似于LRU,也是对FIFO的改进。但是以上三种算法都是根据过去一段时间内的页面访问规律进行换出页面的选择。而最优页面置换算法是指换出将来在最久的时间内不会被访问的页面,是一种理想情况也是不可能实现的。(14) Belady异常是指_。A. 频繁的出页入页现象B. 分配的物理页数变多,缺页中断的次数却增加C. 进程的内存需求过高,不能正常运行10 D. 进程访问内存的时间多于读取磁盘的时间【注】一般情况下,分配的物理页数越多,缺页率会越低。但是某些页面置换算法如FIFO就可能造成相反的情况,也即分配的物理页数增多,缺页率却增高的情况。这种情况称为Belady异常。(15) 在各种常见的页面置换算法中,_会出现Belady异常现象。A. FIFOB. LRUC. LFUD. CLOCK【注】FIFO可能出现Belady异常,如访问顺序1,2,3,4,1,2,5,1,2,3,4,5,在最多分配3个物理块的情况下缺页9次,而在最多分配4个物理块的情况下缺页10次。(16) 当进程访问的页面不存在,且系统不能继续给进程分配物理页面的时候,系统处理过程为_。A. 确定换出页面-页面换出-页面换入-缺页中断B. 缺页中断-页面换入-确定换出页面-页面换出C. 缺页中断-确定换出页面-页面换入-页面换出D. 缺页中断-确定换出页面-页面换出-页面换入【注】首先在程序访问的时候发现页面不在内存中,从而发出缺页中断,进入页面置换的流程。需要确定换出页面才能执行页面交换,而页面换入之前要保证页面已经正确的换出,因为页面换出可能需要重写外存中相应的页面。(17) 某进程的页面访问顺序为1、3、2、4、2、3、1、2,系统最多分配3个物理页面,那么采用LRU算法(最近最久未使用算法)时,进程运行过程中会发生_缺页。A. 三次B. 四次C. 五次D. 六次【注】1(缺页) - 3(缺页) - 2(缺页) - 4(缺页,换出1) - 2 - 3 - 1(缺页,换出4) - 2(18) 在现代提供虚拟内存的系统中,用户的逻辑地址空间_。A. 不受限制B. 受物理内存空间限制D. 受指令地址结构C. 受页面大小限制【注】逻辑地址空间受到逻辑地址的结构限制,也即为指令地址的结构限制。(19) 物理页帧数量为3,且初始时没有对应的虚拟页。虚拟页访问序列为 0, 1, 2, 0, 1, 3, 0, 3,1, 0, 3,请问采用最优置换算法的缺页次数为_。A. 1B. 2C. 3D. 411 【注】4次(20) 物理页帧数量为3,且初始时没有对应的虚拟页。虚拟页访问序列为 0, 1, 2, 0, 1, 3, 0, 3,1, 0, 3,请问采用LRU算法(最近最久未使用算法)的缺页次数为_。A. 1【注】4次B. 2C. 3D. 4(21) 物理页帧数量为3,且初始时没有对应的虚拟页。虚拟页访问序列为 0, 1, 2, 0, 1, 3, 0, 3,1, 0, 3,请问采用FIFO算法(先进先出算法)的缺页次数为_。A. 1【注】6次B. 2C. 4D. 6(22) 物理页帧数量为4,且初始时没有对应的虚拟页。虚拟页访问序列为 0, 3, 2, 0, 1, 3, 4, 3,1, 0, 3, 2, 1, 3, 4 ,请问采用CLOCK置换算法(时钟置换算法)(用1个bit表示存在时间)的缺页次数为_。A. 8【注】9次B. 9C. 10D. 11(23) 以下哪些页面置换算法是可以实现的_。(多选)A. 最优页面置换算法 B. LRU C. FIFOD. CLOCK【注】最优页面置换算法是根据将来的页面访问次序来选择应该换出的页面,因为在程序执行之前不可能已知将来的页面访问次序,所以不可能实现。而其它的页面置换算法则是根据已经发生的页面访问次序来决定换出的页面,都是可以实现的。(24) 影响缺页率的因素有_。(多选)A. 页面置换算法B. 分配给进程的物理页面数D. 程序本身的编写方法C. 页面本身的大小【注】总体来讲,缺页率的主要影响因素的页面置换算法和分配给进程的物理页面数。但是页面本身的大小和程序本身的编写方法则涉及到页面访问次序的变化,对缺页率也会造成影响。(25) 发生缺页的时候,一定会使用页面置换算法_错_。(判断)【注】发生缺页的时候,如果分配给程序的物理页面数还有空闲,则直接换入新的页面,不需要使用页面置换算法来挑选需要换出的页面。12 5. 进程与线程(1) 下列关于进程和线程的叙述中,正确的是_。A. 不管系统是否支持线程,进程都是资源分配的基本单位B. 线程是资源分配的基本单元,进程是调度的基本单位C. 系统级线程和用户级线程的切换都需要内核的支持D. 同一进程中的各个线程拥有各自不同的地址空间【注】引入线程的操作系统中,通常都是把进程作为资源分配的基本单位,而把线程作为独立运行的基本单位。同一进程中的各个线程都可以共享进程所拥有的系统资源,这表现在所有线程都有相同的地址空间。对于用户级线程的切换,通常是发生在一个应用进程的诸多线程之间,这时,也同样无须内核的支持。(2) OS对_分配内存资源。A. 线程B. 高速缓冲存储器C. 进程D. 快表【注】进程是系统资源分配的基本单位,线程是调度的基本单位,高速缓冲存储器和快表都是硬件。(3) 一进程基本状态可以从其他两种基本状态转变过去,这个基本状态一定是_。A. 运行状态B. 等待状态C. 就绪状态D. 退出状态【注】处于就绪状态的进程,已具备了运行条件,但由于未能获得CPU,故仍不能运行,就绪状态可以从运行状态和等待状态转换得到。(4) 在支持多线程的系统中,进程P创建的若干个线程不能共享的是_。A. 进程P的代码段B. 进程P打开的文件C. 进程P的全局变量D. 进程P中某线程的栈指针【注】多线程系统中,一个进程的多个线程共享进程的代码段、文件和全局变量,进程中某线程的栈指针是归该线程所独有,对其他线程透明,但不恩能够与其他线程共享。(5) 进程和程序之间有密切联系,但又有不同的概念,两者的一个本质区别是_。A. 程序是静态概念,进程是动态概念B. 程序是动态概念,进程是静态概念C. 程序保存在文件中,进程存放在内存中D. 程序顺序执行,进程并发执行【注】进程和程序的本质区别是程序是静态的,进程是动态的。13 (6) 若一进程拥有100个线程,这些线程属于用户级线程,则在系统调度执行时间上占用_个时间片。A. 1B. 100C. 1/100D. 0【注】在引入线程的系统中,资源仍然是按进程分配的,由于分配给该进程1个时间片,所以在执行时间上总共占1个时间片。(7) 对进程的描述中,下列说法错误的是_。A. 一个程序只对应一个进程C. 进程是有生命周期的B. 一个进程可以包含若干个程序D. 一个程序可以对应多个进程【注】进程是执行中的程序,它是有生命周期的,程序本身不是进程,程序只是被动实体,一个程序可能会有多个进程相关。(8) 下列的进程状态变化中,_变化是不可能发生的。A. 运行等待B. 等待运行C. 等待就绪D. 运行就绪【注】进程状态是由当前活动所定义,运行状态表示指令正在被执行,等待状态表示进程等待某个事件的发生,就绪态表示进程等待分配处理器,由进程状态图我们可以看到等待状态无法直接转变成运行状态,需要从等待态先变成就绪态。(9) 一个运行的进程用完了分配给它的时间片后,它的状态变为_。A. 运行B. 等待C. 就绪D. 终止【注】当一个进程用完了分配给它的时间片后,状态会变为就绪态,之后会继续等待分配处理器。(10) 下列关于进程控制块的描述中,说法错误的是_。A. 进程控制块记录进程的状态及名称等B. 进程控制块位于主存储区内C. 进程控制块对每个进程不止有一个D. 进程控制块的内容、格式及大小可能不同【注】每个进程在操作系统内用一个进程控制块来表示,每个进程控制块都记录进程的状态及名称等,并且每个进程对应一个进程控制块,进程控制块的内容、格式及大小可能不同,并且进程控制快位于主存储区内。14 (11) PCB是进程存在的唯一标志,下列_不属于PCB。A. 堆栈指针 B. 全局变量 C. 进程IDD. CPU状态【注】进程描述块包含许多与一个特定进程相关的信息,主要有:进程状态、程序计数器、CPU调度信息、内存管理信息、记账信息以及I/O状态信息。从题目中我们可以看出CPU状态信息并不包含在内。(12) 对于标准的线程,下列叙述中,错误的是_。A. 进程中可以包含多个线程C. 线程可以创建其他线程B. 线程并不拥有资源,只是使用他们D. 线程没有生命期【注】线程依然有生命周期。(13) 现在操作系统中,_是资源分配的基本单位,_是CPU调度的基本单位。A. 作业,程序 B. 内存,进程 C. 进程,线程 D. 代码,数据【注】在现代操作系统中,进程使资源分配的基本单位,线程是CPU调度的基本单位。其中线程与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源,如果进程有多个控制线程,那么它能同时做多个任务。(14) 下列各项工作步骤中,_不是创建进程所必需的步骤。A. 为进程分配内存等资源B. 将PCB链入进程就绪队列D. 建立一个PCBC. 作业调度程序为进程分配CPU【注】创建进程时不需要用作业调度程序为进程分配CPU。(15) 在多线程操作系统中,对线程具有属性阐述正确的是_。A. 具有进程控制块,共享所属进程资源,处理机的独立调度单位,具有动态性B. 具有线程控制块,共享所属进程资源,处理机的独立调度单位,具有动态性C. 具有进程控制块,独享所属进程资源,处理机的独立调度单位,具有动态性D. 具有进程控制块,共享所属进程资源,处理机的独立调度单位,具有静态性【注】线程具有进程控制块,共享所属进程资源,是处理机的独立调度单位,具有动态。(16) 能正确描述进程和线程的概念是_。(多选)A. 线程可以是进程中独立执行的实体,一个进程可以包含一个或多个线程B. 线程又称为轻型进程,因为线程都比进程小C. 多线程计数具有明显的优越性,如速度快、通信简便、设备并行性高15 D. 由于线程不作为资源分配单位,线程之间可以无约束地并行执行E. 一个线程可以属于一个或多个进程【注】虽然线程被称为轻量级线程,这并不意味着线程比进程小,进程和线程之间无法进行大小比较。线程是CPU调度的基本单位,当只有一个CPU时,它们只能通过调度依次执行(并发执行而不是并行执行)。(17) 采用多线程技术的操作系统具有_。(多选)A. 一个进程中可以有一个或多个线程B. 把进程作为资源分配单位,把线程作为调度和执行单位C. 不同的线程一定执行不同的程序D. 允许多个线程并发执行【注】不同的线程可能执行相同的程序,一个线程中可以有一个或多个线程,把进程作为资源分配单位,把线程作为调度和执行单位,允许多个线程并发执行。(18) 关于进程的生命周期的描述正确的是_。(多选)A. 内核选择一个就绪态的进程,让它占用处理机并执行,此时进程处于运行态B. 进程请求并等待系统服务,无法马上完成,此时进程处于等待态C. 进程执行的当前时间片用完了,此时进程处于就绪态D. 进程退出了,但还没被父进程回收,此时进程处于zombie态(僵死态)【注】都对。(19) 在父进程还存活的情况下, 不会产生僵死状态。错(判断)【注】一个已经终止但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息,释放它仍占用的资源)的进程称为僵尸进程(zombie)。这时进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构。6. 进程控制(1) 关于进程切换描述正确的是_。(多选)A. 进程切换会暂停当前运行进程,使其从运行状态变成就绪等其他状态B. 进程切换要保存当前进程的上下文C. 进程切换要恢复下一个进程的上下文D. 进程切换的进程上下文不包括CPU的寄存器等硬件信息【注】ABC16 7. CPU调度(1) 若当前进程因时间片用完而让出处理机时,该进程应转变为_状态。A. 就绪B. 等待C. 运行D. 完成【注】只有处于就绪队列中的进程才能得到时间片,因此因为时间片用完而让出CPU的进程应该再次返回到就绪队列中。时间片是轮循调度算法中的概念,所有的进程都会按照顺序被分配一个时间片,当时间片用完时如果进程执没有结束,那么应该让出CPU进入就绪队列等待下一个属于自己的时间片。(2) 最高响应比优先算法(HRRN)的特点是_。A. 有利于短作业但不利于长作业C. 不利于短作业也不利于长作业B. 有利于短作业又兼顾到长作业D. 不利于短作业但有利于长作业【注】最高响应比优先算法的响应值公式为(+s)/s,其中w为等待时间,s为服务时间,因此在等待时间相同的情况下优先选择服务时间短的进程,而当服务时间长的进程等待到一定时间后,其响应值会增加到能够被首先选择,避免了一直被服务时间短的进程超过,所以该算法有利于短作业又兼顾到长作业。(3) 在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于_。A. 进程相应的程序段的长度C. 进程自身和进程调度策略B. 进程总共需要运行时间多少D. 进程完成什么功能【注】在单处理器的多进程系统中,系统是依靠所使用的调度策略来对进程进行调度的,而其所采用的调度策略可能不止一种,所以什么时候选择什么进程占用处理器和能占用多长时间并不仅仅取决于进程的某一项特性。(4) 时间片轮转调度算法是为了_。A. 多个终端都能得到系统的及时响应C. 优先级高的进程先使用CPUB. 先来先服务D. 紧急事件优先处理【注】时间片轮转调度算法在选择进程时是按照到达时间进行选择的,所以不存在优先级高的进程,而每个进程每次只能占用同等的CPU时间,所以优先执行的进程并不一定比后执行的进程先完成,对于新加入的进程,只要是队列中等待的进程不是很多,都可以很及时地得到时间片来使用CPU,所以该算法能够使多个终端得到系统的及时响应。17 (5) 在基于优先级的可抢占的调度机制中,当系统强制使高优先级任务等待低优先级任务时,会发生_。A. 优先级反置B. 优先级重置C. 系统错误D. 死循环【注】优先级反置的定义:(1)可以发生在任何基于优先级的可抢占的调度机制中;(2)当系统内的环境强制使高优先级等待低优先级任务时发生。(6) 下面的调度算法中那个是公平的_。A. FCFS 先来先服务C. RR 时间片轮转B. SPN 短进程优先D. SRT 短剩余时间优先【注】FCFS算法可能导致某些进程长时间占用CPU,所以并不公平;SPN算法可能会使长进程在很长时间内得不到响应,所以也不公平;RR算法由于每个进程都能及时得到响应,并且不会长时间占用CPU,所以是公平的;SRT也就是SPN。(7) FCFS调度算法的特点不包括_。A. 简单B. 平均等待时间变化大C. I/O资源和CPU资源的利用率较高D. 花费时间少的任务可能排在花费时间长的任务后面【注】FCFS算法的优点是简单,缺点有(1)平均等待时间变化较大;(2)花费时间较少的任务可能排在花费时间较长的任务后面;(3)I/O资源和CPU资源的利用率较低,即CPU密集型进程导致I/O设备闲置时,I/O密集型进程也等待。(8) CPU调度策略的目标不包括_。A. 减少响应时间C. 减少等待时间B. 提高系统处理单任务的速度D. 增加吞吐量【注】系统处理单任务的速度不能通过CPU调度策略来改善,只能通过改善硬件性能和改良系统架构来提高。(9) 有5个批处理作业(A, B, C, D, E)几乎同时到达一个计算中心,估计运行时间分别为2, 4, 6,8, 10分钟,在使用时间片轮转作法(时间片为2分钟),作业的平均周转时间为_。A. 18分钟B. 6分钟C. 14分钟D. 22分钟【注】周转时间 = 进程从初始化到结束(包括等待)的总时间。进程A在第一次时间片轮转后就完成了,所以等待时间为0;进程B在第二次时间片轮转后完成,等待时间为(2) + (2*3) =18 8;进程C在第三次时间片轮转后完成,等待时间为(2+2+ 2*2) + (2+2*2) = 14;进程D在第四次时间片轮转后完成,等待时间为(2+2+2+2) + (2+2+2) + (2+2) = 18;进程E在第五次时间片轮转后完成,等待时间为(2+2+2+2) + (2+2+2) + (2+2) + 2 = 20;因此总的周转时间为(2+0) + (4+8) +(6+14) + (8+18) + (10+20) = 90,所以平均周转时间为90/5=18。(10) 对上下文切换的描述正确的是_。(多选)A. 切换CPU的当前任务到另一个任务B. 不需要保存当前进程在PCB/TCP中的执行上下文C. 需要读取下一个进程的上下文D. 只能读取没有被执行过的进程【注】上下文切换的相关概念:(1)切换CPU的当前任务,从一个进程到另一个进程;(2)保存当前进程在PCB/TCP的执行上下文;(3)读取下一个进程的上下文。被切换的进程可以是新来的,也可以是之前没有执行完的。(11) 下面可以作为比较调度算法的指标有_。(多选)A. CPU使用率D. 等待时间B. 吞吐量C. 周转时间E. 响应时间【注】衡量调度算法的5个方面:CPU使用率,吞吐量,周转时间,等待时间和响应时间。8. 进程同步与互斥(1) 操作系统中,两个或多个并发进程各自占有某种资源而又都等待别的进程释放它们所占有的资源的现象叫做_。A. 饥饿B. 死锁C. 死机D. 死循环【注】饥饿状态的进程不会进入等待状态,死锁是指两个或多个进程各自占有某种资源而又等待别的进程释放其所占有的资源。(2) 临界资源是什么类型的共享资源?A. 临界资源不是共享资源C. 互斥共享资源B. 用户共享资源C. 同时共享资源【注】临界资源是指能够被多个进程共享,但是同一时间只能由一个进程访问的资源,因此是互斥的。19 (3) 如果有5个进程共享同一程序段,每次允许3个进程进入该程序段,若用PV操作作为同步机制则信号量S为-1时表示_。A. 有四个进程进入了该程序段B. 有一个进程在等待C. 有三个进程进入了程序段,有一个进程在等待D. 有一个进程进入了该程序段,其余四个进程在等待【注】S初始为3,当有一个进程进入程序段或等待时,S减一. S为-1,意味着有四次减1的操作,也即3个进程获准进入,1个在等待。(4) 产生死锁的必要条件_。(多选)A. 互斥B. 可抢占C. 非抢占D. 持有并等待E. 循环等待【注】产生死锁的四个必要条件:(1)互斥-一个资源每次只能给一个进程使用(2)非抢占-资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放(3)持有并等待-一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)(4)循环等待-存在一个进程等待队列 P1 , P2 , , Pn, 其中P1等待P2占有的资源,P2等待P3占有的资源,Pn等待P1占有的资源,形成一个进程等待环路。(5) 产生死锁的根本原因是供使用的资源数少于需求资源的进程数。对(判断)【注】死锁是指两个或多个进程各自占有某种资源而又等待别的进程释放其所占有的资源,因此根本原因就是提供的资源少于需求的资源。(6) 参与死锁的所有进程都占有资源。错(判断)【注】应该是参与死锁的所有进程都等待资源。不占有资源的进程也可能进入死锁。(7) 所有进程都进入等待状态时,系统陷入死锁。错吧(判断)【注】产生死锁的四个必要条件:(1)互斥-一个资源每次只能给一个进程使用(2)非抢占-资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放(3)持有并等待-一个进程在申请新的资源的同时保持对原有资源的占有(只有这样才是动态申请,动态分配)(4)循环等待-存在一个进程等待队列 P1 , P2 , , Pn, 其中P1等待P2占有的资源,P2等待P3占有的资源,Pn等待P1占有的资源,形成一个进程等待环路。9. 死锁和进程间通信(1) 若P,V操作的信号量S初值为4,当前值为-1,则表示有_进程处于等待状态。20 A. 0B. 1C. 2D. 3【注】P操作会使S减1,如果S0,则P操作进程进入等待;V操作会使S加1,如果S=0,则会唤醒一个等待的程序。处于等待状态的进程的数目只和信号量当前值有关,而和信号量的初始值无关。(2) 银行家算法是一种_算法。A. 死锁解除B. 死锁避免C. 死锁预防D. 死锁检测【注】银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。(3) 进程从运行态进入阻塞态(等待态)可能是由于_。A. 现运行进程运行结束B. 现运行进程执行了P操作D. 现运行进程时间片用完C. 现运行进程执行了V操作【注】P操作使信号量减1,表明程序申请了资源,当信号量小于0时,表明没有可供使用的资源,程序将从运行态进入阻塞态。(4) 若信号量S的初值为2,且有三个进程共享此信号量,则S的取值范围是_。A. -3,2B. -2,2C. -1,2D. 0,2【注】因为S的初始值为2,而有3个进行共享信号量,所以S的最小值为2-3=-1,最大值为2-0=2。(5) 进程从阻塞(等待)状态进入就绪状态可能是由于_。A. 现运行进程运行结束B. 现运行进程执行了P操作D. 现运行进程时间片用完C. 现运行进程执行了V操作【注】V操作会使信号量加1,表明有程序释放了资源,而需要该资源的一个进程会被唤醒,成阻塞状态转换成就绪状态,准备获取资源并执行。(6) 资源的有序分配策略可以破坏死锁的_条件。A. 互斥B. 持有并等待C. 非抢占D. 循环等待【注】资源的有序分配策略属于死锁预防的一种,死锁预防是通过破坏4个必要条件中的1个或者多个以确保系统不会发生死锁。采用资源有序分配法是破坏了“环路”条件,即破坏了循环等待。21 (7) 一进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的_。A. 互斥条件B. 持有并等待条件D. 循环等待条件C. 非抢占条件【注】死锁的必要条件包括互斥、持有并等待、非抢占、循环等待。如果一个程序占有的资源只能由其使用完后自己释放,则满足其中的非抢占条件。(8) 计算机系统产生死锁的根本原因是_。A. 资源有限B. 进程推进顺序不当D. A和BC. 系统中进程太多【注】产生死锁的原因有两个,一是系统提供的资源不能满足每个进程的使用需求;二是在多道程序运行时,进程推进顺序不合法。(9) 某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台,当N不超过_时,系统不会死锁。A. 4B. 5C. 6D. 7【注】考虑下面的极端情况,每个进程都刚好分到了2台打印机,则只需要再分到一台打印机,某个进程就可以获得该打印机,完成自己的工作,并释放所有的打印机。其他的进程就可以完成,这样,N*2+1=11,所以N=5。(10) 死锁检测检查的是_。A. 资源分配图
展开阅读全文