操作系统复习题(2)及答案全解 下载本文

一. 名词解释

抢占式进程调度 进程状态 系统调用 中断响应 线程 联想存储器 死锁 通道 地址重定位 高速缓存 可再入程序

抖动 索引文件 作业控制块 目录项 设备驱动程序 虚存 逻辑空间 物理空间

二. 填空题

1.现代操作系统的两个最基本的特征是( ),( ),( )和( ) 2.操作系统是计算机系统中的一个( ),它管理和控制计算机系统中的( ) 3.允许多个用户以交互方式使用计算机的操作系统称为( ),允许多个用户将多个作业提交给计算机集中处理的操作系统称为( ),计算机系统能及时处理过程控制数据并做出响应的操作系统称为( )。

4.用户与操作系统之间的接口主要分为()和( )两类。 5.进程控制块的初始化工作包括(),()和( )。 6.在操作系统中引入线程概念的主要目的是( )。

7.程序并发执行与顺序执行时相比产生了一些新特性,分别是:( ),( )和( )。

8.进程是一个程序对某个数据集的( )。

9.如果系统有N个进程,则在等待队列中进程的个数最多可为( )个。 10.在操作系统中,不可中断执行的操作称为( )。 11.如果信号量的当前值为-4,则表示( )。

12.在有M个进程的系统中出现死锁时,死锁进程的个数K应该满足的条件是( )。

13.不让死锁发生的策略可以分为静态和动态的两种,死锁避免属于( )。 14.若使当前运行进程总是优先级最高的,应选择( )进程调度算法。 15.在进程中,访问( )的代码称为临界区。为保证进程( )使用临界区,应在进程的临界区前设置( ),在临界区后设置( )。

16.在采用请求分页式存储管理的系统中,地址变换可能会因为( ),( ),和( )

等原因而产生中断。

17.在可变分区存储管理中,分区的保护通常采用( ) 和 ( )两种方式。

18.在分区分配算法中,首次适应算法倾向于优先利用内存中( )部分的空闲分区,从而保留了( )部分的大空闲区。

19.不让死锁发生的策略可以分为静态和动态的两种,死锁避免属于( )。 20.若使当前运行进程总是优先级最高的,应选择( )进程调度算法。 21.缓冲区由( )和( )组成? 22.进行设备分配时所需的数据表格主要由( ),( ),( )和( )等。

23.设备管理中引入缓冲机制的主要原因由( ),( )和( ) 24.使用位示图(20行,30列)表示空闲盘块状态。当分配一个盘块号为132号时,其在位示图中的行,列数为( ),( )。当释放一个盘块号为318时,其所在位示图中的行,列数位( ),( ) 。

(注:行为0-――19,列为0-――29,首盘块号为1)。

25.主存储器与外围设备之间的信息传送操作称为( )。 26.P操作可以使进程由执行状态变为( )状态。

27.在设备管理中,为实现设备无关性,必须在设备命名时引入()和()。 28.如果时间片无穷大,则时间片轮转调度算法就变成()。 29.采用资源预分配法可以预防死锁,这是因为该方法可以( )。 30.请求分段式虚拟存储系统必须至少具有三种硬件支持: 即( )、( )和( )。

31.( )存储管理方案可解决小内存运行大作业。

三. 选择题

1.在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临

界区,所谓临界区是指( ):

A.一个缓冲区 B。一段数据区 C。同步机制 D。一段程序 2.一个进程是( ):

A.由协处理机执行的一个程序 B。一个独立的程序 + 数据集 C.PCB结构与程序和数据的组合 D。一个独立的程序 3.在操作系统中,死锁出现是指( )

A.计算机系统发生重大故障 B。资源数目远远少于进程数 C.若干进程因竞争资源而无限等待其他进程释放已占有的资源 D.进程同时申请的资源数超过资源总数

4.若系统有三个并发进程,都需要同类资源4个,试问该系统不会发生死

锁的最少资源数是( )

A. 9 B。 10 C。11 D。12 5.操作系统中,当( )。进程从执行状态转变为就绪状态。

A) 进程被进程调度程序选中, B)时间片完

C) 等待某一事件 D)等待的时间发生 6.最佳适应算法的空白区是( )。

A)按大小递减顺序连在一起。 B)按大小递增顺序连在一起 C)按地址由小到大排列 D)按地址由大到小排列 7.把作业地址空间中使用的逻辑地址变成内存中物理地址称为( )。

A)加载 B)重定位 C)物理化 D)逻辑化 8.虚存的基础是( ),其基本含义是( )

A)局部性理论 B)代码的顺序执行 C)程序执行时对内存访问不均匀

D)变量的连续访问 E)指令局部性

9.具有虚拟存储功能的管理方法包括( ) A)可变分区存储管理 B)页式存储管理 C)段式存储管理 D)段页式存储管理 10. 存储管理方案中,( )可采用覆盖技术。

A) 单一连续区存储管理 B)可变分区存储管理 C)段式存储管理 D)段页式存储管理 11. 在请求页式存储管理的页表中,其状态位作A使用,修改为作B使用,

访问位作C使用,外存地址做D使用,A是( ),B是( ),C是( ),D是( )

A)页面分配 B)置换算法 C)程序访问 D)换出页面 E)页面调入

12. 文件系统的主要目的是( )

A)实现对文件的按名存取 B)实现虚拟存储

C)提高外存的读写速度 D)用于存储系统文件

13. 在文件系统中,为实现文件保护一般应采用哪些方法?( ) (A) 口令 (B)密码 (C)访问控制 (D)复制

(E)再读/写文件之前使用OPEN (F)在读/写文件之后使用CLOSE

四. 判断正误

1.进程由进程控制块和数据集以及对该数据集进行操作的程序组成。( ) 2.进程上下文是进程执行活动全过程的静态描述。( ) 3.并发是并行的不同表述,其原理相同。( )

4.所谓多道程序设计,即指每一时刻可以有若干个进程在进行。( ) 5.用管程实现进程同步时,管程中的过程是不可中断的。 ( )

6.PV操作不仅可以用来实现进程的同步与互斥,还可以用来防止进程的死

锁。( )

7.银行家算法是用于防止进程死锁的。

8.由于短作业优先算法服务短者,故可用于分时系统。( )

9.请求分页存储管理系统,若把页面的大小增加一倍,则缺页中断次数会

减少一半。( )

10. 地址即程序执行时所要访问的内存地址。( )为了使程序在内存中

浮动,编程时都是用逻辑地址。因此,必须在地址转换后才能得到主存的正确地址( )。

11. 同一文件在不同的存储介质应该用相同的组织形式( )。 五. 简答

1.产生死锁的原因和必要条件是什么?解决死锁问题可破坏必要条件的哪几条,分别采用何种算法? 2.同步与互斥有何不同?

3. 消息缓冲通信技术是一种高级通信机制,

(1) 试叙述高级通信机制与低级通信机制P,V元语操作的主要区别。 (2) 给出消息缓冲机制的基本工作原理

(3) 消息缓冲通信机制中提供发送原语SEND(RECEIVE。A),调用参数A

表示发送消息的内存区首地址,试设计相应的数据结构,并用PV原语操作实现SAND原语。

4.在多道操作系统控制下,一个作业反复执行多次,它的运行时间都相同吗?为什么?

5.现有两道作业同时执行,一道以计算为主,另一道以输入输出为主,你将怎样赋予作业进程占有处理机的优先级?为什么?

6.什么是动态链接?用何种内存分配方法实现这种链接技术? 7.覆盖技术与虚拟存储技术有何本质不同?交换技术与虚存中使用的调入/调出技术有何相同与不同之处。

8.如果允许页表中的两个页表同时指向同一块,那么将产生什么后果? 9.在设备管理中,何谓设备独立性,如何实现设备的独立性?

10.打印机和磁盘在计算机系统中都是共享资源,当多个作业共享时有什么不同?

何谓虚拟设备?请说明SPOOLING系统是如何实现虚拟设备的?

六.

1. 假设在单处理机上有五个(1,2,3,4,5)进程争夺运行,其运行时间分别为10,1,2,1,5秒,其优先级分别为3,1,3,4,2,这些进程到达次序依次为1,2,3,4,5。试回答:

给出这些进程分别使用轮转法,SPF(短作业优先)和非剥夺优先级调度法调度时的运行进度表,其中轮转法中时间片 = 2

在上述各算法的调度下每个进程的周转时间和等待时间为多少?

具有最短平均等待时间的算法是哪个?

2. 有5个任务A ,B,C,D,E几乎同时到达,他们预计运行时间为10,6,2,4,8分钟,其优先级分别为3,5,2,1,和4,这里5为最高优先级。对于下列每一种调度,计算其平均进程周转时间(进程切换开销不考虑)。

先来先服务 优先级调度

时间片轮转(时间片为2) 解答:

(1)先来先服务: 进程 周转时间 0+10=10 10+6=16 16+2=18 18+4=22 22+8=30 平均周转时间:(10+16+18+22+30)/5=19.2分钟 (2)优先级调度 周转时间 0+6=6 6+8=14 14+10=24 24+2=26 26+4=30 平均周转时间:(6+14+24+26+30)/5=20分钟 (3)时间片轮转: 周转时间 30 22

6 16 28 平均周转时间:(30+22+6+16+28)/5 =20.4分钟

3. 某寺庙,有小,老和尚若干,由小和尚提水如缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井窄,每次只能容一个桶取水。水桶总数为3个。每次入,取缸水仅为1桶,且不可同时进行。试给出有关取水,入水的算法。

Mutex1 = 1,mutex2 = 1,empty = 10,full = 0, count =3 Repeat Begin :

L1: P(empty); P(count); P(mutex1);

FETCH from jing; V(mutex1); P(mutex2); POUR;

V(mutex2); V(count); V(full); Until false;

Repeat P(full); P(count); P(mutex2);

Fetch from gang ; V(mutex2); V(empty); V(count); Until false

4. 某数据库有一个写进程,N个读进程,他们之间读写操作的互斥要求是: 写进程正在写该数据库时,不能有其他进程读该数据库。 写进程之间不互斥,可以同时读该数据库。

如果有若干进程正在读该数据库,一个写进程正在等待写,则随后欲读的进程也不能读该数据库,需等待写进程先写。 写PV READ :

While wc = 1 do skip; ------若有写进程请求,则后续读不响应

P(mutex);

Rc:=rc + 1;

If rc = 1 then P(wr); -----若是第一个读进程,则要看有无写进程

V(mutex); READING P(mutex); Rc := rc -1;

If rc = 0 then V(wr); -------若所有读进程都执行完,可以让其它进程读写

V(mutex);

WRITE

Wc := 1; -------当有写进程请求时,禁止其随后的读进程 P(wr); WRITING; Wc := 0; V(wr);

5. 假定一个操作系统的进程调度采用剥夺式短进程优先调度算法(单处理机系统),系统中各进程到达就绪队列的时刻以及执行时间如下表所示:

进程 到达就绪队列时刻 执行时间 1 0 8 2 1 4 3 2 9 4 3 5

请给出各进程的调度次序,并计算平均等待时间和平均周转时间。

6. 假定具有5个进程的进程集合 ={P 0,P1,P2,P3,P4} 系统中有三类资源,其中A 类资源有10个, B类资源有5个,C类资源有7个,假定在某时刻有如下状态:

Allocation max available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3

求出Need,并说明当前系统是否处于安全状态,如果是,给出序列,如果不是,说明理由。

7. 假定某操作系统存储器采用页式存储管理,一进程在联想存储器中的页表现为:

页号 块号 0 f1 1 f2 2 f3 3 f4 不在联想存储器中的页表项为: 4 f5 5 f6 6 f7 7 f8 8 f9 9 f10

又假定该进程体(程序与数据)代码长度为320字,每页32字。现有逻辑地址(八进制)为:101,204,576,如果上述逻辑地址能翻译成物理地址,则说明翻译的过程,并指出具体的物理地址,如果上述逻辑地址不能翻译成物理地址,说明为什么?

8. 在采用页式存储管理的系统中,某作业的逻辑地址空间为4页(每页2048字节),且已知该作业的页面映像(即页表)见下表。

0 2 1 4 2 6 3 8

试借助地址变换图,求现有效逻辑地址4865所对应的物理地址。

9. 纯分页系统和请求式分页系统的主要差别是什么?假定在一个请求式存储管理系统中,某作业所涉及的页面依次是:3,2,1,4,5,3,2,1,5 并已知主存中有3个可供作业使用的空白存储块(块的大小与页面大小相同),试说明采用FIFO和LRU两种算法进行页面置换时,缺页中断的次数各是多少?

10. 某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生,规定:

a) 每两个学生组成一组,各占一台机器,协同完成上机实习; b) 只有一组两个学生到齐,并且此时机房有空闲机器时,该组

学生才能进入机房;

c) 上机实习由一名教师检查,当学生上完机后,教师检查完一

组学生的实习后,这组学生才能同时离开。

试用P,V操作模拟上机实习的过程。(提示:除了有学生和教师进程外,还应该有门卫进程) student:=0;

computer:=2m enter:=0 finish:=0 test:=0; student: begin

P(computer) ----- 得到一台计算机

V(student) ----- 有学生到达,通知门卫 P(enter) ----- 等待进入 Practice;

V(finish); ----- 实习结束,通知教师 P(test); ----- 等待教师检查 V(computer); ----- 释放计算机资源

End;

Teacher: begin

P(finish); -----等待学生实习结束 P(finish); -----等待另一学生实习结束 Check;

V(test); -----检查完成 V(test); ----检查完成 End; Guard: begin

P(student); -----等待学生到达 P(student); -----等待另一学生到达 V(enter); ---- 允许学生进入 V(enter); ----允许另一学生进入 End;

11. 有一操作系统采用段式管理,用户区主存为512KB,空闲链接入空闲链表,分配时截取空块的前半部分(小地址部分)。初始时全部空闲。在执行了如下申请,释放操作序列后:(1) reg (300kb), (2) reg (100kb), release (300kb), (3) reg(150kb), (4) reg(50kb), (5) reg ( 90kb)

采用最先适配,空闲表中有哪些空块,用图示的方式表示。(指出大小及始址)

采用最佳适配,空闲表中有哪些空块。用图示的方式表示。(指出大小及始址)

若随后又要申请80KB,针对上述两种情况会产生什么后果?这说明了什么问题?

最先适配:

最佳适配:

又申请80KB,最先适配可满足,最佳适配不能满足

12. 有一矩阵:

VAR A: ARRAY[ 1..100,1..100] OF INTEGER; 按先行后列次序存储。

在一个虚存系统中,采用LRU淘汰算法,一个进程有三页内存空间,每页可以存放200个整数,其中第一页存放程序,且假定程序已经在内存。

程序 A :

FOR I:=1 TO 100 DO FOR J:=1 TO 100 DO A [I,J] :=0;

程序B

FOR J:=1 TO 100 DO FOR I:=1 TO 100 DO A [I,J] :=0;

分别就程序A 和 B 的执行过程计算缺页次数。

解: 共 100*100个变量,每页存放200个,共占100*100/200=50页。

程序A的访问轨迹为:

A[1,1],A[1,2],A[1,3],…A[1,100] A[2,1],A[2,2],A[2,3],…A[2,100] . .

A[100,1],A[100,2],A[100,3],…A[100,100] 根据变量访问规律可知访问页为: 1,2,3,。。。50 中断次数为50次

程序B的访问轨迹为:

A[1,1],A[2,1],A[3,1],…A[100,1] A[1,2],A[2,2],A[3,2],…A[100,2] . .

A[1,100],A[2,100],A[3,100],…A[100,100]

可得页面访问轨迹为: 1,1,2,2,3,3,。。。。50,50,1,1,2,2,3,3,50,50,。。。。共重复100次,每次中断次数为50次,共计50*100=5000次。

13. 假定有一个开方程序SQRT,被两个进程共享,开方程序如下: (1) SQRT(X,Y)

(2) IF X<0 THEN GOTO (SQRT,L); (3) Y:=’THE RESULT OF SQRT’; (4) RETURN;

(5) (SQRT,L) :’ERROR’; (6) RETURN

若系统采用段式管理,应如何安排该程序?为什么?

答:该共享程序引用了自身的某个地址(语句2引用该程序自身),则各共享进程必须用同一段号来共享这一段。下面具体说明若不使用同一段号会出现何种问题:作业1和作业2分别将共享段SQRT安排在逻辑空间的第1段和0段,将出现如下问题:SQRT段调入主存时应该将语句2的符号地址转换为逻辑地址,即把(SQRT,L)转换成(段号, L),若与作业1 一致,则为(1,L),当作业2运行时,执行到2,则执行GOTO(1,L),按照段式系统的工作原理,应该先查段表项1,然后合成物理地址,这显然会造成错误,即转移到作业2的第一段中去。

14.

化简如图所示的资源分配图,并说明有无进程处于死锁状态?

15. 有一个文件系统如图所示,图中的框表示目录,圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不设文件控制块,普通文件组织成索引文件。目录文件指示下一级文件名及其磁盘地址(各占2个子,共4个字节)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块最后4个字节供拉链使用。下级文件在上级文件目录文件中的次序在图中为自左至右。每个磁盘块有512个字节,与普通文件的一页等长。

普通文件的文件控制块组织如图所示。其中, 每个磁盘地址占2个字节,前10个地址指示 该文件前10页的地址。第11个地址指示一级 索引表地址,一级索引表中每个磁盘地址指示 一个文件页地址;第12 个地址指示二级索引 表地址,二级索引表中每个地址指示一个一级 索引表地址;第13个地址指示三级索引表地址 ,三级索引表中每个地址指示一个二级索引表 地址。 问:

(1) 一个普通文件最多可有多少个文件页?

(2) 若要读文件J中某一页,最多启动磁盘多少次? (3) 若要读文件W中某一页,最少启动磁盘多少次?

(4) 就上一问而言,为最大限度减少启动磁盘的次数,可采用什么方法?

此时,磁盘最多启动多少次?

答:由于一个索引表占一个磁盘块(512字节),一个磁盘地址占2个字节,因此一个一级索引表可容纳256个磁盘地址。同样,一个二级索引表可容纳256个一级索引表地址,一个三级索引表可容纳256个二级索引表地址。这样,一个普通文件最多可以有的页数为 10+256+256*256+256*256*256 对于访问文件J,首先从内存中的根目录文件中找到目录A的目录文件,读入内存(一次访问磁盘),然后再从目录A的目录文件中找出目录D的文件磁盘地址,并读入内存(第二次访问磁盘)。在目录D的目录文件中,读出文件J的文件控制块地址,并读入内存(第三次访问磁盘)。若要访问的页是文件J中通过三级索引表找到的页面,则还需要访问磁盘三次(即读入三级索引表,读入二级索引表,读入一级索引表)。

对于访问文件W,首先从内存中的根目录文件中找到目录C的目录文件,读入内存(一次访问磁盘),然后再从目录C的目录文件中找出目录I的目录文件磁盘地址,并读入内存(第二次访问内存)。然后,再依次访问目录P和目录U(第三次,第四次访问磁盘),读出文件W的文件控制块(第五次访问磁盘)。若访问的页是文件W的文件控制块中直接指出的磁盘地址,则可直接访问该页。

由于通过文件控制块访问文件时所需的访问磁盘次数无法改变,因此要减少访问磁盘的次数, 只有通过减少访问目录文件的次数来达到。 (1) 一个普通文件最多可以有的页数为16843018页 (2) 若要读文件J 中某一页,最多启动磁盘7次 (3) 若要读文件W中某一页,最少启动磁盘6次

(4) 若要最大限度减少启动磁盘的次数,可以将文件W链接在根目录

的最左端。这样可减少4次访问磁盘的次数。此时要读文件W中某 一页,最多启动磁盘5次。

16. 今有3个并发进程R,M,和P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有N个单元。进程R负责从输入设备读信息,每读一个字符后,把它存放在缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格符,则把它改成‘,’;进程P负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P取出后,则又可用来存放下一次读入的字符。请用P,V操作写出它们能并发执行的程序。

17. 一组合作进程,执行顺序如图,请用操作实现进程间的同步操作。