1、计算机操作系统教程张尧学课后练习答案复习资料计算机操作系统教程张尧学 _(第 3 版)第一章 绪论1什么是操作系统的基本功能 答:操作系统的职能是管理和控制汁算机系统中的所有硬、软件资源,合理地组织计 算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包 括:处理机管理、存储管理、设备管理、信息管理 (文件系统管理 )和用户接口等。2什么是批处理、分时和实时系统各有什么特征 答:批处理系统 (batchprocessingsystem:) 操作员把用户提交的作业分类,把一批作业 编成一个作业执行序列,由专门编制的监督程序 (monitor) 自动依次处理。其主要特征
2、是:用户脱机使用计算机、成批处理、多道程序运行。分时系统 (timesharingoperationsystem):把处理机的运行时间分成很短的时间片,按时 间片轮转的方式,把处理机分配给各进程使用。其主要特征是:交互性、多用户同时 性、独立性。实时系统 (realtimesystem):在被控对象允许时间范围内作出响应。其主要特征是:对 实时信息分析处理速度要比进入系统快、要求安全可靠、资源利用率低。3多道程序 (multiprogramming) 和多重处理 (multiprocessing)有何区别 答;多道程序 (multiprogramming) 是作业之间自动调度执行、共享系统资源
3、,并不是真 正地同时值行多个作业;而多重处理 (multiprocessing)系统配置多个 CPU,能真正同时 执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计 原则上不一定要求多重处理系统的支持。4讨论操作系统可以从哪些角度出发,如何把它们统一起来 答:讨论操作系统可以从以下角度出发:(1)操作系统是计算机资源的管理者(2)操作系统为用户提供使用计算机的界面;(3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统。上述这些观点彼此并不矛盾,只不过代表了同一事物 (操作系统 )站在不同的角度来看 待。每一种观点都有助于理解、分析和设计操作系统。第三章 用
4、户管理和配置管理1有 A 说,一个进程是由伪处理机执行的一个程序,这话对吗为什么 答:对。因为伪处理机的概念只有在执行时才存在,它表示多个进程在单处理机上并发执行的 二个调度单位。因此,尽管进程是动态概念,是程序的执行过程,但是,在多个进程 并行执行时,仍然只有一个进程占据处理机执行,而其他并发进程则处于就绪或等待 状态。这些并发进程就相当于由伪处理机执行的程序。2试比较进程和程序的区别。 答:(1)进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执 行含义,进程则强调执行的过程。(2)进程具有并行特征 (独立性,异步性 ),程序则没有。(3)不同的进程可以包含同一个程序,同
5、一程序在执行中也可以产生多个进程。3我们说程序的并发执行将导致最终结果失去封闭性广这话对所有的程序都成立吗举例 说明.答:并非所有程序均成立。如:Beginlocal“ ZK:10print(x)End上述程序中 x 是内部变量,不可能被外部程序访问,因此这段程序的运行不会受外部 环境影响。4试比较作业和进程的区别。答:一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是 用于需要计算机完成某项任务,而要求计算机所做工作的集合。一个作业的完成要经 过作业提交,作业收容、作业执行和作业完成 4 个阶段。而进程是已提交完毕的程序 所执行过程的描述,足资源分配的基本单位。其主要区别
6、关系如下:(1)作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将 存储在外存中的作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是 向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于 内存中。(2)一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。(3)作业的概念主要用在批处理系统中。像 Unix 这样的分时系统中,则没有作业概念。 而进程的概念则用在几乎所有的多道程序系统中。5UNIXSystem V中,系统程序所对应的正文段未被考虑成进程上下文的一部分,为什么 答:因为系统程序的代码被用户程序所共享, 因此如果每个
7、进程在保存进程上下文时, 都将系统程序代码放到其进程上下文中,则大大浪费了资源。因此系统程序的代码不 放在进程上下文中,而是统一放在核心程序所处的内存中。 6什么是临界区试举一临界区的例子。 答:临界区是指不允许多个并发进程交叉执行的一段程序。它是由于不同并发进程的 程序段共享公用数据或公用数据变量而引起的。所以它又被称为访问公用数据的那段 程序。例如: getspace: Begin local g top=top-1 End release(ad): Begin toptop 十 1 stacktopad End7并发进程间的制约有哪两种引起制约的原因是什么 答:并发进程所受的制约有两种:
8、直接制约和间接制约。 直接制约是由并发进程互相共享对方的私有资源所引起的。 间接制约是由竞争共有资源而引起的。8什么是进程间的互斥什么是进程间同步 答:进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一公有资源 而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的 并发进程同时进入临界区。进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相 合作、互相等待 ,各进程按一定的速度执行的过程。9试比较 P,V 原语法和加锁法实现进程间互斥的区别。 答:互斥的加锁实现是这样的:当某个进程进入临界区之后,它将锁上临界区,直到 它退出临界区时为止。
9、并发进程在申请进入临界区时,首先测试该临界区是否是上锁 的,如果该临界区已被锁住, 则该进程要等到该临界区开锁之后才有可能获得临界区。 但是加锁法存在如下弊端: (1)循环测试锁定位将损耗较多的 CPU 计算时间; (2)产生 不公平现象。为此, P,V 原语法采用信号量管理相应临界区的公有资源,信号量的数 值仅能由 P,V 原语操作改变,而 P,V 原语执行期间不允许中断发生。其过程是这样 的:当某个进程正在临界区内执行时,其他进程如果执行了 P 原语,则该进程并不像lock 时那样因进不了临界区而返回到 lock 的起点,等以后重新执行测试,而是在等待 队列中等待由其他进程做 V 原语操作
10、释放资源后,进入临界区,这时 P 原语才算真正 结束。若有多个进程做 P原语操作而进入等待状态之后,一旦有 V 原语释放资源,则 等待进程中的一个进入临界区,其余的继续等待。总之,加锁法是采用反复测试 lock 而实现互斥的,存在 CPU浪费和不公平现像, P,V 原语使用了信号量,克服了加锁法的弊端。14.设有 5 个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子 上总共只有 5 支筷子,在每人两边分开各放一支。哲学家们在肚子饥饿时才试图分两次从两边拾起筷子就餐。条件:(1)只有拿到两支筷子时,哲学家才能吃饭。(2)如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才能
11、拿到筷子。(3)任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。试:(1)描述一个保证不会出现两个邻座同时要求吃饭的通信算法。(2)描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到筷子)的算法。(3)在什么情况下, 5 个哲学家全部吃不上饭解答:(1)、设信号量 c0c4,初始值均为 1,分别表示 i号筷子被拿 (i=0,1,2,3,4), send(i):第 i 个哲学家要吃饭beginP(ci);P(ci+1 mod 5);eat;V(ci+1 mod 5);V(ci);End;该过程能保证两邻座不同时吃饭 ,但会出现 5 个哲学家一人拿一只筷子 ,谁也吃不上饭 的死
12、锁情况 .(2)、解决的思路如下 :让奇数号的哲学家先取右手边的筷子 ,让偶数号的哲学家先取左 手边的筷子 .这样 ,任何一个哲学家拿到一只筷子之后 ,就已经阻止了他邻座的一个哲学 家吃饭的企图 ,除非某个哲学家一直吃下去 ,否则不会有人会饿死 .send(i):第 i 个哲学家要吃饭BeginIf i mod 2=0 thenP(ci),P(ci+1 mod 5)eat;V(ci,ci+1 mod 5)ElseP(ci+1 mod 5)P(ci)EatV(ci+1 mod 5)V(ci)End15什么是线程试述线程与进程的区别, 答;线程是在进程内用于调度和占有处理机的基本单位,它由线程控制
13、表、存储线程 上下文的用户栈以及核心栈组成。线程可分为用户级线程、核心级线程以及用户核 心混合型线程等类型。其中用户级线程在用户态下执行, CPU 调度算法和各线程优先 级都由用户设置,与操作系统内核无关。核心级线程的调度算法及线程优先级的控制 权在操作系统内核。混合型线程的控制权则在用户和操作系统内核二者。线程与进程 的主要区别有:(1)进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、 外部设备等;线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源, 但自己没有任何资源。(2)以进程为单位进行处理机切换和调度时, 由于涉及到资源转移以及现场保护等问题, 将导
14、致处理机切换时间变长,资源利用率降低。以线程为单位进行处理机切换和调度 时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处 理机效率也较高。(3)对用户来说,多线程可减少用户的等待时间。提高系统的响应速度。例如,当一个进程需要对两个不同的服务器进行远程过程凋用时,对于无线程系统的操作系统来说 需要顺序等待两个不同调用返回结果后才能继续执行, 且在等待中容易发生进程调度。 对于多线程系统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用, 从而缩短进程的等待时间。(4)线程和进程一样,都有自己的状态也有相应的同步机制,不过,由于线程没有单 独的数据和程序空间,因此
15、,线程不能像进程的数据与程序那样,交换到外存存储空 间。从而线程没有挂起状态。(5)进程的调度、同步等控制大多由操作系统内核完成,而线程的控制既可以由操 作系统内核进行,也可以由用户控制进行。第四章 进程管理1什么是分级调度分时系统中有作业调度的概念吗如果没有,为什么 答:处理机调度问题实际上也是处理机的分配问题。显然只有那些参与竞争处理及所 必需的资源都已得到满足的进程才能享有竞争处理机的资格。这时它们处于内存就绪 状态。这些必需的资源包括内存、外设及有关数据结构等。从而,在进程有资格竞争 处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺 序和策略从输入井中选择出几
16、个处于后备状态的作业,为它们分配资源和创建进程, 使它们获得竞争处理机的资格。 另外,由于处于执行状态下的作业一般包括多个进程, 而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于 后备状态的作业外,还存在处于就绪状态而等待得到内存的作业。我们需要有一定的 方法和策略为这部分作业分配空间。因此处理机调度需要分级。 一般来说,处理机调度可分为 4 级;(1)作业调度 : 又称宏观调度,或高级调度。(2)交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换 区中的就绪态或等待状态或内存等待状态的进程交换到外存交换区。交换调度主要涉 及到内存管理与扩充。因
17、此在有些书本中也把它归入内存管理部分。(3)进程调度:又称微观调度或低级调度。其主要任务是按照某种策略和方法选取一个 处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进 程上下文切换以建立与占用处理机进程相适应的执行环境。(4)线程调度:进程中相关堆栈和控制表等的调度。 在分时系统中,一般不存在作业调度,而只有线程调度、进程调度和交换调度。这是 因为在分时系统中,为了缩短响应时间,作业不是建立在外存,而是直接建立在内存 中。在分时系统中,一旦用户和系统的交互开始,用户马上要进行控制。因此,分时 系统中没有作业提交状态和后备状态。分时系统的输入信息经过终端缓冲区为系统直
18、接接收,或立即处理,或经交换调度暂存外存中。2试述作业调度的主要功能。 答: 作业调度的主要功能是:按一定的原则对外存输入井上的大量后备作业进行选择, 给选出的作业分配内存、输入输出设备等必要的资源,并建立相应进程,使该作业的 相关进程获得竞争处理机的权利。另外,当作业执行完毕时,还负责回收系统资源。3作业调度的性能评价标准有哪些这些性能评价标准在任何情况下都能反映调度策略的 优劣吗答:对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高。从而 作业的平均周转时间或平均带权周转时间被用来衡量调度程序的优劣。但对于分时系 统来说,平均响应时间又被用来衡量调度策略的优劣。对于分时系统,
19、 除了要保证系 统吞吐量大、资源利用率高之外,还应保证用户能够容忍的响应时间。因此,在分时 系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够的。对于实时系统, 衡量调度算法优劣的主要标志则是满足用户要求的时限时间。4进程调度的功能有哪些 答:进程调度的功能有:(1)记录和保存系统中所有进程的执行情况;(2)选择占有处理机的进程;(3)进行进程上下文切换。5进程调度的时机有哪几种 答:进程调度的时机有:(1)正在执行的进程执行完毕。 这时如果不选择新的就绪进程执行, 将浪费处理机资源。(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。(3)执行中进程调用了 P原语操作,从而
20、因资源不足而被阻塞:或调用了 V 原语操作激活了等待资源的进程队列。(4)执行中进程提出 IO 请求后被阻塞。(5)在分时系统中时间片已经用完。(6)在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而 调度选择一新的用户进程执行。(7)在 CPU执行方式是可剥夺时,还有:就绪队列中的某进程的优先级变得高于当前执 行进程的优先级,从而也将引发进 程调度。6进程上下文切换由哪几部分组成描述进程上下文切换过程。 答:进程上下文切换由以下 4 个步骤组成;(1)决定是否作上下文切换以及是否允许作上下文切换。包括对进程调度原因的检查分 析,以及当前执行进程的资格和 CPU执行方式的
21、检查等。在操作系统中,上下文切换 程序并不是每时每刻都在检查和分析是否可作上下文切换,它们设置有适当的时机。(2)保存当前执行进程的上下文。这里所说的当前执行进程,实际上是指调用上下文切 换程序之前的执行进程。如果上下文切换不是被那个当前执行进程所调用,且不属于 该进程,则所保存的上下文应是先前执行进程的上下文,或称为“老”进程上下文。 显然,上下文切换程序不能破坏“老”进程的上下文结构。(3)使用进程调度算法,选择一处于就绪状态的进程。(4)恢复或装配所选进程的上下文,将 CPU控制权交到所选进程手中。7为什么说在进程上下文切换过程中,上下文切换程序不能破坏“老”进程的上下文结构答: 因为如
22、果在进程上下文切换中破坏了老的进程上下文,等到 CPU 调度到该老进程执行时,就不能正确地恢复其停止执行前的状态了。第五章 处理器管理1. 存储管理的主要功能是什么 答:存储管理的主要功能包括以下几点:(1)在硬件的支持下完成统一管理内存和外存之间数据和程序段自动交换的虚拟存储(2)将多个虚存的一维线性空间或多维线性空间变换到内存的唯一的一维物理线性地(3)控制内外存之间的数据传输。(4)实现内存的分配和回收。(5)实现内存信息的共享与保护。2什么是虚拟存储器其特点是什么 答:由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。虚拟 存储器不考虑物理存储器的大小和信息存放的实际位
23、置,只规定每个进程中相互关联 信息的相对位置。每个进程都拥有自己的虚拟存储器,且虚拟存储器的容量是由计算 机的地址结构和寻址方式来确定。实现虚拟存储器要求有相应的地址转换机构,以便 把指令的虚拟地址变换为实际物理地址;另外,由于内存空间较小,进程只有部分内 容存放于内存中,待执行时根据需要再调指令入内存。3实现地址重定位的方法有哪几类 答:实现地址重定位的方法有两种:静态地址重定位和动态地址重定位。(1)静态地址重定位是在虚空间程序执行之前由装配程序完成地址映射工作。静态重 定位的优点是不需要硬件支持,但是用静态地址重定位方法进行地址变换无法实现虚 拟存储器。静态重定位的另一个缺点是必须占用连
24、续的内存空间和难以做到程序和数 据的共享。(2)动态地址重定位是在程序执行过程中,在 CPU访问内存之前由硬件地址变换机构 将要访问的程序或数据地址转换成内存地址。动态地址重定位的主要优点有: 可以对内存进行非连续分配。动态重定位提供了实现虚拟存储器的基础。动态重定位有利于程序段的共享。形式化描述:略。4常用的内存信息保护方法有哪几种它们各自的特点是什么 答:常用的内存保护方法有硬件法、软件法和软硬件结合保护法三种。 上下界保护法是一种常用的硬件保护法。上下界存储保护技术要求为每个进程设置对 上下界寄存器。上下界寄存器中装有被保护程序和数据段的起始地址和终止地址。在 程序执行过程中,在对内存进
25、行访问操作时首先进行访问地址合法性检查,即检查经 过重定位之后的内存地址是否在上、下界寄存器所规定的范围之内。若在规定的范围 之内,则访问是合法的;否则是非法的,并产生访问越界中断。保护键法也是一种常用的软件存储保护法。保护键法为每个被保护存储块分配一个 单独的保护键。在程序状态字中则设置相应的保护键开关字段,对不同的进程赋予不 同的开关代码以和被保护的存储块中的保护键匹配。保护键可以没臂成对读写同时保 护的或只对读写进行单项保护的。如果开关字段与保护键匹配或存储块未受到保护, 则访问该存储块是允许的,否则将产生访问出错中断。另外一种常用的硬软件内存保护方式是:界限存储器与 CPU的用户态,核
26、心态相结合 的保护方式。在这种保护方式下,用户态进程只能访问那些在界限寄存器所规定范围 内的内存部分,而核心态进程则可以访问整个内存地址空间。5如果把 DOS的执行模式改为保护模式,起码应做怎样的修改 答:如果要把 DOS的执行模式改成保护模式,起码要为每一个进程设置一对上下界寄 存器。上下界寄存器中装有被保护程序和数据段的起始地址和终止地址。在程序执行 过程中,在对内存进行访问操作时首先进行访问地址合法性检查,即检查经过重定位 之后的内存地址是否在上、下界寄存器所规定的范围之内。若在规定的范围之内,则 访问是合法的;否则是非法的,并产生访问越界中断。另外,还应该把指令的访问内 存模式由访问实
27、际物理地址改为由逻辑地址变换为物理地址的方式。6动态分区式管理的常用内存分配算法有哪几种比较它们各自的优缺点。 答:动态分区式管理的常用内存分配算法有最先适应法 (FF)、最佳适应法 (BF)和最坏适 应法(WF)。优缺点比较: 从搜索速度上看最先适应法最佳,最佳适应法和最坏适应法都要求把不同大小的空 闲区按大小进行排队。从回收过程来看,最先适应法也是最佳,因为最佳适应法和最坏适应法都必须重新 调整空闲区的位置。最佳适应法找到的空闲区是最佳的, 但是会造成内存碎片较多, 影响了内存利用率, 而最坏适应法的内存碎片最少,但是对内存的请求较多的进程有可能分配失败。 总之,三种算法各有所长,针对不同
28、的请求队列,它们的效率和功能是不一样的。7节讨论的分区式管理可以实现虚存吗如果不能,需要怎样修改试设计一个分区式管理 实现虚存的程序流程图。如果能,试说明理由。答:节讨论的分区式管理不能实现虚存。如果要实现虚存,可以在分区的基础之上对 每个分区内部进行请求调页式管理。程序流程图:略。8简述什么是覆盖什么是交换覆盖和交换的区别是什么 答:将程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会 同时执行的程序段共享同一块内存区的内存扩充技术就是覆盖。交换是指先将内存某 部分的程序或数据写入外存交换区,再从外存交换区中调入指定的程序或数据到内存 中来,并让其执行的一种内存扩充技术。与
29、覆盖技术相比,交换不要求程序员给出程 序段之间的覆盖结构,而且,交换主要是在进程或作业之间进行,而覆盖则主要在同 一个作业或同一个进程内进行。 另外,覆盖只能覆盖那些与覆盖程序段无关的程序段。9什么是页式管理静态页式管理可以实现虚存吗 答:页式管理就是把各进程的虚拟空间划分为若干长度相等的页面,把指令按页面大 小划分后存放在内存中执行或只在内存中存放那些经常被执行或即将被执行的页面, 而那些不被经常执行以及在近期内不可能被执行的页面则存放于外存中,按一定规则 调入的一种内存管理方式。静态页式管理不能实现虚存,这是因为静态页式管理要求进程或作业在执行前全部被 装入内存,作业或进程的大小仍受内存可
30、用页面数的限制。10.什么是请求页式管理试设计和描述一个请求页式管理时的内存页面分配和回收算法 (包括缺页处理部分 )。答:请求页式管理是动态页式内存管理的一种,它在作业或进程开始执行之前,不把 作业或进程的程序段和数据段一次性的全部装入内存,而只装入被认为是经常反复执 行和调用的工作区部分。其他部分则在执行过程中动态装入。请求页式管理的调入方 式是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其他 数据或指令时,而这些指令和数据又不在内存中,从而发生缺页中断,系统将外存中 相应的页面调入内存。请求页式管理的内存页面分配和回收算法:略。11.请求页式管理中有哪几种常用的页面
31、置换算法试比较它们的优缺点。 答:比较常用的页面置换算法有:(1)随机淘汰算法 (randomglongram)。即随机地选择某个用户页面并将其换出。(2)轮转法 RR(roundrobin)。轮转法循回换出内存可用区内一个可以被换出的页, 无论该 页是刚被换进或已经换进内存很长时间。(3)先进先出法 FIFO(firstinfirstout)。FIFO算法选择在内存驻留时间最长的一页将其淘汰。(4)最近最久未使用页面置换算法 I RU(1east recently unused。) 该算法的基本思想是: 当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页面先淘 汰。(5)理想型淘汰算法 OPT(optimalreplacementalgorithm)。该算法淘汰在访问串中将来再 也不出现的或是在离当前最远的位置上出现的页面。14.什么是段式管理它与页式管理有何区别 答:段式管理就是将程序按照内容或过程 (函数 )关系分成段,每段拥有自己的名字。一 个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存 储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转 换成实际的内存物理地址。 司页式管理时样,段式管理也采用只把那些经常访问 的段驻留内存,而把那些在将来,段时间内不被访问的段放入外存,待需要时自 动调入相关
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1