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

更新时间:2023-11-29 05:21:01 阅读量: 教育文库 文档下载

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

第一章

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-LINE I/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、试列出Windows OS中五个主要版本,并说明它们分别较之前一个版本有何改进。P13 答:1、WIN1.0和WIN2.0;2、WIN3.1版本,针对386和486等32位微机开发的,较之以前的操作系统有着重大的改进,引入了友善的图形用户界面,支持多任务和扩展内存的功能,使计算机更好使用,从而成为386和486等微机的主流操作系统;3、1 WIN95、WIN3.1有许多重大改进,彩了全32位处理技术,并兼容了以前的16位应用程序,在该系统中还集成了支持INTERENET的网络功能。4、WIN98把微软公司自己开发的INTERNET浏览器整合到系统中,大大方便了用户上网浏览,另一个特点是增加了对多媒体的支持。5、32位版本的WIN XP。

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、是什么原因使操作系统具有异步性特征?

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

19.模块接口法存在哪些问题?可通过什么样的途径来解决? 答:(1)模块接口法存在的问题:①在OS设计时,各模块间的接口规定很难满足在模块完成后对接口的实际需求。②在OS 设计阶段,设计者必须做出一系列的决定,每一个决定必须建立在上一个决定的基础上。但模块化结构设计的各模块设计齐头并进,无法寻找可靠的顺序,造成各种决定的无序性,使程序设计人员很难做到设计中的每一步决定都建立在可靠的基础上,因此模块接口法被称为“无序模块法”。(2)解决途径:将模块接口法的决定顺序无序变有序,引入有序分层法。

20.在微内核OS中,为什么要采用客户/服务器模式?

答:C/S 模式具有独特的优点:⑴数据的分布处理和存储。⑵便于集中管理。⑶灵活性和可扩充性。⑷易于改编应用软件。

21.试描述什么是微内核OS。

答:1)足够小的内核 2)基于客户/服务器模式3)应用机制与策略分离原理 4)采用面向对象技术。

22.在基于微内核结构的OS中,应用了哪些新技术?

答:在基于微内核结构的OS 中,采用面向对象的程序设汁技术。

23.何谓微内核技术?在微内核中通常提供了哪些功能?

答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。

24.微内核操作系统具有哪些优点?它为何能有这些优点?

答:1)提高了系统的可扩展性2)增强了系统的可靠性3)可移植性4)提供了对分布式系统的支持5)融入了面向对象技术

第二章

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链表中的第一个等待进程唤醒。

20.你认为整型信号量机制是否完全遵循了同步机构的四条准则?

答:整型信号量机制不完全遵循同步机制的四条准则,它不满足“让权等待”准则。

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

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

Var mutex: semaphore=1; begin parbegin

process 1: begin

repeat

wait(mutex) ; critical section signal(mutex); remainder section until false; end process 2: begin

repeat

wait(mutex) ; critical section signal(mutex); remainder section until false; end praend

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

S11 S21 S31 S2 S11 S3 S41 S51 S61 S41 S51 S61 S71 S71 S81

a. Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 1, 0, 0, 0, 0; begin

parbegin

begin S1; signal(a); signal(b); end;

begin wait(a); S2; signal(c); signal(d); end; begin wait(b); S3; signal(e); end; begin wait(c); S4; signal(f); end;

begin wait(d); S5; signal(g); end; begin wait(e); S6; signal(h); end;

begin wait(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): while W=1 do no-op W:=1; unlock(W): W:=0;

记录型信号量:lock(W): W:=W+1;

if(W>1) then block(W.L) unlock(W): W:=W-1;

if(W>0) then wakeup(W.L)

例子:

Var W:semaphore:=0; begin repeat lock(W);

critical section unlock(W);

remainder section until false; end

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

producer: begin repeat ……

produce an item in nextp; wait(mutex); wait(full);

buffer(in):=nextp; signal(mutex);

until false; end

consumer:

begin

repeat ……

wait(mutex); wait(empty);

nextc:=buffer(out);

out:=out+1; signal(mutex);

consume item in nextc;

until false; end

producer: begin repeat . .

producer an item in nextp; wait(mutex);

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

/* 缓冲池数组游标应前移: in:=(in+1) mod n; */ signal(mutex);

/* signal(full); */ until false; end

consumer: begin repeat

wait(mutex);

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

out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */ signal(mutex);

/* signal(empty); */ consumer item in nextc; until false; end

27、试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。P61 答:Var chopstick:array[o,…,4] of semaphore;

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

Wait(chopstick[i]);

Wait(chopstick[(i+1) mod 5]); . . . Eat;

. . .

Signal(chopstick[i]);

Signal(chopstick[(i+1) mod 5]) Eat;

. . .

Think; Until false;

28. 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。

a. Var mutex, empty, full: semaphore:=1, 1, 0;

gather:

begin

repeat ……

gather data in nextp; wait(empty); wait(mutex);

buffer:=nextp; signal(mutex); signal(full); until false;

end

compute:

begin

repeat …… wait(full); wait(mutex);

nextc:=buffer; signal(mutex); signal(empty);

compute data in nextc;

until false;

end

gather data in nextp; wait(empty); buffer:=nextp;

signal(full); until false;

b. Var empty, full: semaphore:=1, 0;

gather:

begin

repeat ……

end compute:

begin

repeat

…… wait(full); nextc:=buffer;

signal(empty);

compute data in nextc;

until false;

end

29.画图说明管程由哪几部分组成,为什么要引入条件变量? 答:管程由四部分组成:①管程的名称;②局部于管程内部的共享数据结构说明;③对该数据结构进行操作的一组过程;④对局部于管程内部的共享数据设置初始值的语句;

当一个进程调用了管程,在管程中时被阻塞或挂起,直到阻塞或挂起的原因解除,而在此期间,如果该进程不释放管程,则其它进程无法进入管程,被迫长时间地等待。为了解决这个问题,引入了条件变量condition。

30.如何利用管程来解决生产者与消费者问题?

答:首先建立一个管程,命名为ProclucerConsumer,包括两个过程:(1)Put(item)过程。生产者利用该过程将自己生产的产品放到缓冲池,用整型变 量count 表示在缓冲池中已有的产品数目,当count≥n 时,表示缓冲池已满,生产者须等待。2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当count≤0时,表示缓冲池中已无可取的产品,消费者应等待。 PC 管程可描述如下:

type producer-consumer =monitor Var in,out,count:integer;

buffer:array[0,…,n-1]of item; notfull,notempty:condition; procedure entry dot(item) begin

if count>=n then not full.wait; buffer(in):=nextp; in:=(in+1)mod n; count:=count+1;

if notempty.queue then notempty.signal; end

procedure entry get(item) begin

if count<=0 then not full.wait; nextc:=buffer(out); out:=(out+1)mod n; count:=count-1;

if notfull.quene then notfull.signal; end

begin in:=out:=0; count:=0 end

在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为: producer: begin pepeat

produce an inem in nestp PC.put(item); until false; end

consumer: begin repeat

PC.get(item);

consume the item in enxtc; until false; end

31.什么是AND信号量?试利用AND信号量写出生产者一消费者问题的解法。 答:为解决并行带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。

解决生产者-消费者问题可描述如下:

var mutex,empty,full: semaphore:=1,n,0; buffer: array[0,...,n-1] of item; in,out: integer:=0,0; begin

parbegin

producer: begin repeat …

produce an item in nextp; …

wait(empty);

wait(s1,s2,s3,...,sn); //s1,s2,...,sn为执行生产者进程除empty 外其余的条件

wait(mutex);

buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full);

signal(s1,s2,s3,...,sn); until false; end

consumer: begin repeat

wait(full);

wait(k1,k2,k3,...,kn); //k1,k2,...,kn 为执行消费者进程除full 外其余的条件

wait(mutex);

nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty);

signal(k1,k2,k3,...,kn); consume the item in nextc; until false; end parend end

32.什么是信号量集?试利用信号量集写出读者一写者问题的解法。 答:对AND信号量加以扩充,形成的信号量集合的读写机制。 解法:Var RN integer; L,mx: semaphore:=RN,1; begin parbegin reader:begin repeat

Swait(L,1,1); Swait(mx,1,1);

perform read operation; …

Ssignal(L,1); until false end

writer:begin repeat

Swait(mx,1,1;L,RN,0); perform write operation; Ssignal(mx,1); until false end parend end

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

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

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

【解】共享存储器系统,消息传递系统,管道通信系统。

35.消息队列通信机制有哪几方面的功能? 答:(1)构成消息(2)发送消息(3)接收梢息(4)互斥与同步。

36. 为什么要在OS中引入线程?P72

在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。在OS中

再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

37.试说明线程具有哪些属性? 答:(1)轻型实体(2)独立调度和分派的基本单位(3)可并发执行(4)共享进程资源。

38. 试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较.P72-73

a. 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;

b. 并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;

c. 拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;

d. 开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置的现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出的开销将显著地大于线程。

39. 为了在多线程OS 中实现进程之间的同步与通信,通常提供了哪几种同步机制?

答:同步功能可以控制程序流并访问共享数据,从而并发执行多个线程。共有四种同步模型:互斥锁、读写锁、条件变量和信号。

40.用于实现线程同步的私用信号量和公用信号量之间有何差别?

答:1)私用信号量。当某线程需利用信号量实现同一进程中各线程之间的同步时,可调用创建信号量的命令来创建一个私用信号量,其数据结构存放在应用程序的地址空间中。

(2)公用信号量。公用信号量是为实现不同进程间或不同进程中各线程之间的同步而设置的。其数据结构是存放在受保护的系统存储区中,由OS为它分配空间并进行管理。

41.何谓用户级线程和内核支持线程? 答:(1)用户级线程:仅存在于用户空间中的线程,无须内核支持。这种线程的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。用户级线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持。

(2)内核支持线程:在内核支持下运行的线程。无论是用户进程中的线程,还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。

15

42.试说明用户级线程的实现方法。

答:用户级线程是在用户空间中的实现的,运行在“运行时系统”与“内核控制线程”的中间系统上。运行时系统用于管理和控制线程的函数的集合。内核控制线程或轻型进程LWP可通过系统调用获得内核提供服务,利用LWP进程作为中间系统。

43.试说明内核支持线程的实现方法。

答:系统在创建新进程时,分配一个任务数据区PTDA,其中包括若干个线程控制块TCB空间。创建一个线程分配一个TCB,有关信息写入TCB,为之分配必要的资源。当PTDA中的TCB 用完,而进程又有新线程时,只要所创建的线程数目未超过系统允许值,系统可在为之分配新的TCB;在撤销一个线程时,也应回收线程的所有资源和TCB。

补充题:

PPT补充题:1、设有一售票厅,并规定在厅内购票的人数不得超过20人,如果厅内购票人数少于20人,则允许进入。如果厅内人数正好是20人,则必须在厅外等候,试问: (1)这是一个同步问题,还是互斥问题? (2)用P、V操作写出购票者的有关程序。 (3)信号量的初值是多少? 答:(1)互斥 共享资源:售票厅 (2)begin mutex:=20 cobegin

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

P(mutex); Enter; Buy ticket; Leave; V(mutex); End Coend End;

(3)mutex:=20

2、取放水果问题:桌上有一个盘子,可以放一个水果。父亲可以放苹果,也可以放香蕉到盘中。儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。用信号量及其操作解决上述问题。 答:分析:1)3个进程

互斥:盘子是临界资源 mutex:=1 2)同步:empty=1; apple:=0 banana:= 0

16

第三章

1、高级调度与低级调度的主要任务是什么?为什么要引入中级调度?P84 P86 P87

答:高级调度其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它的调度对象是作业。低级调度其主要功能是保存处理机的现场信息;按某种算法先取进程;把处理器分配给进程。中级调度:引入中级调度的主要目的的为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。

2、何谓作业、作业步和作业流?P84 答:作业:作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程度的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。作业步:通常,在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能得到结果。作业流:若干个作业进入系统后,被依次存放在外存上,这便形成了输入的作业流;在操作系统的控制下,逐个作业进程处理,于是便形成了处理作业流。

3、在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?P85

答:为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。

4、在作业调度中应如何确定接纳多少个作业和接纳哪些作业?P85

答:作业调度每次要接纳多少个作业进入内存,取决于多道程序度,即允许多少个作业同时在内存中运行。应将哪些作业从外存调入内存,这将取决于所采用的调度算法。最简单的是先来先服务调度算法,这是把将最早进入外存的作业最先调入内存;较常用的一种算法是短作业优先调度算法,是将外存上最短的作业最先调入内存;另一个较常的是基于作业优先级的调度算法,该算法是将外存上优先级最高的作业优先调入内存;

5、试说明低级调度的主要功能。P86

答:1、保存处理机的现场信息:在进程调度进行调度时,道先需要保存当前进程的处理机的现场信息,将它们送入该进程的进程控制块(PCB)中的相应单元。2、按某种算法选取进程:低级调度程序按某种算法如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。3、把处理器分配给进程:由分派程序把处理器分配给进程。此时需为选中的进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始继续运行。

6、在抢占调度方式中,抢占的原则是什么?P87

答:抢占调度方式是1、优先权原则:通常是对一些重要的和紧急的作业赋予较高的优先权。2、短作业(进程)优先原则:当新到达的作业(进程)比正在执行的作业(进程)明显的短时,将轻暂停当前长作业(进程)的执行,将处理机分配给新到的短作业(进程),使之优先执行;或者说,短作业(进程)或以抢占当前较长作业(进程)的处理机。时间片原则:各进程按时间片轮流运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。

7.在选择调度方式和调度算法时,应遵循的准则是什么?

答:1)面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则。2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。

8、在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?

17

答:批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反馈队列调度算法。分时系统的调度算法:时间片轮转法。实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算法。

9.何谓静态和动态优先级?确定静态优先级的依据是什么? 答:静态优先级是指在创建进程时确定且在进程的整个运行期间保持不变的优先级。动态优先级是指在创建进程时赋予的优先权,可以随进程推进或随其等待时间增加而改变的优先级,可以获得更好的调度性能。确定进程优先级的依据:进程类型、进程对资源的需求和用户要求。

10. 试比较FCFS和SPF两种进程调度算法

相同点:两种调度算法都是既可用于作业调度,也可用于进程调度;

不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列的作业,将它们调入

内存,为它们分配资源,创建进程,然后插入到就绪队列中。该算法有利于长作业/进程,不利于短作业/进程。

SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调

入内存中运行。该算法有利于短作业/进程,不利于长作业/进程。

11.在时间片轮转法中,应如何确定时间片的大小?

答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对相应时间的要求、就绪队列中进程的数目和系统的处理能力。

12.通过一个例子来说明通常的优先级调度算法不能适用于实时系统?

答:实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求而不适用。

13.为什么说多级反馈队列调度算法能较好地满足各方面用户的需求? 答:(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。

(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。

(3)长批处理作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。所以,多级反馈队列调度算法能满足多用户需求。

14.为什么在实时系统中,要求系统(尤其是CPU)具有较强的处理能力?

答:实时系统中通常有着多个实时任务。若处理机的处理能力不够强,有可能因为处理机忙不过来而使某些实时任务得不到及时处理,导致发生难以预料的后果。

15. 按调度方式可将实时调度算法分为哪几种?

按调度方式不同,可分为非抢占调度算法和抢占调度算法两种。

18、何谓死锁?产生死锁的原因和必要条件是什么?P103 P103 P105

答:所谓死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因为竞争资源和进程间推进顺序非法。其必要条件为互斥条件,

18

请求和保持条件,不剥夺条件,环路等待条件。

19、解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率高?P105 P106 答:预防死锁;解除死锁;

20、请详细说明可通过哪些途径预防死锁。P106

答:1、摒弃“请求和保持”条件:在采用这种方法时,系统规定所有进程在开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源。此时,若系统有足够的资源分配给某进程,便可把其需要的所有资源分配给该进程,这样,该进程在整个运行期间便不会再提出资源要求,从而摒弃了请求条件。2、摒弃“不剥夺”条件:在采用这种方法时系统规定,进程是逐个地提出对资源的要求的。当一个已经保持了某些资源的进程,再提出新的资源请求而不能立即得到满足时,必须释放它已经保持了的所有资源,等以后需要时再重新申请。这意味着某一进程已经占有的资源,在运行进程中会被暂时地释放掉,也可认为是被剥夺了,从而摒弃了“不剥夺”条件。3、摒弃“环路等待”条件:在这种方法中规定,系统将所有资源按类型进行线性排队,并赋予不同的序号。所有进程对资源的请求必须严格按照资源序号递增的次序提出,这样,在所形成的资源分配图中,不可能再出现

环路,因而摒弃了“环路等待”条件。

21、在银行家算法的例子中,如果P0发出的请求向量由Request(0,2,0)改为Request(0,1,0),问系统可否将资源分配给它?

可以.首先,Request0(0,1,0)<=Need0(7,4,3), Request0(0,1,0)<=Available(2,3,0);

分配后可修改得一资源数据表(表略),进行安全性检查,可以找到一个安全序列{P1,P4,P3,P2,P0}, 或{P1,P4,P3,P0,P2},因此,系统是安全的,可以立即将资源分配给P0.

22. 在银行家算法中,若出现下述资源分配情:

Process P0 P1 P2 P3 P4 Allocation 0032 1000 1354 0332 0014 Need 0012 1750 2356 0652 0656 Available 1622 试问:

⑴ 该状态是否安全?

⑵ 若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?

⑴该状态是安全的,因为存在一个安全序列< P0P3P4P1P2>。下表为该时刻的安全序列表。 资源情况 进程 P0 P3 P4 P1 P2 Work 1 6 2 2 1 6 5 4 1 9 8 7 1 9 9 11 2 9 9 11 Need 0 0 1 2 0 6 5 2 0 6 5 6 1 7 5 0 2 3 5 6 Allocation 0 0 3 2 0 3 3 3 0 0 1 4 1 0 0 0 1 3 5 4 Work+Allocation 1 6 5 4 1 9 8 7 1 9 9 11 2 9 9 11 3 12 14 17 Finish true true true true true ⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。

PPT补充题: 有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先级为基础的抢占式调度算法,有如表所示的作业序列(所列作业优先数即为进程优先数,数值越小优先级

19

越高)

(1)列出所有作业进入内存时间及结束时间 (2)计算平均周转时间

作业 A B C D

分析:

1)经历两级调度:作业调度和进程调度。只有在作业调度程序将作业装入内存后,在内存的作业才能参与进程调度;

2)调度算法;

3)批处理系统是两道作业系统,即内存中最多允许有两道作业; 4)作业执行情况

到达时间 10:00 10:20 10:30 10:50 估计运行时间 40分钟 30分钟 50分钟 20分钟 优先数 5 3 4 6 10:0010:2010:3010:5011:1012:0012:20CPU进程就绪队列作业后备队列ABACDDACD????10:00,作业A到达并投入运行10:20,作业B到达且优先级高于A,故作业B投入运行而作业A进入就绪队列10:30,作业C到达,因内存已有两道作业,故作业C进入作业后备队列等待调度进入内存10:50,作业B运行结束,作业D到达,因按短作业优先调度策略,作业D被装入内存进入就绪队列,而作业A优先级高于作业D,故作业A投入运行。11:10,作业A运行结束,作业C被调入内存,且优先级高于D,故作业C投入运行???12:00,作业C运行结束,作业D投入运行12:20,作业D运行结束郑宏云@njtu9 (1)所有作业进入内存的时间及结束时间 作业 A 进入内存时间 10:00 结束时间 11:10 20

分配量个盘块的过程如下:

⑴ 顺序扫描位示图,从中找到第一个值为0的二进制位,得到其行号i=3,列号j=3。

⑵ 将所找到的二进制位转换成与之对应的盘块号。盘块号计算公式为:b=(3-1)*16+3=35; ⑶ 修改位示图,令map[3,3]=1,并将该盘块分配出去。

类似地,可使用相同的方法找到第二个值为0的二进制位,得到行号i=4,列号j=7,其对应的盘块号为55,令map[i,j]=1,并将该盘块分配出去。

24.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间,试问:

⑴ 位示图需要多少字?

⑵ 第i字第j位对应的块号是多少? ⑶ 给出申请/归还一块的工作流程。

[500/32]z=16个字

b=(i-1)*32+j=32(i-1)+j (b从1开始计数,i,j也从1开始计数)

25、空闲磁盘空间的管理常采用哪几种方式?UNIX系统采用的是何种方式? 空闲磁盘空间的管理常采用以下几种方法:(1)空闲表法,属于连续分配方式,它与内存管理中的动态分区分配方式相似。(2)空闲链表法,将所有空闲盘区链接成一条空闲链。根据构成链的基本元素不同,可分为空闲盘块链和空闲盘区链。(3)位示图法,利用二进制的一位来表示磁盘中每一个盘块的使用情况,磁盘上的所有盘块都有一个二进制位与之对应,从而由所有盘块所对应的位构成一个集合,即位示图。(4)成组链接法,结合空闲表法和空闲链表法而形成。UNIX系统采用的是成组链接法

作业1:某文件系统中,方框表示目录文件,圆圈表示普通文件,根目录长驻内存。目录文件采用链接结构,指出下级文件名、文件类型及磁盘地址。如果下级文件是目录文件,则目录项指向其第一磁盘块地址;如果下级文件是普通文件,则目录项指向该文件的文件控制块的磁盘地址。假设一个物理块放10个目录项,一个目录下最多放40个文件。假设索引表放在FCB中。假设文件按自左向右的顺序建立。

1)如果普通文件采用顺序结构组织,要读取K的第75块,需要启动硬盘最少几次,最多几次? 2)如果普通文件采用链接结构组织呢?

3)如要加快文件目录的检索,可采取什么解决方法? 存放一个目录需要4个物理块。ROOT放在内存中 1)如果普通文件采用顺序结构组织 最好情形:只需读第一条目录项

读盘4次,可以找到K(FCB的物理地址),第5次读盘, 读取第75块,即4+1=5。 最差情形:遍历目录

读盘4*4=16次,可以找到K,第17次读盘,读取第75块,即4*4+1=17。 2)普通文件采用链接结构组织 最少:4+75=79

31

最多:16+75=81

3)如要加快文件目录的检索,可采取什么解决方法 拆分FCB

2、在实现文件系统时,为加快文件目录的检索速度,可利用“文件控制块分解法”。假设目录文件存放在磁盘上,每个盘块512字节。文件控制块占64字节,其中文件名占8字节,文件控制块分解后,第一部分占10个字节(包括文件名和文件内部号),第二部分占56字节(文件基本描述信息)。 1) 假设某一目录文件共有256个文件控制块,分别求出采用分解法前后,查找该目录文件的一个文件控制块的平均访盘次数;

2)一般地,如目录文件分解前占n个盘块,分解后改用m个盘块存放文件名和文件内部号,请给出访盘次数减少的条件。 1)分解前,

一个物理块放 512/64=8 个FCB 占块n=256/8=32

平均访盘次数=(1+32)/2=17 分解后

一个物理块放 512/10=51 个第一部分 一个物理块放 512/56=9 个第二部分 第一部分占块=256/51=6 第二部分占块=256/9=29 平均访盘次数=(1+6)/2+1=5

2)原因:减少查找文件内部号而产生的访问磁盘次数。因为在查找文件号过程中不需要把FCB所有内容读入,所以查找中需要读入的块数下降.但是,在找到匹配的FCB后,还需要进行一次访盘,才能读出全部的FCB信息,所以,在一定条件下并不能减少访盘次数

m?1n?1 ?1??m?n?222

3、文件顺序存取与随机存取的主要区别是什么?它们对有结构文件与无结构文件的操作有何不同? 答:文件的顺序存取就是严格按照文件中的物理记录排列顺序依次存取。文件的随机存取则允许随意存取文件中的任意一个记录,而不论上次存取哪个记录。

对于有结构的文件的顺序存取,如果当前存取记录为Ri,则下次要存取的记录自动确定为Ri+1。对于无结构的文件,顺序存取法按读写位移从当前位置读写,每读完一段记录后,读写位移自动加上这段长度,然后根据该位移读写后面的信息。

对于有结构的文件,若记录是定长的,则随机读取法允许用户随机读取文件中的任意记录;如果记录是变长的,则随机读取时间上退化为顺序读取,效率大为降低。对于无结构文件,随机存取必须事先用命令将读写位移移到欲读写的位置,然后进行读写.

4、使用文件系统时,通常要显式地进行OPEN和CLOSE操作,问(1)这样做的目的是什么?(2)能否取消显式的OPEN和CLOSE操作?应该如何做?(3)如果取消了显式的OPEN和CLOSE操作,有什么不利?

1)主要是为了提高资源利用率,因为Open操作使文件访问可以直接对已在内存中的FCB进行访问,加快了访问速度. 此外,也是为了保证数据的安全,因为close操作切断的是文件与内存的联系,且在文件打开过程中若改变了FCB的信息,还将把改变信息写回外存,因此对延迟写系统不至于使数据丢失.

2)可以取消。这样的话,系统在进行文件操作前需要判断文件是否已打开;如果没打开,需要自动完成打开功能,以建立用户与文件的联系。此外,系统结束时需要自动关闭所有被打开的文件(若FCB内容有改动还需要写回目录文件)

3) 取消“打开”操作使得文件的读写操作变得复杂起来,这是因为每次读文件前都需判断文件是否已被打开。

期末例题:

32

一、填空题

1. 定义一个进程,包括三个基本要素,它们是( )、( )和( )。

2. 虚拟存储器通常由( )和( )两级存储系统组成。为了在一台特定的机器上执行程序,必须

把( )映射到这台机器主存储器的( )空间上,这个过程称为( )。

二、判断题

1. 采用多道程序设计的系统中,系统的程序道数越多,系统的效率越高。 2. 作业一旦被作业调度选中,即占有CPU。

三、单项选择题

1.如有3个进程共享一个互斥段,每次最多可以允许2个进程进入互斥段,则信号量的变化范围是() a.2,1,0,-1 b.3,2,1,0 c.2,1,0,-1,-2 d.1,0,-1,-2 2.在I/O设备控制方式的发展过程中,最主要的推动力是()。

a.提高资源利用率 b.提供系统吞吐量 c.减少CPU对I/O控制的干预 d.提高CPU和I/O设备并行操作的程度 四、简答

1. I/O软件分为哪几层?向设备寄存器写命令是哪层实现的功能?检查用户是否有权使用设备呢? 2. 文件目录和目录文件有什么不同?目前广泛采用的目录结构形式是哪种?优点是什么?

五、综合题

1. 用在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为2K字节,对应的页表如下表所示。

现有逻辑地址为0A5CH,经过地址变换后所对应的物理地址是

2. 小河中铺了一串垫脚石用于过河。试说明什么是过河问题中的死锁?并给出破坏死锁4个必要条件均可

以用于过河的解法。 页号 0 1 2 3

答案:

一、填空题

1. 定义一个进程,包括三个基本要素,它们是程序,数据和PCB 。

2. 虚拟存储器通常由内存和外存两级存储系统组成。为了在一台特定的机器上执行程序,必须把逻

辑地址映射到这台机器主存储器的物理地址空间上,这个过程称为地址映射。

二、判断题

1. 采用多道程序设计的系统中,系统的程序道数越多,系统的效率越高。F 2. 作业一旦被作业调度选中,即占有CPU。F

三、单项选择题

1.如有3个进程共享一个互斥段,每次最多可以允许2个进程进入互斥段,则信号量的变化范围是 a a.2,1,0,-1 b.3,2,1,0 c.2,1,0,-1,-2 d.1,0,-1,-2 2.在I/O设备控制方式的发展过程中,最主要的推动力是(d)。

a.提高资源利用率 b.提供系统吞吐量 c.减少CPU对I/O控制的干预 d.提高CPU和I/O设备并行操作的程度 四、简答

1. I/O软件分为哪几层?向设备寄存器写命令是哪层实现的功能?检查用户是否有权使用设备呢?

答:分为四层,即中断处理程序、设备驱动程序、与设备无关的软件部分、用户程序空间的软件。向设备寄存器写命令由设备驱动程序完成,检查用户是否有权使用设备由与设备无关的软件部分完成 2 . 文件目录和目录文件有什么不同?目前广泛采用的目录结构形式是哪种?优点是什么?

答:文件目录用来保存文件控制块信息。文件系统把同一个子系统上的文件的文件目录组成一个独立的

33

块号 5 10 4 7

文件,这个由全部文件目录组成的文件称目录文件。这是两个不同的概念。文件目录记录文件的管理信息,用于对单个文件的控制;目录文件是由全部文件目录组成的文件,用于对整个文件系统的管理。

目前常用的目录结构形式是树形目录结构,主要优点是:检索效率高,允许文件重名,确切反映了信息的层次结构,并且可以利用层次结构实现文件的共享和保护。

五、综合题1.用在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为2K字节,对应的页表如下表所示。现有逻辑地址为0A5CH,经过地址变换后所对应的物理地址是525CH页号块号0000 1010 0101 1100 0510第二步,查页表,计算物理起始地址;第三步,拼接物理地址1240101 0010 0101 1100 372. 小河中铺了一串垫脚石用于过河。试说明什么是过河问题中的死锁?并给出破坏死锁4个必要条件均可以用于过河的解法。答:当垫脚石每次只允许一个人通过,并且两人在河中相遇时都不退让则出现死锁。破坏死锁的四个必要条件方法如下:?破坏”互斥”条件:加宽垫脚石,允许两个共享一块石;?破坏“请求保持”条件:在过河前,每个人必须申请使用所有垫脚石。?破坏“不剥夺”条件:当两人在河中相遇时强行要求过河的另一方撤回。?破坏”环路等待”条件:为避免河中两人都要求对方的垫脚石而铺设两串垫脚石供双方使用。答:第一步,确定页号和页内地址页内地址长度:11位页号:5位 34

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

Top