《2022年操作系统课后习题答案整理 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统课后习题答案整理 .pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统第一章操作系统引论1.设计现代OS 的主要目标是什么?方便性(使计算机系统容易使用),有效性(资源有效利用) ,可扩充性(适应发展要求),开放性(可移植) 。2.OS 的作用可表现为哪几个方面?a. OS 作为用户与计算机硬件系统之间的接口;(用户通过命令方式,系统调用方式使用计算机)b. OS 作为计算机系统资源的管理者;(资源包括处理器,存储器,I/O 设备,数据和程序)c. OS 用作扩充机器.(覆盖了软件的机器称为扩充机器)3. 试说明推动多道批处理系统形成和发展的主要动力是什么?不断提高计算机资源利用率和系统吞吐量的需要4. 何谓脱机 I/O 和联机 I/O?a. 脱机输入输
2、出方式(Off-Line I/O) 是为了解决人机矛盾及CPU 和 I/O 设备之间速度不匹配而提出的.它减少了 CPU 的空闲等待时间,提高了I/O 速度 .具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU 需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程, 减少了 CPU 等待输入的时间, 这就是脱机输入技术;当程序运行完毕或告一段落,CPU 需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术. b. 若这种输入输
3、出操作在主机控制下进行则称之为联机输入输出方式. 5. 试说明推动分时系统形成和发展的主要动力是什么?用户的需要 .即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求. 6. 试说明实时任务的类型和实时系统的类型?.a. 实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务;根据对截止时间的要求来划分,分为硬实时任务和软实时任务; b. 通常把要求进行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时信息处理系统 . 7. 实现多道程序应解决哪些问题?a. 处理机管理问题;b. 内存管理问题;c. I/O 设备管理问题;d
4、. 文件管理问题;e. 作业管理问题 . 8. 试比较单道与多道批处理系统的特点及优缺点?a. 单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点;-多道批处理系统则具有调度性,无序性和多道性的特点;b. 单道批处理系统是在解决人机矛盾及CPU 和 I/O 设备之间速度不匹配的矛盾中形成的,旨在提高系统资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源;-多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是平均周转时间长,无交互能力. 作业的周转时间:从作业进入系统开始,直至完成并推出系统为止所经历的时间。9. 实现分时系统的关键问题是
5、什么?应如何解决?a. 关键问题:及时接收,及时处理; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 37 页 - - - - - - - - - b. 对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输入的数据; -对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行一次. 10. 为什么要引入实时操作系统?更好地满足实时控制领域和实时信息处理领域的需要. 11. OS 具有哪几大特征?它的最基本特征是
6、什么?a. 并发 (Concurrence),(宏观上在一段时间内,多道程序在同时运行) 共享 (Sharing),(系统中的资源可供内存中多个并发执行的进程共同使用。分为互斥共享, 同时访问两方式。虚拟 (Virtual), (操作系统通过分时使用实现虚拟,n 个虚拟逻辑设备的速度是其对应物理设备的1/n.)异步性 (Asynchronism).( 多道程序环境下,受资源等的限制,进程是以异步方式运行的) b. 其中最基本特征是并发和共享. 12 内存管理有哪些主要功能?它们的主要任务是什么?a.主要功能 : 内存分配(为每道程序分配内存空间,分为静态分配方式,动态分配方式)内存保护(确保每
7、道用户程序在自己的内存空间运行,简单的实现机制是设置两个界限寄存器,存放正在执行程序的上界和下界)地址映射(提供地址空间的逻辑地址和内存空间的物理地址之间的映射)内存扩充(借助于虚拟存储技术,从逻辑上扩充内存容量) 静态分配:作业的内存空间是在作业装入时确定的,装入后整个运行期间不允许在申请内存。动态分配:作业要求的基本内存空间在装入时确定,允许作业运行过程中申请新的附加内存空间。b. 内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要. -内存保护的主要任务是确保每道用户程序都在自己的内存
8、空间中运行,互不干扰. -地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址. -内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量. 13 处理机管理具有哪些功能?它们的主要任务是什么?a. 进程控制,进程同步,进程通信和调度. b. 进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换. -进程同步的主要任务是对诸进程的运行进行调节. -进程通信的任务是实现在相互合作进程之间的信息交换. -调度分为作业调度和进程调度.作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配必要的资源;而进程调度的任
9、务是从进程的就绪队列中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,使进程投入运行. 14 设备管理有哪些主要功能?其主要任务是什么?a. 主要功能 : 缓冲管理,设备分配和设备处理,以及虚拟设备等. b. 主要任务 : 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和 I/O 设备的利用率;提高I/O 速度;以及方便用户使用I/O 设备 . 15 文件管理有哪些主要功能?其主要任务是什么?a. 主要功能 : 对文件存储空间的管理,目录管理,文件的读,写管理以及文件的共享和保护. b. 主要任务 : 对用户文件和系统文件进行管理,以方便用户使用,并保证文
10、件的安全性. 16 试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较. a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - 也有交互能力,但其交互能力不及前者. b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的.
11、c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高. 17 是什么原因使操作系统具有异步性特征?a. 程序执行结果是不确定的,即程序是不可再现的. b. 每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性 . 18 试说明在MS-DOS 3.X 以前的版本中,其局限性表现在哪几个方面a. 在寻址范围上,DOS 只有 1MB ,远远不能满足用户需要. b. DOS 是单用户单任务操作系统,不支持多任务并发执行,与实际应用相矛盾. 20 为什么 Microsoft 在开发 OS/2 时,选中了80286 芯片?设计 OS/2 的主要目标之一是
12、既能充分发挥80286 处理器的能力, 又能运行在8086 处理器环境下开发的程序.因为在 80286 内部提供了两种工作方式: 实方式和保护方式,使得 Intel 80286 处理器不仅提供了多任务并发执行的硬件支持,而且还能运行所有在8086 下编写的程序。21 OS/2 的主要功能是什么?a.多任务 .b. 进程管理 .c. 存储器管理 .d. 文件管理 .e. 应用程序接口API. f. 表示管理 . 22 多处理机OS 有哪几种模式各有何优缺点?a. 2 种 模 式 : 非 对 称 多 处 理 模 式 (Asymmetric Multiprocessing Model) 和 对 称
13、多 处 理 模 式 (Symmetric Multiprocesing Model). b. 前者易于实现,但资源利用率低. -后者优点是允许多个进程同时运行,缺点是必须小心控制I/O,以保证能将数据送至适当的处理器,同时还必须注意使各CPU 的负载平衡 . 非对称多处理模式:将处理机分为主处理机和从处理机对称多处理模式:所有处理机都是相同的,运行一个相同的OS 拷贝23 试说明网络OS 的主要功能 . a.网络通信 ;b. 资源管理 ;c. 网络服务 ;d. 网络管理 ;e. 互操作能力 . b.24 试比较网络OS 和分布式OS. a. 网络 OS 是基于由一些互联的自主计算机系统组成的计
14、算机网络,以计算机技术和通信技术高度发展为基础,能实现相互通信和相互合作功能的系统.分布式 OS 是指多个分散的处理单元,经互联网络连接而形成的系统. b. 在分布性上, 两者都具有分布处理功能,但网络 OS 的控制功能大多集中在某个(些 )主机或网络服务器中,即集中式,而分布式OS 则是较均匀地分布在系统的各个站点上,是完全分布式的. 在并行性上,分布式OS 的任务分配程序可将多个任务分配到多个处理单元上而实现并行,网络OS 中通常无任务分配功能,每个用户的任务通常在自己(本地 )的计算机上处理. 在透明性上,两者都具透明性,但网络OS 指在操作实现上的透明性,而分布式OS 则在系统内部的细
15、节上实现了很好的隐藏,即具有物理上的透明性. 在共享性上,分布式OS 是比较完全的实现共享,而网络OS 共享的资源大多是在主机或网络服务器中. 在健壮性上, 分布式系统由于处理和控制功能是分布的,还拥有容错技术实现系统重构,因而具有很强的健壮性;而网络OS 的控制功能大多集中在主机或服务器中,是系统具有潜在的不可靠性,健壮性差. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 37 页 - - - - - - - - - 第二章 进程的描述与控制1.试画出下面条语句的前趋
16、图:S1: a=5-x; S2: b=a*x; S3: c=4*x; S4: d=b+c; S5: e=d+3. 前趋图:有向无循环图,即图中不存在循环。初始结点无前趋,终止结点无后继。2.试利用 Bernstein 条件证明上题中的S2 和 S3 语句是可以并发执行的,而S3 和 S4 语句是不能并发执行的证明 : R(S2)=x,a, W(S2)=b, R(S3)=x, W(S3)=c;可见, S2 与 S3的读集与写集两两不相交,S2 与 S3 的写集之间也不相交,因而,他们满足Bernstein 条件, S2 与 S3语句是可以并发执行的. 同理可证 S3 和 S4 不能满足 Bern
17、stein 条件 ,是不能并发执行的. Bernstein 条件: R(p1)W(p2) R(p2)W(p1) W(p1)W(p2)= 3.程序并发执行为什么会产生间断性?因为程序在并发执行过程中存在相互制约性. 4.程序并发执行为何会失去封闭性和可再现性?因为程序并发执行时,多个程序共享系统中的各种资源,资源状态需要多个程序来改变,即存在资源共享性使程序失去封闭性;而失去了封闭性导致程序失去可再现性. 5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而引入了进程概念. 影响 : 使程序的并发执行得以实行.
18、6. 试从动态性,并发性和独立性上比较进程和程序a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体. b. 并发性是进程的重要特征,同时也是OS 的重要特征 .引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的. c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位.而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行. 7. 试说明 PCB 的作用?为什么说PCB 是进程存在的唯一标志?
19、a. PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构.PCB 中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息.因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程. b. 在进程的整个生命周期中,系统总是通过其PCB 对进程进行控制,系统是根据进程的PCB 而不是任何别的什么而感知到该进程的存在的,所以说,PCB 是进程存在的唯一标志. 8. 试说明进程在三个基本状态之间转换的典型原因. a. 处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态. b.
20、 当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态变为阻塞状态. c. 当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态. 9. 为什么要引入挂起状态?该状态具有哪些性质?a. 引入挂起状态基于5 种需要 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 37 页 - - - - - - - - - 终端用户的需要,父进程的需要,操作系统的需要,对换的需要和负荷调节的需要. b.处于挂起状态的进程不能接收处理机调度. 10
21、 在进行进程切换时,所要保存的处理机状态信息主要有哪些? a. 进程当前暂存信息;b. 下一条指令地址信息;c. 进程状态信息; d. 过程和系统调用参数及调用地址信息. 11 试说明引起进程创建的主要事件? a. 用户登陆; b. 作业调度; c. 提供服务; d. 应用请求 . 12 试说明引起进程撤消的主要事件? a. 正常结束; b. 异常结束; c. 外界干预;13 在创建一个进程时,需完成的主要工作是什么? a. 操作系统发现请求创建新进程事件后,调用进程创建原语Creat();b. 申请空白PCB;c. 为新进程分配资源;d. 初始化进程控制块;e. 将新进程插入就绪队列. 14
22、 在撤消一个进程时,需完成的主要工作是什么? a. OS 调用进程终止原语;b. 根据被终止进程的标志符,从PCB 集合中检索出该进程的PCB,从中读出该进程的状态;c. 若被终止进程正处于执行状态,应立即中止该进程的执行,并设置调度标志为真;d. 若该进程还有子孙进程,还应将其所有子孙进程予以终止;e. 将该进程所拥有的全部资源,或者归还给其父进程,或者归还给系统;f. 将被终止进程(它的 PCB)从所在队列 (或链表 )中移出,等待其它程序来搜集信息. 15 试说明引起进程阻塞或被唤醒的主要事件是什么? a.请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做 . 1
23、6 试从调度性,并发性,拥有资源及系统开销几个方面,对进程和线程进行比较. a. 在引入线程的OS 中,把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;b. 在引入线程的OS 中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使 OS 具有更好的并发性;c. 进程始终是拥有资源的一个独立单位,线程自己不拥有系统资源,但它可以访问其隶属进程的资源;d. 在创建,撤消和切换进程方面,进程的开销远远大于线程的开销. 17 什么是用户级线程和内核级线程?并对它们进行比较. a. 内核级线程是依赖于内核的,它存在于用户进程和系统进程中,它们的创建,撤消和切换
24、都由内核实现;-用户级线程仅存在于用户级中,它们的创建,撤消和切换不利用系统调用来实现,因而与内核无关,内核并不知道用户级线程的存在. b. 内核级线程的调度和切换与进程十分相似,调度方式采用抢占式和非抢占式,调度算法采用时间片轮转法和优先权算法等,当由线程调度选中一个线程后,再将处理器分配给它;而用户级线程通常发生在一个应用程序的诸线程之间,无需终端进入OS 内核,切换规则也较简单,因而,用户级线程的切换速度较快. -用户级线程调用系统调用和调度另一个进程执行时,内核把它们看作是整个进程的行为,内核级线程调用是以线程为单位,内核把系统调用看作是该线程的行为. -对于用户级线程调用,进程的执行
25、速度随着所含线程数目的增加而降低,对于内核级线程则相反. 18 在 Solaris OS 中,设置了哪几种线程?轻型进程的作用是什么?a. 用户级线程,内核级线程和轻型进程;轻型进程:LWP ,一个进程中至少有一个LWP 。b. 作用 : 由 LWP 实现了在内核与用户级线程之间的隔离,从而使用户级线程与内核无关. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - 19 在 Solaris OS 中,用户级线程是通过什么方式来访
26、问内核的?通过 LWP 来访问内核 . 内核能识别LWP,但不能识别用户级线程,通过建立用户级线程与LWP 之间的连接,可以实现用户级线程与内核的通信. 第三章 进程的同步与通信1. 什么是临界资源和临界区?a. 一次仅允许一个进程使用的资源成为临界资源. b. 在每个进程中,访问临界资源的那段程序称为临界区. 2. 为什么进程在进入临界区之前,应先执行进入区 代码,在退出临界区后又执行退出区 代码?为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进
27、程不能进入临界区,实现这一功能的代码成为进入区 代码;在退出临界区后,必须执行退出区 代码,用于恢复未被访问标志. 3. 同步机构应遵循哪些基本准则?为什么?a. 空闲让进 .(有效利用临界资源)b. 忙则等待 .(保证诸进程互斥的访问临界资源)c. 有限等待 .(避免进程陷入“死等”状态)d. 让权等待 .(避免进程陷入“忙等”状态)4. 试从物理概念上来说明记录型信号量和wait 和 signal 操作(有待讨论 ). 记录型信号量: 采用记录型数据结构的信号量,包括代表资源数目的整型变量和链接所有等待进程的进程链表。P 操作后, S.value0 表示资源分配完毕,进程调用block 原
28、语进行自我阻塞,放弃处理机并插入到信号量链表 S.L 中。S 操作后, S.value 0 表示信号量链表中仍有等待该资源的进程被阻塞,调用wakeup 原语,将链表中第一个等待进程唤醒。整型信号量机制中的wait 操作,只要是信号量S0,就会不断测试,因此该机制并未遵循“让权等待”的准则,而使该进程处于“忙等”状态。5. 你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则?a. 在整型信号量机制中,未遵循让权等待 的准则 . b. 记录型信号量机制完全遵循了同步机构的空闲让进 ,忙则等待 ,有限等待 ,让权等待 四条准则 . 6. 在生产者消费者问题中,如果缺少了sig
29、nal(full) 或 signal(empty), 对执行结果会有何影响?生产者消费者问题可描述如下: var mutex,empty,full: semaphore:=1,n,0; buffer: array0,.,n-1 of item; in,out: integer:=0,0; begin parbegin producer: begin repeat . producer an item in nextp; . wait(empty); wait(mutex); buffer(in):=nextp; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
30、- - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - in:=(in+1) mod n; signal(mutex); signal(full); until false; end consumer: begin repeat wait(full); wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty); consume the item in nextc; until false;endparend e
31、nd parend end 可见,生产者可以不断地往缓冲池送消息,如果缓冲池满,就会覆盖原有数据,造成数据混乱.而消费者始终因 wait(full) 操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待. 7. 在生产者消费者问题中,如果将两个wait 操作即 wait(full) 和 wait(mutex) 互换位置;或者是将signal(mutex)与 signal(full) 互换位置结果会如何?a.wait(full) 和 wait(mutex) 互换位置后,因为mutex 在这儿是全局变量,执行完wait(mutex) ,则 mutex 赋值为0,倘若 full 也为
32、 0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex 为 0 而进行等待,使full 始终为 0,这样就形成了死锁. b. 而 signal(mutex) 与 signal(full) 互换位置后,从逻辑上来说应该是一样的. 8. 我们为某临界区设置一把锁W,当 W=1 时,表示关锁; W=0 时,表示锁已打开.试写出开锁原语和关锁原语,并利用它们去实现互斥. 开锁原语 :unlock(W):W=0; 关锁原语 :lock(W):if(W=1) do no_op; W=1; 利用开关锁原语实现互斥: var W: semaphore:=0; begin parbeg
33、in process : begin repeat lock(W); critical section unlock(W); remainder section until false; end parend end 9. 试修改下面生产者消费者问题解法中的错误. producer: begin repeat . producer an item in nextp; wait(mutex); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 37 页 - - - - - -
34、 - - - wait(full); /* 应为 wait(empty), 而且还应该在wait(mutex) 的前面*/ buffer(in):=nextp; /* 缓冲池数组游标应前移: in:=(in+1) mod n; */ signal(mutex); /* 缺少 signal 操作 : signal(full); */ until false; end consumer: begin repeat wait(mutex); wait(empty); /* 应为 wait(full), 而且还应该在wait(mutex) 的前面*/ nextc:=buffer(out); out:=
35、out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */ signal(mutex); /*缺少 signal 操作:signal(empty); */ consumer item in nextc; until false; end 10 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法. 设初始值为1 的信号量 cI 表示 I 号筷子被拿 (I=1,2,3,4,.,2n), 其中 n 为自然数, I 表示第 I 个哲学家send(I): begin if I mod 2=1 then P(cI); P(cI-1 mod 5); Eat; V(cI-1
36、 mod 5); V(cI); else P(cI-1 mod 5); P(cI); Eat; V(cI); V(cI-1 mod 5); end 避免死锁的方法:a.至多只允许四个科学家同时进餐,以保证至少有一个科学家能够进餐。b.仅当两只筷子都可用时才能进餐。c.奇数哲学家先拿左边的筷子,偶数哲学家正相反。11 在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单缓冲中取出数据进行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法. int mutex=1; int empty=n; int full=0; int in=0; int out=0; main()
37、Cobegin send(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 37 页 - - - - - - - - - obtain(); coend send() while(1) . collect data in nextp; . wait(empty); wait(mutex); buffer(in)=nextp; in=(in+1) mod n; signal(mutex); signal(full); dobtain() while(1) wait(fu
38、ll); wait(mutex); nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty); culculate the data in nextc; 12 画图说明管程由哪几部分组成,为什么要引入条件变量? 管程由三部分组成: (1)局部于管程的共享变量说明;(2)对该数据结构进行操作的一组过程;(3)对局部于管程的数据设置初始值的语句. 因为调用 wait 原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量. 管程: 当共享资源用数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来表示,
39、这样一组相关的数据结构和过程一并称为管程。13 如何利用管程来解决生产者消费者问题PC 管程描述如下:typeproducer-consumer=monitor var in,out,count:integer; buffer:array0, ,n-1 of item ;notfull ,notempty:condition ;procedure entry put(item)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - b
40、egin if count n then notfull.wait; buffer(in) := nextp; in := (in+1) mod n; count := count + 1; if notempty.queue then notempty.signal; end procedure entry get(item) begin if count 0 then notempty.wait nextc := buffer(out); out := (out+1) mod n; count := count-1; if notfull.queue then notfull.signal
41、; end begin in := out := 0; count :=0; end 生产者:producer: begin repeat produce an item in nextp; PC.put(item); until false; End 消费者:consumer:begin repeat PC.get( item) ;consume the item in nextc ;until false ;end 14 什么是 AND 信号量?试利用AND 信号量写出生产者消费者问题的解法. 为解决并行所带来的死锁问题,在 wait 操作中引入AND 条件, 其基本思想是将进程在整个运行
42、过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放. 解决生产者消费者问题可描述如下: 生产者:用Swait(empty,mutex)代替 wait(empty),wait(mutex) 用 Ssignal(mutex,full) 代替 signal(mutex) ,signal(full 同理可得消费者15 在单处理机环境下,进程间有哪几种通信方式? a. 共享存储器系统通信方式;b. 消息传递系统通信方式;c. 管道通信方式. 16 试比较进程间的低级通信工具与高级通信工具. 用户用低级通信工具实现进程通信很不方便,因为其效率低, 通信对用户不透明,所有的操作都必须由程序
43、员来实现 . 而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据 . 低级通信:进程的互斥和同步归结为低级通信高级通信:用户直接利用操作系统所提供的一组通信命令,高效地传送大量的数据的一种通信方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 37 页 - - - - - - - - - 17 消息队列通信机制应有哪几方面功能a.通信链路建立用于发送进程和接收进程之间进行通信的通信链路b.消息的格式消息传递系统中消息采用一定
44、的格式c.进程同步方式1.发送进程阻塞,接收进程阻塞2.发送进程不阻塞,接收进程阻塞(最常用)3 发送接收进程均不阻塞. 18 试比较消息队列与管道通信机制. a. 所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe 文件 .管道通信是属于共享存储器系统的. b. 消息队列通信机制属于消息传递系统通信机制,存在通信链路,有消息的格式,有若干缓冲队列,采用独特的发送原语和接收原语. (详见 P8990) 19 读者 -写着问题描述Var rmutex,wmutex:semaphore:=1,1; readcount: integer :=0; begin p
45、arbegin reader: begin repeat wait(rmutex); if readcount := 0 then wait(wmutex) readcount := readcount+1; signal(rmutex); Perform read operation; Wait(rmutex); readcount := readcount -1; if readcount := 0 then signal(wmutex); signal(rmutex); until false; end writer: begin repeat wait(wmutex); perform
46、 write operation; signal(wmutex); until false; end parend end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 37 页 - - - - - - - - - 第四章 调度与死锁1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?a. 作业调度又称宏观调度或高级调度,其主要任务是按一定的原则对外存上处于后备状态的作业进行选择,给选中的作业分配内存,输入输出设备等必要的资源,并建立相应的进程,以使该作业
47、的进程获得竞争处理机的权利 . b. 进程调度又称微观调度或低级调度,其主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它. c. 为了提高内存利用率和系统吞吐量,引入了中级调度. 中级调度:将暂时不能运行的进程调至外存上等待(挂起),将外存上重又具备运行条件的就绪进程重新调入内存。中级调度实际上是存储器管理中的对换功能。2. 在作业调度中需做出哪两个决定?a. 接纳多少个作业;b. 接纳哪些作业 . 3. 在剥夺调度方式中,有哪些剥夺原则?a. 时间片原则; b. 优先权原则; c. 短作业 (进程 )优先原则 . 4. 在 OS 中引起进程调度的主要因素有哪些(有待讨
48、论 ) a.进程(作业)完成或发生某时间而被阻塞. b.时间片到 . c.优先权高的进程(作业)到来. d.比当前明显短的进程(作业)到来。5. 选择调度方式和调度算法时,应遵循的准则是什么?a. 面向用户的准则有周转时间短,响应时间快,截止时间的保证,以及优先权准则. b. 面向系统的准则有系统吞吐量高,处理机利用率好,各类资源的平衡利用. 6.在批处理系统,分时系统和实时系统中,各采用哪几种进程(作业 )调度算法(有待讨论 ) 7. 为什么说多级反馈队列能较好地满足各种用户的需要a. 对于终端型作业用户,由于终端型作业用户所提交的作业,大都属于交互型作业,系统只要能使这些作业(进程 )在第
49、一队列所规定的时间片内完成,便可使终端型作业用户都感到满意. b. 对于短批处理作业用户,很短的批处理型作业如果仅在第一队列中执行一个时间片即可完成,便可获得与终端型作业一样的相应时间.对于稍长的作业,通常也只需在第二队列和第三队列中各执行一个时间片即可完成,其周转时间仍然很短. c. 对于长批处理作业用户,用户也不必担心其作业长期得不到处理. 多级反馈队列:设置多个就绪队列,各队列具有不同的优先权。作业在队列中按FCFS 调度算法执行固定的时间片,未完整则转入下一队列。最后一个队列中的作业采用时间片轮转法调度。8. 在按时间片轮转调度算法中,在确定时间片的大小时,应考虑哪些因素a. 系统对响
50、应时间的要求;b. 就绪队列中进程的数目;c. 系统的处理能力. 9. 为实现实时调度,对实时系统提出了哪些要求?a. 要提供必要的调度信息;b. 在调度方式上要具体情况具体分析;c. 要具有快速响应外部中断的能力;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 37 页 - - - - - - - - - d. 快速任务分派 . 10 目前常用的调度方式和算法,能否应用到实时系统中?a. 对于时间片轮转调度算法,是一种常用于分时系统的调度算法; b. 对于非抢占式优先