一.名词解释
抢占式进程调度进程状态系统调用中断响应线程联想存储器死锁通道地址重定位高速缓存可再入程序
抖动索引文件作业控制块目录项设备驱动程序虚存逻辑空间物理空间
二.填空题
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=分钟
(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 =分钟
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字节),且已知该作业的页面映像(即页表)见下表。
02
14
26
38
试借助地址变换图,求现有效逻辑地址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;
300kb
100kb
112kb
300kb
100kb
112kb
150kb
50kb
90kb
10kb
100kb
112kb
300kb
100kb
112kb
300kb
100kb
112kb
150kb
90kb
60kb
100kb
50kb
62kb
程序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)一个普通文件最多可以有的页数为页
(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操作写出它们能并发执行的程序。
P3P5