操作系统模拟及部分答案1
- 格式:doc
- 大小:64.00 KB
- 文档页数:6
自考操作系统试题及答案操作系统是计算机科学领域中的核心课程之一,它涉及到计算机系统的管理和控制,包括进程管理、内存管理、文件系统和输入/输出(I/O)等。
以下是一套模拟的自考操作系统试题及答案,供同学们学习和参考。
一、选择题1. 在操作系统中,进程和程序的主要区别是什么?A. 进程是程序的静态形式,程序是进程的动态形式B. 进程是程序的动态形式,程序是进程的静态形式C. 进程和程序是同一个概念D. 进程是程序的编译结果,程序是进程的执行结果答案:B2. 以下哪个不是操作系统提供的系统调用?A. 创建进程B. 打开文件C. 网络通信D. 数据加密答案:D3. 操作系统的内存管理主要负责以下哪项任务?A. 存储数据B. 管理进程的内存分配与回收C. 执行程序D. 管理文件系统答案:B4. 死锁的必要条件不包括以下哪一项?A. 互斥条件B. 占有和等待条件C. 不剥夺条件D. 资源饥饿条件答案:D5. 分页和分段是操作系统内存管理的两种不同方式,以下描述正确的是:A. 分页是将内存分为固定大小的块B. 分段是将内存分为可变大小的块C. 分页和分段都是将内存分为可变大小的块D. 分页和分段都是将内存分为固定大小的块答案:A二、简答题1. 简述操作系统的五大基本功能。
答案:操作系统的五大基本功能包括:- 进程管理:负责创建、调度和终止进程。
- 内存管理:负责内存的分配和回收,确保程序运行时有足够的内存空间。
- 文件系统管理:负责文件的存储、检索和组织。
- 输入/输出(I/O)管理:负责管理计算机硬件设备,如打印机、键盘等。
- 网络通信:负责操作系统与网络之间的通信。
2. 描述死锁的概念及其四个必要条件。
答案:死锁是指在多任务环境中,两个或多个进程在执行过程中因争夺资源而造成的一种僵局。
在这种状态下,每个进程都在等待其他进程释放资源,但因为没有一个进程能够继续向前推进,导致系统资源得不到有效利用。
死锁的四个必要条件包括:- 互斥条件:一个资源在一段时间内只能由一个进程使用。
单项选择题。
(1-40题,每题1分;41-60题每题2分,共80分)1. 1. 从用户的观点看,操作系统是()• A 用户与计算机之间的接口• B 控制和管理计算机资源的软件• C 合理的组织计算机工作流程的软件• D 由若干层次的程序按一定的结构组成的有机体答案与解析:A2. 2. 下列选择中,不是操作系统关心的主要问题()• A 管理计算机裸机• B 设计、提供用户程序与计算机硬件系统的界面• C 管理计算机系统资源• D 高级程序设计语言的编译器答案与解析:D3. 3. 实时操作系统必须在()内处理完来自外部的事件• A 响应时间• B 周转时间• C 规定时间• D 调度时间答案与解析:C4. 4. 在操作系统中,P、V操作是一种()• A 机器指令• B 系统调用命令• C 作业控制命令• D 低级进程通信原语答案与解析:D5. 5. 下面对进程的描述中,错误的是()• A 进程是动态概念• B 进程执行需要处理机• C 进程是有生命期的• D 进程是指令的集合答案与解析:D6. 6. 系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下列4种情况,不可能发生的情况是()• A 没有运行进程,有2个就绪进程,n-2个进程处于等待状态• B 有1个运行进程,没有就绪进程,n-1个进程处于等待状态• C 有1个运行进程,有1个就绪进程,n-2个进程处于等待状态• D 有1个运行进程,有n-1就绪进程,没有进程处于等待状态答案与解析:A7. 7. 为多道程序提供的可共享资源不足时,可能出现死锁。
但是,不适当的()也可能产生死锁。
• A 进程优先权• B 资源的线性分配• C 进程推进顺序• D 分配队列优先权答案与解析:C8. 8. 支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中()不是引起操作系统选择新进程的直接原因。
• A 运行进程的时间片用完• B 运行进程出错• C 运行进程要等待某一事件发生• D 有新进程进入就绪队列答案与解析:D9. 9. 虚拟存储器的最大容量()• A 为内外存容量之和• B 由计算机的地址结构决定• C 是任意的• D 由作业的地址空间决定答案与解析:B10. 10. 把作业地址空间使用的逻辑地址变成内存物理地址称为()• A 加载• B 重定位• C 物理化• D 逻辑化答案与解析:B11. 11. 如果I/O所花费的时间比CPU处理时间短得多,则缓冲区()• A 最有效• B 几乎失效• C 均衡• D 以上都不是答案与解析:B12. 12. ()是操作系统中采用空间换取时间的技术。
操作系统概论模拟题与参考答案一、单选题(共90题,每题1分,共90分)1、下列关于分页和分段的区别的说法中,错误的是A、分页的引入是为了提高内存的利用率和支持虚拟存储B、分页属于离散分配方式,而分段不属于离散分配方式C、引入分段的目的是为了方便程序员编程D、页的大小是固定的,而段的大小不固定正确答案:B2、【】的优点是向用户提供了人机交互的方便性,使多个用户可以通过不同的终端共享主机。
A、多道批处理系统B、多道批处理系统C、实时系统D、分时系统正确答案:D3、下列关于程序的链接的说法中,错误的是A、动态链接程序的任务之一是对逻辑地址进行修改B、根据链接进行的时间和实现方式的不同,可以把链接分为静态链接和动态链接C、链接程序不属于操作系统的构成部分D、静态链接程序的任务之一是变换外部调用符号正确答案:A4、将物理内存空间分成与页大小相同的若干个存储块,称为A、页表B、页C、页内碎片D、页框正确答案:D5、操作系统负责管理计算机的A、进程B、作业C、资源D、程序正确答案:C6、操作系统所管理的资源不包括A、内存B、设备C、处理机D、程序正确答案:D7、文件结构的类型不包括A、层次结构B、树形结构C、无结构字节序列D、固定长度记录序列正确答案:A8、内核线程的阻塞过程不包括A、将该线程控制块插入相应的线程阻塞队列B、将该线程控制块插入相应的线程就绪队列C、将控制传递给线程调度程序,重新进行线程调度D、停止该线程的执行,将该线程的状态改为阻塞态正确答案:B9、下列不能引起同步中断的是A、除法出错B、浮点出错C、硬件故障D、溢出正确答案:C10、下列关于线程概念的说法中,错误的是A、一个线程不可以创建和撤销另一个线程B、线程在运行中呈现间断性C、线程是进程中的一个实体D、线程是被系统独立调度和分派的基本单位正确答案:A11、逻辑地址为十进制的5236,系统页大小为4KB,该逻辑地址所在的页内偏移地址W为A、1B、2C、1140D、1141正确答案:C12、下列关于进程和程序的比较,说法正确的是A、进程是静态的,程序是动态的B、进程是永久的,程序是暂时存在的C、进程总是对应至少一个特定的程序,执行程序的代码D、程序和进程的存在实体相同正确答案:C13、打开、关闭连接、交换信息等属于【】系统调用。
《操作系统》模拟试题及答案第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.为了启动读卡机、磁带机、打印机等设备进行工作,必须配置控制设备工作的程序,这种例行子程序被称为()。
A.汇编程序B.管理程序C.设备驱动程序D.操作系统2.能使计算机系统接收到信号后及时进行处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统称为()。
A.批处理操作系统B.网络操作系统C.分布式操作系统D.实时操作系统3.操作系统结构设计中,层次结构法的最大特点是()。
A.便于调试B.把整体问题局部化C.结构清晰D.利于功能的增加、删减和修改4.“访管指令”是一条()。
A.在目态下执行的指令B.在管态下执行的指令C.在目态和管态下都可执行的指令D.不可单独执行的指令5.在UNIX系统中,cat命令的功能是()。
A.用来切换当前工作目录B.删除一个空目录C.用来显示ASCII码编写的文本文件D.用来实现分屏显示6.进程状态变化不包括()。
A.运行态→等待态B.等待态→就绪态C.运行态→就绪态D.等待态→运行态7.常用的进程调度算法不包括()。
A.先来先服务调度算法B.最高优先级调度算法C.时间片轮转调度算法D.均衡调度算法8.UNIX系统采用的进程调度算法是()。
A.时间片轮转法B.动态优先数调度算法C.分级调度算法D.响应比高者优先法9.操作系统的存储管理对象是()。
A.寄存器B.辅助存储器C.高速缓冲存储器D.主存储器10.静态重定位的相对地址转换成绝对地址发生在()。
A.程序入主存储器时B.程序入CPU时C.程序回存磁盘空间时D.程序编译时11.在单用户连续存储管理方案中,用来存放用户区起始地址的寄存器是()。
A.下限寄存器B.界限寄存器C.基址寄存器D.限长寄存器12.因页面调度算法选用不合适,出现页面频繁被调入调出的现象被称为()。
操作系统模拟题+答案一、单选题(共100题,每题1分,共100分)1、分布式操作系统与网络操作系统本质上的不同之处在于()。
A、实现各台计算机之间的通信B、共享网络上的资源C、满足较大规模的应用D、系统中若干台计算机相互协作完成同一任务正确答案:D2、下列选项中,会导致进程从运行态变为就绪态的事件是()。
A、启动I/O设备B、申请内存失败C、执行wait操作D、被高优先级进程抢占正确答案:D3、单处理机上,将执行时间有重叠的几个程序称为()。
A、多道程序B、并行程序C、顺序程序D、并发程序正确答案:D4、采用多道程序设计后,可能()。
A、缩短对用户请求的响应时间B、延长了每道程序执行时间C、缩短了每道程序执行时间D、降低了系统资源的利用率正确答案:B5、设系统缓冲区和用户缓冲区均采用单缓冲,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90。
进程从外设读入并分析2个数据块的最短时间是()。
A、300B、200C、295D、390正确答案:A6、在()的情况下,系统出现死锁。
A、计算机系统发生了重大故障B、资源数大大小于进程数、进程同时申请的资源数大大超过资源总数C、有多个阻塞的进程正在等待键盘的输入D、若干进程因竞争资源而无休止地相互等待他方释放已占有的资源正确答案:D7、存放当前从主存储器读出的指令的寄存器是()。
A、通用寄存器B、指令寄存器C、限长寄存器D、基址寄存器正确答案:B8、进程间的同步与互斥,分别表示了各进程间的()。
A、相互独立与互相制约B、协作与竞争C、不同状态D、动态性与独立性正确答案:B9、在()时候,CPU响应中断。
A、指令执行中B、指令执行结束C、CPU空闲时D、任何时候正确答案:B10、处于静止阻塞状态的进程,在进程等待的事件发生后,应转换为()。
A、执行B、活动阻塞C、活动就绪D、静止就绪正确答案:D11、通常不采用()方法来解除死锁。
模拟试题1试题类型包括:选择题(20分),判断题(10分),填空题(30分),解答题(25分),应用题(15分)。
(一)选择题(每空2分,共 20 分)1.在计算机系统中,操作系统是()。
A.一般应用软件; B.核心系统软件; C.用户应用软件; D.系统支撑软件。
2.UNIX操作系统是著名的()。
A.多道批处理系统; B.分时系统; C.实时系统; D.分布式系统。
3.在现代操作系统中采用缓冲技术的主要目的是()。
A.改善用户编程环境; B.提高CPU的处理速度;C.提高CPU和设备之间的并行程度;D. 实现与设备无关性。
4.进程和程序的一个本质区别是()。
A.前者为动态的,后者为静态的; B.前者存储在内存,后者存储在外存;C.前者在一个文件中,后者在多个文件中;D.前者分时使用CPU,后者独占CPU。
5.某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将()。
A.从就绪变为运行; B.从运行变为就绪;C.从运行变为阻塞; D.从阻塞变为就绪6.进程控制块是描述进程状态和特性的数据结构,一个进程()。
A.可以有多个进程控制块; B.可以和其他进程共用一个进程控制块;C.可以没有进程控制块; D.只能有惟一的进程控制块。
7.在一般操作系统中必不可少的调度是()。
A.高级调度; B.中级调度; C.作业调度; D.进程调度。
8.把逻辑地址转变为内存的物理地址的过程称作()。
A.编译; B.连接; C.运行; D.重定位。
9.在UNIX系统中,目录结构采用()。
A.单级目录结构; B.二级目录结构;C.单纯树形目录结构; D.带链接树形目录结构。
10.避免死锁的一个著名的算法是()。
A.先入先出法; B.银行家算法; C.优先级算法; D.资源按序分配法。
(二)判断题(每题2分,共10分)从下列叙述中选择正确的叙述,在题号前划上对勾;对于你认为是错误的叙述要划上叉,并予以改正(但要符合原义,改动应少)。
全国自考(操作系统概论)模拟试卷1(题后含答案及解析)题型有:1. 单项选择题 2. 多项选择题 3. 填空题 4. 简答题 5. 综合题单项选择题1.操作系统是一种A.应用软件B.工具软件C.通用软件D.系统软件正确答案:D解析:操作系统是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件。
2.下面关于批处理方式的描述中,错误的是A.采用批处理控制方式的作业被称为批处理作业B.批处理作业由源程序和初始数据两部分组成C.批处理方式下,作业执行过程中用户不必在计算机前干预D.批处理控制方式又称自动控制方式或脱机控制方式正确答案:B3.关于中断,下列说法正确的是A.程序中断是自愿性中断事件B.输入输出中断是强迫性中断事件C.硬件故障中断是自愿性中断事件D.外部中断是自愿性中断事件正确答案:B4.程序状态字寄存器是用来存放( )运行的程序的PSW。
A.当前B.上一次C.下一次D.不确定正确答案:A解析:在单处理器的计算机系统中,整个系统设置一个用来存放当前运行程序PSW的寄存器,称为程序状态字寄存器。
5.在操作系统中,设计者往往编制了许多完成不同功能的子程序供用户程序执行中使用,这些子程序被称为A.作业控制语言B.系统调用C.操作控制命令D.访管指令正确答案:B6.进程具有并发性和( )两大重要属性。
A.动态性B.静态性C.易用性D.封闭性正确答案:A7.每一个进程都存在从创建到消亡的过程,该过程常被称为进程的A.动态特征B.生命周期C.发展历程D.可消亡性正确答案:B8.在操作系统中,( )是一组特殊的系统调用,它们不能被系统中断。
A.初始化程序B.原语C.子程序D.控制模块正确答案:B9.操作系统通过( )对进程进行管理。
A.进程名B.进程控制块C.进程启动程序D.进程控制区正确答案:B解析:操作系统是根据进程控制块(PCB)来对并发执行的进程进行控制和管理的。
10.按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指( )调度算法。
全国自考操作系统(存储管理)模拟试卷1(题后含答案及解析) 题型有:1. 单项选择题 3. 填空题 4. 简答题 6. 判断题单项选择题1.根据作业在本次分配到的内存起始地址将目标代码装到指定内存地址中,并修改所有有关地址部分的值的方法称为_______方式。
A.固定定位B.静态重定位C.动态重定位D.单一连续重定位正确答案:B 涉及知识点:存储管理2.静态地址重定位的对象是_______。
A.源程序B.编译程序C.目标程序D.执行程序正确答案:C 涉及知识点:存储管理3.使用_______,目标程序可以不经过任何改动而装入主存直接执行。
A.静态重定位B.动态重定位C.编译或汇编D.连接程序正确答案:B 涉及知识点:存储管理4.在可变式分区存储管理中,当释放和回收一个空闲区时,造成空闲表项区数减1的情况是_______。
A.无上邻空闲区,也无下邻空闲区B.有上邻空闲区,但无下邻空闲区C.无上邻空闲区,但有下邻空闲区D.有上邻空闲区,也有下邻空闲区正确答案:D解析:在有上邻空闲区也有下邻空闲区的情况下,释放区和上、下邻空闲区合并成一块空闲区,故原先记录上、下邻空闲区的两个表项就只需要合并为一个表项记录新的大空闲区。
知识模块:存储管理5.在下列存储管理算法中,内存的分配和释放平均时间之和为最大的是_______。
A.首次适应法B.循环首次适应法C.最佳适应法D.最差适应法正确答案:C解析:最佳适应算法的分配算法的速度比首次适应法、循环首次适应法和最差适应算法差得多,如用链表实现,释放算法要在链表中找上、下邻空闲区,修改过或新加入的空闲区还要有序地插入到链表中。
知识模块:存储管理6.早期采用交换技术的目的是_______。
A.能运行更多的程序B.能运行更大的程序C.实现分时系统D.实现虚拟存储技术正确答案:A 涉及知识点:存储管理7.虚拟存储器技术的目的是_______。
A.实现存储保护B.实现程序浮动C.可运行更大更多的程序D.扩充主存容量正确答案:C 涉及知识点:存储管理8.在以下存储管理方案中,不适用于多道程序设计系统的是_______。
《操作系统》考试练习题及参考答案一、单选题1. 在下列存储管理方案中,不适用于多道程序设计的是()。
A 、单一连续分配B 、固定式分区分配C 、可变式分区分配D 、段页式存储管理答案:A2. 若系统中有五台绘图仪,有多个进程均需要使用两台,规定每个进程一次仅允许申请一台,则至多允许()个进程参于竞争,而不会发生死锁。
A 、5B 、2C 、3D 、4答案:D3. 主要由于()原因,使UNIX易于移植。
A 、UNIX是由机器指令书写的B 、UNIX大部分由汇编少部分用C语言编写C 、UNIX是用汇编语言编写的D 、UNIX小部分由汇编大部分用C语言编写答案:D4. 一个计算机系统有7台可互换的磁带机供N个进程竞争使用。
每个进程在一段时间内需要占用2台磁带机。
N最多为()不会发生死锁。
A 、5B 、12C 、6D 、2答案:C5. 虚拟设备是指()。
A 、允许用户使用比系统中具有的物理设备更多的设备B 、允许用户以标准化方式来使用物理设备C 、把一个物理设备变换成多个对应的逻辑设备D 、允许用户程序不必全部装入主存便可使用系统中的设备答案:C6. 位示图方法可用于( )A 、盘空间的管理B 、盘的驱动调度C 、文件目录的查找D 、页式虚拟存储管理中的页面调度答案:A7. 任何两个并发进程之间( )A 、一定存在互斥关系B 、一定存在同步关系C 、一定彼此独立无关D 、可能存在同步或互斥关系答案:D8. 在UNIX系统中,请求调用是采用()算法。
A 、LFUB 、FIFOC 、LRUD 、LIFO答案:C9. ()存储器管理方法可能使系统产生抖动。
A 、简单页式B 、请求页式C 、段式D 、可变连续分区答案:B10. 某系统采用固定分区分配存储管理,内存空间为640K,其中地址0到40K被系统占用,其他空间按分区大小相等的方法划为4个分区,则当有大小分别为7KB 、90KB 、30KB 、20KB的作业进入内存时,浪费的内存为()。
《操作系统》模拟习题一、判断()文件可以看做是一种逻辑空间()并发程序的执行具有顺序性,封闭性和不可再现性()快表是高速缓存与硬件相关()内存只能顺序存取()在采用树型目录结构的文件系统中,各用户的文件名必须互不相同()在银行家算法中,对某时刻的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的。
()在文件目录的目录项中主要存放的是文件的名字、文件的类型和文件的物理地址等()DMA传输主要用于连接低速设备二、选择题1.在下列操作系统的各个功能组成部分中,哪一个与中断有关()A进程上下文切换 B PCB大小C快表寻址D内存管理2.一个分段存储管理系统中,地址长度为16位,其中段号占8位,则段长最大 ( ) A.2的8次方字节 B.2的16次方字节 C.2的24次方字节 D.2的32次方字节3.下列选项中,导致创进新进程的操作是(c )I用户成功登陆II设备分配III启动程序执行A:仅I和II B:仅II和IIIC:仅I和III D:I,II,III4.下列哪种通信方式不属于:一个进程向中间实体发送消息,等待另一进程异步地接收。
( )A. 共享存储区B. 消息缓冲C. 信箱方式D. 共享文件5. SPOOLing技术可以实现设备的( c )分配。
A.独占B.共享C.虚拟D.物理6.在进行作业调度时.要想兼顾作业等待时间和计算时间,应选取( d )。
A均衡调度算法B.高优先级优先调度算法C.先来先服务算法D.高响应比优先算法三、填空题1.操作系统是计算机系统最重要的____,它____了计算机硬件系统的功能;__ __了不同计算机系统硬件的差别,提供了应用程序使用计算机硬件强大处理功能的接口;2.在UNIX系统中,文件的类型主要包括___________,____________,____________。
四.简答题1.试说明改进型Clock置换算法的基本原理2.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间,试问:⑴位示图需要多少字?⑵第i字第j位对应的块号是多少?五、应用题银行家算法如下:1. 安全状态: 是指系统能按某种进程顺序(P1,P2,…Pn)(称<P1,P2,…Pn>序列为安全序列),来为每个进程Pi分配某所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成.如果系统无法找到这样一个安全序列,则称系统处于不安全状态.所谓安全序列{P1,P2,…Pn}是指对于P2,都有它所需要剩余资源数量不大于系统掌握的剩余的空间资源与所有Pi(j<i)所占的资源之和.2.不安全状态可能产生死锁.目前状态最大需求尚需P1 3 9 6P2 5 10 5P3 2 4 2在每一次进程中申请的资源,判定一下,若实际分配的话,之后系统是否安全.3.银行家算法的思路:1)、进程一开始向系统提出最大需求量.2)、进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量.3)、若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的剩余资源量,若不超出,则分配,否则等待.4.银行家算法的数据结构.1)、系统剩余资源量A[n],其中A[n]表示第I类资源剩余量.2)、各进程最大需求量,B[m][n],其中B[j][i]表示进程j对i类资源最大需求.3)、已分配资源量C[m][n],其中C[j][i]表示系统j程已得到的第i资源的数量.4)、剩余需求量.D[m][n],其中D[j][i]对第i资源尚需的数目.5.银行家算法流程:当某时刻,某进程时,提出新的资源申请,系统作以下操作:1)、判定E[n]是否大于D[j][n],若大于,表示出错.2)、判定E[n]是否大于系统剩余量A[n],若大于,则该进程等待.3)、若以上两步没有问题,尝试分配,即各变量作调整.4)、按照安全性推测算法,判断,分配过后,系统是否安全,若安全,则实际分配,否则,撤消分配,让进程等待.6."安全性检测"算法1)、先定义两个变量,用来表示推算过程的数据.F[n]=A[n],表示推算过程中,系统中剩余资源量的变化.J[n]=False表示推算过程中各进程是否假设"已完成"2)、流程:在"剩余"的进程中(在推算)过程中,一些进程假设已完成,查找D[j][n]<=F[n]的进程,找到后令J[j]=True(假设该进程完成),F[n]+D[j][n](该进程所占资源释放),如此循环执行.若最后,所有的F[n]=True(在推算过程中,所有进程均可以完成),则表示(分配过后)系统是安全的,否则系统是不安全的.2.设有A、B、C三组进程,它们互斥地使用某一独占型资源R,使用前申请,使用后释放。
资源分配原则如下:(1) 当只有一组申请进程时,该组申请进程依次获得R;(2) 当有两组申请进程时,各组申请进程交替获得R,组内申请进程依次获得R;(3) 当有三组申请进程时,各组申请进程轮流获得R,组内申请进程依次获得R。
试用信号灯和PV操作分别给出各组进程的申请活动程序段和释放活动程序段。
解:int free=1;//设备状态标志semaphore mutex=1;semaphore qa=qb=qc=0; //各组等待队列int counta=countb=countc=0;//等待队列长度A组申请:P(mutex);if(free==1){ free=0;V(mutex);}else{counta++;V(mutex);P(qa);} A组释放:P(mutex);if(countb>0){ countb--;V(qb);}else{if(countc>0){ countc--;V(qc);}else{if(counta>0){ counta--V(qa);}else{free=1;}}}}3.设系统中有5台类型相同的打印机,依次编号为1~5。
又设系统中有n个使用打印机的进程,使用前申请,使用后释放。
每个进程有一个进程标识,用于区别不同的进程。
每个进程还有一个优先数,不同进程的优先数各异。
当有多个进程同时申请时,按照进程优先数由高到低的次序实施分配。
试用信号灯和PV操作实现对于打印机资源的管理,即要求编写如下函数和过程:(1) 函数 require(pid,pri): 申请一台打印机。
参数pid为进程标识,其值为1到n的整数; pri为进程优先数,其值为正整数; 函数返回值为所申请到打印机的编号,其值为1到5的整数;(2) 过程 return(prnt): 释放一台打印机。
参数prnt为所释放打印机的编号,其值为1到5的整数。
解:#define N 5bool flag[N+1];//flag[0]表示可用打印机数,//flag[i]表示第i号打印机的状态(1<=i<=N),0表示占用,1表示空闲PCB *queue=NULL;//进程阻塞队列semaphore mutex_flag=1;//用于对flag数组的互斥操作semaphore mutex_queue=1;//用于对阻塞队列的互斥操作process(int i,int priority){int print;print=require(i,priority);use print;return(print);}int require(int pid,int priority){P(mutex_flag);if(flag[0]>0){flag[0]--;for(int i=1;i<N+1;i++)if(flag[i]==1){flag[i]=0;break;}V(mutex_flag);return i;}else{V(mutex_flag);p(mutex_queue);将进程pid按其优先数插入到等待队列queue中;V(mutex_queue);}}return(int print){P(mutex_flag);if(queue==NULL){flag[0]++;flag[print]=1;V(mutex_flag);}else{V(mutex_flag);p(mutex_queue);将print分配给queue队首进程;queue下移;V(mutex_queue);}}4. 在银行家算法中,若出现如下资源分配情况:Allocation NeedAvailableABCDABCDABCDP0:003200121623P1:10001750P2:13542356P3:03320652P4:00140656试问:(1)当前状态是否安全?(2)如果进程P2提出安全请求Request[2]=(1,2,2,2),系统能否将资源分配给它?说明原因.解:(1)当前状态是安全状态。
运行安全性检查算法如下:1)Work = Available;Finish = false;2)寻找满足如下条件的i:Finish[i]==false并且Need[i]≤Work[i];如果不存在,则转步骤4);3)Work = Work + Allocation[i];Finish[i] = true;转步骤2)4)如果对于所有i,Finish[i] = true,则系统处于安全状态,否则处于不安全状态。
令Work = Available=(1, 6, 2, 3)运行安全性检测算法,Finish[0]=false并且Need[0]=(0 0 1 2)<Work,则Work = Work + Allocation[0]=(1, 6, 2, 3)+(0, 0, 3, 2)=(1, 6, 5, 5);Finish[0] = true;Finish[3]=false并且Need[3]=(0, 6, 5, 2)<Work,则Work = Work + Allocation[3]=(1, 6, 5, 5)+(0, 3, 3, 2)=(1, 9, 8, 7);Finish[3] = true;Finish[4]=false 并且Need[4=(0, 6, 5, 6)<Work,则Work = Work + Allocation[4]=(1, 9, 8, 7)+(0, 0, 1, 4 )=(1, 9, 9, 11);Finish[4] = true;Finish[1]=false并且Need[1]=(1, 7, 5, 0)<Work,则Work = Work + Allocation[4]=(1, 9, 9, 1)+(1, 0, 0, 0 )=(2, 9, 9, 11);Finish[1] = true;Finish[2]=false并且Need[2]=(2, 3, 5, 6)<Work,则Work = Work + Allocation[4]=(2, 9, 9, 11)+(1, 3, 5, 4 )=(3, 12, 14, 15);Finish[2] = true;可以找到一个安全进程序列<p0,p3,p4,p1,p2>,它使Finish[i]=true,对于所有0≤i≤4,因而可以断言系统当前处于安全状态.(2)运行银行家算法,由于Request[2]=(1, 2, 2, 2)£Need[2]=(2, 3, 5, 6),因而请求合法。