操作系统习题解答 - 下载本文

《操作系统教程》南邮正式版

习题解答

第三章 进程管理与调度习题

1、什么是多道程序设计?多道程序设计利用了系统与外围设备的并行工作能力,从而提高工作效率,具体表现在哪些方面? 答:

让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称“ 多道程序设计 ”,这种计算机系统称“多道程序设计系统” 或简称“多道系统”。在多道程序设计的系统中,主存储器中同时存放了多个作业的程序。为避免相互干扰,必须提供必要的手段使得在主存储器中的各道程序只能访问自己的区域。 提高工作效率,具体表现在:

? ?

提高了处理器的利用率;

充分利用外围设备资源:计算机系统配置多种外围设备,采用多道程序设计并行工作时,可以将使用不同设备的程序搭配在一起同时装入主存储器,使得系统中各外围设备经常处于忙碌状态,系统资源被充分利用;

? 发挥了处理器与外围设备以及外围设备之间的并行工作能力;

从总体上说,采用多道程序设计技术后,可以有效地提高系统中资源的利用率,增加单位时间内的算题量,从而提高了吞吐率。 2、请描述进程的定义和属性。 答:

进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配、调度和保护的独立单位。

进程的属性有:结构性?共享性?动态性?独立性?制约性?并发性 3、请描述进程与程序的区别及关系。 答:

1

程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。通常把进程分为“系统进程”和“用户进程”两大类,把完成操作系统功能的进程称为系统进程,而完成用户功能的进程则称为用户进程。 4、进程有哪三种基本状态?三种进程状态如何变化? 答:

通常,根据进程执行过程中不同时刻的状态,可归纳为三种基本状态:

· 等待态 :等待某个事件的完成; · 就绪态 :等待系统分配处理器以便运行; · 运行态 :占有处理器正在运行。

进程在执行中状态会不断地改变,每个进程在任何时刻总是处于上述三种基本状态的某一种基本状态,进程状态之间转换关系:

运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。 等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。

运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。

5、进程控制块是什么,有何作用?通常进程控制块包含哪些信息? 答:

进程控制块(Process Control Block,简称PCB),是操作系统为进程分配的用于标志进程,记录各进程执行情况的。进程控制块是进程存在的标志,它记录了进程从创建到消亡动态变化的状况,进程队列实际也是进程控制块的链接。操作系统利用进程控制块对进程进行控制和管理。

·标志信息 含唯一的进程名

·说明信息 有进程状态、等待原因、进程程序存放位置和进程数据存放位置 ·现场信息 包括通用、控制和程序状态字寄存器的内容 ·管理信息 存放程序优先数和队列指针 进程控制块的作用有:

2

? (1)记录进程的有关信息,以便操作系统的进程调度程序对进程进行调度。这些信息包括标志信息、说明信息、现场信息和管理信息等;

? (2)标志进程的存在,进程控制块是进程存在的唯一标志

6、什么是可再入程序? 答:

(1) 什么是 可再入程序 。 一个能被 多个用户同时调用 的程序称做\可再入 \的程序。 (2) 可再入程序的性质。

? ?

可再入程序必须是纯代码,在执行时自身不改变;

一个可再入程序要求调用者提供工作区,以保证程序以同样方式为各用户服务。

编译程序 和 操作系统程序 通常都是\可再入\程序,能同时被不同用户调用而构成不同的进程。

7、阐述进程调度的常用算法:先来先服务、优先数法、轮转法。 答:

?

先来先服务调度算法 该算法按进程进入就绪队列的先后次序选择可以占用处理器的进程。

? 优先数调度算法 对每个进程确定一个优先数,该算法总是让优先数最高的进程先使用处理器。对具有相同优先数的进程,再采用先来先服务的次序分配处理器。系统常以任务的紧迫性和系统效率等因素确定进程的优先数。进程的优先数可以固定的,也可随进程执行过程动态变化。 一个高优先数的进程占用处理器后,系统处理该进程时有两种方法,一是\非抢占式\,另一种是\可抢占式\。前者是此进程占用处理器后一直运行到结束,除非本身主动让出处理器,后者则是严格保证任何时刻总是让优先数最高的进程在处理器上运行。

? 时间片轮转调度法 把规定进程一次使用处理器的最长时间称为\时间片\。时间片轮转调度算法让就绪进程按就绪的先后次序排成队列,每次总选择该队列中第一个进程占用处理器,但规定只能使用一个时间片,如该进程尚未完成,则排入队尾,等待下一个供它使用的时间片。各个进程就这样轮转运行。时间片轮转算法经常用于分时操作系统中。

8、程序状态字包含哪些主要内容? 答:

(1)程序基本状态

3

(2)中断码 (3)中断屏蔽位

9、比较进程调度与作业调度的不同点。 答:

1)作业调度是宏观调度,它决定了哪一个作业能进入主存。进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理机。(或)作业调度是高级调度,它位于操作系统的作业管理层次。进程调度是低级调度,它位于操作系统分层结构的最内层。

(2)作业调度是选符合条件的收容态作业装入内存。进程调度是从就绪态进程中选一个占用处理机。

10、C程序说明系统调用fork()的应用。请在①②③④处填入有关父、子进程的正确语句: /* Example to demonstrate the function of System Call fork */ main() {

int i; ① if(i)>0 {

printf(“②”) ; } else{

printf(“③”) ; }

printf(“④”) ; }

执行本程序时,子进程在标准输出上打印以下结果: It is child process. Exit.

父进程在标准输出上打印以下结果: It is Parent process. Exit.

11、单道批处理环境下有5个作业,各作业进入系统的时间和估计运行时间如下表所示:

4

作业 1 2 3 4 5

进入系统时间 8:00 8:20 8:30 9:00 9:10 估计运行时间/分钟 40 30 12 18 5 (1) 如果应用先来先服务的作业调度算法,试将下面表格填写完整。 作业 1 2 3 4 5 进入系统时间 8:00 8:20 8:30 9:00 9:10 估计运行时间/分钟 40 30 12 18 5 作业平均周转时间T= (2)如果应用最短作业优先的作业调度算法,试将下面表格填写完整。 作业 1 2 3 4 5 进入系统时间 8:00 8:20 8:30 9:00 9:10 估计运行时间/分钟 40 30 12 18 5 作业平均周转时间T= 答: 1. (1) 作业 1 2

开始时间 结束时间 周转时间/分钟 开始时间 结束时间 周转时间/分钟 进入系统时间 8:00 8:20 估计运行时间/分钟 40 30 5

开始时间 8:00 8:40 结束时间 8:40 9:10 周转时间/分钟 40 50