1、系统架构设计师-操作系统(二)及答案解析(总分:16.00,做题时间:90 分钟)一、单项选择题(总题数:9,分数:16.00)1.计算机系统中硬件层之上的软件通常按照三层来划分,如图所示,图中分别表示_。(分数:1.00)A.B.C.D.某计算机系统中有一个 CPU、一台扫描仪和一台打印机。现有三个图像任务,每个任务有三个程序段:扫描 Si,图像处理 Ci和打印 Pi(i=1,2,3)。图为三个任务各程序段并发执行的前趋图,其中,_可并行执行,_的直接制约,_的间接制约。(分数:3.00)(1).A“C 1S2“,“P1C2S3“,“P2C3“B“C 1S1“,“S2C2P2“,“C3P3“
2、C“S 1C1P1“,“S2C2P2“,“S3C3P3“D“S 1S2S3“,“C1C2C3“,“P1P2P3/(分数:1.00)A.B.C.D.(2).AS 1受到 S2和 S3、C 1受到 C2和 C3、P 1受到 P2和 P3BS 2和 S3受到 S1、C 2和 C3受到 C1、P 2和 P3受到 P1CC 1和 P1受到 S1、C 2和 P2受到 S2、C 3和 P3受到 S3DC 1和 S1受到 P1、C 2和 S2受到 P2、C 3和 S3受到 P3(分数:1.00)A.B.C.D.(3).AS 1受到 S2和 S3、C 1受到 C2和 C3、P 1受到 P2和 P3BS 2和 S
3、3受到 S1、C 2和 C3受到 C1、P 2和 P3受到 P1CC 1和 P1受到 S1、C 2和 P2受到 S2、C 3和 P3受到 S3DC 1和 S1,受到 P1、C 2和 S2受到 P2、C 3和 S3到 P3(分数:1.00)A.B.C.D.2.采用微内核结构的操作系统提高了系统的灵活性和可扩展性,_。A并增强了系统的可靠性和可移植性,可运行于分布式系统中B并增强了系统的可靠性和可移植性,但不适用于分布式系统C但降低了系统的可靠性和可移植性,可运行于分布式系统中D但降低了系统的可靠性和可移植性,不适用于分布式系统(分数:1.00)A.B.C.D.3.若操作系统文件管理程序正在将修改
4、后的_文件写回磁盘时系统发生崩溃,对系统的影响相对较大。A用户数据 B用户程序C系统目录 D空闲块管理(分数:1.00)A.B.C.D.某虚拟存储系统采用最近最少使用的(LRU)页面淘汰算法,假定系统为每个作业分配 4 个页面的主存空间,其中一个页面用来存放程序。现有某作业的程序如下:Var A:Array1100,1100OF integer;i,j:integer;FOR i:=1 to 100 DoFOR j:=1 to 100 DoAi,j:=0;设每个页面可存放 200 个整数变量,变量 i、j 存放在程序页中。初始时,程序及 i、j 均已在内存,其余3 页为空。若矩阵 A 按行序存
5、放,那么当程序执行完后共产生_次缺页中断;若矩阵 A 按列序存放,那么当程序执行完后共产生_次缺页中断。(分数:2.00)(1).A50 B100C5000 D10000(分数:1.00)A.B.C.D.(2).A50 B100C5000 D10000(分数:1.00)A.B.C.D.4.操作系统为用户提供了两类接口:操作一级和程序控制一级的接口,以下不属于操作一级的接口是_。A操作控制命令 B系统调用C菜单 D窗口(分数:1.00)A.B.C.D.进程 P1、P2、P3、P4 和 P5 的前趋图如图所示。若用 PV 操作控制进程 P1P5 并发执行的过程,则需要设置 5 个信号量 S1、S2
6、、S3、S4 和 S5,进程间同步所使用的信号量标注在图中的边上,且信号量 S1S5 的初值都等于零,初始状态下进程 P1 开始执行。在如图所示的 PV 操作示意图中 a、b 和 c 处应分别填写_;d 和 e 处应分别填写_,f 和 g 处应分别填写_。(分数:3.00)(1).AV(S1)V(S2)、P(S1)和 V(S3)V(S4)BP(S1)V(S2)、P(S1)和 P(S2)V(S1)CV(S1)V(S2)、P(S1)和 P(S3)P(S4)DP(S1)P(S2)、V(S1)和 P(S3)V(S2)(分数:1.00)A.B.C.D.(2).AP(S1)和 V(S5) BV(S1)和
7、P(S5)CP(S2)和 V(S5)DV(S2)和 P(S5)(分数:1.00)A.B.C.D.(3).AP(S3)和 V(S4)V(S5) BP(S3)和 P(S4)P(S5)CV(S3)和 V(S4)V(S5) DV(S3)和 P(S4)P(S5)(分数:1.00)A.B.C.D.假设系统中有 n 个进程共享 3 台打印机,任一进程在任一时刻最多只能使用 1 台打印机。若用 PV 操作控制 n 个进程使用打印机,则相应信号量 S 的取值范围为_;若信号量 S 的值为-3,则系统中有_个进程等待使用打印机。(分数:2.00)(1).A0,-1,-(n-1)B3,2,1,0,-1,-(n-3)
8、C1,0,-1,-(n-1)D2,1,0,-1,-(n-2)(分数:1.00)A.B.C.D.(2).A0 B1 C2 D3(分数:1.00)A.B.C.D.假设文件系统采用索引节点管理,且索引节点有 8 个地址项 iaddr0iaddr7,每个地址项大小为 4字节,iaddr0iaddr4采用直接地址索引,iaddrl5和 iaddr6采用一级间接地址索引,iaddr7采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为 1KB 字节,文件 File1 的索引节点如图所示。若用户访问文件 Filel 中逻辑块号为 5 和 261 的信息,则对应的物理块号分别为_;101 号物理块存放的是
9、_。(分数:2.00)(1).A89 和 90 B89 和 136C58 和 187 D90 和 136(分数:1.00)A.B.C.D.(2).AFilel 的信息 B直接地址索引表C一级地址索引表 D二级地址索引表(分数:1.00)A.B.C.D.系统架构设计师-操作系统(二)答案解析(总分:16.00,做题时间:90 分钟)一、单项选择题(总题数:9,分数:16.00)1.计算机系统中硬件层之上的软件通常按照三层来划分,如图所示,图中分别表示_。(分数:1.00)A.B. C.D.解析:操作系统(Operating System)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间
10、的接口,而为裸机配置的一种系统软件,如图所示。某计算机系统中有一个 CPU、一台扫描仪和一台打印机。现有三个图像任务,每个任务有三个程序段:扫描 Si,图像处理 Ci和打印 Pi(i=1,2,3)。图为三个任务各程序段并发执行的前趋图,其中,_可并行执行,_的直接制约,_的间接制约。(分数:3.00)(1).A“C 1S2“,“P1C2S3“,“P2C3“B“C 1S1“,“S2C2P2“,“C3P3“C“S 1C1P1“,“S2C2P2“,“S3C3P3“D“S 1S2S3“,“C1C2C3“,“P1P2P3/(分数:1.00)A. B.C.D.解析:(2).AS 1受到 S2和 S3、C
11、1受到 C2和 C3、P 1受到 P2和 P3BS 2和 S3受到 S1、C 2和 C3受到 C1、P 2和 P3受到 P1CC 1和 P1受到 S1、C 2和 P2受到 S2、C 3和 P3受到 S3DC 1和 S1受到 P1、C 2和 S2受到 P2、C 3和 S3受到 P3(分数:1.00)A.B.C. D.解析:(3).AS 1受到 S2和 S3、C 1受到 C2和 C3、P 1受到 P2和 P3BS 2和 S3受到 S1、C 2和 C3受到 C1、P 2和 P3受到 P1CC 1和 P1受到 S1、C 2和 P2受到 S2、C 3和 P3受到 S3DC 1和 S1,受到 P1、C 2
12、和 S2受到 P2、C 3和 S3到 P3(分数:1.00)A.B. C.D.解析:如图所示,当 S1执行完毕后,计算 C1与扫描 S2可并行执行;C 1与 S2执行完毕后,打印 P1、计算C2与扫描 S3可并行执行;P 1、C 2与 S3执行完毕后,打印 P2与计算 C3可并行执行。根据题意,系统中有三个任务,每个任务有三个程序段,从前趋图中可以看出,系统要先进行扫描 Si,然后再进行图像处理 Ci,最后进行打印 Pi,所以 C1和 P1受到 S1直接制约、C 2和 P2受到 S2的直接制约、C 3和 P3受到 S3的直接制约。系统中有一台扫描仪,因此 S2和 S3不能运行是受到了 S1的间
13、接制约。如果系统中有三台扫描仪,那么 S2和 S1能运行;同理,C 2和 C3受到 C1的直接制约、P 2和 P3受到 P1的间接制约。2.采用微内核结构的操作系统提高了系统的灵活性和可扩展性,_。A并增强了系统的可靠性和可移植性,可运行于分布式系统中B并增强了系统的可靠性和可移植性,但不适用于分布式系统C但降低了系统的可靠性和可移植性,可运行于分布式系统中D但降低了系统的可靠性和可移植性,不适用于分布式系统(分数:1.00)A. B.C.D.解析:现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。微内核操作系统结构
14、是 20 世纪 80 年代后期发展起来的。操作系统的一个发展趋势是将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下一个最小的核心,称之为微内核。通常的方法是将大多数操作系统功能由在用户态运行的服务器进程来实现。为了获取某项服务,用户进程(客户进程)将请求发送给一个服务器进程,服务器进程完成此操作后,把结果返回给用户进程。这样,服务器以用户进程的形式运行,而不是运行在核心态。因此,它们不能直接访问硬件,某个服务器的崩溃不会导致整个系统的崩溃。客户/服务器结构的另一个优点是它更适用于分布式系统。微内核技术的主要优点如下。统一的接口,在用户态和核心态之间无需进程识别。可伸缩
15、性好,能适应硬件更新和应用变化。可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统要移植到不同的硬件平台上,只需修改微内核中极少代码即可。实时性好,微内核可以方便地支持实时处理。安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅使用少量应用编程接口。支持分布式系统,支持多处理器的体系结构和高度并行的应用程序。虽然微内核操作系统具有诸多优点,但它并非完美无缺。例如,在运行效率方面,它就不如以前传统的操作系统。3.若操作系统文件管理程序正在将修改后的_文件写回磁盘时系统发生崩溃,对系统的影响相对较大。A用户数据 B用户程序C系统目录 D空闲块管理(分数:1.00
16、)A.B.C. D.解析:操作系统为了实现“按名存取”,必须为每个文件设置用于描述和控制文件的数据结构,专门用于文件的检索,因此至少要包括文件名和存放文件的物理地址,该数据结构称为文件控制块(File Control Block,FCB),文件控制块的有序集合称为文件目录,或称为系统目录文件。若操作系统正在将修改后的系统目录文件写回磁盘时系统发生崩溃,则对系统的影响相对较大。某虚拟存储系统采用最近最少使用的(LRU)页面淘汰算法,假定系统为每个作业分配 4 个页面的主存空间,其中一个页面用来存放程序。现有某作业的程序如下:Var A:Array1100,1100OF integer;i,j:i
17、nteger;FOR i:=1 to 100 DoFOR j:=1 to 100 DoAi,j:=0;设每个页面可存放 200 个整数变量,变量 i、j 存放在程序页中。初始时,程序及 i、j 均已在内存,其余3 页为空。若矩阵 A 按行序存放,那么当程序执行完后共产生_次缺页中断;若矩阵 A 按列序存放,那么当程序执行完后共产生_次缺页中断。(分数:2.00)(1).A50 B100C5000 D10000(分数:1.00)A. B.C.D.解析:(2).A50 B100C5000 D10000(分数:1.00)A.B.C. D.解析:虚拟存储管理的提出就是为了解决这一问题,应用程序在运行之
18、前未必全部装入内存,仅需将当前运行到的那部分程序和数据装入内存便可启动程序的运行,其余部分仍驻留在外存上。当要执行的指令或访问的数据不在内存时,再由操作系统通过请求调入功能将它们调入内存,以使程序能继续执行。如果此时内存已满,则还需通过置换功能,将内存中暂时不用的程序或数据调至外存上,腾出足够的内存空间后,再将要访问的程序或数据调入内存,使程序继续执行。这样,便可使一个大的用户程序能在较小的内存空间中运行,也可在内存中同时装入更多的进程使它们并发执行。从用户的角度看,该系统具有的内存容量比实际的内存容量大得多。将这种具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统称为虚拟存
19、储系统。局部性原理虚拟存储管理能够在作业信息不全部装入内存的情况下保证作业正确运行,是利用了程序执行时的局部性原理。局部性原理是指程序在执行时呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分。相应地,它所访问的存储空间也仅局限于某个区域。程序局部性包括时间局部性和空间局部性,时间局部性是指程序中的某条指令一旦执行,不久以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作;空间局部性是指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。工作集在虚拟存储管理中
20、,可能会出现这种情况,即对于刚被替换出去的页,立即又要被访问,需要将它调入,因无空闲内存又要替换另一页,而后者是即将被访问的页,于是造成了系统需花费大量的时间忙于进行这种频繁的页面交换,致使系统的实际效率很低,严重时导致系统瘫痪,这种现缘称为抖动现象。防止抖动现象有多种办法,例如,采取局部替换策略、引入工作集算法和挂起若干进程等。工作集是指在某段时间间隔内,进程实际要访问的页面的集合。引入虚拟内存后,程序只需有少量的内存就可运行,但为了使程序有效地运行,较少产生缺页,必须使程序的工作集全部在内存中。页面置换算法当内存中没有空闲页面,而又有程序和数据需要从外存中装入内存运行时,就需要从内存中选出
21、一个或多个页面淘汰出去,以便新的程序和数据装入运行,良好的页面置换算法应该淘汰那些被访问概率最低的页,将它们移出内存。随机淘汰算法。无法确定哪页被访问的概率较低时,随机地选择某个页面,并将其换出。轮转算法。按照内存页面的编号,循环地换出内存中一个可以被换出的页,无论该页是刚换进来还是已驻留内存很长时间。先进先出算法(First In First Out,FIFO)。FIFO 算法总是选择在内存驻留时间最长的一页将其淘汰。实现 FIFO 算法需要把各个已分配页面按页面分配时间顺序链接起来,组成 FIFO 队列,并设置一置换指针,指向 FIFO 队列的队首页面。FIFO 算法忽略了一种现象的存在,
22、那就是在内存中停留时间最长的页往往也是经常要访问的页。将这些页淘汰,很可能刚置换出去,又请求调用该页,致使缺页中断太频繁,严重降低内存的利用率。FIFO 的另一个缺点是它可能会产生一种异常现象。一般来说,对于任一作业或进程,如果给它分配的内存页面数越接近于它所要求的页面数,则发生缺页的次数会越少。但使用 FIFO 算法时,有时会出现分配的页而数增多,缺页次数反而增加的现象,称为 belady 现象。最近最久未使用算法(Least Recently Used,LRU)。当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。例如,考虑一个仅 460 个字节的程序的内存访问序列
23、(10,11,104,170,73,309,185,245,246,434,458,364),页面的大小为 100 个字节,则 460 个字节应占 5 页,编号为 04,第 0 页字节为 099,第 1 页为 100199,依此类推。得到页面的访问序列是(0,0,1,1,0,3,1,2,2,4,4,3),可简化为(0,1,0,3,1,2,4,3)。如果内存中有 200个字节可供程序使用,则内存提供 2 个页帧供程序使用。按照 FIF0 算法,共产生 6 次缺页中断,如表所示。FIFO 算法缺页中断01031243000333441411223按照 LRU 算法,共产生 7 次缺页中断,如表所示
24、。 LRU 算法缺页中断01031243000011441133223最近没有使用页面置换算法(No Used Recently,NUR)。在需要置换某一页时,从那些最近的一个时期内未被访问的页任选一页置换。只要在页表中增设一个访问位即可实现。当某页被访问时,访问位置为1,否则访问位置为 0。系统周期性地对所有引用位清零。当需淘汰一页时,从那些访问位为零的页中选一页进行淘汰。最优置换算法。选择那些永久不使用的,或者在最长时间内不再被访问的页面置换出去。因为要确定哪个页面是未来最长时间内不再被访问的,目前来说很难估计,所以,该算法通常用来评价其他算法。时钟页面替换算法(Clock)。使用页表中的
25、引用位,将作业已调入内存的页面链成循环队列,用一个指针指向循环队列中的下一个将被替换的页面。其实现方法如下:一个页面首次装入内存时,其引用位置1;在内存中的任何一个页面被访问时,其引用位置 1;淘汰页面时,存储管理从指针当前指向的页面开始扫描循环队列,把所遇到的引用位是 1 的页面的引用位清 0,并跳过这个页面;把所遇到的引用位是 0的页面淘汰掉,指针推进一步:扫描循环队列时,如果遇到的所有页面的引用位均为 1,则指针就会绕整个循环队列一圈,将碰到的所有页面的引用位清 0;指针停在起始位置,并淘汰掉这一页,然后指针推进一步。在本题中,从题干可知,作业共有 4 个页面的主存空间,其中一个已被程序
26、本身占用,所以在读取变量时可用的页面数只有 3 个。每个页面可存放 200 个整数变量,程序中 A 数组共有 100*100=10000 个变量。按行存放时,每个页面调入的 200 变量刚好是程序处理的 200 个变量,所以缺页次数为 10000/200=50。而按列存放时,虽然每个页面调取数据时,同样也读入了 200 个变量,但这 200 个变量中,只有 2 个是近期需要访问的(如:第 1 个页面调入的是 A*,1与 A*,2,但程序近期需要访问的变量只有 A1,1和A1,2),所以缺页次数为:10000/2=5000。4.操作系统为用户提供了两类接口:操作一级和程序控制一级的接口,以下不属
27、于操作一级的接口是_。A操作控制命令 B系统调用C菜单 D窗口(分数:1.00)A.B. C.D.解析:操作系统是用户和计算机之间的接口,用户通过操作系统的帮助可以快速、有效和安全可靠地使用计算机各类资源。通常操作系统提供两类接口,分别是程序一级的接口(程序接口)和操作一级的接口(联机用户接口和脱机用户接口)。用户与操作系统的接口通常是由“命令”和“系统调用”的形式表现出来的。命令是提供给用户在键盘终端上使用(命令接口),系统调用是用户在编程时使用(程序接口)。在不同的系统中,系统调用的实现方式可能不同,但大体上都可以把系统调用的执行过程分成以下几步。设置系统调用号和参数在一个系统中,往往都设
28、置了许多条系统调用命令,并赋予每条系统调用命令一个唯一的系统调用号。设置系统调用方式有 2 种方式。直接将参数送入相应的寄存器中,这是最简单的一种方式。这种方式的主要问题是由于寄存器数量有限,从而限制了设置参数的数目。参数表方式。将系统调用所需要的参数,放入一张参数表中,再将该参数表的指针放在某个规定的寄存器中。系统调用命令的一般性处理为了使不同系统调用能方便地转向相应的命令处理程序,在系统中配置了一张系统调用入口表。表中每个表目都对应一条系统调用命令,核心可利用系统调用号去查找该表,就可以找到相应命令处理程序的入口地址而去执行它。系统调用命令处理程序的处理过程为了提供系统调用的功能,操作系统
29、内必须有事先编制好的实现这些功能的子程序或过程。这些程序是操作系统程序模块的一部分,且不能直接被用户程序调用。程序员给定了系统调用名和参数之后是怎样得到系统服务的呢?这需要有一个类似于硬件终端处理的中断处理机构。当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有关信号给该处理机构。该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。在系统中为控制系统调用服务的机构称为陷阱处理机构。与此相对应,把由于系统调用引起处理中断的指令为陷阱指令。在操作系统中,每个系统调用都对应一个功能号。在陷阱指令中必须包括对应系统调用的功能号。而
30、且,在有些陷阱指令中,还带有传递给陷阱处理机构和内部处理程序的有关参数。为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名相对应。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。由于在系统调用处理结束之后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束之后,陷阱处理机构还要回复处理机现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。进程 P1、P2、P3、
31、P4 和 P5 的前趋图如图所示。若用 PV 操作控制进程 P1P5 并发执行的过程,则需要设置 5 个信号量 S1、S2、S3、S4 和 S5,进程间同步所使用的信号量标注在图中的边上,且信号量 S1S5 的初值都等于零,初始状态下进程 P1 开始执行。在如图所示的 PV 操作示意图中 a、b 和 c 处应分别填写_;d 和 e 处应分别填写_,f 和 g 处应分别填写_。(分数:3.00)(1).AV(S1)V(S2)、P(S1)和 V(S3)V(S4)BP(S1)V(S2)、P(S1)和 P(S2)V(S1)CV(S1)V(S2)、P(S1)和 P(S3)P(S4)DP(S1)P(S2)
32、、V(S1)和 P(S3)V(S2)(分数:1.00)A. B.C.D.解析:(2).AP(S1)和 V(S5) BV(S1)和 P(S5)CP(S2)和 V(S5)DV(S2)和 P(S5)(分数:1.00)A.B.C. D.解析:(3).AP(S3)和 V(S4)V(S5) BP(S3)和 P(S4)P(S5)CV(S3)和 V(S4)V(S5) DV(S3)和 P(S4)P(S5)(分数:1.00)A.B. C.D.解析:在多道程序系统中,由于资源共享与进程合作,使各进程之间可能产生两种形式的制约关系,一种是间接相互制约,例如,在仅有一台打印机的系统中,有两个进程 A 和 B,如果进程
33、A 需要打印时,系统已将打印机分配给进程 B,则进程 A 必须阻塞;一旦进程 B 将打印机释放,系统便将进程 A 唤醒,使之由阻塞状态变为就绪状态;另一种是直接相互制约,例如,输入进程 A 通过单缓冲区向进程 B 提供数据。当该缓冲区为空时,进程 B 不能获得所需的数据而阻塞,一旦进程 A 将数据送入缓冲区中,进程 B 就被唤醒。反之,当缓冲区满时,进程 A 就被阻塞,仅当进程 B 取走缓冲区中的数据时,才唤醒进程 A。进程同步主要源于进程合作,是进程之间共同完成一项任务时直接发生相互作用的关系,为进程之间的直接制约关系。在多道程序系统中,这种进程间在执行次序上的协调是必不可少的;进程互斥主要
34、源于资源共享,是进程之间的间接制约关系。在多道程序系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥要求保证每次只有一个进程使用临界资源。在每个进程中访问临界资源的程序段称为临界区,进程进入临界区要满足一定的条件,以保证临界资源的安全使用和系统的正常运行。信号量信号量是一个二元组(S,Q),其中 S 是一个整形变量,初值为非负数,Q 为一个初始状态为空的等待队列。在多道程序系统中,信号量机制是一种有效的实现进程同步与互斥的工具。信号量的值通常表示系统中某类资源的数目,若它大于 0,则表示系统中当前可用资源的数量;若它小于 0,则表示系统中等待使用该资源的进程数目,即在该信号量队列上排队
35、的 PCB 的个数。信号量的值是可变的,由 PV 操作来改变。PV 操作是对信号量进行处理的操作过程,而且信号量只能由 PV 操作来改变。P 操作是对信号量减 1,意味着请求系统分配一个单位资源,若系统无可用资源,则进程变为阻塞状态;V 操作是对信号量加 1,意味着释放一个单位资源,加 1 后若信号量小于等于 0,则从就绪队列中唤醒一个进程,执行 V 操作的进程继续执行。对信号量 S 进行 P 操作,记为 P(S);对信号量 S 进行 V 操作,记为 V(S)。P(S)和 V(S)的处理过程如表所示。P(S)和V(S)的处理过程P(S)V(S)S=S-1;if(S0)当前进程进入等待队列Q;阻
36、塞当前进程;else当前进程继续;S=S+1;if(S=0)从等待队列Q 中取出一个进程P;进程P 进入就绪队列;当前进程继续;else当前进程继续;实现互斥模型 使用信号量机制实现进程互斥时,需要为临界资源设置一个互斥信号量 S,其初值通常为1。在每个进程中将临界区代码置于 P(S)和 V(S)之间。必须成对使用 PV 原语,缺少 P 原语则不能保证互斥访问,缺少 V 原语则不能在使用临界资源之后将其释放。而且,PV 原语不能次序颠倒、重复或遗漏。 实现同步模型 使用信号量机制实现进程同步时,需要为进程设置一个同步信号量 S,其初值通常为 0。在进程需要同步的地方分别插入 P(S)和 V(S
37、)。一个进程使用 P 原语时,则另一个进程往往使用 V 原语与之对应。具体怎么使用要根据实际情况决定,下面举个简单例子来加以说明。 有两个进程 P1 和 P2,P1 的功能是计算 x=a+b 的值,a 和 b 是常量,在 P1 的前面代码中能得到;P2 的功能是计算 y=x+1 的值。若这两个进程在并发执行,则有同步关系:P2 要执行 y=x+1 时必须等到 P1 已经执行完 x=a+b 语句。P2 进程可能会因为要等待 x 的值而阻塞,如果是这样的话,P1 进程就要在计算出 x 的值后唤醒 P2 进程。因此,为了使 P1 和 P2 正常运行,用信号量来实现其同步的过程如表所示。 P1 和 P
38、2的同步过程P1 P2x=a+b;V(S);P(S);y=x+1;再举一个较为复杂的例子,以加深对 PV 操作的理解。设有两个并发进程 Read 和 Print,Read 负责从输入设备读入信息到一个容量为 N 的缓冲区,Print 负责从缓冲区中取出信息送打印机输出。设置信号量mutex 的初值为 1,empty 的初值为 N,full 的初值为 0,则程序如表所示。 在本题中,从题目的前趋图,可以得知以下约束关系: P1 执行完毕,P2 与 P3 才能开始; P2 执行完毕,P4 才能开始; P2 与P3 都执行完,P5 才能开始。 实现Read 和Print 的程序ReadPrintbe
39、ginP(empty);beginP(full)P(mutex);读入;V(mutex);V(full);endP(mutex);输出V(mutex);V(empty)end分析清楚这种制约关系,解题也就容易了。从“P1 执行完毕,P2 与 P3 才能开始”可以得知:P2 与 P3 中的 b 与 d 位置,分别应填 P(S1)和 P(S2),以确保在 P1 执行完毕以前,P2 与 P3 不能执行。当然当 P1 执行完毕时,应该要对此解锁,所以 P1 中的a 位置应填 V(S1)与 V(S2)。从“P2 执行完毕,P4 才能开始”可以得知:P4 的 f 位置,应填 P(S3),而 P2 的结束位
40、置 c 应有 V(S3)。从“P2 与 P3 都执行完,P5 才能开始”可以得知:P5 的 g 位置,应填 P(S4)与 P(S5),而对应的 P2 的结束位置 c 应有 V(S4),结合前面的结论可知,c 应填 V(S3)与 V(S4)。而 e 应填 V(S5)。假设系统中有 n 个进程共享 3 台打印机,任一进程在任一时刻最多只能使用 1 台打印机。若用 PV 操作控制 n 个进程使用打印机,则相应信号量 S 的取值范围为_;若信号量 S 的值为-3,则系统中有_个进程等待使用打印机。(分数:2.00)(1).A0,-1,-(n-1)B3,2,1,0,-1,-(n-3)C1,0,-1,-(
41、n-1)D2,1,0,-1,-(n-2)(分数:1.00)A.B. C.D.解析:(2).A0 B1 C2 D3(分数:1.00)A.B.C.D. 解析:信号量是 PV 操作中的一种特殊变量,该变量的值指示一类资源的数量,当信号量的值为负数时,又能展示出目前系统中有多少个进程在等待该资源。在本题中,系统有 n 个进程,有 3 台打印机。初始状态时,没有 1 个进程使用打印机,此时信号量 S 应为3,代表有 3 台打印机资源可用。而如果此时有 1 个进程占用了 1 台打印机,则信号量 S 变为 2,代表目前只有 2 台打印机可用,依此类推。信号量的最小值为-(n-3),即表示当前状态为:3 个进
42、程占用了 3 台打印机资源,而剩余的 n-3 个进程都在等待打印机资源。所以 S 的取值范围是:3,2,1,0,-1,-(n-3)。有了前面的分析,接下来这一问就非常好回答了。信号量为-3,表示有 3 个进程在等待使用打印机。假设文件系统采用索引节点管理,且索引节点有 8 个地址项 iaddr0iaddr7,每个地址项大小为 4字节,iaddr0iaddr4采用直接地址索引,iaddrl5和 iaddr6采用一级间接地址索引,iaddr7采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为 1KB 字节,文件 File1 的索引节点如图所示。若用户访问文件 Filel 中逻辑块号为 5 和
43、 261 的信息,则对应的物理块号分别为_;101 号物理块存放的是_。(分数:2.00)(1).A89 和 90 B89 和 136C58 和 187 D90 和 136(分数:1.00)A.B.C. D.解析:(2).AFilel 的信息 B直接地址索引表C一级地址索引表 D二级地址索引表(分数:1.00)A.B.C.D. 解析:文件物理结构(物理文件)是指文件在存储介质上的组织方式,它依赖于物理的存储设备和存储空间,可以看作是相关物理块的集合。由于物理结构决定了信息在存储设备上的存放位置和方式,因此,信息的逻辑位置到物理位置的映射关系也是由物理结构决定的。常用的文件物理结构有顺序结构、链
44、接结构和索引结构。顺序结构(连续结构)。逻辑上连续的记录构成的文件分配到连续的物理块中。这种方式管理简单,存储速度快,空间利用率低,但文件记录插入或删除操作不方便,只能在文件末尾进行。链接结构(串联结构)。将信息存放在非连续的物理块中,每个物理块均设有一个指针,指向其后续的物理块,从而使得存放同一文件的物理块链接成一个串联队列。链接方式又分为显式链接和隐式链接两种。显式链接的链接指针在专门的链接表中,隐式链接的指针在存放信息的物理块中。链接结构空间利用率高,且易于文件扩充,但查找效率比较低。索引结构(随机结构)。为每个文件建立一个索引表,其中每个表项指出信息所在的物理块号,表目按逻辑记录编写顺
45、序或按记录内某一关键字顺序排列。对于大文件,为检索方便,可以建立多级索引,还可以将文件索引表也作为一个文件(称为索引表文件)。该方式可以满足文件动态增长的要求且存取方便,但建立索引表增加了存储空间的开销,对于多级索引,访问时间开销较大。例如,在 UNIX 系统中,文件的物理结构采用直接、一级、二级和三级间接索引技术,假如索引节点有 13个地址项,并且规定地址项 09 采用直接寻址方法,地址项 10 采用一级间接寻址,地址项 11 采用二级间接寻址,地址项 12 采用三级间接寻址。每个盎块的大小为 1KB,每个盘块号占 4B,那么,对于访问文件的第 356168B 处的数据来说,先进行简单换算
46、356168/1024348KB,由于地址项 09 可直接寻址 10个物理盘块,每个物理块大小为 1KB,所以访问文件的前 10KB 范围的数据时是直接寻址。地址项 10 采用一次间接寻址,即地址项 10 里存放的是一级索引表的地址,因为每个盘块号占 4B,故该索引表可存放1024/4=256 个物理块的地址,所以当访问文件的 10266KB 之间的数据时是一次间接寻址。由于要访问的数据是 348KB,所以还有 348-266=82KB。显然地址项 11 足够存取这些数据,因此,最多就在地址项 11而无须存取地址项 12,即只需要二级间接寻址。在本题中,索引节点共有 8 个地址项,共分 3 个
47、梯度:直接索引,一级间接索引,二级间接索引。现在要求确认逻辑块号为 5 与 261 对应的物理块号(注意:块号是从 0 开始编址的)。在直接索引中,索引节点对应的物理块用于直接存放文件内容,节点中存放的地址便是物理块号的首地址,如 0 号逻辑块,它所对应的物理块号为 50;1 号逻辑块对应的物理块号为 67;但 5 号逻辑块就已经到了一级间接索引了。在一级间接索引中,索引节点所对应的物理块并不是用于存储文件内容,而是存放物理块的地址,物理块的地址占 4 字节,所以一个块可以存放 1024/4=256 个地址。5 号逻辑块对应的是一级间接索引的第 1 个块,所以物理块号为 58。依此类推,6 号逻辑块对应的是 59 号物理块;由于 5(直接索引的块数)+256(1 级间接索引中,1 个物理块可容地址数)=261,这说明第 91 号物理块中的第 1 个地址,对应的是 261 号逻辑块(第 262 个逻辑块),即 187 号物理块对应块号为 261 的逻辑块。接下来的问题比前一问更容易,从示意图可以看出,101 号物理块对应的空间存储着一系列地址,而这些地址对应的物理块中存储的仍然是地址,再到下一层才是文件内容,所以 101 号物理块存放的是二级地址索引表。