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

上传人:b****5 文档编号:30727942 上传时间:2023-08-19 格式:DOCX 页数:24 大小:248.01KB
下载 相关 举报
操作系统原理课后习题答案.docx_第1页
第1页 / 共24页
操作系统原理课后习题答案.docx_第2页
第2页 / 共24页
操作系统原理课后习题答案.docx_第3页
第3页 / 共24页
操作系统原理课后习题答案.docx_第4页
第4页 / 共24页
操作系统原理课后习题答案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

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

《操作系统原理课后习题答案.docx》由会员分享,可在线阅读,更多相关《操作系统原理课后习题答案.docx(24页珍藏版)》请在冰豆网上搜索。

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

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

操作系统原理作业

第1章

1-2批处理系统和分时系统各有什么特点?

为什么分时系统的响应比较快?

答:

在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:

用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。

在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。

分时系统的主要特点是:

多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。

分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。

1-4什么是多道程序设计技术?

试述多道程序运行的特征。

答:

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

多道程序运行具有如下特征:

多道计算机内存中同时存放几道相互独立的程序。

宏观上并行:

同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。

微观上串行:

从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。

1-6操作系统的主要特性是什么?

为什么会有这样的特性?

答:

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

1-7

(1)工作情况如图。

  

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

 

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

第2章

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

答:

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

2-3什么是处理机的态?

为什么要区分处理机的态?

答:

处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。

为了保护操作系统,至少需要区分两种状态:

管态和用户态。

2-5什么是中断?

在计算机系统中为什么要引用中断?

答:

中断是指某个事件发生时,系统终止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行。

为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。

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

答:

中断指由处理机外部事件引起的中断称为外中断,又称中断。

包括I/O中断、外中断。

俘获是指由外处理内部事件引起的中断称为俘获。

包括访管俘获、程序性中断、机器故障中断。

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

答:

中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。

中断响应的实质是交换指令执行地址和处理器状态,以达到如下目的:

(1)保留程序断点及有关信息;

(2)自动转入相应的中断处理程序执行。

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

 

第3章

3-1什么是系统生成?

答:

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

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

答:

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

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

答:

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

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

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

3-5用户与操作系统的接口是什么?

一个分时系统提供什么接口?

一个批处理系统又提供什么接口?

答:

用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。

一个分时系统提供的接口有系统功能调用和键盘操作命令。

一个批处理系统提供的接口有系统功能调用和作业控制语言。

3-7假定某系统提供硬件的访管指令(例如形式为“svcn”),为了实现系统调用,系统设计者应做哪些工作?

用户又如何请求操作系统服务?

答:

当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。

借助中断,使机器状态由用户态转为管态。

为了使控制能转到用户当前所需的那个例行子程序去,需要指令提供一个地址码。

这个地址码表示系统调用的功能号,它是操作系统提供的众多的例行子程序的编号。

在访管指令中填入相应的号码,就能使控制转到特定的例行子程序去执行以提供用户当前所需的服务。

第4章

4-3什么是进程?

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

答:

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

进程是动态的,程序的静态的,进程是程序的动态执行过程。

4-6进程有哪几个基本状态?

试画出进程状态迁移图,并注明发生变迁的原因。

答:

进程有三种基本状态,即运行状态,就绪状态,等待状态。

如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。

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

答:

main()

{intmutex=1;

inti;

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()

{

ints2,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()

{

ints,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+X2+...+Xp-1+Xp-p

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

(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+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(){

intmutexa,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(){

intmutexa,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量大的进程,试画出满足此设计目标的进程状态变迁图。

6-4作业调度和进程调度的任务格式什么?

它们有什么联系?

答:

作业调度又称为宏观调度,其任务是对提交给系统的、存放在赋存设备上的大量作业,以一定的策略进行挑选,分配主存等必要的资源,建立作业对应的进程,使其投入运行。

而进程调度的对象是进程,其任务是在进入主存的所有进程中,确定哪个进程在什么时候获得处理机,使用多长时间等。

两者的联系:

作业调度使该作业对应的进程具备使用处理剂的权利,而进入主存的进程,分别在什么时候真正获得处理机,这是由处理机的进程调度来决定。

6-6在单道披处理系统中,有下列四个作业分别用先来先服务调度算法和最短作业优先算法进行调度,哪一种算法调度性能好写?

请按表6.5的格式,分别用两张表正确填补表中为填写的各项。

先来先服务调度算法

作业

进入系统时间

执行时间

开始时间

完成时间

周转时间

带权周转时间

1

10.00

2.00

10.00

12.00

2.00

1

2

10.10

1.00

12.00

13.00

2.9

2.9

3

10.25

0.25

13.00

13.25

3.00

12

4

9.50

0.20

9.50

9.70

0.20

1

平均周转时间t=2.03h

平均带权周转时间w=3.98h

 

最短作业优先调度算法

作业

进入系统时间

执行时间

开始时间

完成时间

周转时间

带权周转时间

1

10.00

2.00

10.00

12.00

2.00

1

2

10.10

1.00

12.25

13.25

3.15

3.15

3

10.25

0.25

12.00

12.25

2.00

8

4

9.50

0.20

9.50

9.70

0.20

1

平均周转时间t=1.84h

平均带权周转时间w=3.29h

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的页面映射表。

 

(2)当200号单元处有一条指令“mov r1,[3500]”执行时,如何进行正确的地址变换,以使3500处的内容12345装入r1中,要求用图画出地址变换过程并给出最终的物理地址。

答:

因为每页大小为1KB=1024字节,而3500=3*1024+428,可知逻辑地址3500对应的页号为3,页内地址为428.根据页号检索页表可知对应的物理块号为7,所以物理地址为:

7*1024+428=7596

图7.44

第8章

8-1什么是“设备独立性”?

引入这一概念有什么好处?

答:

所谓设备独立性是指,用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。

引入设备独立性,可使应用程序独立于物理设备。

独立性可使用户程序独立于某一特定的物理设备。

此时,进程只需用逻辑设备名去请求使用某类设备。

当系统中有多台该类设备时,系统可将其中的任一台设备分配给请求进程,而不必局限于某一指定设备。

这样,可以显著地提高资源的利用率和可适应性。

独立性还可以使用户程序独立于设备类型。

例如,在进行输出时,既可以利用显示终端进行输出,也可以利用打印机进行输出。

有了这种适应性,就可以很方便地实现输出重定向。

类似地可以实现输入重定向。

8-4什么是缓冲?

引入缓冲的原因是什么?

答:

缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段。

引入了缓冲技术的原因有:

(1)为了进一步缓和CPU和I/O设备之间速度不匹配的矛盾。

(2)为了减少中断次数和CPU的中断处理时间。

如果没有缓冲,慢速I/O设备每传送一个字节就要产生一个中断,CPU必须处理该中断。

如果采用了缓冲,则慢速I/O设备将缓冲区填满时,才向CPU发出中断,从而减少了中断次数和CPU的中断处理时间。

(3)为了解决DMA或通道方式下数据传输的瓶颈问题。

DMA或通道方式都适用于成批数据传输,在无缓冲的情况下,慢速I/O设备只能一个字节一个字节的传送信息,这造成了DMA或通道方式数据传输的瓶颈。

缓冲区的设置适应了DMA或通道方式的成批数据传输方式,解决了数据传输的瓶颈问题。

8-5常用的缓冲技术有哪些?

答:

常用的缓冲技术有双缓冲、环形缓冲和缓冲池。

8-8什么是独占设备?

对独占设备如何分配?

答:

独占设备是指在一段时间内只允许一个用户进程访问的设备。

系统一旦把这类设备分配给某进程后,便由该进程独占直到使用完后释放。

多数低速I/O设备都属于独占设备。

如打印机就是典型的独占设备。

独占设备应采用独占分配方式,即将一个独占设备分配给某进程后便一直由它独占,直到该进程完成或释放该设备时,系统才能将该设备分配给其他进程。

8-9什么是共享设备?

对共享设备如何分配?

答:

共享进程是指在一段时间内允许多个进程同时访问的设备。

如磁盘就是典型的共享设备,若干个进程可以交替地从磁盘上读写信息。

对共享设备可将其同时分配给多个进程使用。

共享分配方式显著提高了设备的利用率,但对设备的访问需进行合理的调度。

8-10什么是虚拟设备技术?

什么是虚拟设备?

如何进行虚拟分配?

答:

所谓虚拟设备技术,是在一类物理设备上模拟另一个物理设备的技术,是将独占设备转换为共享设备的技术。

目前最广泛流行的虚拟设备技术是SPOOL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1