操作系统复习题

2023-11-19

一、选择题

在计算机系统中,操作系统是(核心系统软件 )
(网络操作系统 )不是基本的操作系统
(实时性 )不是分时系统的基本特征
关于操作系统的叙述(能方便用户编程的程序 )是不正确的
操作系统的发展过程是(设备驱动程序组成的原始操作系统,管理程序,操作系统)
设计批处理多道系统时,首先要考虑的是(系统效率和吞吐量)
操作系统是一种(系统软件)
计算机系统的组成包括 (计算机硬件和计算机软件)
下面关于计算机软件的描述正确的是(它是指计算机的程序及文档 )
财务软件是一种(应用软件)
世界上第一个操作系统是(单道批处理系统)
批处理操作系统提高了计算机的工作效率,但(在作业执行时用户不能直接干预)
允许多个用户以交互使用计算机的操作系统是(分时系统)
下面关于操作系统的叙述正确的是(批处理作业必须具有作业控制信息)
操作系统是一组(资源管理程序)
现代操作系统的两个基本特征是(程序的并发执行)和资源共享.
( 高级程序设计语言的编译器 )不是操作系统关心的主要问题
引入多道程序的目的是(充分利用CPU,减少CPU的等待时间 )
在多道程序设计的计算机系统中,CPU(可以被多个程序交替占用 )
多道程序设计是指(有多个程序同时进入主存并发运行 )
从总体上说,采用多道程序设计技术可以__ 增加__单位时间的算题量,但对每一个算题,从算题开始到全部完成所需的时间比单道执行所需的时间可能要(延长 ).
下列四个操作系统中,是分时系统的是(UNIX ).
在分时系统中,时间片一定,(用户数越多),响应时间越长
批处理系统的主要缺点是(失去了交互性)
在下列性质中,哪一个不是分时系统的特征.(成批性)
实时操作系统追求的目标是(快速响应)
以下(文档编辑)项功能不是操作系统具备的主要功能
操作系统程序结构的主要特点是(层次模块化)
操作系统负责为方便用户管理计算机系统的( 资源 )
计算机在接受用户请求后处理数据以及在数据处理结束时,将结果送到终端显示器.例如,导弹控制系统应选择安装(实时操作系统) 。
操作系统的基本职能是(控制和管理系统内各种资源,有效地组织多道程序的运行) .
分布式操作系统与网络操作系统本质上的不同在于( 系统中若干台计算机相互协作完成同一任务 ) .
Linux操作系统是著名的(分时系统)
主要由于(linux小部分由汇编、大部分用C语言编写)原因,使linux易于移植.
(模块之间调用关系简明 )不是Linux系统的特色.
在下列关于Linux的论述中,(路径名是Linux独有的实现文件共享的机制 )是不正确的.
最基本的系统软件是 (操作系统) 
计算机操作系统的作用是 (管理计算机系统的全部软.硬件资源,合理组织计算机的工作流程,以达到充分发挥计算机资源的效率,为用户提供使用计算机的友好界面 
操作系统的主要功能是(对计算机系统的所有资源进行控制和管理) 
下列哪项不是分时操作系统的特点( 自治性 )
操作系统核心部分的主要特点是(常驻内存 )。
操作系统是计算机系统的核心软件。某类操作系统是一旦有处理请求和要求处理的数据时,CPU就应该立即处理该数据并将结果及时送回,例如(航空订票系统)等。
关于操作系统的叙述("能方便用户编程的程序" )是不正确的。
_DOS_没有多道程序设计的特点.
以下对进程的描述中,错误的是( 进程是指令的集合 )。
以下关于进程的描述中,正确的是( 进程获得CPU 运行是通过调度得到的)。
以下关于进程的描述中, 一一进程是在多个程序并行环境中的完整的程序 
一最不符合操作系统对进程的理解。
一个进程是(PCB 结构、程序和数据的组合 
、并发进程指的是(可同时执行的进程 )。
在单处理器系统中实现并发技术后, (各进程在一个时间段内并发运行,CPU 与I/O设备间并行工作 )。
、在多道程序设计环境下, 操作系统分配资源以( 进程)为基本单位。
分配到必要的资源并获得处理机时间的进程状态是(运行状态)。
当一个进程处于这样的状态时,(它正等着输入一批数据 ),称为阻塞状态。
某个运行中的进程要申请打印机, 它将变为(阻塞态)。
以下进程状态转变中,(阻塞→运行)转变是不可能发生的
当(时间片到)时,进程从执行状态转变为就绪状态。
一个进程的基本状态可以从其他两种基本状态转变过来,这个基本状态一定是(就绪状态)
当一个进程完成一个时间片后, 系统需要将该进程的状态由运行状态转变为(就绪状态)。
进程状态由就绪态转换为运行态是由(进程调度)引起的。
一个进程被唤醒意味着(进程变为就绪状态,该进程可能重新占用CPU
下列选项中,降低进程优先级的合理时机是(进程的时间片用完 )
进程自身决定(从运行状态到阻塞状态 )。
以下可能导致一个进程从运行状态变为就绪状态的事件是(出现了比现在进程优先级更高的进程 )。
某进程由于需要从硬盘上读入数据而处于阻塞状态。当系统完成了所需的读盘操作后,此时该进程的状态将(从阻塞变为就绪 )。
一个进程释放一种资源将有可能导致一个或几个进程(由阻塞变为就绪 
一次I/O操作的结束,有可能导致( 一个进程由阻塞变为就绪)。
(一个进程从运行态变为就绪态 )必会引起进程切换。
对进程的管理和控制使用(原语)。
进程调度主要负责(选一个进程占有CPU 
进程被创建后即进入(就绪队列 )排队。
以下所述步骤中,(由调度程序为进程分配CPU )不是创建进程所必须的。
以下(设备分配)不会引起进程创建。
以下关于父进程和子进程的叙述中,正确的是(父进程和子进程可以并发执行 
下列关于进程和线程的叙述中,正确的是(不管系统是否支持线程,进程都是资源分配的基本单位)。
在引入线程的操作系统中, 资源分配的基本单位是(进程)。
建立多线程的主要目的是提高(CPU)的利用率。
在下面的叙述中,正确的是(线程的切换,可能引起进程的切换 
在下面的叙述中,正确的是(引入线程可提高程序并发执行的程度,可进一步提高系统效率 
在下面的叙述中,正确的是(同一进程或不同进程内的线程都可以并发执行)。
以下关于线程的叙述中,正确的是(内核支持线程的切换都需要内核的支持 
在引入线程的操作系统中, CPU分配的基本单位是(线程)。
内核支持线程是指(内核创建的用户线程或系统进程 
在支持多线程的系统中,进程P创建的若干线程不能共享的是(进程P中某线程的栈指针 
在以下描述中,(键盘驱动程序为每一个正在运行的应用配备一个线程,用以响应该应用的键盘输入)并不是多线程系统的特长。
若一个用户进程通过read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( 若该文件的数据不在内存中,则该进程进入睡眠等待状态
请求read 系统调用会导致CPU 从用户态切换到核心态
下列选项中,导致创建新进程的操作是(I 用户登录成功 III.启动程序执行
在操作系统中,临界界区是(一段程序)。
进程在处理机上执行(进程之间可能交互,也可能无关 )。
以下关于临界资源的叙述中,正确的是(临界资源是互斥的共享资源 )。
以下(公用队列结构 )属于临界资源。
以下(非共享数据 )不属于临界资源。
一个正在访问临界资源的进程由于申请I/O操作而被阻塞时,(可以允许其他就绪进程抢占处理机,继续执行)。
以下(无限等待 )不是同步机制应遵循的准则。
在操作系统中,要对并发进程进行同步的原因是(并发进程是异步的)。
下述选项中体现原语特点的是(不可分割性)。
操作系统中有一组常称为特殊系统调用的程序,它在执行过程中不能被系统中断,这种程序称为(原语)。
在操作系统中,P、V操作是一种(低级进程通信原语 
进程从执行状态到阻塞状态可能是由于(当前运行的进程执行了P操作 )。
用V操作唤醒一个等待进程时,被唤醒进程的状态变为(就绪)。
用来实现进程同步和互斥的P、V操作实际上是由(两个不可被中断的)过程组成的。
如果进程对信号量S执行V操作,则信号量S的值将(加1 )。
P、V操作是进程同步、互斥的(原语)。
用P、V操作管理临界区时,信号量的初值应定义为(1)。
在用信号量机制实现互斥时,信号量的初值为( 1)。
用P、V操作实现进程同步,信号量的初值为( 由用户确定)。
如果有4个进程共享同一程序段,每次允许3个进程进入该程序段,若用P、V操作作为同步机制,则信号量的取值范围是( -1,0,1,2,3 )
在9个生产者、6个消费者共享8个单元缓冲区的生产者--消费者问题中,互斥使用缓冲区的信号量的初始值为(1)。
对信号量X执行P操作中,若(X-1<0)则进程进入等待状态。
对信号量X执行V操作中,若(X+1≤0)则唤醒阻塞队列中的队首进程
若信号量S的初值为2,当前值为-1,则表示有(1个)等待进程。
若信号量S的初值为3,当前值为-2,则表示有(2个)等待进程。
若信号量S的初值为3,当前值为1.则表示有(0个)等待进程。
设与某资源相关联的信号量初值为3,当前值为1,若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是( 1,0)。
对于两个并发进程,设互斥信号量为mutex(初值为1),若当前mutex=0,则(表示有一个进程进入临界区 
对于两个并发进程,设互斥信号量为mutex(初值为1),若mutex=1,则(表示没有进程进入临界区)
对于两个并发进程,设互斥信号量为mutex(初值为1),若mutex=-1,则( 表示有一个进程进入临界区,另一个进程等待进入)。
当一进程因在互斥信号量mutex上执行P(mutex)操作而被阻塞,则此时mutex的值为(小于0)。
当一进程因在互斥信号量mutex上执行V(mutex)操作而导致唤醒另一个进程时,则此时mutex的值为(小于等于0)
如果系统中有n个进程,则就绪队列中进程的个数最多为(n-1)。
若一个系统中共有5个并发进程涉及某个相同的变量A,则变量A的相关临界区是由( 5)个临界区构成的。
设有n个进程共用一个相同的程序段,如果每次最多允许m个进程(m≤n)同时进入临界区,则信号量的初值为(m)。
有两个并发执行的进程P1和P2,共享初值为1的变量X。P1对x加1,P2对x减1。加1和减1操作的指令序列分别如下所示: 两个操作完成后,X的值(能为0、1或2)。
下述哪个选项不是管程的组成部分(管程外过程调用管程内数据结构的说明)。
以下关于管程的描述中错误的是(管程中signal操作的作用和信号量机制中的V操作相同)。
在操作系统中,死锁出现是指(若干进程因竞争资源而无限等待其他进程释放已占有的资源 )。
在(若干进程因竞争资源而无休止地相互等待他方释放己占有的资源 )的情况下,系统出现死锁。
当出现(多个进程竞争资源出现了循环等待)情况下,系统可能出现死锁。
为多道程序提供的可共享资源不足时,可能出现死锁。但是,不适当的(进程推进顺序)也可能产生死锁。
采用资源剥夺法可以解除死锁,还可以采用(撤销进程)方法解除死锁。
死锁产生的原因之一是(资源分配不当 )
产生死锁的4 个必要条件是:互斥、(请求与保持)、循环等待和不剥夺。
一个进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的(不剥夺条件)
死锁的预防是根据(破坏死锁的四个必要条件之一 )而采取措施实现的。
资源的有序分配策略可以破坏死锁的(循环等待)条件。
发生死锁的必要条件有4 个,要防止死锁的发生,可以通过破坏这4个必要条件之一来实现,但破坏(互斥)条件是不太实际的。
某系统中有11 台打印机, N 个进程共享打印机资源,每个进程要求3 台。当N的取值不超过(5 )时,系统不会发生死锁。
某计算机系统中有8 台打印机,由K个进程竞争使用,每个进程最多需要3 台打印机。该系统可能会发生死锁的K的最小值是( 4 )。
银行家算法在解决死锁问题中是用于(避免死锁)的。
某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是(10)。
在下列解决死锁的方法中,属于死锁预防策略的是(有序资源分配法 
、死锁定理是用于处理死锁的(检测死锁 )方法。
假设5 个进程P0、P 1 、P2 、P3、P4共享三类资源R1 、R2 、R3, 这些资源总数分别为18 、6 、 22。T0时刻的资源分配情况如下表所示,此时存在的一个安全序列是(P3,P4,P2,P1 ,P0 
操作系统通过__PCB __对进程进行管理。
在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1、2、3、4、1、2、5、1、2、3、4、5、6时,将产生(10 )次缺页中断。
设内存的分配情况如下图所示。若要申请一块40K字节的内存空间,若采用最佳适应算法,则所得到的分区首址为(330K)。
在可变式分区存储管理中的拼接技术可以(集中空闲区)。
分区管理中采用"最佳适应"分配算法时,宜把空闲区按( 长度递增)次序登记在空闲区表中
在固定分区分配中,每个分区的大小是(可以不同但预先固定)。
实现虚拟存储器的目的是(扩充主存容量 )。
把作业地址空间中使用的逻辑地址变成内存中物理地址的过程称为(重定位)。
首次适应算法的空闲区是(按地址递增顺序连在一起)。
虚拟存储管理系统的基础是程序的(局部性)理论。
采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是(2的16)。
某系统段表的内容如下表所示一逻辑地址为(2,154),它对应的物理地址为(480K+154)。
在一个页式存储管理系统中,页表内容如下所示:若页的大小为4K,则地址转换机构将逻辑地址8644转换成的物理地址为(33220 )。
要保证一个程序在主存中被改变了存放位置后仍能正确执行,则对主存空间应采用(动态重定位)技术。
在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能要与相邻空闲区合并。在修改未分配区表时,使空闲区个数不变且空闲区始址不变的情况是(有上邻但无下邻 )空闲区。
设基址寄存器内容为1000,在采用动态重定位的系统中,当执行指令"LOAD A,3000"时,操作数的实际地址是(4000)。
LRU页面调度算法是选择(近期最长时间以来没被访问的页先淘汰 )的页面先调出
在请求页式存储管理中,当查找的页不在(内存)中时,要产生缺页中断。
在存储管理中,采用覆盖与交换技术的目的是 (节省内存空间 ) 
采用 (分段式存储管理 ) 不会产生内部碎片
虚拟存储器的最大容量 (由计算机的地址结构决定 ) 
某虚拟存储器系统采用页式内存管理,使用LRU 页面替换算法,考虑下 面的页面访问地址流(每次访问在一个时间单位内完成): 1、8、1、7、8、2、7、2、1、8、3、8、2、1、3、1、7、1、3、7 ,假定内存容量为4 个页面,开始时是空的,则页面失效次数是 ( 6  ) 。
在可变式分区存储管理中的紧缩技术可以 ( 集中空闲区) 
在固定分区分配中,每个分区的大小是( 可以不同但预先固定) 。
分页式虚拟存储系统中,页面的大小与可能产生的缺页中断次数(成反比 )
某计算机采用二级页表的分页存储管理方式,按字节编址大小为2^10 字节,页表项大小为2字节,逻辑地址结构为:逻辑地址空间大小为2^16 页,则表示整个逻辑地址空间的页目录中包含表项的个数至少是(128 )。
页式虚拟存储管理的主要特点是 (不要求将作业同时全部装入到内存的连续区域 ) 
作业在执行中发生了缺页中断,经操作系统处理后,应让其执行 ( 被中断的那一条) 指令。
在请求分页存储管理中,若采用FIFO 页面淘汰算法,则当分配的页面 数增加时,缺页中断的次数( 可能增加也可能减少)。
在以下存储管理方案中,不适用于多道程序设计系统的是 ( 单用户连续分配)
下述 (先进先出 )页面淘汰算法会产生Belady 现象
在可变式分区分配方案中,某一作业完成后,系统收回其内存空间并与 相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 (有上邻空闲区也有下邻空闲区 
若用8个字(字长32 位)组成的位示图管理内存。假定用户归还一个块号为100 的内存块时,它对应位示图的位置为( 字号为3,位号为4  )
在内存管理诸模式中,内存利用率最高的是(分页管理 )模式
动态扩充实现得最好的是(分段管理 )模式
内存利用率最高且保护和共享容易的是( 段页式管理)模式
虚存是(实际不存在的存储器 )
在请求分页存储管理中,如果所需的页面不在内存,则产生缺页中断,它属于(程序中断 ) 中断。
段的逻辑地址形式是段号10位,段内地址20位,内存1MB,辅存10GB。那么虚拟存储器最大实际容量可能是(1024MB)。
静态重定位的时机是(程序装入时 ).
通常所说的"存储保护"的基本含义是( 防止程序间相互越界访问)
LRU置换算法所基于的思想是( 在最近的过去很久未使用的在最近的将来也不会使用)
在下面关于虚拟存储器的叙述中,正确的是( 要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存)
在请求分页管理中,已修改过的页面再次装入时应来自( 磁盘对换区)。
在分区存储管理中,下面的(首次适应法 )最有可能使得高地址空间变成为大的空闲区
系统"抖动"现象的发生是由( 置换算法选择不当)引起的?
一般用户更喜欢使用的系统是(多道批处理)
特权指令可以在(任意时间)中执行
哪一个不是程序在并发系统内执行的特点(相互通信的可能性 
一般来说,为了实现多道程序设计,计算机最需要(更大的内存)
unix操作系统的进程控制块中常驻内存的是( proc结构和核心栈 
当(时间片到)时,进程从执行状态转变为就绪状态
下列各项工作步骤中,(作业调度程序为进程分配CPU )不是创建进程所必须的步骤
在下面的叙述中,正确的是(线程的切换,可能引起进程的切换 
为了照顾紧迫型作业,应采用(优先权调度算法)
作业从后备作业到被调度程序选中的时间称为(等待调度时间 
在段页式存储管理系统中其虚拟地址空间是(三维)的

二、判断题

操作系统属于最重要的、最不可缺少的应用软件。错误 
操作系统的所有程序都在系统态执行。 错误 
在单处理机的环境下,多道程序的执行是并发的不是并行的,程序的执行与I/O操作也只能并发不能并行。 错误 
当计算机系统没有用户执行时,处理机完全处于空闲状态错误 
超级用户(管理员、特权用户)可以使用特权指令。 
多道程序的执行一定不具备再现性错误 
分时系统不需要多道程序技术的支持。 错误 
分时系统的用户具有独占性,因此一个用户可以独占计算机系统的资源错误 
批处理系统不允许用户随时干涉自己程序的运行。 正确
操作系统的所有程序是常驻内存的错误 
在虚存系统中,只要磁盘空间无限大,作业就应该拥有任意大的编址空间。错误 
一个虚拟存储器的最大容量是由外存容量决定的错误 
分页式存储管理中,根据需要,在一个系统中,页面的大小是可以不相等的错误 
可变式分区管理,在内存中形成若干很小的碎片,这是采用什么方法也无法利用的错误 
在虚存系统中,作业拥有的最大地址空间受CPU 的地址结构限制正确
、虚地址即程序执行时所要访问的内存地址。错误 
虚拟存储的实现是基于程序局部性原理,其实质是借助外存将内存较小的物理地址空间转化为较大的逻辑地址空间正确
分页存储管理中,为了减少内部碎片,页面大小应偏小为好正确
可变连续分区可以有效消除外部碎片,但不能消除内部碎片错误 
LRU页面置换算法总是选择在内存驻留时间最长的页面淘汰错误 
资源的利用率越高用户越满意错误 
操作系统对进程的管理和控制主要是通过控制原语实现的正确
用管程实现进程同步时,管程中的过程是不可中断的正确
静态页式管理可以实现虚存错误 
页表的作用是实现逻辑地址到物理地址的映射错误 
系统中内存不足,程序无法执行正确
由于独占设备在一段时间内只允许一个进程使用,因此,多个并发进程无法访问这类设备。正确
操作系统使用的缓冲技术,多数通过使用外存来实现正确 
不同进程所执行的程序代码一定不同错误
不存在只涉及一个进程的死锁正确
设计实时操作系统时,首先应该考虑系统的优良性和分配性错误
进程从CPU退下时,将现场保存在系统栈内错误
进程上下文是仅进程执行全过程的静态描述错误
并发是并行的不同表述,其原理相同错误
同步信号量的初值一般为1错误
一个临界资源可以对应多个临界区正确
生产者和消费者问题是一个既有同步又有互斥的问题。正确
互斥的使用临界资源是通过互斥的进入临界区实现的正确
在银行家算法中,对某时刻的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的错误
进程调度算法各种各样,如果选择不当,就会造成死锁错误
为了使程序在内存中浮动,编程时都使用逻辑地址。因此,必须在地址转换后才能得到主存的物理地址错误
在请求分页存储管理中,页面的调入、调出只能在内存和对换区进行正确

三、填空题

操作系统是一种(系统)软件
若干个事件在同一时刻发生称为并行,若干个事件在同一时间间隔内发生称为__并发__ 
现代操作系统的两个最基本的特征是(并发)(共享)
实时操作系统应具有的两个基本特征是(及时性)和(可靠性)
进程的(并发执行)是指若干进程在执行时间上是重叠的
操作系统是通过将进程的___PCB_结构链接成队列来管理进程的。
(进程)是一个程序对某个数据集的一次运行活动
如果系统中有n个进程,则在等待队列中进程的个数最多为_n-1__个 
进程调度是从处于__就绪__状态的队列中选取进程投入运行
当进程执行的时间片用完时,进程从(执行)状态变为(就绪)状态
一个批处理型作业,从进入系统并驻留在外存的后备队列开始,直至作业运行完毕,
一般要进行以下三级调度:(高级调度)、(中级调度)、(低级调度)
有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,
进程调度采用以优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。
(1)作业A进入内存时间(1:10:00      )及结束时间(2:  11:10    )。 
         作业B进入内存时间(3: 10:20     )及结束时间(4:   10:50   )。
         作业C进入内存时间(5:11:10      )及结束时间(6: 12:00    )。
         作业D进入内存时间(7: 10:50     )及结束时间(8:  12:20    )。
(2)平均周转时间为(9:   70       )。
访问临界资源应遵循的准则是:空闲让进、(忙则等待)、有限等待、(让权等待)
在进程中访问临界资源的代码段叫(临界区)
在计算机中有许多资源一次只能允许一个进程使用,
如果多个进程同时使用这些资源,则有可能造成系统的混乱,这些资源被称为(临界资源
解除死锁常用的方法有两种,_剥夺资源法___是从其他进程那里剥夺足够数量的资源给死锁进程以解除死锁状态。
产生死锁的四个必要条件是:(互斥条件)、不剥夺条件、(请求与保持条件)、环路等待条件
系统有3个并发进程,都需要同类资源4个,该系统不会因这类资源发生死锁的最少资源个数为(10)
4、假设有5个进程P1、P2、P3、P4、P5,系统中共有3种资源类型A、B、C,且3种资源的总的个数分别为9、4、6
假设在T0时刻系统资源的分配情况如下图所示:
当前情况下,系统中3种资源的可用个数分别为(    2,2,1 )
T0时刻系统是安全状态,请给出一个安全序列(  P1、P3、P4、P2、P0 )
在T0时刻时,进程P1请求资源(1,0,2)能实施分配吗?如果可以,请写出安全序列(不能  )
重定位)是指由于一个作业装入到其地址空间不一致的存储空间所引起的对有关地址部分的调整过程
地址重定位的方式有两种(静态重定位)和(动态重定位)
把作业装入内存时随即进行地址变换的方式成为(静态重定位)
作业执行期间,当访问到指令或数据时才进行地址变换的方式为(动态重定位)
(最佳适应)算法是将作业放置到与它大小最接近且能满足其大小要求的空闲分区
页式存储管理中的页表指出了(页)与(块)之间的对应关系
分页是由(系统)自动完成的,而分段是由(用户)决定的
有一页式系统,其页表存放在主存中。如果对主存的一次存取需要100ns,那么实现一次页面访问的存取时间是( 200)ns
设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页1024B,内存总共有8个存储块,试问逻辑地址至少应为(  13)位。
实现虚拟存储器的目的是从逻辑上(扩充主存容量)
虚拟存储器不能无限大,它的容量由计算机的(地址结构)和(辅存的容量)决定,而与实际的主存容量无关
操作系统中对数据进行管理的部分叫(文件系统)
文件的逻辑组织将文件分为记录式文件和(流式)文件
“/db/x/y/a”的所有相对路径名:【      db/x/y/a      】、【    x/y/a      】、【   y/a     】、a

某分页管理系统中每页1KB,某进程3个虚页分别放在4、7、2号实页上,则虚地址1300对应的实地址为【  7444  】,实地址7400对应的虚地址为【  1256 】。

某分页管理系统中每页1KB,某进程3个虚页分别放在3、5、2号实页上,则虚地址1400对应的实地址为【  5496  】,实地址5400 对应的虚地址为【 1304   】。

四、大题

今有3个并发进程RMP,它们共享一个缓冲器B。进程R负责从输入设备读入信息,每读一个记录后把它存放在缓冲器B中。进程M在缓冲器B中加工进程R存入的记录。进程P把加工后的记录打印出来。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可以存放一个新的记录。为协调它们的工作,采用PV操作进行管理,请写出RMP 三个并发进程的伪代码。要求写出详细的步骤。

答案:

定义3个信号量 SR,SM,SP;
 
并且SR=1; SM=0; SP=0;                            ——1分
 
parbegin
 
Process R
 
{
 
while (1) {
 
从输入设备读入信息X;
 
P(SR);             //看看缓冲区B是否是空的
 
B=X;               //信息存入缓冲区B
 
V(SM);           //通知M,缓冲区B中已有记录               ——3分
 
}
 
}
 
 
Process M
 
{
 
while (1) {
 
P(SM);            //测试R是否已在B中存放信息
 
在缓冲器B中加工进程R存入的记录;
 
V(SP);             //通知P缓冲区B中的信息已可打印          ——3分
 
}
 
}
 
Process P
 
{
 
while (1) {
 
P(SP);       //测试M是否已将信息加工好
 
从B中取M加工后的信息Y;
 
V(SR);      //通知R,缓冲区B已可房信息
 
Print(Y);   //打印信息Y                                            ——3分
 
}
 
}
 
parend
 

244、在一个盒子里,混装了数量相等的黑白围棋子。现在用自动分拣系统把黑子、白子分开,设分拣系统有两个进程P1P2,其中P1拣白子,P2拣黑子。规定每个进程每次拣一子;当进程在拣时,不允许另一个进程取拣;当一个进程拣了一子时,必须让另一进程去捡。假设从拣白子开始。试写出P1P2进程能正确并发执行的算法程序。要求写出详细的步骤

答案:

解:定义信号量 mutex, S1, S2;

mutex=1; //互斥信号量

S1=1;      //P1的同步信号量,用于与P2同步,从P1拣第一个白子开始

S2=0;      // P2的同步信号量,用于与P1同步                                            ——2分

parbegin

Process P1

{

while (1) {

P(S1);

P(mutex);    //拣子必须互斥

拣一白子;

V(mutex);

V(S2);         //通知P2可以拣一黑子了                                      ——4分

}

}

Process P2

{

while (1) {

P(S2);         //看看P1是否已捡完一个白子

P(mutex);    //拣子必须互斥

拣一黑子;

V(mutex);

V(S1);         //通知P1可以拣一白子了                                      ——4分

}

}

parend

245、假定有一个成品仓库,总共能存放8台成品,生产者进程把生产成品放入仓库,消费者进程从仓库中取出成品消费。为了防止积压,仓库满时就停止生产。由于仓库搬运设备只有一套,故成品的存入和取出只能分别进行,试用PV操作来实现该方案。要求写出详细的步骤。

答案:

解:定义信号量 mutex, empty, full ;

mutex=1;        //互斥信号量

empty=8;        //生产者进程的同步信号量

full=0;           //消费者进程的同步信号量                                     ——2分

parbegin

process Pi  //生产者进程

{

while (1) {

生产一个成品x;

P(empty)       //看看仓库是否还有空间可放成品

P(mutex);      //互斥使用搬运设备

用搬运设备将成品放入仓库;

V(full);         //仓库中成品数增1(可能唤醒一个消费者)

V(mutex);                                                                 ——4分

}

}

process Cj  //消费者进程

{

while (1) {

P(full)           //看看仓库是否有成品

P(mutex);      //互斥使用搬运设备

用搬运设备将成品从仓库取出;

V(emtpy);     //仓库中可放成品数增1(可能唤醒一个生产者)

V(mutex);                                                                                   ——4分

}

}

parend

246、某自动质量检测系统有三个进程QAB组成。进程Q每次取一件产品检测,把检测后的产品存放在货架F上,F的容量为每次只能存放一件产品。若货架上存放的是合格产品则让进程A取出,并在产品上贴标签后包装;若货架上存放的是不合格产品则让进程B取出后,将其丢入废物箱。

请写出用PV操作管理时应定义的信号量及初值以及相应的操作,使它们能按上述要求正确地并发执行。

答案:

定义信号量empty,fulla,fullb,初值分别为1,0,0。      --------------------------------------- 1分

进程Q:

{

取一件产品检测;

P(empty);

F:=检测后的产品

If F=合格产品 then V(fulla);

else    V(fullb);                                                            -----------------------------3分

}

 进程A:

{

P(fulla) ;

y:=F中产品 ;

V(empty); ;

对产品贴标签且包装;

}                                                          ------------------------3分

进程B:

{

 P(fullb); ;

z:=F中产品;

V(empty);

把产品丢入废物箱;

}                                                            ------------------------3分

247、三个进程 P1P2P3 互斥使用一个包含 NN>0)个单元的缓冲区。P1 每次用 produce() 生成一个正整数并用 put()送入缓冲区某一个空单元中;P2 每次用 getodd()从该缓冲区中 取出一个奇数并用 countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个 偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动, 并说明所定义的信号量的含义。

答案:

semaphore mutex=1;//为了形成互斥

semaphore odd=0;//奇数计数

semaphore even=0;//偶数计数

semaphore empty=N;//缓冲区计数                                                  --------------------------1分

main()

cobegin{

p1(){

while(true){

p(empty);

p(mutex);

produce();

put();

v(mutex);

if(num%2==1)//生成的正整数为奇数

{

v(odd);

}

else{

v(even);

}

}

}                                                                         -----------------------------------3分

p2(){

while(true){

p(odd);

p(mutex);

getodd();

countodd();

v(empty);

v(mutex);

}

}                                                               --------------------------------------3分

P3(){

while(true){

p(even);

p(mutex);

geteven();

counteven();

v(empty);

v(mutex);

}

}

} coend                                                                       --------------------------------------3分

248、一个部落从一个大锅中一起吃炖肉,这个大锅一次可以存放 M 人份的炖肉。当人们想吃的时候,如果锅中不空,他们就自助着从大锅中吃肉。如果大锅空了,他们就叫醒厨师,等待厨师再做一锅肉。 人线程未同步的代码如下: while (true){ getServingFromPot()eat() } 厨师线程未同步的代码如下: while (true) { putServingsInPot(M) } 同步的要求是: 当大锅空的时候,人不能够调用 getServingFromPot() 仅当大锅为空的时候,大厨才能够调用 putServingsInPot() 问题:请写出使用 PV 满足同步要求的完整程序。

答案:

int servings = 0;//使用int的原因是一次要增加M个,用信息量显然不合适,不如采用全局变量+信息量保护的模式

semaphore mutex=1;//作为互斥量保护servings

semaphore empty=0;//锅空的信息

semaphore full=0; //锅满的信息                                             -------------------------------2分

void cook(){

while(true){

p(empty);//锅若不空则阻塞

putServingInPot(M);

v(full);

}

}                                                                                                 -------------------------------4分

void eat(){

while(true){

p(mutex);

if(servings==0){

v(empty);

p(full);//同步了!!cook实现以后,eat进程得到消息,就可以修改serving状态了

servings+=M;

}

serving--;

getServingFromPot();

v(mutex);

}

}                                                                                            -------------------------------4分

249桌子上有一只盘子,最多可容纳两个水果,每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,两个儿子专等吃盘子里的橘子,两个女儿专等吃盘子里的苹果。写出能使爸爸、妈妈、儿子、女儿正确同步工作的PV过程。

答案:

int mutex=1;

int apple=0;

int orange=0;

int plate=2;

Cobegin

mom();dad();son();daughter();

Coend                                                                     ---------------------2分

mom(){

while(1){

P(plate);

P(mutex);

放橘子;

V(mutex);

V(orange);

}

}                                                                              ---------------------2分

dad(){

while(1){

P(plate);

P(mutex);

放苹果;

V(mutex);

V(apple);

}

}                                                                             ---------------------2分

son(){

while(1){

P(orange);

P(mutex);

吃橘子;

V(mutex);

V(plate);

}

}                                                                        ---------------------2分

daughter(){

while(1){

P(apple);

P(mutex);

吃苹果;

V(mutex);

V(plate);

}

}                                                                     ---------------------2分

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统复习题 的相关文章

随机推荐

  • flutter 秒转时分秒

    参考 倒计时工具 class CountdownUtils 补零 static String zeroFill int i return i gt 10 i 0 i 秒转时分秒 static String second2HMS int se
  • 关系数据关联性分析实验

    1 散点图 基于ggplot内置数据mtcars 以mpg列为横坐标 以wt列为纵坐标 以cyl列分组控制颜色 绘制散点图 点的形状为三角形 大小为150 图的标题为 MPG VS WT from ggplot import data gg
  • 【RPA机器人】PDF批量转换成图片机器人

    运行前须知 1 仅支持win10系统 2 请确保安装金山PDF独立版 3 请把屏幕分辨率设置为1920x1080 缩放布局100 4 生成的图片将保存在所选文件夹目录下 运行流程 1 获取需批量转换PDF的文件夹 2 等待文件自动转换 运用
  • Python3中__call__方法介绍

    如果Python3类中有 call 方法 那么此类实例的行为类似于函数并且可以像函数一样被调用 当实例作为函数被调用时 如果定义了此方法 则x arg1 arg2 是x call arg1 arg2 的简写 为了将一个类实例当作函数调用 我
  • 如何实现一个分布锁?

    基本概念 为何需要分布式锁 传统环境中的情况 在程序开发过程中不得不考虑的就是并发问题 在java中对于同一个jvm而言 jdk已经提供了lock和同步等 但是在分布式情况下 往往存在多个进程对一些资源产生竞争关系 而这些进程往往在不同的机
  • 七. go 常见数据结构实现原理之 反射

    目录 一 golang 是如何实现反射的 如何比较两个对象完全相等 一 golang 是如何实现反射的 参考博客Go 语言问题集 Go Questions Go 语言在 reflect 包里定义了各种类型 实现了反射的各种函数 通过它们可以
  • 【Git系列】Git配置SSH免密登录

    Git配置SSH免密登录 1 设置用户名和邮箱 2 生成密钥 3 远程仓库配置密钥 2 免密登录 其他系列 Git最详细的体系化教程 在以上push操作过程中 我们第一次push时 是需要进行录入用户名和密码的 比较麻烦 而且我们使用的是h
  • 刷脸支付技术更多的是想要助力数字化运营

    刷脸支付是在原有的收银系统基础上增加一种收款方式 不影响收银系统 收银更有效 支付更便捷 体验感更好 节省时间成本 资金更安全 支付宝 微信官方为推广刷脸支付 两大官方投入巨额资金普及刷脸支付 日常生活中可避免忘记带手机 手机没电 通话中
  • C++17中utf-8 character literal的使用

    一个形如42的值被称作字面值常量 literal 这样的值一望而知 每个字面值常量都对应一种数据类型 字面值常量的形式和值决定了它的数据类型 由单引号括起来的一个字符称为char型字面值 双引号括起来的零个或多个字符则构成字符串型字面值 字
  • 两万字带你认识黑客在kali中使用的工具

    目录 前言 一 信息收集工具 二 脆弱性分析工具 三 漏洞利用工具 四 嗅探与欺骗工具 五 密码攻击工具 六 权限提升工具 七 Web应用工具 八 无线攻击工具 九 硬件黑客工具 十 维持访问工具 十一 取证工具 十二 逆向工程工具 十三
  • Linux动态链接库.so文件的创建与使用

    1 介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库 一个 程序函数库 简单的说就是一个文件包含了一些编译好的代码和数据 这些编译好的代码和数据可以在事后供其他的程序使用 程序函数库可以使整个程序更加模块化 更容易重新编译
  • Qt 简述QSettings配置文件保存使用数据

    前言 在开发中 需要将一些信息保存到本地 以便下次程序启动时使用 文件读写 数据库都是可以的 但是Qt提供了QSettings接口方法 将需要的信息写入或者读取配置文件中 其方法类似键值对 QSettings可以存储一系列设置 每个设置包括
  • 探讨Socks5代理IP在跨境电商与网络游戏中的网络安全应用

    随着全球互联网的迅猛发展 跨境电商和在线游戏成为了跨国公司和游戏开发商的新战场 然而 与此同时 网络安全问题也日益突出 本文将探讨如何利用Socks5代理IP来增强跨境电商和网络游戏的网络安全 保障数据传输的隐私和安全性 第一部分 Sock
  • 五分钟,带你彻底掌握 MyBatis 缓存的工作原理

    点击上方 芋道源码 选择 设为星标 管她前浪 还是后浪 能浪的浪 才是好浪 每天 8 55 更新文章 每天掉亿点点头发 源码精品专栏 原创 Java 2020 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络
  • Quartz框架多个trigger任务执行出现漏执行的问题分析

    一 问题描述 使用Quartz配置定时任务 配置了超过10个定时任务 这些定时任务配置的触发时间都是5分钟执行一次 实际运行时 发现总有几个定时任务不能执行到 二 示例程序 1 简单介绍 采用spring quartz整合方案实现定时任务
  • docker菜鸟入门

    菜鸟入门Docker 说明 一 什么是Docker 1 虚拟机和Linux容器 二 Docker用途 三 Docker安装 1 设置仓库 2 安装 Docker Engine Community 3 验证安装成功 四 Docker启动与停止
  • VoVNet论文解读

    摘要 1 介绍 2 高效网络设计的影响因素 2 1 内存访问代价 2 2 GPU计算效率 3 建议的方法 3 1 重新思考密集连接 3 2 One Shot Aggregation 3 3 构建 VoVNet 网络 4 实验 5 代码解读
  • 01背包(c++版)

    dp i j 表示从下标为 0 i 的物品里任意取 放进容量为j的背包 价值总和最大是多少 void test 2 wei bag problem1 vector
  • 上班族为何需要做副业?如何靠副业月入过万?

    网上统计某某城市平均工资8千以上 诶 一看自己3 4千 其实现在每个背井离乡在外上班的打工人都挺难的 城市很繁华 工资很现实 在工厂打螺丝的更是苦逼的生活 被资本家无情的压榨 在豪华的写字楼上班的白领 也过着996的生活 甚至是007的日子
  • 操作系统复习题

    一 选择题 在计算机系统中 操作系统是 核心系统软件 网络操作系统 不是基本的操作系统 实时性 不是分时系统的基本特征 关于操作系统的叙述 能方便用户编程的程序 是不正确的 操作系统的发展过程是 设备驱动程序组成的原始操作系统 管理程序 操