《计算机操作系统教程》第三版答案作者左万历+周长林(共24页).doc
《《计算机操作系统教程》第三版答案作者左万历+周长林(共24页).doc》由会员分享,可在线阅读,更多相关《《计算机操作系统教程》第三版答案作者左万历+周长林(共24页).doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章 操作系统概述课后习题 1. 硬件将处理机划分为两种状态,即管态和目态,这样做给操作系统设计带来什么好处 ? 答:便于设计安全可靠的操作系统。管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权指令。如果用户程序企图在目态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。 2. 何为特权指令?举例说明之。如果允许用户执行特权指令,会带来什么后果? 答:只能在管态下才能执行的指令称为特权指令。如开关中断、置程序状态寄存器
2、等。如果允许用户执行特权指令,它将不仅影响当前运行的程序,而且还有可能影响操作系统的正常运行,甚至整个系统。3. 中断向量在机器中的存储位置是由硬件确定的,还是由软件确定的 ? 答:中断向量在机器中的位置是由硬件确定的。例如,在 INTEL 80x86 CPU 中,内存空间0x000000x003ff为中断向量空间。4. 中断向量的内容是由操作系统程序确定的还是由用户程序确定的? 答:中断向量的内容是由操作系统程序确定的。向量的内容包括中断处理程序的入口地址和程序状态字(中断处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该中断处理程序的运行环境来填写中断
3、向量。5. 中断向量内的处理机状态位应当标明是管态还是目态 ? 为什么? 答:应当标明是管态。 该状态由系统初试化程序设置,这样才能保证中断发生后进入操作系统规定的中断处理程序。 6. 中断和程序并发之间的关系是什么? 答:中断是程序并发的必要条件。如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。7. 说明“栈”和“堆”的差别 答:栈是一块按后进先出(FIFO)规则访问的存储区域,用来实现中断嵌套和子程序调用的参数和返回断点。而堆虽然是一块存储区域,但是对堆的访问是任意的,没有后进先出的要求,堆主要用来为动态变量分配存储空间。
4、8. 何为系统栈?何为用户栈?系统栈有何用途?用户栈有何用途? 答:系统栈是内存中操作系统空间的一个固定区域;用户栈是内存中用户空间的一个区域。系统栈的作用:(1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;(2)保存操作系统子程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。用户栈的作用:用于保存用户进程的子程序间相互调用的参数、返回值、返回点、以及子程序的局部变量。9. 用户堆栈段的长度为何无法确定 ? 答:用户堆栈段的长度主要取决于两个因素:(1)用户进程(线程)中子程序(函数)之间的嵌套调用深度;(2)子程序参数和局部变量的数量及类型;
5、(3)动态变量的使用。这些在进程(线程)运行前无法确定,由此导致用户堆栈段的长度无法预先准确确定。 10堆栈段的动态扩充为何可能导致进程空间的搬迁? 答:堆栈段的扩充需要在原来进程空间大小的基础上增添新的存储区域,而且通常要求与原来存储区域连续。由于原存放位置处可扩展的区域可能已经被其它进程占用,故可能需要将整个进程空间搬迁到另外一个区域,以实现地址空间扩展要求。11. 何谓并行 ? 何谓并发? 在单处理机系统中,下述并行和并发现象哪些可能发生,哪些不会发生 ? (1) 进程与进程之间的并行; (2) 进程与进程之间的并发; (3) 处理机与设备之间的并行; (4) 处理机与通道之间的并行;
6、(5) 通道与通道之间的并行; (6) 设备与设备之间的并行; 答:所谓并行是指同一时刻同时进行,进程并行需要多处理器的支持;所谓并发,是指在一段时间内,多个进程都在向前推进,而在同一时刻,可能只有一个进程在执行,多个进程轮流使用处理器。 在单处理器传统中,可能发生的并行和并发现象如下: (2) 进程与进程之间的并发。例如,在Windows操作系统中,mp3播放进程和Word字处理进程可以并发执行,这样用户就可以边听音乐边写文章了。 (3) 处理机与设备之间的并行。例如,当处理机进行科学运算时,打印机可以打印文档。 (4) 处理机与通道之间的并行。通道程序的执行可与处理机的操作并行。 (5)
7、通道与通道之间的并行。通常一个系统中有多个通道,这些通道可以并行地执行相应的通道程序。 (6) 设备与设备之间的并行。例如打印机打印文档时,磁带机在输入数据。 12. 何谓作业? 它包括哪几个部分? 各部分用途是什么?答:所谓作业是指用户要求计算机系统为其完成的计算任务的集合。一个作业通常包括程序、程序所处理的数据以及作业说明书。程序用来完成特定的功能,数据是程序处理的对象,作业说明书用来说明作业处理的步骤。13. 从透明性和资源共享两方面,说明网络操作系统与分布式操作系统之间的差别。 答:从透明性上看,分布式操作系统优于网络操作系统。网络用户能够感觉到所访问的资源是在本地还是在远地;而在分布
8、式系统中,用户感觉不到所访问的资源是否在本地,分布式操作系统掩盖了资源在地理位置上的差异。 从资源共享上看 ,分布式操作系统比网络操作系统能共享更多的资源。在网络操作系统中,一个计算任务不能由一台主机任意迁移到另外一台主机上运行;而在分布式操作系统中,所有作业可以由一台主机任意迁移到另外一台主机上处理,即可实现处理机资源的共享,从而达到整个系统的负载平衡。 14. 为什么构成分布式系统的主机一般都是相同的或兼容的?答:这样更有利于进程的动态迁移。如果主机不兼容,则在一台主机上能运行的进程,因所用指令系统不同,在另一台主机上可能无法运行,导致进程难于在不同主机间迁移,使得分布式系统难于实现负载平
9、衡。构成分布式系统的主机一般都是相同的或兼容的。15. 为什么嵌入式操作系统通常采用微内核结构? 答:嵌入式操作系统与一般操作系统相比具有比较明显的差别 : (1)嵌入式操作系统规模一般较小,因为一般硬件配置较低,而且对操作系统提供的功能要求也不高。(2)应用领域差别大,对于不同的应用领域其硬件环境和设备配置情况有明显差别。 所以,嵌入式操作系统一般采用微内核 ( micro kernel )结构,包括如下基本功能: (1)处理机调度;(2)基本内存管理;(3)通讯机制;(4)电源管理。在这些基本成分之上可进行扩展,以适应不同应用目标。 第二章 进程、线程与作业课后习题 1. 为何引入多道程序
10、设计? 在多道程序系统中,内存中作业的道数是否越多越好? 请说明原因。 答:引入多道程序设计技术是为了提高计算机系统资源的利用率。在多道程序系统中,内存中作业的道数并非越多越好。一个计算机系统中的内存、外设等资源是有限的,只能容纳适当数量的作业,当作业道数增加时,将导致对资源的竞争激烈,系统开销增大,从而导致作业的执行缓慢,系统效率下降。 2. 什么是进程? 进程具有那些主要特性? 比较进程与程序之间相同点与不同点答:进程是具有一定独立功能的程序关于一个数据集合的一次执行活动。特性:并发性、动态性、独立性、交往性、异步性和结构性。联系:程序是进程的组成部分,一个进程存在的目的就是执行其所对应的
11、程序。区别:程序是静态的,而进程是动态的;进程是有生存期的,而程序没有;一个程序可对应多个进程,而一个进程只能对应一个程序。3. 有人说,用户进程所执行的程序一定是用户自己编写的。 这种说法对吗?如不对举例说明之。 答:这种说法不对。例如, C编译程序以用户进程身份运行,但C编译程序并不是用户自己编写的。此外还有字处理程序等工具软件。4. 什么是进程上下文?进程上下文包括那些成分?那些成分对目态程序是可见的?答: 在UNIX System V中,将进程的物理实体与支持进程运行的物理环境合称为进程上下文(process context),进程上下文包括三个组成部分:用户级上下文。是由用户进程的程
12、序块、用户数据块(含共享数据块)和用户堆栈组成的进程地址空间。系统级上下文。包括进程控制块、内存管理信息、进程环境块,以及系统堆栈等组成的进程地址空间寄存器上下文。由程序状态字寄存器、各类控制寄存器、地址寄存器、通用寄存器、用户堆栈指针等组成。其中用户级上下文及部分寄存器上下文对目态程序是可见得。5. 进程一般具有哪三个主要状态?举例说明状态转换的原因。 答:进程在其生存期内可能处于如下三种基本状态之一 : (1) 运行态( Run ): 进程占有处理机资源,正在运行。 显然,在单处理机系统中任一时刻只能有一个进程处于此种状态; (2) 就绪态( Ready ): 进程本身具备运行条件,但由于
13、处理机的个数少于可运行进程的个数,暂未投入运行。即相当于等待处理机资源; (3) 等待态( Wait ): 也称挂起态( Suspended )、封锁态( Blocked )、睡眠态( Sleep )。 进程本身不具备运行条件,即使分给它处理机也不能运行。 进程正等待某一个事件的发生,如等待某一资源被释放,等待与该进程相关的 I/O 传输的完成信号等。 进程的三个基本状态之间是可以相互转换的。具体地说,当一个就绪进程获得处理机时,其状态由就绪变为运行 ; 当一个运行进程被剥夺处理机时,如用完系统分给它的时间片,或出现高优先级别的其它进程,其状态由运行变为就绪;当一个运行进程因某事件受阻时,如所
14、申请资源被占用,启动 I/O 传输未完成,其状态由运行变为等待 ; 当所等待事件发生时,如得到申请资源, I/O 传输完成,其状态由等待变为就绪。 6. 有几种类型进程队列?每类各应设置几个队列?答:有三种类型进程队列:就绪队列(整个系统一个)、等待队列(每个等待事件一个)和运行队列(在单CPU系统中只有一个)7. 线程控制块 TCB 中一般应包含那些内容? 答:一般 TCB 中的内容较少,因为有关资源分配等多数信息已经记录于所属进程的 PCB中TCB中的主要信息包括: 线程标识、线程状态、调度参数、现场、链接指针 ,其中现场信息主要包括通用寄存器、指令计数器 PC以及用户栈指针对于操作系统支
15、持的线程,TCB中还应包含系统栈指针。 8. 同一进程中的多个线程有那些成分是共用的,那些成分是私用的?答:共用的成分有:堆、数据和程序代码;私用的成分有:线程控制块、寄存器和用户栈。9. 比较用户级线程与系统级线程间在以下方面的差别和各自的优缺点。 (1) 创建速度;(2)切换速度;(3)并行性;(4) TCB 的存储位置 答:用户级线程由系统库支持线程的创建和撤销,以及线程状态的变化都由库函数控制并在目态完成,与线程相关的控制结构 TCB 保存在目态空间并由运行系统维护。 由于线程对操作系统不可见, 系统调度仍以进程为单位,核心栈的个数与进程个数相对应用户级别线程的优点在于: (1)线程不
16、依赖于操作系统,可以采用与问题相关的调度策略,灵活性好;(2)同一进程中的线程切换不需进入操作系统,因而实现效率较高。缺点在于:(1)同一进程中的多个线程不能真正并行,即使在多处理机环境中;(2)由于线程对操作系统不可见,调度在进程级别,某进程中的一个线程通过系统调用进入操作系统受阻,该进程的其它线程也不能运行 。 核心级别线程通过系统调用由操作系统创建,线程的控制结构 TCB 保存于操作系统空间,线程状态转换由操作系统完成,线程是 CPU 调度的基本单位。 另外由于系统调度以线程为单位,操作系统还需要为每个线程保持一个核心栈 。 核心级线程的优点是并发性好,在多 CPU 环境中同一进程中的多
17、个线程可以真正并行执行 。 核心级别线程的缺点是线程控制和状态转换需要进入操作系统完成,系统开销比较大。 10.何谓作业步?作业何时转为进程?答:作业步:作业中一个相对独立的处理步骤作业进入内存,根据作业步的要求建立进程。11. 分析作业、进程、线程三者之间的关系.答:联系:一个作业包含多个进程,一个进程包含多个线程;区别:作业是向计算机提交任务的任务实体,而进程是执行实体,是资源分配的基本单位,线程是处理机调度的基本单位。12. 何谓系统开销? 试举三个例子说明之 运行操作系统程序对系统进行管理而花费的时间和空间,如:作业调度、进程调度、进程切换等。第三章 中段与处理机调度课后习题 1. 试
18、说明下述概念之间的联系与差别: (1) 系统调用命令 (2) 访管指令 (3) 广义指令 答:访管指令由指令码和访管中断号两部分组成。 即 : SVC n 其中 SVC(SuperVisor Call)为指令码,表明为访管指令; n 为访管中断号,其值是一整数,具体表示何种访问要求。中断发生时,硬件中断装置将访管中断号 n 送入旧的程序状态字内的中断码字段,访管中断总控程序由系统堆栈中将其取出,并据此转入对应的服务程序。 在实际使用时,用户程序与操作系统之间还需要相互传递参数和返回值。如此,用户使用访管指令的一般形式为 : 准备参数 SVC n 取返回值 根据具体访管要求约定,参数及返回值可以
19、通过寄存器传递,也可以通过内存传递。对于后者,操作系统必须能够访问进程空间。 通常将称为系统调用命令,它除访管指令外,还有准备参数和取返回值。为了使用方便,在高级语言中一般将其写为与过程调用相类似的形式,即: 返回值系统调用名称(参数1,参数2, ,参数 m ); 当然,编译程序会将翻译成形如的形式。其中系统调用名称对应,不同的系统调用名称对应不同的整数 n 。 在有的书中,也将称为代表的宏指令或广义指令。 2. 为什么说中断是进程切换的必要条件,但不是充分条件?答: 发生进程切换时一定发生中断。 系统由一个运行进程转去运行另外一个进程,前提条件是必须进入操作系统,即处于系统态,因为处于用户态
20、运行的进程不可能将cpu的使用权直接交给另一个进程,而中断是从用户态转换为系统态的必要条件。即中断是进程切换的前提(必要)条件。 但发生中断时未必发生进程切换。如果中断处理完后原进程不再具有继续运行的条件,则一定会发生进程切换;反之,如果中断处理完后原进程仍具有继续运行的条件,则可能会发生进程切换,也可能不发生进程切换,这与处理机调度策略有关。 3. 试分析中断与进程状态转换之间的关系。 答:进程状态转换是由内核控制的,如果一个进程的状态发生了改变,则在新旧状态之间一定发生了处理机状态由目态到管态的转换,而中断是处理机状态由目态转换到管态的必要条件,所以中断也是进程状态转换的必要条件。 4.
21、中断发生时, 旧的PSW和PC为何需要压入系统栈?答:保存断点信息,以便中断结束后接着原来的程序断点处继续执行。通常来说中断处理程序的最后一条指令是中断返回指令,该指令从系统栈顶弹出断点信息。如果未将PSW和PC压入系统栈,则中断返回指令弹出的不是中断前的断点信息,而是不确定的信息,这将导致系统处于不确定的状态,严重的情况会使系统崩溃。5. 何谓中断向量? 用户能否修改中断向量的值? 答:当中断事件发生时,中断装置根据中断类别自动地将中断处理程序所对应的 PSW和PC送入程序状态字和指令计数器中,如此便转移到对应的中断处理程序。这个转移类似于向量转移,因而PSW和PC 被称为中断向量。 用户不
22、能修改中断向量的值,因为修改中断向量是特权指令,普通用户程序不能执行特权指令。另外,如果允许用户修改中断向量的值,那么,用户就可以将中断向量与一段病毒程序联系起来,使中断发生时便执行病毒程序,从而破坏计算机系统。 6.中断向量的存储位置是否可由程序改变? 为什么? 中断向量的值是如何确定的? 答:中断向量的存储位置是由硬件确定的,不能由程序改变。中断发生后,中断装置按照中断类型到内存指定位置取出中断向量。例如,在IBM PC系统中,地址00003FF是中断向量空间。操作系统的设计者根据各中断事件处理程序的存储位置及运行环境确定对应中断向量的值,系统启动时由初始化程序将该值填入指定位置。7. 有
23、人说,中断发生后硬件中断装置保证处理机进入管态,这种说法准确吗? 说明理由。 答:这种说法不准确。中断发生后,硬件中断装置负责引出中断处理程序,中断处理程序是否运行于管态取决于PSW中的处理机状态位,该位的值是操作系统初始化时设置的,只有在初试化程序正确设置该状态位的前提下,才能保证中断后系统进入管态。 8.为什么在中断处理过程中通常允许高优先级别的中断事件中途插入, 而不响应低优先级别的中断事件?答:(1)从逻辑上来说,高优先级别中断源所对应的事件比低优先级别中断源所对应的中断事件急迫;(2)由于硬件中断类型是有限的,这样做实际上也就限制了中断嵌套的深度。防止中断层数无限增长,甚至系统栈溢出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机操作系统教程 计算机 操作系统 教程 第三 答案 作者 万历 周长 24
限制150内