操作系统课后习题答案及复习题.docx

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

操作系统课后习题答案及复习题.docx

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

操作系统课后习题答案及复习题.docx

操作系统课后习题答案及复习题

第一章

1、设计现代OS的主要目标是什么?

P1

答:

其主要目标是有效性、方便性、可扩充性、开放性。

2、OS的作用可表现在哪几个方面?

P2-P3

答:

1、OS作为用户与计算机硬件系统之间的接口;2、OS作为计算机资源的管理者;3、OS实现了对计算机资源的抽象;

3、为什么说OS实现了计算机资源的抽象?

P4

答:

完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口),用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程,因此该物理机器必定是难以使用的。

为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/O设备管理软件。

通常把覆盖了上述软件的机器称为扩充机器或虚机器。

它向用户(进程)提供了一个对硬件操作的抽象模型,用户更容易地使用计算机便件资源。

由该层软件实现了对计算机硬件操作的第一个层次的抽象。

为了方便用户使用文件系统,人们又在第一层软件上再覆盖上一层用于文件的管理软件,同样由它来实现对文件操作的细节,并向上提供一组对文件进行存取操作的命令,用户可利用这组命令进行文件的存取。

此时用户所看到的是一台功能更强、使用更方便的虚机器。

该层软件实现了对硬件资源操作的第二个层次的抽象。

OS是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件操作的多个层次的抽象。

值得说明的,对一个硬件在底层进行抽象后,在高层还可再次对该资源进行抽象,成为更高层的抽象模型。

随着抽象层次的提高,抽象接口所提供的功能就越来越强,用户使用起来也更加方便。

4、试说明推动多道批处理系统形成和发展的主要动力是什么?

P4-P5

答:

为了进一步提高资源的利用率和系统吞吐量,在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业高度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中各种资源。

在OS中引入多道程序设计技术可带来以下好处:

提高CPU和利用率、可提高内存和I/O设备利用率、增加系统吞吐量。

主要动力:

1、不断提高计算机资源的利用率;2、方便用户;3、器件的不断更新换代;4、计算机体系结构的不断发展;

5、何谓脱机I/O和联机I/O?

P6

答:

由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,该技术是脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机输入/输出)ON-LINEI/O)方式。

1、减少了CPU的空闲时间;2、提高了I/O速度。

6、试说明推动分时系统形成和发展的主要动力主什么?

P9

答:

分时系统它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。

1、人-机交互;2、共享主机;3、便于用户上机。

7、实现分时系统的关键问题是什么?

应如何解决?

P10

答:

其最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。

用户可继续键入下一条命令,此即人-机交互。

应强调指出,即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理这些命令。

1、及时接收;2、及时处理;

8、为什么要引入实时OS?

P11

答:

实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

1、应用需求;2、实时任务;

9、什么是硬实时任务和软实时任务?

试举例说明。

P12

答:

硬实时任务是系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。

软实时任务是它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。

举例说明:

硬实时任务为订车票、工业;软实时任务为网页更新;

10、在8位微机和16位微机中,占据了统治地位的是什么操作系统?

P13

答:

在8位微机和16位微机中,最有代表性的单用户单任务微机操作系统是CP/M和MS-MOS。

11、试列出WindowsOS中五个主要版本,并说明它们分别较之前一个版本有何改进。

P13

答:

1、WIN1.0和WIN2.0;2、WIN3.1版本,针对386和486等32位微机开发的,较之以前的操作系统有着重大的改进,引入了友善的图形用户界面,支持多任务和扩展内存的功能,使计算机更好使用,从而成为386和486等微机的主流操作系统;3、1WIN95、WIN3.1有许多重大改进,彩了全32位处理技术,并兼容了以前的16位应用程序,在该系统中还集成了支持INTERENET的网络功能。

4、WIN98把微软公司自己开发的INTERNET浏览器整合到系统中,大大方便了用户上网浏览,另一个特点是增加了对多媒体的支持。

5、32位版本的WINXP。

12、试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。

P12

答:

1、及时性,实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。

2、交互性,实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。

3、可靠性,分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。

13、OS有哪几个特征?

其最基本的特征是什么?

P14

答:

OS有并发、共享、虚拟和异步这四个基本特征。

并发特征是操作系统最重要的特征;

14、处理机管理有哪些主要功能?

它们的主要任务是什么?

P18

答:

主要功能:

创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。

1、进程控制:

进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。

2、进程同步:

进程同步的主要任务是为多个进程(含线程)的运行进行协调。

3、进程通信:

在多道程序环境下,为了加速应用程序的运行,应系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。

而在这些进程(线程)之间,又往往需要交换信息。

当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

4、调度:

在后备队列上等待的每个作业都需经过调度才能执行

(1)作业调度:

作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首行是分配内存)。

(2)进程调度:

进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。

15、内存管理有哪些主要功能?

它们的主要任务是什么?

P20

答:

主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

有内存分配、内存保护、地址眏射和内存扩充等功能。

1、内存分配:

内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

2、内存保护:

内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行彼此互不干优;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。

3、地址映射:

存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。

该功能应在硬件的支持下完成。

4、内存扩充:

存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序并发运行。

16、设备管理有哪些主要功能?

其主要任务是什么?

P21

答:

主要任务是:

完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。

有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

1、缓冲管理:

在I/O设备和CPU之间引入缓冲,提高CPU的利用率,进而提高系统吞吐量。

在现代计算机系统中,都无一例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。

对于不同的系统,可以采用不同的缓冲区机制。

2、设备分配:

设备分配的基本任务是根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。

如果在I/O设备和CPU之间还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。

3、设备处理:

设备处理程序又称为设备驱动程序。

其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

17、文件管理有哪些主要功能?

其主要任务是什么?

P21-P22

答:

文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

为此,文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。

1、文件存储空间的管理:

其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。

2、目录管理:

目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。

3、文件的读/写管理和保护:

文件的读/写管理其该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。

文件保护其为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能。

18、是什么原因使操作系统具有异步性特征?

答:

进程是以人们不可预知的速度向前推进,此即进程的异步性。

第二章

1、什么是前趋图?

为什么要引入前趋图?

P35

答:

前趋图是一个有向无循环图,记为DAG,用于描述进程之间招待的前后关系。

可用来简单讲述进程之间的关系。

2、试画出下面四语句的前趋图:

P36

S1:

a:

=x+y;

S2:

b:

=z+1;

S3:

c:

=a-b;

S4:

w:

=c+1;

3、为什么程序并发执行会产生间断性特征?

P36-P37

答:

因程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。

4、程序并发执行时为什么会失去封闭性和可再现性?

P37

答:

程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行换去了封闭性,这样,某程序在执行时,必然会受到其它程序的影响。

程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。

5、在操作系统中为什么要引入进程的概念?

它会产生什么样的影响?

P37?

答:

因为使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了“进程”的概念。

6、试从动态性、并发性和独立性上比较进程和程序。

P37-P38

答:

动态性进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。

并发性这是指多个进程实体同存于内存中,且能在一段时间内同时运行。

独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。

凡未建立PCB的程序都不能作为一个独立的单位参与运行。

7、试说明PCB的作用,为什么说PCB是进程存在的唯一标志?

P41

答:

进程控制块的作用是一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

-------在进程的整个生命期中,系统总是通过PCB对进程进行控制的,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的惟一标志。

8、试说明进程在三个基本状态之间转换的典型原因。

P38

答:

处于就绪状态的进程,在调度程序为之分配了处理机之后,该进程便可执行,相应地,它就由就绪状态转变为执行状态。

正在执行的进程也称为当前进程,如果因分配给它的时间片已完而被暂停执行时,该进程便由执行状态又回复到就绪状态;如果因发生某事件而使进程的执行受阻,使之无法继续执行,该进程将由执行状态转变为阻塞状态。

9.为什么要引入挂起状态?

该状态有哪些性质?

a.引入挂起状态主要是出于4种需要(即引起挂起的原因):

终端用户的请求,父进程请求,负荷调节的需要,操作系统的需要。

b.被挂起的进程是处于静止状态,并且不能直接被处理机调度。

17.为什么进程在进入临界区之前应先执行“进入区”代码?

而在退出前又要执行“退出区”代码?

为了实现多个进程对临界资源的互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源。

在退出临界区后,执行恢复访问标志的代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源。

18.同步机构应遵循哪些基本准则?

为什么?

a.空闲让进、忙则等待、有限等待、让权等待四条准则

b.为实现进程能互斥地进入到自己的临界区

19.试从物理概念上说明记录型信号量wait和signal。

Wait(S):

当S.value>0时,表示目前系统中这类资源还有可用的,执行一次wait操作,意味着进程请求一个单位的该类资源,是系统中可供分配的该类资源减少一个,因此描述为S.value:

=S.value-1;当S.value<0时,表示该类资源已分配完毕,因此进程应调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S.L中。

Signal(S):

执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配的该类资源数增加一个,故执行S.value:

=S.value+1操作。

若加1后S.value≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用wakeup原语,将S.L链表中的第一个等待进程唤醒。

21、如何利用信号量机制来实现多个进程对临界资源的互斥访问?

并举例说明之。

答:

为使多个进程互斥访问某临界资源,只需为该资源设置一个互斥信号量mutex,并并设其初值为1,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作之间即可。

Varmutex:

semaphore=1;

begin

parbegin

process1:

begin

repeat

wait(mutex);

criticalsection

signal(mutex);

remaindersection

untilfalse;

end

process2:

begin

repeat

wait(mutex);

criticalsection

signal(mutex);

remaindersection

untilfalse;

end

praend

22、试写出相应的程序来描述图2-17所示的前趋图。

P54

a.Vara,b,c,d,e,f,g,h;semaphore:

=0,0,0,1,0,0,0,0;

begin

parbegin

beginS1;signal(a);signal(b);end;

beginwait(a);S2;signal(c);signal(d);end;

beginwait(b);S3;signal(e);end;

beginwait(c);S4;signal(f);end;

beginwait(d);S5;signal(g);end;

beginwait(e);S6;signal(h);end;

beginwait(f);wait(g);wait(h);S7;end;

parend

end

23.在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?

如果缺少了signal(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行wait(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。

如果缺少了signal(empty),例如在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。

24、试修改下面生产者---消费问题中,如果将两个wait操作即wait(full)和wati(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?

答:

.a.wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex

赋值为0,倘若full也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量

mutex为0而进行等待,使full始终为0,这样就形成了死锁.

b.而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的.

25.我们为某临界资源设置一把锁W,当W=1时表示关锁;当W=0时表示锁已打开,试写出开锁和关锁原语,并利用它们去实现互斥。

整型信号量:

lock(W):

whileW=1dono-op

W:

=1;

unlock(W):

W:

=0;

记录型信号量:

lock(W):

W:

=W+1;

if(W>1)thenblock(W.L)

unlock(W):

W:

=W-1;

if(W>0)thenwakeup(W.L)

例子:

VarW:

semaphore:

=0;

begin

repeat

lock(W);

criticalsection

unlock(W);

remaindersection

untilfalse;

end

26.试修改下面生产者——消费者问题解法中的错误:

producer:

begin

repeat

……

produceaniteminnextp;

wait(mutex);

wait(full);

buffer(in):

=nextp;

signal(mutex);

untilfalse;

end

consumer:

begin

repeat

……

wait(mutex);

wait(empty);

nextc:

=buffer(out);

out:

=out+1;

signal(mutex);

consumeiteminnextc;

untilfalse;

end

 

producer:

begin

repeat

.

.

produceraniteminnextp;

wait(mutex);

wait(full);/*应为wait(empty),而且还应该在wait(mutex)的前面*/

buffer(in):

=nextp;

/*缓冲池数组游标应前移:

in:

=(in+1)modn;*/

signal(mutex);

/*signal(full);*/

untilfalse;

end

consumer:

begin

repeat

wait(mutex);

wait(empty);/*应为wait(full),而且还应该在wait(mutex)的前面*/

nextc:

=buffer(out);

out:

=out+1;/*考虑循环,应改为:

out:

=(out+1)modn;*/

signal(mutex);

/*signal(empty);*/

consumeriteminnextc;

untilfalse;

end

27、试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。

P61

答:

Varchopstick:

array[o,…,4]ofsemaphore;

所有信号量均被初始化为1,第i位哲学家的活动可描述为:

Repeat

Wait(chopstick[i]);

Wait(chopstick[(i+1)mod5]);

.

.

.

Eat;

.

.

.

Signal(chopstick[i]);

Signal(chopstick[(i+1)mod5])

Eat;

.

.

.

Think;

Untilfalse;

28.在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。

试写出利用信号量机制实现两任务共享单缓冲区的同步算法。

a.Varmutex,empty,full:

semaphore:

=1,1,0;

gather:

begin

repeat

……

gatherdatainnextp;

wait(empty);

wait(mutex);

buffer:

=nextp;

signal(mutex);

signal(full);

untilfalse;

end

compute:

begin

repeat

……

wait(full);

wait(mutex);

nextc:

=buffer;

signal(mutex);

signal(empty);

computedatainnextc;

untilfalse;

end

b.Varempty,full:

semaphore:

=1,0;

gather:

begin

repeat

……

gatherdatainnextp;

wait(empty);

buffer:

=nextp;

signal(full);

untilfalse;

end

compute:

begin

repeat

……

wait(full);

nextc:

=buffer;

signal(empty);

computedatainnextc;

untilfalse;

end

33.试比较进程间的低级通信工具与高级通信工具.P65

用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现,而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。

34、当前有哪几种高级通信机制?

(P65)

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

当前位置:首页 > 党团工作 > 党团建设

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

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