操作系统原理课后习题答案

更新时间:2023-03-08 08:42:15 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

操作系统原理作业

第1章

1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?

答 :在批处理系统中操作人员将作业成 批装入计算机并由计算机管理运行,在程 序的运行期间用户不能干预,因此批 处理系统的特点是:用户脱机使用计算机 ,作业成批处理,系统内多道程序并 发执行以及交互能力差。在分时系统中不 同用户通 过各自的终 端以交互 方式共同使 用一台计算 机,计算 机以“分时 ”的方 法轮流为 每个用户服 务。分时 系统的主要 特点是: 多个用户同 时使用计 算机的 同时性,人机问答方 式的交互 性,每个用 户独立使 用计算机的 独占性以 及系统 响应的及 时性。分时 系统一般 采用时间片 轮转的方法使一台计算机同 时为多个终端用户服务,因此分时系统的响 应比较快。

1-4什么是多道程序设计技术?试述多道程序运行的特征。

答:多道程序设计技术 是指同时 把多个作业 (程序) 放入内存并 允许它们 交替执行和 共享系统 中的各 类资源;当一道程序因某种原因(如 I/O 请求)而暂停执行时,CPU 立即转去 执行另一道程序。多道程序运行具有 如下特征:

多道计算机内存中同时存放几道相互独立的程序。宏观上并行:同时进入系统的 几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。 微观上串行:从微观上看内存中的多道程序轮流或分 时地占有处理机,交替执行。

1-6操作系统的主要特性是什么?为什么会有这样的特性?

答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。

1-7

(1)工作情况如图。

(2)CPU有空闲等待,它发生在100 ms?150 ms时间段内,此时间段内程序A与程序B都在进行I/O操作。

(3)程序A无等待现象,程序B在0 ms?50 ms时间段与180 ms?200 ms时间段内有等待现象。

第2章

2-1 什么是操作系统虚拟机?

答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机

2-3 什么是处理机的态?为什么要区分处理机的态?

答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。为了保护操作系统,至少需要区分两种状态:管态和用户态。

2-5 什么是中断?在计算机系统中为什么要引用中断?

答:中断是指某个事件发生时,系统终止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行。为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。

2-8中断和俘获有什么不同?

答:中断指由处理机外部事件引起的中断称为外中断,又称中断。包括I/O中断、外中断。俘获是指由外处理内部事件引起的中断称为俘获。包括访管俘获、程序性中断、机器故障中断。

2-9 什么是中断响应,其实质是什么?

答:中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。中断响应的实质是交换指令执行地址和处理器状态,以达到如下目的:(1)保留程序断点及有关信息;(2)自动转入相应的中断处理程序执行。

2-12 以trap指令为例,用图说明自陷处理的一般过程?

PC(指令计数器) SP(处理机堆栈指针) PS(处理机状态字) PC进栈 PS进栈 自陷处理程序的PC 自陷处理程序的PS

第3章

3-1 什么是系统生成?

答:系统生成就是操作系统的生成过程。

3-2 系统引导的主要任务是什么?

答:将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态。

3-3 处理应用程序分哪几个作业步?

答:①用某种预言编制一个程序,该程序被称为源程序。

②将源程序和初始数据记录在某种输入介质上,一般在终端设备上直接编辑源程序。

③按照一定的要求控制计算机工作,并经过加工,最终计算出结果。

3-5 用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?

答 :用户与 操作系统的 接口是指 操作系统提 供给用户 与计算机打 交道的外 部机制 。 一 个分时系统提供的接口有系统功能调 用和键盘操作命令。 一 个批处理系统提供的接口有系统功能 调用和作业控制语言。

3-7 假定某系统提供硬件的访管指令(例如形式为“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如何请求操作系统服务?

答:当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。借助中断,使机器状态由用户态转为管态。为了使控制能转到用户当前所需的那个例行子程序去,需要指令提供一个地址码。这个地址码表示系统调用的功能号,它是操作系统提供的众多的例行子程序的编号。在访管指令中填入相应的号码,就能使控制转到特定的例行子程序去执行以提供用户当前所需的服务。

第4章

4-3什么是进程?进程与程序的主要区别是什么?

答:进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程是动态的,程序的静态的,进程是程序的动态执行过程。

4-6进程有哪几个基本状态?试画出进程状态迁移图,并注明发生变迁的原因。

答:进程有三种基本状态,即运行状态,就绪状态,等待状态。如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。

4-9n个并发程序共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。

答:main( )

{int mutex=1;

int i;

cobegin

for(i=1;i<=n;i++)

P[i]; coend } P( ) {

...

...

p(mutex);

...

v(mutex);

... }

若mutex=1,表示没有进程进入临界区;

若mutex=0,表示有一个进程进入临界区;

若mutex=-1,表示一个进程进入临界区,另一个进程等待进入。

4-11在如图4.33所示的进程流程图中,有五个进程合作完成某一任务。说明这五个进程之间的同步关系,并用P,V操作实现之,要求写出程序描述。

答:main( ) {

int s2,s3,s4,s5=0; /*表示进程p2,p3,p4,p5能否执行*/

cobegin

P1( );

P2( );

P3( );

P4( );

P5( );

coend

}

P1( ) P2( ) P3( ) P4( ) P5( )

{ ... { p(s2); { p(s3); { p(s4); { p(s5);

... ... ... ... ...

v(s2); ... .. ... ...

v(s3); } v(s5); v(s5); }

v(s4); } } }

4-12如图4.34所示,get,copy,put三个进程共用两个缓冲区s,t。Get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲区t中,而put进程负责把记录从缓冲区t中取出打印。试用P,V操作实现这三个进程之间的同步,并写出程序描述。

答:main( )

{

int s,t=0; /*表示进程get,copy,put能否执行*/

cobegin

Get( );

Copy( );

Put( );

coend }

Get( ) Copy( ) Put( )

{ p(s); { p(t); { ...

.... .... v(t);

} v(s); }

}

4-13 什么是进程的互斥,什么是进程的同步?同步和互斥这两个概念有什么联系与区别?

答:互斥:多个操作不能在同一时间,同一临界区里执行。

同步:并发进程在一些关键点上可能需要互相等待与互通消息

互斥可以说是同步的特殊情况,通过锁和信号灯机制可以实现同步与互斥。

4-18 用于进程控制的原语主要有哪几个?

答:主要有:进程创建,进程撤销,进程阻塞,进程唤醒。

4-19什么是线程,线程与进程有什么区别?

答:线程是进程的进一步划分,线程也称为轻量进程。

第5章

5-5, p进程共享m个同类资源,每一个资源在任一时刻只能供一个进

程使用,每一进程对任一资源都只能使用一有限时间,使用完便立即释放,并且每个进程对该类资源的最大需求量小于该类资源的数目。设所有进程对资源的最大需求数目之和小于p+m.试证:在该系统中不会发生死锁。

证:假设每个进程最多请求Xi(1

X1+X2+...+Xp-1+Xp

(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)

(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1

这说明在最坏情况下,每个进程均还差一个资源,而此时系统中还有一个没被分配的可用资源。将它分配给任何一个进程,都可以使该得到全部资源的 进程运行结束而释放其占有的资源,并将释放的资源分配给其它的进程,使其 它进程都能运行结束,系统不会发生死锁。 证毕。

5-6 图5.9表示一带闸门的运河,其上有两家吊桥。吊桥坐落在一条公路上,为使该公路避开一块沼泽地而令其横跨运河两次。运河和公路的交通都是单向的。运河上的基本运输由驳船担负。在一般驳船接近吊桥A时就拉汽笛警告,若吊桥上无车辆,吊桥就吊起,直到驳船尾部通过此桥为止。对吊桥B也按同样次序处理。

一艘典型驳船的长度为200m,当它在河上航行时是否会产生死锁?若会,其理由是什么?

如何能克服一个可能的死锁?请提出一个防止死锁的办法。 如何利用信号灯的P,V操作,实现车辆和驳船的同步?

(1)驳船长 200 米,当驳船通过了A桥,其船头到达B桥,请求B桥吊起,而此时它的尾部仍占据 A 桥。若这个时候 B 桥上及 B 桥到 A 桥之间的公路上都被汽车占据,而汽车又要求通过 A 桥。这样驳船和汽车都无法前进,形成死锁的局面。

(2)可以有以下两种方法:

c资源的静态分配。即进程把它所需要的所有资源在运行前提前申请,系统把它所需要的全部资源一次性都分配给它。也就是说,这时把 A 桥和 B 桥看成一个资源。打破了产生死锁的四个必要条件之一的部分分配条件。

d可以规定资源按序申请和分配,从而破坏了死锁的循环等待条件,防止死锁的发生。规定如下:B 桥的序号小于 A 桥的序号,驳船和汽车都必须先申请序号小的资源 B 桥,申请得到满足后,再申请序号大的资源 A 桥。

(3)算法如下:

c设置两个互斥信号量 mutexa,mutexb,用来实现驳船和汽车对 A 桥和对 B 桥的互斥使用;设置一个共享变量 count,用来记录当前占用 A 桥和 B 桥的汽车数并设置互斥信号量 mutex,用来实现汽车对共享变量 count 的互斥访问。

Main( ){

int mutexa, mutexb, mutex, count

mutexa=1;

mutexb=1;

mutex=1;

count=0;

cobegin

bargei; //i=1,2,..,m

carj; //j=1,2,..,n

coend

}

bargei(){

.....

P(mutexb);

P(mutexa);

吊起 B 桥;

吊起 A 桥;

驳船通过 A 桥;

放下 A 桥;

驳船通过 B 桥;

放下 B 桥;

V(mutexa);

V(mutexb);

.....

}

carj(){

......

P(mutex);

count++;

if(count==1)

{

P(mutexb);

P(mutexa);

}

V(mutex);

汽车通过 B 桥;

汽车通过 AB 段公路;

汽车通过 A 桥;

P(mutex);

count--;

if(count==0)

{

V(mutexb);

V(mutexa);

}

V(mutex);

..... }

d设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号

量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。

Main( ){

int mutexa, mutexb, mutex1, mutex2, counta, countb;

mutexa=1;

mutexb=1;

mutex1=mutex2=1;

counta=countb=0;

cobegin

bargei; //i=1,2,...,m

carj; //j=1,2,...,n

Coend }

bargei(){

.....

P(mutexb);

吊起 B 桥;

P(mutexa);

吊起 A 桥;

驳船通过 A 桥;

放下 A 桥;

V(mutexa);

驳船通过 B 桥;

放下 B 桥;

V(mutexb);

.... }

carj(){

....

P(mutex2);

countb++;

if(countb==1)

P(mutexb);

V(mutex2);

汽车通过 B 桥;

P(mutex2);

countb--;

if(countb==0)

V(mutexb);

V(mutex2);

汽车通过 AB 段公路;

P(mutex1);

counta++;

if(counta==1)

P(mutexa);

V(mutex1);

汽车通过 A 桥;

P(mutex1);

counta--;

if(counta==0)

V(mutexa);

V(mutex1);

..... }

5-7 讨论下图描述的交通死锁的例子(设个方向上的汽车是单线的,直线行驶):

(1)对于死锁的四个必要条件中的哪些条件在此例中是适用的? (2)提出一个简单的原则,它能避免死锁。

(3)若用计算机实现交通的自动管理,请用信号灯上的V,P操作来实现各方向上汽车行驶的同步。

答:(1)路口是共享资源。

c 互斥条件:路口必须互斥使用,即汽车对它所需要的路口是排他性控制的。

d 不剥夺条件:汽车一旦占用了路口,除非自己让出路口,别人无权剥夺。

e 部分分配条件:每个方向的车队都占有一个路口,同时因申请新路口而等待。

f 环路等待条件:占有路口的车都在等待其它车占有的路口,循环等待。

(2)可以在每个路口设置红绿灯进行控制:绿灯亮时,南北方向的车可以通行,东西方向的车禁止通行;当红灯亮时,东西方向的车可以通行,而南北方向的车禁止通行。

第6章

6-2 某系统的进程状态变迁图如图6.9所示(设该系统的进程调度方式为非剥夺式),请说明:

(1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么?

答:变迁3:请求I/O设备 ,变迁2:超时间片,变迁4:I/O完成。

(2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生?

(a)2->1;(b)3->2;(c)4->5;(d)4->2;(e)3->5

答:<1><5>不能发生,<2>在该进程位于就绪队列首部时<3>在I/O完成后<4>在某进程剥夺处理机时

图6.9

6-3 某系统的设计目标是优先照顾I/O量大的进程,试画出满足此设计目标的进程状态变迁图。

运行运行请求I/O超时间片其次选择100ms就绪队列就绪队列首先选择200ms因I/O而阻塞因I/O而阻塞 6-4 作业调度和进程调度的任务格式什么?它们有什么联系?

答:作业调度又称为宏观调度,其任务是对提交给系统的、存放在赋存设备上的大量作业,以一定的策略进行挑选,分配主存等必要的资源,建立作业对应的进程,使其投入运行。而进程调度的对象是进程,其任务是在进入主存的所有进程中,确定哪个进程在什么时候获得处理机,使用多长时间等。两者的联系:作业调度使该作业对应的进程具备使用处理剂的权利,而进入主存的进程,分别在什么时候真正获得处理机,这是由处理机的进程调度来决定。

6-6 在单道披处理系统中,有下列四个作业分别用先来先服务调度算法和最短作业优先算法进行调度,哪一种算法调度性能好写?请按表6.5的格式,分别用两张表正确填补表中为填写的各项。

先来先服务调度算法 作业 1 2 3 4 进入系统时间 10.00 10.10 10.25 9.50 执行时间 开始时间 完成时间 周转时间 2.00 10.00 12.00 2.00 1.00 0.25 0.20 12.00 13.00 9.50 13.00 13.25 9.70 2.9 3.00 0.20 带权周转时间 1 2.9 12 1 平均周转时间 t=2.03 h 平均带权周转时间 w=3.98 h

最短作业优先调度算法 作业 1 2 3 4 进入系统时间 10.00 10.10 10.25 9.50 执行时间 开始时间 完成时间 周转时间 2.00 10.00 12.00 2.00 1.00 0.25 0.20 12.25 12.00 9.50 13.25 12.25 9.70 3.15 2.00 0.20 带权周转时间 1 3.15 8 1 平均周转时间 t=1.84 h 平均带权周转时间 w=3.29 h

6-7 线程调度的主要任务是什么?

答:为了提高计算机并行处理能力。

第7章

7-7 如图7.43所示,主存中有两个空白区。现有这样一个作业序列:作业1要求50KB,作业2要求60KB,作业3要求70KB。若用首次适应算法和最佳适应算法来处理这个作业序列,试问哪一种算法可以分配得下,为什么? 图7.43

答:用首次适应法首先把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) 哪种算法对该作业序列而言是合适的? 答:最佳适应法是合适的

7-10 已知主存容量为64KB,某一作业A的地址空间如图7.40所示,它的4个页面(页面大小为1KB)0、1、2、3被分配到主存的2、4、6、7块中,要求并回答

(1)画出作业A的页面映射表。

本文来源:https://www.bwwdw.com/article/qdf3.html

Top