操作系统习题参考答案.docx

上传人:b****3 文档编号:3747808 上传时间:2023-05-06 格式:DOCX 页数:16 大小:24.17KB
下载 相关 举报
操作系统习题参考答案.docx_第1页
第1页 / 共16页
操作系统习题参考答案.docx_第2页
第2页 / 共16页
操作系统习题参考答案.docx_第3页
第3页 / 共16页
操作系统习题参考答案.docx_第4页
第4页 / 共16页
操作系统习题参考答案.docx_第5页
第5页 / 共16页
操作系统习题参考答案.docx_第6页
第6页 / 共16页
操作系统习题参考答案.docx_第7页
第7页 / 共16页
操作系统习题参考答案.docx_第8页
第8页 / 共16页
操作系统习题参考答案.docx_第9页
第9页 / 共16页
操作系统习题参考答案.docx_第10页
第10页 / 共16页
操作系统习题参考答案.docx_第11页
第11页 / 共16页
操作系统习题参考答案.docx_第12页
第12页 / 共16页
操作系统习题参考答案.docx_第13页
第13页 / 共16页
操作系统习题参考答案.docx_第14页
第14页 / 共16页
操作系统习题参考答案.docx_第15页
第15页 / 共16页
操作系统习题参考答案.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统习题参考答案.docx

《操作系统习题参考答案.docx》由会员分享,可在线阅读,更多相关《操作系统习题参考答案.docx(16页珍藏版)》请在冰点文库上搜索。

操作系统习题参考答案.docx

操作系统习题参考答案

操作系统习题参考答案

习题一

1、什么是操作系统?

设计操作系统的主要目标是什么?

解:

操作系统是配置在计算机硬件上的第一层软件,是计算机系统中最基本、最终要的系统软件,是其他软件的支撑软件。

它控制和管理计算机系统的硬件和软件资源,合理的组织计算机工作流程,并为用户使用计算机提高公共和基本的。

在计算机系统中占据了十分重要的地位。

主要目标:

(1)高效性:

操作系统允许以更加高效的方式使用计算机系统资源。

(2)方便性:

操作系统使得用户使用计算机更加方便。

3、要实现多道批处理需要解决哪些问题?

解:

(1)处理机的管理和分配问题

(2)内存的分配和保护问题

(3)I/O设备的管理和分配问题

(4)文件的组织和管理问题

4、分时系统和实时系统有何区别?

分时系统,一台主机可以连接几台以至上百台终端,每个用户可以通过终端与主机交互作用。

实时系统具有专用性,不同的实时系统用于不同的应用领域。

它有三种典型的应用形式,即:

过程控制系统(如工业生产自动控制、卫星发射自动控制)、信息查询系统(如仓库管理系统、图书资料查询系统)和事务处理系统(如飞机订票系统、银行管理系统)。

与分时系统相比,实时系统要求有更高的可靠性和更严格的及时性。

6、操作系统有哪些组织结构?

解:

(1)单体结构;

(2)模块化结构;

(3)可扩展内核结构;

(4)层次结构。

7、微内核操作系统具有哪些优点?

它为何能有这些优点?

解:

(1)提高了系统的可扩展性:

由于微内核OS的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核OS只须在相应的服务器中增加新的功能,或再增加一个专门的服务器。

与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。

(2)增强了系统的可靠性:

这一方面是由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。

此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其它服务器。

(3)可移植性:

随着硬件的快速发展,出现了各种各样的硬件平台,作为一个好的操作系统,必须具备可移植性,使其能较容易地运行在不同的计算机硬件平台上。

在微内核结构的操作系统中,所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。

(4)提供了对分布式系统的支持:

由于在微内核OS中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核OS能很好地支持分布式系统和网络系统。

事实上,只要在分布式系统中赋予所有进程和服务器惟一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表,将消息发往目标,而无论目标是驻留在哪台机器上。

8、操作系统的基本特征是什么?

解:

(1)并发性

(2)共享性

(3)虚拟性

(4)异步性

 

习题二

1、为什么说操作系统是由中断驱动的?

解:

所有并发程序都是有中断(特别是时钟中断)驱动的,故操作系统中属于这一类的程序也是由中断驱动的。

第二类是直接面对用户态"被动"地为用户服务的程序。

系统初启后,这类程序一般是不运行的,仅当用户态程序执行了相应的系统调用时,它才被调用、执行。

而正如上面所说,系统调用指令的执行是经中断(自陷)机构处理的。

因此,在这种意义上,操作系统中的这一类程序也是由中断驱动的。

第三类是那些既不主动运行,也不直接面对用户态的程序。

它们是隐藏在操作系统内部,由前两类程序所调用的程序。

既然前两类程序都是由中断驱动的,则此类程序当然也应该是由中断驱动的。

2、试述中断响应过程。

P30页(略)

3、试述中断处理过程。

P31页(略)

4、中断和异常有何区别?

中断:

系统停止当前正在运行的程序而转向其他服务,可能是因为优先级高的请求服务了,或者是因为人为安排中断。

中断是属于正常现象。

异常:

是由于软件错误而引起的。

5、按功能来分,中断有哪几种类型?

解:

按中断功能分类:

1、输入输出中断

   输入输出中断时当外部设备或通道操作正常结束或发生某种错误时发生的中断。

例如:

I/O传输出错、I/O传输结束等。

2、外中断

   对某中央处理机而言,他的外部非通道式装置所引起的中断称为外部中断。

例如:

时钟中断、操作员控制台中断、多机系统中CPU到CPU的通信中断。

3、机器故障中断

   当机器发生故障时所产生的中断叫硬件故障中断。

例如:

电源故障、通道与主存交换信息是主存储错、从主存取指令出错、取数据错、长线传输时的奇偶校验错等。

4、程序性中断

   在现行程序执行过程中,发现了程序性的错误或出现了某些程序的特定状态而产生的中断称为程序性中断。

这些程序性错误有定点溢出、十进制溢出、十进制数错、地址错、用户态下用核态指令、越界、非法操作等。

程序的特定状态包括逐条指令跟踪、指令地址符合跟踪、转态跟踪、监视等。

5、访管中断

   对操作系统提出某种需求(如请求I/O传输、建立进程等)时所发出的中断称为访管中断。

6、什么是向量中断?

什么是中断向量?

解:

向量中断:

向量中断即中断源的识别标志,可用来存放中断服务程序的入口地址或跳转到中断服务程序的入口地址。

中断向量:

中断服务程序的入口地址。

在某些计算机中,中断向量的位置存放一条跳转到中断服务程序入口地址的跳转指令。

 

习题三

1、名词解释:

进程进程控制块线程进程互斥进程同步原语临界资源临界区管程消息信箱

解:

进程:

进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位,是定义在一个数据结构上并能够在其上进行操作的一个程序,可以和别的计算并发执行的计算;是程序的一次执行。

进程控制块:

是操作系统用于记录进程状态和相关信息控制进程运行的数据结构,是进程的唯一标示符。

线程:

线程是程序中一个单一的顺序控制流程。

进程同步:

系统中有一些互相合作、协同工作的进程,它们之间的相互联系成为进程同步。

原语:

是由若干条指令组成的,用于完成一定功能的一个过程。

临界资源:

多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。

一次仅允许一个进程使用的资源称为临界资源。

临界区:

是一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问的特性。

管程:

管程是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。

消息:

是一组信息,由消息头和消息体组成。

信箱:

在间接寻址方式下,消息传递是通过一个共享的数据结构完成的,通常把这种结构称为信箱。

每个信箱都有唯一的标识符。

1、简述程序和进程的区别与联系

解:

进程和程序是既有区别又有联系的两个概念。

(1)进程是动态的,程序是静态的。

程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行,是一个动态的集合。

离开了程序,进程就失去了存在的意义,但同一程序在计算机上的每次运行将构成不同的进程。

(2)一个进程可以执行多个程序。

(3)一个程序可被多个进程执行。

(4)程序可以长期保存,进程只能存在于一段时间。

程序是永久存在的,而进程有从创建到消亡的生命周期。

2、进程有哪些主要的状态?

各状态之间是如何转换的?

进程的主要状态有:

就绪,阻塞,执行三种。

就绪到执行:

进程调度

执行到就绪:

时间片完

执行到阻塞:

I/O请求或等待事件发生

阻塞到就绪:

I/O完成或事件已发生

8、简述进程和线程的区别和联系。

解:

联系:

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

区别:

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。

线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。

但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

12、写出使用消息传递的方式解决生产者-消费者问题的程序以及哲学家就餐问题、售票厅问题、儿子-女儿-父亲问题。

解:

生产者-消费者问题:

解决办法,定义两个信号量。

empty:

表示缓冲区是否为空,初值为1,生产者用它来判断缓冲区是否可写。

full:

表示缓冲区是否为满,初值为0,消费者用它来判断缓冲区是否可读。

producer(生产者)的伪码:

while

(1)

{

P(empty);

写缓冲区;

V(full);

}

consumer(消费者)的伪码:

while

(1)

{

P(full);

读缓冲区;

V(empty);

}

消息传递的方式:

#defineN100/*缓冲区中的槽数*/voidproducer(void){intitem;messagem;/*消息缓冲区*/while(TRUE){produce_item(&item);/*产生一些数据放入缓冲区*/receive(consumer,&m);/*等待一条空消息到达*/build_message(&m,item);/*构造一条消息供发送*/send(consumer,&m);/*向消费者发送一数据项*/}}voidconsumer(void){intitem,i;messagem;for(i=0;i

哲学家就餐问题:

semaphorechopstick[5]={1,1,1,1,1};

voidphilosopher(inti)

{

while(true)

{

think();

if(i%2==0)//偶数哲学家,先右后左。

{

wait(chopstick[i+1]mod5);

wait(chopstick[i]);

eat();

signal(chopstick[i+1]mod5);

signal(chopstick[i]);

}

Else//奇数哲学家,先左后右。

{

wait(chopstick[i]);

wait(chopstick[i+1]mod5);

eat();

signal(chopstick[i]);

signal(chopstick[i+1]mod5);

}

}

}

售票厅问题:

定义信号量s,初值为20

s>0时表示可继续进入售票厅的人数

s=0时表示已有20名售票者

s<0时,|s|表示等待进入售票厅的人数

begin

mutex:

=20

cobegin

购票者进程Pi(i=1,2,…)

begin

P(mutex);

Enter;

Buyticket;

Leave;

V(mutex);

End

Coend

End

儿子-女儿-父亲

intS=1;

intSa=0;

intSo=0;

main()

{cobegin

Father();

Son();

Daughter();

coend;

}

Father()

{while

(1)

{P(s);

将水果放入盘中;

if(放入的是桔子)V(So);

elseV(Sa)

}

}

Son()

{while

(1)

{P(So);

从盘中取出桔子;

V(S);

吃桔子;

}

}

Daughter()

{while

(1)

{P(Sa);

从盘中取出苹果;

V(S);

吃苹果;

}

}

消息传递的方式:

Voidfather()

{

intitem;

messagem;

while

(1)

{

produce_item(&item);/*产生一些数据放入缓冲区*/receive(children,&m);/*等待一条空消息到达*/

将水果放入盘中;

if(放入的是桔子)

{

build_message(&m,item);/*构造一条消息供发送*/send(son,&m);/*向儿子发送一数据项*/

}

else

{

build_message(&m,item);/*构造一条消息供发送*/send(daughter,&m);/*向女儿者发送一数据项*/

}

}

}

Son()

{while

(1)

{

receive(father,&m);/*收到一条包含数据的消息*/extract_item(&m,&item);/*从消息中析取数据*/

从盘中取出桔子;

吃桔子;

send(father,&m);/*回送吃完的消息作为应答*/

}

}

Daughter()

{

while

(1)

{receive(father,&m);/*收到一条包含数据的消息*/extract_item(&m,&item);/*从消息中析取数据*/

从盘中取出苹果;

吃苹果;

send(father,&m);/*回送吃完的消息作为应答*/

}

}

习题四

2、高级调度和低级调度的对象是什么?

为什么要引入中级调度?

解:

高级调度的对象是作业,低级调度的对象是进程。

引入中级调度的主要目的是为了提高系统资源的利用率和系统吞吐量。

3、何为死锁?

产生死锁的原因和必要条件是什么?

解:

所谓死锁是指在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组中的另一个进程所占有且永远不会释放的资源。

这种现象称系统处于死锁状态,简称死锁。

产生死锁的必要条件:

1、互斥条件。

进程对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。

2、请求和保持条件。

当进程因请求资源而阻塞时,对已获得的资源保持不放。

3、不剥夺条件。

进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

4、环路等待条件。

在发生死锁时,必然存在一个进程-资源的环形链,即进程集合{P1,P2,…,PN}中的P1等待一个P2占用的资源,P2正在等待一个P3占用的资源,…,Pn正在等待已被P1所占用的资源。

4、试比较最高相应比优先调度算法、先来先服务调度算法和短作业优先调度算法。

解:

最高相应比优先调度算法:

定义相应比如下:

Rp=作业相应时间/作业执行时间

其中,作业相应时间为作业进入系统后的等待时间与作业的执行时间之和,即

Rp=1+作业等待时间/作业执行时间

对于高相应比优先算法,在每次调度前都要计算所有被选作业(在作业后备队列中)的相应比,然后选择相应比最高的作业执行。

该算法比较复杂,系统开销大。

先来先服务算法:

按作业到达的先后进行调度,即启动时间最长的作业。

短作业优先调度:

以要求运行时间的长短进行调度,即启动要求运行时间最短的作业。

8、某系统中有3个进程,都需要4个同类资源,试问该系统不会发生死锁的最小资源数是多少个?

解:

要保证不会发生死锁,至少有一个进程能申请到4个资源,其他进程都申请到3个资源,这时需10个资源。

10、有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕,试问该系统是否会由于对这种资源的竞争而产生死锁?

解:

在该种情况下不会发生死锁。

因为在最坏的情况下,每个资源都需要两个这样的资源,且每个进程每个进程都已申请到一个资源,此时系统中还剩一个资源,无论给哪一个进程都可满足要求。

11、设系统中有A、B、C共3种资源和P0、P1、P2、P3、P4共5个进程,在T0时刻,系统状态如表4.10所示,根据银行家算法,回答一下问题:

(1)T0时刻是否安全?

若安全,给出安全序列。

(2)此时,P4申请资源(1,2,2),能否分配?

为什么?

表4.10T0时刻的系统状态(题11表)

进程

最大资源需求量

已分配资源数量

剩余资源数

A

B

C

A

B

C

A

B

C

P0

7

4

3

0

1

0

3

3

2

P1

3

3

2

2

0

0

P2

7

0

2

3

0

2

P3

2

2

2

2

1

1

P4

4

3

3

0

0

2

 

解:

(1)

资源

进程

可用

R1R2R3

需求

R1R2R3

已分

R1R2R3

可用+已分

R1R2R3

能否完成标志

P3

332

011

211

543

true

P4

543

431

002

545

true

P1

545

132

200

745

true

P0

745

733

010

755

true

P2

755

400

302

1057

true

由图可得,T0时刻安全,存在安全序列:

P3->P4->P1->P0->P2

(2)(解题思路:

首先假分配检查Request

第一步(假分配检查):

把Request分配给P4,必须满足Request要小于Available,Request要小于Need。

Request(1,2,2)

Request(1,2,2)>Need(4,3,1)

Request的R3资源数大于Need的R3资源数,故不能分配。

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2