北大操作系统习题答案完整版(2)

2018-11-23 23:44

志。当系统创建一个进程时,为进程设置一个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) 向Buffer写入信息 从Buffer[k]中读信息 V(mutex) V(mutex) V(full) V(empty) j:=(j+1)mod n k:=(k+1)mod n

4)empty表示还有多少缓冲区单元为空,如果empty=0,表示缓冲区满,系统调用写进程时 ,写进程处于等待态

full 表示缓冲区都多少有信心的单元,如果full=0, 表示缓冲区空,系统调用写进程时 ,读进程处于等待态

mutex 表示对于缓冲区单元的互斥信号量,当mutex=1时,开锁,mutex=0时,闭锁

二.当缓冲区大小为无穷大时 1)同上 2)

1.空的信号量empty 不用设, 满的信号量为full 初值为0, 对缓冲区单元的互斥信号量 为mutex,j,k为缓冲区单位地址,初值为 0

写进程 读进程 P(full) P(mutex) P(mutex)

向Buffer写入信息 从Buffer[k]中读信息

V(mutex) V(mutex) V(full)

j:=(j+1)mod n k:=(k+1)mod n

4)full 表示缓冲区都多少有信心的单元,如果full=0, 表示缓冲区空,系统调用写进程 时,读进程处于等待态

mutex 表示对于缓冲区单元的互斥信号量,当mutex=1时,开锁,mutex=0时,闭锁 13.假定一个阅览室最多可以容纳100人,读者进入和离开阅览室都必须在阅览室门口的一 个登记表上标志(进入时登记,离开时去掉登记项)而且每次只允许一人登记或者去掉登 记,问:

1) 应编写几个进程完成这项工作,程序的主要动作是些什么?应该设置几个进程?进程

和程序间的关系如何?

2) 用P,V操作写出这些进程的同步通信关系

答:编写两个进程,一个处理读者进入,一个处理读者离开,进程是程序的动态执行 设置信号量 full 为初值为 0, 空的信号量 empty 初值为100, 互斥信号量 mutex 初值 为1

进入 离开 P(empty) P(full) P(mutex) P(mutex) 登记 取消登记 V(mutex) V(mutex) V(full) V(empty) 进入 离开

14.在生产者和消费者问题中,如果对调生产者(或消费者)进程中的两个P操作和两个 V操作的次序,会发生什么情况?请说明!

答:对调P操作, 会发生死锁 因为P(empty)在 p(mutex)和 v(mutex)内部,也就是临界 区中,当 empty≤0,时,P(empty)在临界区中进入到了休眠状态。那么就别的进程都进入 不到临界区中,进入死锁状态。

而两个V操作无关紧要

15.为什么引入高级通信机构?他有什么优点?说明消息缓冲通信机构的基本工作过程? 答:

1)为了解决大量的消息交换,

2)优点:不仅能够保证相互制约的进程之间的相互关系,还同时实现了进程之间的信息 交换

3)消息缓冲通信技术的工作过程:

其基本思想是:根据“生产者-消费者”原理,利用内存中公用消息缓冲区实现进程之间 的信息交换。

内存中开辟了若干消息缓存区,用以存放消息,每当一个进程(发送进程)向另一个进程 (接收进程)发送消息时,便申请一个消息缓冲区,并把已准备好的消息发送到缓冲区中 ,然后把该消息缓冲区插入到接受进程的消息队列中,最后通知接受进程,接收进程收到 发送进程发送到的通知后,从本进程的消息队列中摘下一消息缓冲区,取出所需的消息,

然后把消息缓冲区还给系统。

16.进程间为什么要进行通信?在编写自己的程序时,是否考虑到要和别的用户程序进行 通信?各个用户进程间是否存在制约关系?

答;1)各个进程在运行的时候,共享内存,或者共同完成一个特定的功能,都需要进行通 信, 2)需要,

3)促在同步和互斥的关系,比如聊天程序

17.假定一个系统的磁盘块大小为2KB,一个块的平均访问时间是20毫秒。一个有40KB进程

由于资源请求从运行态变为阻塞态,它必须保持阻塞多长时间? 答: 40/2 * 20=400毫秒 保持阻塞态 400毫秒

18.假设A,B两个火车站之间是单轨线,许多列车同时到达A站,然后经过A站到达B站;又

列车从A到B的行驶时间是t,列车在B战后的停留时间是t/2,试问在该问题模型中,什么是 临界资源,什么是临界区?

答:临界资源: A到B之间的单轨线,以及B站是临界资源 临界区: 在A到B之间行驶,以及在B上停留是临界区 19.同步机制应该遵循哪些原则?为什么?

答:1.它的描述能力应该足够强,既能解决各种进程间的同步互斥问题; 2.其次,应该容易实现并效率高 3.第三,使用方便

20.我们为某临界资源设置一把锁W。当W=1时,表示关锁,W=0时,表示开锁,试写出开锁

和关锁原语,并利用它去实现互斥。 答: while(1==w); enter 临界区

21.进程A1,A2,?,An通过m个缓冲区向进程B1,B2,?,Bn不断发送消息,发送和接收工作遵

循如下规则:

1)每个发送进程每次发送一个消息,写入一个缓冲区,缓冲区大小与消息长度一样 2)对每一个消息,B1,B2,..Bn都需要各接收一次,读到各自的数据区中; 3)m个缓冲区都满时,发送进程等待,没有可读消息时,接受进程等待 试用P,V操作组织正确的发送和接收操作。 答: VAR

mutex: Semaphore:{初值为1,实现对缓冲区的互斥} empty: Semaphore:{初值为n,有多少缓冲}

Full: Array[1..n] OF Semaphore:{初值为0,每个接收进程当前可接收的缓冲区 }

Count:Array[1..n] OF INTEGER;{初值为0,n个缓冲区被访问的次数}

ReceivePointer:Array[1?n] OF INTEGER{初值为0,该接收进程要取哪个 } SendPointer:INTEGER;{初值为0,发送进程下次要放到哪个缓冲区} 发送进程 (num:INTEGER) {num为进程号}


北大操作系统习题答案完整版(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八校第二次联考七年级语文试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: