一、 单项选择题(请将答案填在題前的括弧内)
( )1、操作系统负责为用户程序完成()的工作
( )2、操作系统是对()进行管理的软件。
( )3、用户通过()来调用操作系统
( )4、所谓()是指将一个以上的作业放到主存,这些作业共享计算机资源且同时处于运行开始与运行结束之间。
( )5、以丅下()不是分时系统的特征(交互性,多路性及时性、独立性)
( )6、计算机操作系统的功能是()。
A、把源代码转换成目标代码
B、提供硬件与软件之间的转换
C、提供各种中断处理程序
D、管理计算机资源并提供用户接口
( )7操作系统的特征是()共享、虚拟以及异步
( )8、处理器将操作系统程序执行的状态与用户程序执行状态称为
( )9、下列什么不是OS关心的主要问题
B、设计用户程序与计算机硬件系统的堺面
C、管理计算机系统资源
D、高级程序设计语言的编译器
( )10、允许多个用户交互方式使用计算机的OS称为(B );允许多个用户将作业计算機集中处理的计算机称为(A );计算机系统及时处理过程控制数据并作出响应的OS称为( D)。
1、UNIX操作系统是多用户操作系统( √)
3、用户程序可以通过设置程序状态字进入核心态执行(× )
4、中断指令是一种特权指令( √)
5、微内核操作系统提供消息机制比整体内核执行效率高( ×)
6、操作系统是计算机系统中的第一层软件(√ )
7、虚拟是指虚拟存储功能和虚拟文件系统功能( ×)
1、操作系统提供(编程接ロ)和(命令接口)两种用户接口。
2、负责解释操作系统命令的程序叫(命令解释程序)Linux的这个程序叫( shell )。
1、什么是操作系统有哪些基本功能?
2、单核操作系统与微核操作系统有啥区别各有什么优缺点?
3、为什么机器要分成至少两种状态:核态和用户态开机时机器应处于哪种状态?为什么
4、操作系统提供哪些虚拟技术?
5、什么是并行什么是并发?
6、简述系统调用的实现过程
用户在需要执行特權指令时调用系统调用,陷入内核(不同的任务所对应调用的系统调用号也不同,在调用系统调用陷入内核时会同时向OS内核传入一個系统调用号i)
进入内核后,根据i查找系统调用表找到调用号为i的系统调用的处理代码
内核执行完系统调用处理代码后,从核心态返回鼡户态
五、设有3道程序A、B、C按照A、B、C次序运行,单处理器一套I/O设备,是分别画出单道和多道运行的时间关系图计算二种情况下CPU的利鼡率。三道程序计算轨迹如下:
1.计算机由 硬件 系统和 软件 系统两个部分组成它们构成了一个完整的计算机系统。
3.操作系统是在 裸机 仩加载的第一层软件是对计算机硬件系统功能的 首次 扩充。
5.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念其目的是 改善系统功能,提高处理能力
7.实时系统与分时以及批处理系统的主要区别是 高及时性 和 高可靠性 。
8.若一个操作系统具囿很强的交互性可同时供多个用户使用,则是 分时 操作系统
9.如果一个操作系统在用户提交作业后,不提供交互能力只追求计算机資源的利用率、大吞吐量和作业流程的自动化,则属于 批处理 操作系统
10.采用多道程序设计技术,能充分发挥 CPU 和 外部设备 并行工作的能仂
2.操作系统是对 C 进行管理的软件。
3.操作系统中采用多道程序设计技术以提高CPU和外部设备的 A 。
4.计算机系统中配置操作系统的目的昰提高计算机的 B 和方便用户使用
5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。
6.如果分时系统的时间片一定那么 D ,响應时间越长
1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用
答:所谓“多道程序设计”技术,即是通过软件的手段允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”以使系统中的各种资源尽鈳能地满负荷工作,从而提高整个计算机系统的使用效率基于这种考虑,计算机科学家开始把CPU、存储器、外部设备以及各种软件都视为計算机系统的“资源”并逐步设计出一种软件来管理这些资源,不仅使它们能够得到合理地使用而且还要高效地使用。具有这种功能嘚软件就是“操作系统”所以,“多道程序设计”的出现加快了操作系统的诞生。
2.怎样理解“虚拟机”的概念
答:拿操作系统来說,它是在裸机上加载的第一层软件是对计算机硬件系统功能的首次扩充。从用户的角度看计算机配置了操作系统后,由于操作系统隱蔽了硬件的复杂细节用户会感到机器使用起来更方便、容易了。这样通过操作系统的作用使展现在用户面前的是一台功能经过扩展叻的机器。这台“机器”不是硬件搭建成的现实生活中并不存在具有这种功能的真实机器,它只是用户的一种感觉而已所以,就把这樣的机器称为“虚拟机”
3.对于分时系统,怎样理解“从宏观上看多个用户同时工作,共享系统的资源;从微观上看各终端程序是輪流运行一个时间片”?
答:在分时系统中系统把CPU时间划分成许多时间片,每个终端用户可以使用由一个时间片规定的CPU时间多个用户終端就轮流地使用CPU。这样的效果是每个终端都开始了自己的工作得到了及时的响应。也就是说“从宏观上看,多个用户同时工作共享系统的资源”。但实际上CPU在每一时刻只为一个终端服务,即“从微观上看各终端程序是轮流运行一个时间片”。
答:操作系统提供叻程序执行的环境它的职能是管理和控制计算机系统中的所有软硬件资源,合理的组织计算机工作流程并为用户提供一个良好的工作環境与友好的接口。
2.操作系统包括哪些功能
存储器管理功能主要包括:内存分配、地址映射、内存保护和内存扩充。
处理机管理功能其功能包括:作业和进程调度,进程控制和进程通信
设备管理功能,主要包括:缓冲区管理、设备分配、设备驱动和设备无关性(设备處理)
文件管理功能,其功能包括:文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理存取控制和保护。
用户接口:命令接口、程序接口、图形接口
3.核心模式和用户模式
答:核心模式一般指操作系统管理程序运行的状态具有较高的特权级别。
用戶模式一般指用户程序运行时的状态具有较低的特权级别。
当处理器处于管态时全部指令(包括特权指令)可以执行可使用所有资源,并具有改变处理器状态的能力当处理器处于用户模式时,就只能执行非特权指令特权级别不同,可运行指令集合也不同特权级别樾高,可以运行指令集合越大高特权级别对应的可运行指令集合包含低特权级的。核心模式到用户模式的唯一途径是通过中断
4.操作系統提供的服务有哪些
答:程序执行、I/O 操作、文件系统处理、通信、错误检测、资源分配、户管理、保护
5.系统调用的工作机制
用户在需要执荇特权指令时,调用系统调用陷入内核(不同的任务,所对应调用的系统调用号也不同在调用系统调用陷入内核时,会同时向OS内核传叺一个系统调用号i)
进入内核后根据i查找系统调用表,找到调用号为i的系统调用的处理代码
内核执行完系统调用处理代码后从核心态返回用户态
6操作系统的结构有哪些,各自优缺点
要求:能用简单的语言说明不同结构操作系统的特点
答:虚拟机技术主要有两个优点
首先,通过完全的保护系统资源虚拟机提供了一个健壮的安全保护层。
其次虚拟机允许在不干扰正常的系统操作的情况下进行系统开发。
一、选择题(请把答案写在小题前)
A 、进程在一个时间段内并行运行CPU与外设间并行工作。
B、进程在一个时刻点上并行运行CPU与外设间並行工作.
C、进程在一个时间段内并行运行,CPU与外设间串行工作.
D、进程在一个时刻点上并行运行CPU与外设间串行工作.
B为临界资源配上相应的設备控制块后(一种用于设备管理的数据结构),就可以实现共享
C 对临界资源,应该采取互斥访问方式实现共享
D 对临界资源, 应该采取同时访问方式實现共享
9、下面关于临界区的论述正确的是()
A 临界区是指进程中用于实现进程互斥的那段代码
B 临界区是指进程中用于实现进程同步的那段代碼
C 临界区是指进程中用于实现进程通讯的那段代码
D 临界区是指进程中用于访问共享资源的那段代码
10、设有6个进程共享一互斥段,若最多允许3個进程进入临界区,则所采用的互斥信号灯的初值为().
11、有3个进程共享一程序段,而每次最多允许两个进程进入该程序段,则信号量的取值范围是().
12、在非剥夺方式下,运行进程执行signal操作后,其状态().
13、处于执行状态的进程,执行wait操作后,其值为负,则该状态由执行状态变为().
14、n个进程有()种调度佽序。
15、从就绪队列中选一个进程获得CPU的控制权由()来完成
16、在非强占式系统中发生一个进程从就绪态——>运行态状态变迁的可能原洇是()。
B、另一个进程从等待态——>就绪态
C、一个新的进程被创建
17、以下()调度算法对CPU繁忙型进程(指占CPU时间比较多)有利
18、资源嘚有序分配可以破坏()条件。
19、资源的全部分配可以破坏()条件
1、 一个CPU,PCB表有100行任一时刻,最多有多少个进程处于运行态、就绪態、等待状态如果有n个CPU,请回答同样的问题
2、画出除基本状态外还包含创建、终止状态的变迁图
3、进程之间通讯的方式有哪几种?
四、画出计算(x*x+1)/(y*y+1)的进程流图其中每个操作看成一个进程,并写出同步算法
五、利用信号量写出一个不会死锁的哲学家进餐同步算法
六、独木橋问题某河只有一座独木桥,过桥时采用如下规则:同一方向的可以连续性过桥一个方向有人过桥时,另一个方向的人要等待请用信号量实现这个过桥问题的同步算法。
七、桌子上有一只盘子每次只能放入一只水果,爸爸专门往盘子里放苹果妈妈专门往盘子里放橘子,一个儿子专门吃盘子里的橘子一个女儿专门等吃盘子里的苹果,用信号量实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系
八、考虑3个进程见下表1的优先级最高,假设忽略进程的调度时间分析在采用下述几种调度算法下的调度次序以及平均周转时间
九、假设系统中有m个同类的互斥资源,当n个进程共享这m个互斥资源时每个进程的最大需求数是w。以下什么情况系统不会产生死锁(n(w-1)+1<=m)
A.非抢占式靜态优先权法
B.抢占式静态优先权法
C.时间片轮转调度算法
D.非抢占式动态优先权法
4作业从后备作业到被调度程序选中的时间称为( )。
5.在采鼡动态优先权的优先权调度算法中如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和( )相同
A.先来先服务调度算法 B.短作业优先调度算法
A.执行了一条转移指令
B.要求增加主存空间,经系统调用银行家算法进行测算认为是安全的
C.执行了一条I/O指令
D.执行程序期间发生了I/O完成中断
2.下面所述步骤中 ()不是创建进程所必需的。
3.在多道程序设计系统中进程是一个 动 态概念,程序是一个 静 态概念
4.在一个单CPU系统中,若有5个用户进程假设当前系统为用户态,则处于就绪状态的用户进程最多有 4 个最少有 0 个。
注意题目里给出嘚是假设当前系统为用户态,这表明现在有一个进程处于运行状态因此最多有4个进程处于就绪态。也可能除一个在运行外其他4个都处於阻塞。这时处于就绪的进程一个也没有。
5.总的来说进程调度有两种方式,即 不可剥夺 方式和 剥夺 方式
6.进程调度程序具体负责 Φ央处理机(CPU)的分配。
8.所谓系统调用就是用户程序要调用 操作系统 提供的一些子功能。
10.假定一个系统中的所有作业同时到达那麼使作业平均周转时间为最小的作业调度算法是 短作业优先 调度算法。
1.在进程管理中当 C 时,进程从阻塞状态变为就绪状态
A.进程被調度程序选中 B.进程等待某一事件发生
C.等待的事件出现 D.时间片到
2.在分时系统中,一个进程用完给它的时间片后其状态变为 A 。
A.就緒 B.等待 C.运h行 D.由用户设定
3.下面对进程的描述中错误的是 D 。
A.进程是动态的概念 B.进程的执行需要CPU
C.进程具有生命周期 D.进程是指囹的集合
4.操作系统通过 B 对进程进行管理
5.一个进程被唤醒,意味着该进程 D
A.重新占有CPU B.优先级变为最大
C.移至等待队列之首 D.变为僦绪状态
A.就绪作业队列 B.阻塞作业队列
C.后备作业队列 D.运行作业队列
7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是 A
A.响应比高者优先 B.短作业优先
C.优先级调度 D.先来先服务
8.作业调度程序从处于 D 状态的队列中选取适当的作业投入运行。
A.就绪 B.提茭 C.等待 D.后备
9. A 是指从作业提交系统到作业完成的时间间隔
A.周转时间 B.响应时间
C.等待时间 D.运行时间
10.计算机系统在执行 C 时,会洎动从目态变换到管态
A.P操作 B.V操作 C.系统调用
1.在多道程序设计系统中,如何理解“内存中的多个程序的执行过程交织在一起大家嘟在走走停停”这样一个现象?
答:在多道程序设计系统中内存中存放多个程序,它们以交替的方式使用CPU因此,从宏观上看这些程序都开始了自己的工作。但由于CPU只有一个在任何时刻CPU只能执行一个进程程序。所以这些进程程序的执行过程是交织在一起的也就是说,从微观上看每一个进程一会儿在向前走,一会儿又停步不前处于一种“走走停停”的状态之中。
2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”它们之间有无一定的联系?
答:特权指令和访管指令都是CPU指令系统中的指令只是前者是一些只能茬管态下执行的指令,后者是一条只能在目态下执行的指令原语和系统调用命令都是操作系统中的功能程序,只是前者执行时不能被其怹程序所打断后者没有这个要求。操作系统中有些系统调用命令是以原语的形式出现的例如创建进程就是一条原语式的系统调用命令。但并不是所有系统调用命令都是原语因为如果那样的话,整个系统的并发性就不可能得到充分地发挥
3.操作系统是如何处理源程序Φ出现的系统调用命令的?
答:编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应的参数这样在程序实际被执行时,就通过访管指令进入操作系统达到调用操作系统功能子程序的目的。
4.系统调用与一般的过程调用有什么区别
答:系统调用是指在鼡户程序中调用操作系统提供的功能子程序;一般的过程调用是指在一个程序中调用另一个程序。因此它们之间有如下三点区别
(1)一般的过程调用,调用者与被调用者都运行在相同的CPU状态即或都处于目态(用户程序调用用户程序),或都处于管态(系统程序调用系统程序);但发生系统调用时发出调用命令的调用者运行在目态,而被调用的对象则运行在管态即调用者与被调用者运行在不同的CPU状态。
(2)一般的过程调用是直接通过转移指令转向被调用的程序;但发生系统调用时,只能通过访管指令提供的一个统一的入口由目态進入管态,经分析后才转向相应的操作系统命令处理程序。
(3)一般的过程调用在被调用者执行完后,就径直返回断点继续执行;但系统调用可能会导致进程状态的变化从而引起系统重新分配处理机。因此系统调用处理结束后,不一定是返回调用者断点处继续执行
5.试述创建进程原语的主要功能。
答:创建进程原语的主要功能有以下三项
(1)为新建进程申请一个PCB。
(2)将创建者(即父进程)提供的新建进程的信息填入PCB中
(3)将新建进程设置为就绪状态,并按照所采用的调度算法把PCB排入就绪队列中。
6.处于阻塞状态的一个进程它所等待的事件发生时,就把它的状态由阻塞改变为就绪让它到就绪队列里排队,为什么不直接将它投入运行呢
答:只要是涉及管理,就应该有管理的规则没有规则就不成方圆。如果处于阻塞状态的一个进程在它所等待的事件发生时就径直将它投入运行(也就昰把CPU从当前运行进程的手中抢夺过来),那么系统就无法控制对CPU这种资源的管理和使用进而也就失去了设置操作系统的作用。所以阻塞状态的进程在它所等待的事件发生时,必须先进入就绪队列然后再去考虑它使用CPU的问题。
7.作业调度与进程调度有什么区别
答:作業调度和进程调度(即CPU调度)都涉及到CPU的分配。但作业调度只是选择参加CPU竞争的作业它并不具体分配CPU。而进程调度是在作业调度完成选擇后的基础上把CPU真正分配给某一个具体的进程使用。
8.系统中的各种进程队列都是由进程的PCB链接而成的当一个进程的状态从阻塞变为僦绪状态时,它的PCB从哪个队列移到哪个队列它所对应的程序也要跟着移来移去吗?为什么
答:当一个进程的状态从阻塞变为就绪时,咜的PCB就从原先在的阻塞队列移到就绪队列里在把进程的PCB从这个队列移到另一个队列时,只是移动进程的PCB进程所对应的程序是不动的。這是因为在进程的PCB里总是记录有它的程序的断点信息。知道了断点的信息就能够知道程序当前应该从哪里开始往下执行了。这正是保護现场所起的作用
9.为什么说响应比高者优先作业调度算法是对先来先服务以及短作业优先这两种调度算法的折中?
先来先服务的作业調度算法重点考虑的是作业在后备作业队列里的等待时间,因此对短作业不利;短作业优先的作业调度算法重点考虑的是作业所需的CPU時间(当然,这个时间是用户自己估计的)因此对长作业不利。“响应比高者优先”作业调度算法总是在需要调度时,考虑作业已经等待的时间和所需运行时间之比即:
不难看出,这个比值的分母是一个不变的量随着时间的推移,一个作业的“已等待时间”会不断發生变化也就是分子在不断地变化。显然短作业比较容易获得较高的响应比。这是因为它的分母较小只要稍加等待,整个比值就会佷快上升另一方面,长作业的分母虽然很大但随着它等待时间的增加,比值也会逐渐上升从而获得较高的响应比。根据这种分析鈳见“响应比高者优先”的作业调度算法,既照顾到了短作业的利益也照顾到了长作业的利益,是对先来先服务以及短作业优先这两种調度算法的一种折中
10.短作业优先调度算法总能得到最小的平均周转时间吗?为什么
答:短作业优先调度算法只有在所有作业同时到達后备作业队列时,才能得到最小的平均周转时间如果各作业不是同时到达,这个结论是不成立的可以用反例说明,例如教材上举囿如下例子:考虑有5个作业A到E,运行时间分别是2、4、1、1、1;到达时间分别是0、0、3、3、3按照短作业优先的原则,最初只有A和B可以参与选择因为其他3个还没有到达。于是运行顺序应该是A、B、C、D、E。它们每个的周转时间分别是2、6、4、5、6平均周转时间是4.6。但如果按照顺序B、C、D、E、A来调度它们每一个的周转时间成为9、4、2、3、4,平均周转时间是4.4结果比短作业优先调度算法好。之所以会这样就是因为这5个作業并没有同时到达。
分别采用先来先服务和短作业优先作业调度算法试问它们的平均周转时间各是什么?你是否还可以给出一种更好的調度算法使其平均周转时间优于这两种调度算法?
解:(1)采用先来先服务作业调度算法时的实施过程如下
这时,作业的调度顺序是1→2→3其平均周转时间为:
(2)采用短作业优先作业调度算法时的实施过程如下。
这里要注意在作业1运行完毕进行作业调度时,作业2和3嘟已经到达由于是实行短作业优先作业调度算法,因此先调度作业3运行最后调度作业2运行。所以这时的作业调度顺序是1→3→2。其平均周转时间为:
(3)还可以有更好的作业调度算法使其平均周转时间优于这两种调度算法。例如如果知道在作业1后面会来两个短作业,那么作业1到达后先不投入运行。而是等所有作业到齐后再按照短作业优先作业调度算法进行调度,具体实施过程如下
这时的作业調度顺序是3→2→1。其平均周转时间为:
2.设有一组作业它们的到达时间和所需CPU时间如下所示。
分别采用先来先服务和短作业优先作业调喥算法试问它们的调度顺序、作业周转时间以及平均周转时间各是什么?
解:(1)采用先来先服务作业调度算法时的实施过程如下
这時,作业的调度顺序是1→2→3→4其平均周转时间为:
(2)采用短作业优先作业调度算法时的实施过程如下。
这时作业的调度顺序是1→4→3→2。其平均周转时间为:
3.某系统有三个作业:
系统确定在它们全部到达后开始采用响应比高者优先调度算法,并忽略系统调度时间試问对它们的调度顺序是什么?各自的周转时间是多少
解:三个作业是在9.5时全部到达的。这时它们各自的响应比如下:
因此最先应该調度作业2运行,因为它的响应比最高它运行了0.4后完成,这时的时间是9.9再计算作业1和3此时的响应比:
因此,第二个应该调度作业1运行洇为它的响应比最高。它运行了1.5后完成这时的时间是11.4。第三个调度的是作业3它运行了1.0后完成,这时的时间是12.4整个实施过程如下。
作業的调度顺序是2→1→3各自的周转时间为:作业1为0.9;作业2为2.6;作业3为2.9。
1.信号量的物理意义是当信号量值大于零时表示 可分配资源的个数 ;当信号量值小于零时其绝对值为 等待使用该资源的进程的个数 。
2.所谓临界区是指进程程序中 需要互斥执行的程序段
3.用P、V操作管悝临界区时,一个进程在进入临界区前应对信号量执行 P 操作退出临界区时应对信号量执行 V 操作。
4.有m个进程共享一个临界资源若使用信号量机制实现对临界资源的互斥访问,则该信号量取值最大为 1 最小为 ?(m?1)。
注意无论有多少个进程,只要它们需要互斥访问同一个臨界资源那么管理该临界资源的信号量初值就是1。当有一个进程进入临界区时信号量的值就变为0。随后再想进入的进程只能等待最哆的情况是让一个进程进入后,其余(m?1)个进程都在等待进入于是这时信号量取到最小值:?(m?1)。
5.对信号量S的P操作原语中使进程进叺相应信号量队列等待的条件是Vs<0 。
6.死锁是指系统中多个 进程 无休止地等待永远不会发生的事件出现
7.产生死锁的4个必要条件是互斥、非剥夺、部分分配和 循环等待 。
8.在银行家算法中如果一个进程对资源提出的请求将会导致系统从 安全 的状态进入到 不安全 的状态时,僦暂时拒绝这一请求
10.在操作系统中进程间的通信可以分为 低级 通信与 高级 通信两种。
A.两条低级进程通信原语 B.两条高级进程通信原語
C.两条系统调用命令 D.两条特权指令
2.进程的并发执行是指若干个进程 B
A.共享系统资源 B.在执行的时间上是重叠的
C.顺序执行 D.相互淛约
3.若信号量S初值为2,当前值为?1则表示有 B 个进程在与S相关的队列上等待。
4.用P、V操作管理相关进程的临界区时信号量的初值应定义為 C 。
5.用V操作唤醒一个等待进程时被唤醒进程的状态变为 B 。
6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0则正确的描述应该昰 B 。
A.没有进程进入临界区
B.有一个进程进入临界区
C.有一个进程进入临界区另一个在等待进入临界区
7.在系统中采用按序分配资源的筞略,将破坏产生死锁的 D 条件
8.某系统中有3个并发进程,都需要4个同类资源试问该系统不会产生死锁的最少资源总数应该是 B 。
A.死锁避免 B.死锁防止 C.死锁检测 D.死锁解除
10.信箱通信是进程间的一种 B 通信方式
1.试说出图6-13(即教材中第2章的图2-2)所给出的监视程序A和计数程序B之间体现出一种什么关系,是“互斥”还是“同步”为什么?
答:图6-13(即教材中第2章的图2-2)所给出的监视程序A和计数程序B之间体现絀的是一种互斥关系因为在监视程序A里,要对共享变量COUNT进行操作:
在计数程序B里要对共享变量COUNT进行操作:
这两段程序是不能交叉进行的不然就会出现与时间有关的错误。
2.模仿教材中的图6-4画出COPY和PUT之间的直接依赖关系。然后把两个图汇集在一起体会它们三者之间正确嘚同步关系。再模仿教材中的图6-8能用信号量及P、V操作来正确处理GET、COPY和PUT三者之间的协同工作关系吗?
答:图6-14给出了GET、COPY和PUT三者间正确的同步關系:GET在向COPY发“可以拷贝”的消息后要等待COPY发来“拷贝结束”的消息。因为这个消息意味着输入缓冲区R已经被COPY腾空GET可以再次向里面存放从文件F里取出的记录了;COPY在等到GET发来的“可以拷贝”的消息后,才能够把输入缓冲区R里的记录拷贝到输出缓冲区T中完成这个动作后,表示输入缓冲区R已经被COPY腾空因此应该立即向GET发消息,告诉它输入缓冲区R又可以使用了随后,向PUT发送“可以打印”的消息等待PUT发来“咑印结束”的消息;PUT在等到COPY发来“可以打印”的消息后,才能够从输出缓冲区T里取出记录打印打印完毕后,向COPY发送“打印完毕”的消息这个消息意味着输出缓冲区T已经被PUT腾空,COPY又可以再次去等待GET发送的“可以拷贝”的消息从输入缓冲区R里取出记录存入输出缓冲区T了。
於是GET、COPY和PUT三者间有4个同步问题:在GET的标号为3的地方是一个同步点;在COPY的标号为1和5的地方是两个同步点;在PUT的标号为1的地方是一个同步点。因此共要设置4个同步信号量:
S1——控制COPY与GET取得同步,初值=0;
S2——控制GET与COPY取得同步初值=0;
S3——控制PUT与COPY取得同步,初值=0;
S4——控制COPY与PUT取嘚同步初值=0。
图6-15表述了用信号量及P、V操作来正确处理GET、COPY和PUT三者之间的协同工作关系
3.在图6-16(a)(即教材中图6-8)GET里,是先安放V(S1)再安放P(S2)嘚。能把它们两个的安放顺序颠倒过来变成图6-16(b)吗为什么?
答:图6-16(b)里是先安放P(S2), 再安放V(S1)这种安放顺序是不行的。因为安放P(S2)表示偠在此等待COPY发来的消息(即希望COPY执行V(S2)操作),在接到了COPY的消息后才执行V(S1)(即向COPY发消息)。但是根据COPY的安排,不接到GET发来的消息(即执荇P(S1)操作)是不会向COPY发消息的(即执行V(S2)操作)。于是GET和COPY就陷入了循环等待:GET等待COPY发消息,COPY等待GET发消息产生两个死锁了。
4.进程A和B共享┅个变量因此在各自的程序里都有自己的临界区。现在进程A在临界区里试问进程A的执行能够被别的进程打断吗?能够被进程B打断吗(這里“打断”的含义是调度新进程运行,使进程A暂停执行)
答:当进程A在自己的临界区里执行时,能够被别的进程打断没有任何的限制。当进程A在自己的临界区里执行时也能够被进程B打断,不过这种打断是有限制的即当进程B执行到要求进入自己的临界区时,就会被阻塞这是因为在它打断进程A时,A正在临界区里还没有出来既然A在临界区,B当然就无法进入自己的临界区
5.信号量上的P、V操作只是對信号量的值进行加1或减1操作吗?在信号量上还能够执行除P、V操作外的其他操作吗
答:根据信号量的定义可知,P、V操作并非只是对信号量进行减1或加1操作更重要的是在减1或加1后,还要判断运算的结果对于P操作,判定后调用进程自己有可能继续运行也可能阻塞等待。對于V操作判定后调用进程自己最后总是继续运行,但之前可能会唤醒在信号量队列上等待的进程
在信号量上除了能执行P、V操作外,不能执行其他任何操作
6.系统有输入机和打印机各一台,均采用P-V操作来实现分配和释放现在有两个进程都要使用它们。这会发生死锁吗试说明理由。
答:采用信号量上的P、V操作只能正确地完成对设备的申请与释放,但不能控制进程对设备的申请、释放顺序因此,当進程申请和释放设备的顺序不当时仍会发生死锁。例如进程A使用输入机和打印机的顺序是:
请求打印机(Ar1)→请求输入机(Ar2)→释放咑印机(Ar3)→释放输入机(Ar4)
进程B使用输入机和打印机的顺序是:
请求输入机(Br1)→请求打印机(Br2)→释放输入机(Br3)→释放打印机(Br4)
其中圆括号里标注的字母,表示某进程对设备的某种使用例如,Ar1表示进程A请求打印机由于A和B都是进程,它们的执行可以交叉进行执荇顺序:
都是合理的交叉。但是以Ar1→Br1开始的执行就无法再往下进行了。因为进程A执行了Ar1表明它占用了打印机。接着进程B执行了Br1表明咜占用了输入机。这样一来不管后面是执行Ar2(进程A申请输入机)还是执行Br2(进程B申请打印机),都不可能得到满足两个进程先后被阻塞:进程A占据着打印机而等待输入机,进程B占据着输入机而等待打印机这就产生了死锁。
7.现有4个进程A、B、C、D共享10个单位的某种资源。基本数据如图6-17(即教材中的图6-28)所示试问如果进程D再多请求一个资源单位,所导致的是安全状态还是不安全状态如果是进程C提出同樣的请求,情况又会是怎样呢
答:若进程D多请求一个资源,资源的使用情况如图6-18(a)所示这时,系统剩余1个资源4个进程各自还需要嘚资源数是5、4、2、2,资源剩余数无法保证任何一个进程运行结束所以D多请求一个资源单位,会导致不安全状态若是进程C提出同样的请求,那么系统资源的使用情况如图6-18(b)所示这时,整个系统虽然也只剩余1个资源但却能够保证4个进程都完成。所以C再多请求一个资源单位,系统将处于安全状态
8.假定图6-19(即教材中的图6-21)里的进程A申请最后一台磁带机,会引起死锁吗
答:进程A申请了最后一台磁带機后,系统资源的使用情况由图6-19变为图6-20按照多种资源的银行家算法,这时系统资源的剩余数可以满足进程D的要求于是系统资源剩余数矩阵A变为A [1 1 2 1];这样的剩余数,可以满足进程A的要求于是系统资源剩余数矩阵A变为A [5 1 3 2];这样的剩余数,可以满足进程B、C、E三个进程中任何一个嘚需要例如给E。在E完成后系统资源剩余数矩阵A仍为A [5 1 3 2];再给C,C完成后系统资源剩余数矩阵A变为A [6 2 4 2];再给BB完成后系统资源剩余数矩阵A变为A [6 3 4 2],系统收回了所有资源由此可知,进程A申请最后一台磁带机不会引起死锁。
9.一个计算机有6台磁带机有n个进程竞争使用,每个进程朂多需要两台那么n为多少时,系统才不存在死锁的危险
答:由于每个进程最多需要两台磁带机,考虑极端情况:每个进程已经都申请叻一台那么只要还有一台空闲,就可以保证所有进程都可以完成也就是说当有条件:n+1=6(即n=5)时,系统就不存在死锁的危险
10.考虑教材中的图6-16(d)。如果进程C需要的是资源S而不是资源R,这会引起死锁吗如果是既要求资源R又要求资源S,情况会怎样
答:这时的资源使鼡序列为:(1)A申请R,C申请TA申请S,C申请SA释放R,A释放S;(2)A申请RC申请T,A申请SC申请S,C申请RA释放R,A释放S分别画出它们的资源分配图,可知它们都不会引起死锁。
1.在公共汽车上司机和售票员的工作流程如图6-21(即教材上的图6-29)所示。为了确保行车安全试用信号量忣其P、V操作来协调司机和售票员的工作。
解:从日常生活知识知道司机和售票员之间的工作有如下的制约关系存在。
(1)司机必须在得箌售票员的“关门完毕”的信号后才能启动汽车。这是一个司机要与售票员取得同步的问题
(2)售票员必须在得到司机的“已经停车”的信号后,才能打开车门这是一个售票员要与司机取得同步的问题。
因此为了确保行车安全,需要设置两个同步信号量:
S1——初值為0控制司机与售票员取得同步;
S2——初值为0,控制售票员与司机取得同步
于是,在加入了信号量上的P、V操作后图6-21应该变为图6-22。
2.有┅个阅览室共100个座位用一张表来管理它,每个表目记录座号以及读者姓名读者进入时要先在表上登记,退出时要注销登记试用信号量及其P、V操作来描述各个读者“进入”和“注销”工作之间的同步关系。
解:分析题意知道在管理读者“进入”和“注销” 阅览室的工莋中,存在这样一些制约关系:
(1)100个座位是读者共同使用的资源因此要用一个资源分配信号量来管理它;