操作系统教材答案陈向群杨芙清 下载本文

答: (1)作业

用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称 (2)作业步

一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程: “编译”、“连接装配”、“运行”

2.一个具有分时兼批处理功能的操作系统应该怎样调度和管理作业?为什么? 品

3.在一个批处理系统中,一个作业从提交到运行结束并退出系统,通常要经历哪几个阶段 和状态?你能说出这些状态转变的原因吗?哪些程序负责这些状态的转变? 4.假设有三个作业,他们进入时间和估计运行的时间如下: 作业号 进入时刻 估计运行时间 1 10:00 60 分钟 2 10:10 60 分钟 3 10: 25 15 分钟

在单道批处理方式下,采用先来先服务算法和最短作业优先算法进行作业调度。请给出 他们的调度程序,并分别计算出作业平均周转时间和带权平均周转时间,请对计算结果进 行解释。

答:先来先服务:

作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间 1 10:00 60 10:00 11:00 60 1 2 10:10 60 11:00 12:00 110 11/6 3 10:25 15 12:00 12:15 110 22/3

平均周转时间:280/3 带权:55/6+6/6=61/6 最短作业服务:

作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间 1 10:00 60 10:00 11:00 60 1

2 10:10 60 11:15 12:15 125 25/12 3 10:25 15 11: 00 11: 15 50 10/3 平均周转时间:235/3 带权:1+25/12+10/3= 77/12

5.有一个两道的批处理操作系统,作业调度采用最短作业优先的调度算法,进程调度采用 基于优先数的抢占式调度算法,有如下的作业序列: 作业 进入时间 估计运行时间 优先数 1 10:00 40 分钟 5 2 10:20 30 分钟 3 3 10:30 50 分钟 4 4 10: 50 20 分钟 6

其中优先数数值越小,优先级越高。

1)列出所有作业进入内存时间及运行结束时间 2)计算作业平均周转时间和带权平均周转时间。 答:

作业号 进入时间 估计运行时间 开始时间 结束时间 周转时间 带权周转时间

1 10:00 40 10:00 11:00 60 3/2 2 10:20 30 10: 20 10:50 30 1 3 10:30 50 10:30 11:20 50 1 4 10:50 20 11: 00 11:20 30 3/2 平均周转时间:2.5 带权:5

第四章 进程管理

1..一个单 CPU 的操作系统共有 n 个进程,不考虑进程状态过渡时的情况,也不考虑空转进

程(1)给出运行进程的个数;(2)给出就绪进程的个数;(3)给出等待进程的个数。 解:1.运行进程的个数可能是 0,也可能是 1; 2,就绪的进程的个数可能是 0,也可能是 n-1 3.等待进程的个数可能是 0,也可能是 n

2.多道程序在单 CPU 上并发运行和多道程序在多 CPU 上并行执行,这两者在本质是否相同 ?为什么?请给出以上两者在实现时应考虑什么问题?

答: 1)本质上不同,前者是宏观上并发同时运行,微观上是交替顺序执行,后者则是宏观上并 行,微观上也并行。

2)在实现多道程序设计时,必须协调好资源使用者和被使用者之间的关系,即对处理机资 源加以管理,以实现处理机在各个可运行程序之间的分配与调度,对内存资源加以管理,将 内存分配给各个运行程序,还要解决程序在内存中的定位问题,并防止内存中各个程序之 间互相干扰或对操作系统的干扰,对设备资源进行管理,使各个程序在使用设备时,不发 生冲突。

3.用进程概念说明操作系统的并发性和不确定性是怎样体现出来的? 答:进程的并发特性和异步特性体现了操作系统的并发性和不确定性。

进程的并发特性:可以同其他进程一道向前推进,即一个进程的第一个动作可以在另一 个进程的最后一个动作结束之前开始

进程的异步性:每个进程按照各自独立的,不可预知的速度向前推进。 4.PCB 的作用是什么?他是怎么样描述进程的动态本质的?

答:PCB 称为进程控制块(Process Control Block),为了便于系统控制和描述进程的活动 过程,在操作系统核心中为进程定义一个专门的数据结构,就是 PCB。

系统利用 PCB 来描述进程的基本情况以及进程的运行变化过程。PCB 是进程存在的唯一标 志。当系统创建一个进程时,为进程设置一个 PCB,再利用 PCB 对进程进行控制和管理;撤 销进程时,-系统收回它的 PCB,进程也随之消亡。 5.进程的三个基本状态转换如图(见书),图中 1,2,3,4 表示某种类型的状态变迁,请 分别回答下列问题:

1)什么“事件”引起某一种类型的状态变迁

答:运行中的进程因为中断的发生,或者需要等待某种事件的发生,变迁到等待状态 等待状态的进程,应为所等待的事件发生了,变迁到就绪态 CPU 为空的时候,就绪态的进程就变迁到运行状态 运行的进程因为调度程序,变迁到就绪状态

2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,试判断在下述情 况下,如果有的话,将发生什么因果变迁?

3 ->1 2. ->1 4->1 3->4

如果有处于就绪态的进程 (3->1) 如果有处于就绪态的进程 (2->1) CPU 为空(4->1) 等待事件发生(3->4)

3)在什么情况下,下述变迁中哪些将不立即引起其他变迁? 1 2 3 4

当 1 发生,并不引起其他变迁

当 2 发生,如果有进程处于就绪态,引起 1 发生 当 3 发生, 如果有进程处于就绪态,引起 1 发生 当 4 发生,如果 CPU 为空,那么引起 1 发生 4)引起进程状态变迁的根本原因是什么?

答: 原因:自身的进展情况和外界环境条件的变化。自身的逻辑,中断和进程调度程序 等!

根据进程的动态性,进程在其生命周期内,需要经历一系列离散状态。 6.内核通常完成哪些功能?经过内核扩充后形成的虚拟机有哪些属性? 答:内核一般提供如下功能

1)中断处理 2)进程调度 3)进程控制 4)进程同步与互斥;5)进程通信;6)存储管理的 基本操作 7)设备管理的基本操作 8)文件信息管理的基本操作 9)时钟管理

虚拟机的属性有:1)没有中断 2)为每个进程提供了一台虚拟处理机,每个进程好像在各 自的处理机上顺序的运行 3)为进程提供了强大的指令系统,即非特权的指令和原语一起 组成的指令系统

7.并发进程执行时一定会产生与时间有关的错误吗?为什么?

答:不一定,如果并发进程都占有一些受到保护的私有资源(包括内存,设备等资源),那 么执行的结果和进程调度的算法以及中断等外界环境没有关系,所以不一定会产生与时间 有关的错误.

8.试举出进程状态转换的典型原因和引起进程调度的因素。

答:进程状态转换的典型原因:1 中断或者等待某事件发生,2.所等待事件发生了 3,CPU 为空引起进程调度的因素为: 1)正在执行的进程运行完毕

2)正在执行的进程调用阻塞原语将自己阻塞起来并进入等待状态

3)正在执行的进程调用了 P 原语操作,从而因为资源不足而被阻塞,或调用了 V 原语操作 激活了等待资源的进程队列

4) 执行中的进程提出了 I/O 请求后被阻塞 5) 在分时系统中时间片已经用完

以上都是 CPU 为不可抢占方式下引起进程调用的原因,当 CPU 为可抢占时,就绪队列中的进 程比当前运行的进程的优先级高,也引起进程调度 9.说明下列活动是属于哪些制约关系? 1)若干同学去图书馆借书 进程互斥 2)两队进行篮球比赛 进程互斥

3)流水线生产中的各道工序 进程同步 4)商品生产和社会消费 进程同步

10,是否所有的共享资源都是临界资源,为什么?

答:不是,根据定义,一次只允许一个进程使用得进程才叫临界资源,能同时被多个进程

使用得资源不是临界资源

11.设一台计算机,有两条 I/O 通道,分别接一台卡片输入机和一台打印机。卡片机把一 叠卡片逐一输入到缓冲区 B1 中,加工处理后再搬到缓冲区 B2 中,并在打印机上印出,问:

1)系统要设几个进程来完成这个任务?各自的工作是什么? 2)这些进程间有什么样的相互制约关系 3)用 P,V 操作写出这些进程的同步算法

4)设系统中只有上述几个进程,用图表示出各自状态变迁情况及原因? 答:这是一个典型的生产者,消费者问题

1)系统要设三个进程完成任务,第一个进程 P1,从卡片输入机中读入数据,并且把数据放 入缓冲区 B1 中,第二个进程从 B1 缓冲区中取数据,加工处理后放入缓冲区 B2 中。第三个进 程将缓冲区的内容输入到打印机中打印出来 2)这三个进程之间是同步和互斥的关系 3)三个进程之间必须协调工作,需设置四个信号量,S1,S2,S3,S4 并令 S1 的初值为 1,S2 的 处置为 0,S4 的初值为 1,则程序为: 进程 p1 进程 p2 进程 p3 P(S1) P(S2) P(S3)

从卡片机中读入数据 P(S4) 将缓冲区 B2 内容 V(S2) 将 Buffer B1 中的数据 在打印机中输出 拷贝道 Buffer B2 中 V(S4) V(S1) V(S3)

4)当缓冲区 B1 为空时,当有输入时,进程 p1 进入就绪态,如果 CPU 为空,则为运行态,输 入完成后,进入等待态

如果存在进程 p2,则为等待态,当 S2+1 后,处于等待态进程进入就绪态,如果 CPU 为空 进入运行态,拷贝完成后,进入等待态

如果存在进程 p3,则为等待态,当 S3+1 后,处于等待态进程进入就绪态,如果 CPU 为空 进入运行态,输出完成后,进入等待态

12.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输入进程逐个地从缓冲区中取 出信息。在下述情况下:1)缓冲区是环形的,最多可以容纳 n 个信息;2)缓冲区是无穷大 的。

试分别回答下列问题?

1)输入,输出两进程读,写缓冲区需要什么条件?

2)用 P,V 操作写出输入,输出两进程的同步算法,并给出信号量含义以及初值 3)指出信号量的值的变化范围和其值的含义 答:

一:当缓冲区的大小为 n 时

1)当缓冲区信息为空的时候,输出进程无法读,处于等待状态,当缓冲区信息为满的时 候无法写,都某个缓冲区单位进行读写的时候,要互斥

2) 1.空的信号量 empty 初值为 n, 满的信号量为 full 初值为 0, 对缓冲区单元的互斥信号 量为 mutex,j,k 为缓冲区单位地址,初值为 0 写进程 读进程 P(empty) P(full) P(mutex) P(mutex)