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