操作系统原理-答案(共19页).doc
精选优质文档-倾情为你奉上习题二参考答案(P43) 2-1什么是核态?什么是用户态? 答:核态是指系统程序执行时,机器所处的状态。 用户态是指用户程序执行时,机器所处的状态。2-2为什么必须区分二态?系统如何区分出二态? 答:二态是指核态(系统程序执行时处理机所处的状态)和用户态(用户程序执行时处理机所处的状态)。 操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。为此,系统应能建立一个保护环境,因此系统必须区分处理机的工作状态。系统中有两类程序在运行,它们的任务是不同的,系统程序是管理和控制者,用户程序是被管理和被控制的对象,因此应将它们运行时处理机的工作状态区分出来,即系统必须区分二态。系 2-5按中断的功能来分,中断有哪几种类型? 答:按中断的功能来分,中断有如下五种类型: I/O中断 外中断 硬件故障中断 程序性中断 访管中断 2-8什么是程序状态字?在微机中它一般由哪两个部分组成? 答:程序状态字是指反映程序执行时机器所处的现行状态的代码。 在微机中它一般由指令计数器(PC)和处理机状态寄存器(PS)。2-9什么是向量中断?什么是中断向量? 答:向量中断是指当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程。 中断向量就是存储该类型中断服务例行程序的入口地址和处理器状态字的存储单元。 2-12什么是操作系统虚拟机? 答:操作系统是最基本的系统软件,它是硬件功能的第一层扩充。配置了操作系统的计算机称为操作系统虚拟机。扩充了的计算机除了可以使用原来裸机提供的各种基本硬件指令,还可以使用操作系统增加的许多其它指令。习题三参考答案(P54) 3-1用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口? 答:用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。 一个分时系统提供的接口有系统功能调用和键盘操作命令。 一个批处理系统提供的接口有系统功能调用和作业控制语言。 3-2计算机对用户算题任务的加工过程一般分哪几个作业步?各作业步之间的关系如何?用自己的上机体会说明。 答:计算机对用户算题任务的加工过程一般分四个作业步:编辑、编译、连接和运行。 各作业步之间的关系如下: 前一个作业步的结果是下一个作业步的操作对象; 一个作业步的成功完成依赖于上一个作业步的成功 完成。 3-3什么是系统调用?对操作系统的服务请求与一般的子程序调用有什么区别? 答:系统调用是操作系统提供给编程人员的惟一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。系统调用与一般过程调用的主要区别如下: 系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。(也可按上课时讲的三个方面来阐述) 3-5简述系统调用的执行过程。 答:系统调用命令的具体格式因系统而异,但由用户程序进入系统调用的步骤及执行过程大体相同: 首先,将系统调用命令所需的参数(如功能号)或参数区首址装入指定寄存器;然后,在用户程序中适当的位置安排一条调用系统功能指令。至于系统调用命令的功能号,有的系统直接在调用指令中给出,有的系统则把它作为系统调用命令的参数,在调用时放入指定寄存器。 当用户程序执行到调用系统功能的指令时,就转到系统调用的处理程序执行。其过程如下: (1)为执行系统调用命令做准备,即将用户程序的“现场”保存起来,同时把系统调用命令的编号等参数放入约定的存储单元。(2)根据系统调用命令的编号查找系统调用入口表,找到相应系统功能调用子程序的入口地址,然后转到该子程序执行。当系统调用命令执行完毕,相应的结果通常返回给参数,这些参数放在约定的存储单元里。 (3)系统调用命令执行完毕后的处理,包括恢复用户程序执行的“现场”信息,同时把系统调用命令的返回参数或参数区首址放入指定的寄存器中,以供用户程序使用。习题四参考答案(P97) 4-3什么是进程?进程与程序的主要区别是什么? 答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。 进程与程序的主要区别是: (1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态概念。(2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。 (3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制块3部分组成。 (4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程序在执行中也可以产生多个进程。(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。而程序无此概念。 4-6进程有哪几个基本状态?试画出进程状态变迁图,并标明发生变迁的可能原因。 答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠)。(a)解:Main() int s12=0,s13=0,s14=0; cobegin P1; P2; P3; P4; coend P1() p1 execute; V(s12); V(s13); V(s14); P2() P(s12); p2 execute; P3() P(s13); p3 execute; P4() P(s14); p4 execute; (b)略解:Main() int sa=1,sb=0;/ sa表示缓冲区S是否为空,sb表示是否为满。 int ta=1,tb=0;/ ta表示缓冲区T是否为空,tb表示是否为满。 Cobegin get; copy; put; coend Get() while(1) P(sa); input data 6to buffer S; V(sb); Copy () while(1) P(sb); copy data from buffer S; V(sa); P(ta); input copy-data to buffer T; V(tb); Put() while(1) P(tb); output data to buffer S; V(ta); 4-12什么是进程的互斥与同步?同步和互斥这两个概念有什么联系和区别? 答:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界资源。我们称进程之间的这种相互制约关系为互斥。 进程同步是指多个相关进程在执行次序上的协调。这些进程相互合作,在一些关键点上可能需要互相等待或互通消息。 4-13在一个实时系统中,有两个进程p和q,它们是循环运行的。循环进程p每隔1秒钟由脉冲寄存器(REG)获得输入,并把它累计到一个整型变量(W)中,同时清除脉冲寄存器。循环进程q则每隔1小时输出这个整形变量的内容并把它复位。系统提供标准的I/O过程input和output,并提供系统调用命令delay(seconds)。试拟定出这两个进程并发活动的程序描述。 解:设置一个互斥信号量mutex用来实现进程p和q对共享变量W的互斥使用。 Main() int mutex=1; int W=0; cobegin p; q; coend p()while(1) delay(1); P(mutex); W=W+input(REG); V(mutex); REG=0; q() while(1) delay(3600); P(mutex); output(W); W=0; V(mutex); 4-18什么是线程?线程和进程有什么区别? 答:线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径。一个进程可以有多个执行路径即线程。 线程和进程的主要区别如下:(1)线程是进程的一个组成部分。一个进程可以有多个线程,而且至少有一个可执行的线程。(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。(3)进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。(4)线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存去。 (5)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操作系统内核完成,也可以由用户控制完成。习题六参考答案(P132) 6-2某系统进程调度状态变迁图如图6.5所示(设调度方式为非剥夺方式),请说明: (1)什么原因将引起发生变迁2、变迁3、变迁4? (2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1? (3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生? (a)3->1;(b)3->2;(c)2->1(2)正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时会立即引起一个就绪进程被调度执行的变迁1。 (3)a.3->1的因果变迁可能发生 正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。b.3->2的因果变迁不可能发生。 c.2->1的因果变迁必然发生 正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。 6-3若题2中所采用的调度为可剥夺式,请回答题2中提出的问题: (1)什么原因将引起发生变迁2、变迁3、变迁4? (2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1? (3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生? (a)3->1;(b)3->2;(c)2->1 解答:(1)当运行进程在分得的时间片内未完成,时间片到将发生变 迁2;或者新创建一个进程或一个等待进程变成就绪,它具有比当前进程更高的优先级,也将发生变迁2。当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。 当等待进程等待的事件发生了,将会发生变迁4。 (2)正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时会立即引起一个就绪进程被调度执行的变迁1。 (3)a.3->1的因果变迁可能发生 正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。b.3->2的因果变迁不可能发生。 c.2->1的因果变迁必然发生 正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。或者新创建一个进程或一个等待进程变成就绪,它具有比当前进程更高的优先级发生的变迁2,必然引起调度一个具有更高优先级就绪进程执行的变迁1。 6-4某系统的进程状态变迁图如图6.6所示(设该系统的进程调度方式为非剥夺式),请说明: (1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么? (2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生? (a)2->1;(b)3->2;(c)4->5;(d)4->2;(e)3->5 (3)根据此状态变迁图叙述该系统的调度策略、调度效果。解答:(1)当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。 当运行进程在分得的时间片(100ms或500ms)内未完成,时间片100ms或时间片500ms到将发生变迁2。 当等待进程等待的事件发生了,将会发生变迁4。 (2)a.2->1的因果变迁可能发生 当运行进程在分得的时间片(100ms或500ms)内未完成,时间片100ms或时间片500ms到发生的变迁2,在高优先就绪队列为空时,必然引起低优先就绪队列中的一个就绪进程被调度执行的变迁1。 b.3->2的因果变迁不可能发生 c.4->5的因果变迁可能发生在高优先就绪队列采用优先级调度算法时,当一进程从等待状态变为就绪状态的变迁4,在该进程的优先级最高且系统采用抢占式调度时,就会引起该进程被调度执行的变迁5。 或者在当前运行进程是原低优先就绪队列中的一个进程且高优先就绪队列为空时,若系统采用可抢占方式,则当一进程从等待状态变为就绪状态的变迁4,就会引起该进程被调度执行的变迁5。 d.3->2的因果变迁不可能发生 e.3->5的因果变迁可能发生 正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在高优先就绪队列非空时必然引起一个就绪进程被调度执行的变迁5。 (3)调度策略: 首先调度高就绪队列中的进程(一般由I/O型进程或短进程组成)投入运行(给高优先就绪队列中的进程分配的时间片大小为100ms),只有当高就绪队列中的所有进程全部运行完毕或因等待某事件发生处于阻塞状态,高就绪队列中没有进程可运行时,才调度低优先就绪队列中的进程(一般由计算型进程或长进程组成)(给低优先就绪队列中的进程分配的时间片大小为500ms)。若一个运行进程时间片(100ms或500ms)到还未完成就进入低优先就绪队列。若某进程在运行期间因等待某事件发生而进入阻塞队列,则当其所等待事件完成后,它将进入高优先就绪队列。 调度效果:这种算法优先照顾了I/O量大的进程或短进程。6-7在单道批处理系统中,有下列三个作业用先来先服务调度算法和最短作业调度算法进行调度,哪一种算法调度性能好些?请完成表6.5中未填写的各项。答:用首次适应法首先把120KB的空白区分配50KB的空间给作业1,分割后还剩70KB的空白区,再将其分配给作业2,剩下10KB的空白区。起始地址为250KB的空白区(78KB)可以满足作业3的需求,分割后还剩8KB的空白区。因此首次适应法可以吞吐此作业序列。 用最佳适应法,则先分配78KB的空白区给作业1,还剩28KB的空白区,不能满足作业2的需求,因此分配120KB的空白区给作业2,还剩60KB的空白区。此时系统中有大小为28KB和60KB的两个空白区,它们均不能满足作业3的需求。因此最佳适应法不能吞吐此作业序列。7-8已知主存有256KB容量,其中OS占用低址20KB,可以有这样一个作业序列: 作业1 要求 80KB 作业2 要求 16KB 作业3 要求 140KB 作业1 完成 作业3 完成 作业4 要求 80KB 作业5 要求 120KB 试用首次适应算法和最佳适应算法分别处理上述作业序列(在存储分配时,从空白区高址处分割作为已分配区),并完成以下各步: (1) 画出作业1、2、3进入主存后,主存的分配情况。 (2) 作业1、3完成后,画出主存分配情况。 (3) 画出两种算法中空白区的分区描述器信息(假定分区描述器所需占用的字节数已包含在作业所要求的主存容量中)及空白区链接情况。 (4) 哪种算法对该作业序列而言是合适的? 答:(1)作业1、2、3进入主存后,主存的分配情况如下图所示:若采用最佳适应法,则应先将起始地址为176KB的空白区(大小为80KB)分配给作业4。此时系统中还有一个空白区,即起始地址为19KB,大小为140KB的空白区,它可以满足作业5的需求(120KB)。因此最佳适应法对该作业序列是合适的。 7-10已知主存容量为64KB,某一作业A的地址空间如图7.40所示,它的4个页面(页面大小为1KB)0、1、2、3被分配到主存的2、4、6、7块中,要求并回答 (1)画出作业A的页面映射表。 (2)当200号单元处有一条指令“mov r1,3500”执行时,如何进行正确的地址变换,以使3500处的内容12345装入r1中?。(2)因为每页大小为1KB=1024字节,而3500=3*1024+428,可知逻辑地址3500对应的页号为3,页内地址为428。根据页号检索页表可知对应的物理块号为7,所以物理地址为:7*1024+428=7596。 补充作业 1.对于一个利用快表的分页系统中,假定CPU一次访问内存的时间为1us,访问快表的时间可忽略不计。如果85%的地址映射可直接通过快表完成,那么进程完成一次内存读写的平均有效时间是多少? 答:进程完成一次内存读写的平均有效时间为: t=0.85*1+(1-0.85)*(1+1)=1.15us 2.在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一个逻辑地址为2F6AH,且将0、1、2页依次存放在物理块5、10、11中,问相应的物理地址为多少? 答:该作业的页面映射表如下图所示:页面大小为4096=212字节,可知16位的逻辑地址中低12位为页内地址,而高4位为页号。 2F6AH=0010 1111 0110 1010B 页号为2,检索页表可得其对应的物理块号为11,则对应的物理地址为:1011 1111 0110 1010B=0BF6AH 3.设有一个页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页为2048字节,内存总共有8个物理块,问逻辑地址至少应该为多少位?内存空间为多大? 答:因为逻辑地址空间最大为16页,共需要4位二进制表示页号(16=24);每页为2048字节,需要11位表示页内地址(2048=211)。因此逻辑地址至少为15位。 因为物理块大小与页面相同,故块内地址需11位表示;又因为内存中有8个物理块,需要3位表示块号。因此物理地址需要14位表示,即内存空间大小为214=16KB。专心-专注-专业