1、习题一 参考答案1-1 存储程序式计算机的主要特点是什么?答:存储程序式计算机(即冯诺依曼型计算机)的主要特点是集中顺序过程控制。它模拟手工操作过程,由CPU集中管理,通过程序计数器控制指令的顺序执行每一个指令。1-2 批处理系统和分时系统各具有什么特点?为什么分时系统的响应比较快?答:批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。分时系统的主要特点是:
2、多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。分时系统一般采用时间片轮转的方法,使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。1-3 实时信息处理系统和分时系统从外表看来很相似,它们有什么本质的区别呢?答:实时信息处理系统是指用计算机对实时数据进行处理的系统。它要求必须在规定的时间内做出响应,一般要求响应时间为秒级、毫秒级甚至微秒级,比分时系统要求严格。实时系统要求高可靠性和安全性,不要求很强的会话功能。而分时系统只要求系统及时做出响应,具有很强的会话功能。1-4 什么是多道程序设计技术?试述多道程序运行的特征?答:多
3、道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如 I/O 请求)而暂停执行时,CPU 立即转去执行另一道程序。多道程序运行具有如下特征:多道:计算机内存中同时存放几道相互独立的程序。宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行,但都未运行完毕。微观上串行:从微观上看,内存中的多道程序轮流或分时地占有处理机,交替执行。1-5 什么是分时技术?答:把处理机时间分成若于个大小相等(或不相等)的时间单位,称为时间片,每个终端用户获得CPU,就等于获得一个时间片,该用户程序开始运行,当时间片到(用完),用户
4、程序暂停运行,等待下一次运行。1-6 什么是操作系统?操作系统的主要特征是什么?答:操作系统是一个大型的程序系统,它负责计算机系统软、硬件资源的分配与回收;控制和协调并发活动;实现信息的存取和保护;提供用户接口,使用户获得良好的工作环境,为用户扩展新的系统功能提供软件平台。操作系统使整个计算机系统实现了高效率和高度自动化。操作系统的主要特征有:并发性,共享性,不确定性。1-7 操作系统的管理功能有哪些?其中,哪些功能与计算机系统的硬部件相关?答:操作系统的管理功能有进程管理、存储管理、设备管理和文件系统。上述管理功能均与计算机系统的硬部件相关,进程管理与处理机相关,存储管理与内存相关,设备管理
5、与各种外部设备相关,文件管理与辅存相关。1-8 设一个计算机系统有输入机一台、打印机两台,现有A、B两道程序同时投入运行,且程序A先运行,程序B后运行。程序A的运行轨迹为:计算50ms,打印信息100ms,再计算50ms,打印信息100ms,结束。程序B运行的轨迹为:计算50ms,输入数据80ms,再计算100ms,结束。回答如下问题:(1) 用图画出这两道程序并发执行时的工作情况。答:(2) 说明在两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会空闲等待?答:在两道程序运行时,CPU有空闲等待。当程序A进入打印操作后,程序B计算50ms后也进入输入操作,而程序A打印操作尚
6、未结束,且无其它用户程序需要计算,此时CPU有空闲。(3) 程序A、B运行时有无等待现象?在什么时候会发生等待现象?答:程序A运行时无等待现象,程序B运行时有等待现象。当程序B在50ms计算后进入80ms的输入操作,在输入操作执行50ms时CPU被程序A强占,而当程序B输入操作完成后程序A仍未释放CPU,此时程序B处于等待状态。习题二 参考答案2-1 什么是操作系统虚拟机?答:操作系统是最基本的系统软件,它是硬件功能的第一层扩充。配置了操作系统的计算机称为操作系统虚拟机。扩充了的计算机除了可以使用原来裸机提供的各种基本硬件指令,还可以使用操作系统增加的许多其它指令。2-2 在设计操作系统时,可
7、以考虑的结构组织有哪几种?答:在设计操作系统时,可以考虑的结构组织有单体系统、层次式系统、微内核、客户机-服务器模式。2-3 什么是处理机的态?为什么要区分处理机的态?答:所谓处理机的态是指处理机当前处于何种状态,正在执行哪类程序。操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。为此,系统应能建立一个保护环境,因此系统必须区分处理机的工作状态。系统中主要分为系统程序和用户程序两类程序在运行,它们的任务是不同的。系统程序是管理和控制者,将它们运行时处理机的工作状态称为管态;用户程序是被管理和被控制的对象,将它们运行时处理机的工作状态称为用户态。2-4 什
8、么是管态?什么是用户态?二者有何区别?答:处理器在执行系统程序时所处的状态称为管态;处理器在执行用户程序时所处的状态称为用户态。处理器在管态和用户态下具有不同的权限:在管态下允许 CPU 使用全部资源和全部指令,其中包括一组特权指令;在用户态下禁止使用特权指令,不能直接使用系统资源与改变 CPU 状态,并且只能访问用户程序所在的存储空间。2-5 什么是中断?在计算机系统中为什么要引进中断?答:中断是指某个事件(例如,电源掉电、俘点运算溢出、外部设备传输完成或出错等)发生时,系统中止现运行程序的执行,引出处理事件程序对相应事件进行处理,处理完毕后返回断点继续执行。为了实现多道程序设计技术、提高资
9、源利用率,在计算机系统中引进中断。2-6 按中断的功能来分,中断有哪几种类型?答:按中断的功能来分,中断有如下五种类型: I/O 中断 外中断 硬件故障中断 程序性中断 访管中断2-7 什么是强迫性中断?什么是自愿中断?试举例说明。答:强迫性中断的中断事件不是正在运行的程序所期待的,而是由某种事故或外部请求信号所引起的。如 I/O 中断、外中断、机器故障中断、程序性中断属于这类中断。自愿性中断的中断事件是运行程序所期待的,这种事件由运行程序请求操作系统服务而引起的。访管中断属于这类中断。2-8 中断和俘获有什么不同?答:中断和俘获是按中断事件的来源不同划分的。中断也叫外中断,指中断事件来源于处
10、理机的外部,如 I/O 中断、外中断;俘获也叫内中断,指中断事件来源于处理机的内部,如硬件故障中断、程序性中断、访管中断。2-9 什么是中断响应?其实质是什么?答:中断响应是处理机发现有中断请求时,暂停现运行程序的执行,并自动引出中断处理程序的过程。其实质是交换指令执行地址和处理机的状态信息。2-10 试用图画出中断响应的过程。答:如下所示。2-11 什么是程序状态字?在微机中它一般由哪两个部分组成?答:程序状态字是指反映程序执行时机器所处的现行状态的代码,并存放在特定的寄存器中。在微机中它一般由指令计数器(PC)和处理机状态寄存器(PS)两部分组成。2-12 什么是向量中断?什么是中断向量?
11、答:向量中断是指当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程。中断向量就是存储该类型中断服务例行程序的入口地址和处理器状态字的存储单元。2-13 软件的中断处理过程主要分为哪几个阶段?试用图画出软件的中断处理过程。答:软件的中断处理过程主要分为三个阶段:保护现场、执行中断处理程序和恢复现场。2-14 试说明 Linux 系统的核心结构。答:Linux 系统的核心结构如下图所示。习题三 参考答案3-1 什么是系统生成?答:系统生成是指在一台裸机上(或者安装新的操作系统)安装操作系统的过程。3-2 系统引导的主要任务是什么?答:系统引导(或系统初启)的任务是:将操作系统的必要部分
12、装入主存并使系统运行,最终处于命令接收状态。3-3 什么是作业?什么是作业步?答:作业是要求计算机系统按指定步骤对初始数据进行处理并得到计算结果的加工过程。加工工作中的一个步骤称为作业步。3-4 处理应用程序分哪几个作业步?这些步骤之间有什么关系?答:计算机对用户算题任务的加工过程一般分四个作业步:编辑、编译、连接和运行。各作业步之间的关系如下:前一个作业步的结果是下一个作业步的操作对象;一个作业步的成功完成依赖于上一个作业步的成功完成。3-5 静态连接和动态连接有什么区别?答:在静态链接中,链接程序将需要的外部函数代码从静态链接库中拷贝到执行文件中,因此得到的可执行文件比较大,而且执行文件在
13、不存在库函数的环境下也能执行(因为执行文件本身已经包含了它所需要的库函数的完整拷贝),换句话说,静态库不需要与可执行文件一起发行。在动态链接中,链接程序不没有将需要的外部函数代码拷贝到可执行程序中,而是在可执行程序中需要调用外部函数的地方做标记,从而形成一个函数调用链表;在执行文件执行过程中根据调用的需要动态的加载或卸载 DLL 文件,换句话说,DLL 文件需要与不包含它的可执行文件一起发行(因为包含 DLL 文件,所以动态链接方式产生的可执行文件比较小)。3-6 用户与操作系统的界面是什么?一个分时系统提供什么界面?一个批处理系统又提供什么界面?答:用户与操作系统的界面是操作系统提供给用户与
14、计算机打交道的外部机制,用户能够借助这种机制和系统提供的手段来控制用户所在的系统。操作系统的用户界面分为操作界面和程序界面。任何一类操作系统都必须同时提供操作界面和程序界面。一个分时系统提供的界面是键盘命令(或图形化的用户界面)和系统调用。一个批处理系统提供的界面是作业控制语言和系统调用。3-7 Windows 提供什么样的用户界面?答:Windows 提供的操作界面是图形化的用户界面;提供的程序界面是系统调用(如 Windows Win32 API)。3-8 UNIX、Linux 系统的用户界面是什么?答:UNIX、Linux 系统提供的操作界面是 Shell(基于文本命令行界面)和图形用户
15、界面(X Windows);提供的程序界面是系统调用,如 fork、open 等。3-9 什么是系统调用?对操作系统的服务请求与一般的子程序调用有什么区别?答:系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。系统调用与一般过程调用的主要区别如下:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。3-10 假定某系统提供硬件的访管指令(如
16、形式为“svc n ”),为了实现系统调用,系统设计者应做哪些工作?用户又如何请求操作系统服务?答:系统设计者应该编写相应的访管中断处理程序,该程序的功能是根据指令中的功能号 n 将 CPU 切换到用户需要的服务例程。用户必须提供所需服务例程对应的功能号 n。3-11 简述系统调用的执行过程。答:系统调用命令的具体格式因系统而异,但由用户程序进入系统调用的步骤及执行过程大体相同:首先,将系统调用命令所需的参数(如功能号)或参数区首址装入指定寄存器;然后,在用户程序中适当的位置安排一条调用系统功能指令。至于系统调用命令的功能号,有的系统直接在调用指令中给出,有的系统则把它作为系统调用命令的参数,
17、在调用时放入指定寄存器。当用户程序执行到调用系统功能的指令时,就转到系统调用的处理程序执行。其过程如下:(1)为执行系统调用命令做准备,即将用户程序的“现场”保存起来,同时把系统调用命令的编号等参数放入约定的存储单元。(2)根据系统调用命令的编号查找系统调用入口表,找到相应系统功能调用子程序的入口地址,然后转到该子程序执行。当系统调用命令执行完毕,相应的结果通常返回给参数,这些参数放在约定的存储单元里。(3)系统调用命令执行完毕后的处理,包括恢复用户程序执行的“现场”信息,同时把系统调用命令的返回参数或参数区首址放入指定的寄存器中,以供用户程序使用。习题四 参考答案4-1 试解释下列名词:程序
18、的顺序执行、程序的并发执行。答:一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。4-2 什么是与时间有关的错误?试举例说明。答:当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相对速度不确定,这使得(即使初始条件相同)这些程序多次并发执行得到的结果不同,其中有一个结果是正确的,而其他的是错误的。这些错误与并发程序执行的相对速度有关,是与时间有关的错误。例如,三个并
19、发执行程序的誊抄。其中,get 程序负责从输入序列 f 中读取字符,并送到缓冲区 s 中;copy 程序把缓冲区 s 中的数据复制到缓冲区 t 中去;put 程序从缓冲区 t 中取出数据打印。若程序写出:while(誊抄未完成)cobegincopy;put;get;coendcopy、put、get 三个程序段并发执行,就有六种组合: 假设此时的状态为:f=(r1,r2, .,rn);s=r2,t=r1,g=(r1) )1、copy; put; get2、copy; get; put3、put; copy; get4、put; get; copy5、get; copy; put6、get;
20、put; copy易知,如果按照 1 和 2 的执行顺序可以得到正确的誊抄结果,而 3、4、5、6 的执行顺序都会到错误的誊抄结果(即产生了与时间相关的错误)。4-3 什么是进程?进程与程序的主要区别是什么?答:进程即是一个具有一定独立功能的程序关于某个数据集合的一次活动。进程与程序的主要区别是:(1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态概念。(2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。(3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进
21、程控制块 3 部分组成。(4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程序在执行中也可以产生多个进程。(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。而程序无此概念。4-4 图 4-2 标明程序段执行的先后次序。其中 I 表示输入操作、C 表示计算操作、P 表示打印操作,下角标说明是对哪个作业进行上述操作。请指明:(1)哪些操作必须有先后次序,其原因是什么?(2)哪些操作可以并发执行,其原因又是什么?答:(1)Ii 必须先于 Ci 执行,Ci 必须先于 Pi 执行,这是因为同一个作业的这三个操作之间具有逻辑上的严格的先后执行次序;Ii 必须先于 Ii
22、+1 执行,Ci 必须先于 Ci+1 执行,Pi 必须先于 Pi+1 执行,这是因为 Ii 和 Ii+1 共享输入设备、Ci 和 Ci+1共享 CPU、Pi 和 Pi+1 共享输出设备。(2)Ii+1 和 Ci、Pi-1 可以并发执行,因为这三个进程分属于不同的作业,且它们占据的是不同的资源。4-5 如下图所示,设一誊抄程序,将 f 中记录的序列正确誊抄到 g 中,这一程序由 get、copy、put 三个程序段组成,它们分别负责获得记录、复制记录、输出记录。请指出这三个程序段对 f 中的 m 个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图。(假设 f 中有 1,2,m
23、个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录。)答:(不是很明白题目的要求,所以给出三个程序段正确完成誊抄的算法)。输入:f输出:gif (f 不为空 ) thenget(s, f); /从 f 中读入一个字符放入缓冲区 swhile(1)if (s 中的字符不是结束符 )thencopy(t, s);cobeginget(s, f);put(g, t);coendelsecopy(t, s);put(g, t);break;/while4-6 进程有哪几个基本状态?在一个系统中为什么必须区分出这几种状态。答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠)。因为多道程序设计技术的引入,使得多个进程可以并发执行。并发执行的进程之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们的执行过程具有“执行暂停执行暂停执行”的动态特征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程进行分析、管理和控制。4-7 试用图画出批处理系统的进程状态变迁图。答:如下所示。4-8 试用图画出分时系统的进程状态变迁图。答:如下所示