一、填空题
1.通常所说操作系统的四大模块是指处理机管理、存储管理、设备管理、文件 管理。
2.进程实体是由 进程控制块(PCB) 、程序段和数据段这三部分组成。
3.文件系统中,空闲存储空间的管理方法有空闲表法、空闲链表法、位示图法和 成组链接法 。
4.若P、V操作的信号量s初值为8,当前s的值为-6,则表示有 6 个等待进程。
答案解析
[分析] 信号量的取值可以解释为:S值的大小表示某类资源的数量。当S>0时,表示还有资源可以分配:当S<0时,其绝对值表示S信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源:每执行一次V操作,意味着释放一个资源。所以当S=-6时,表示等待队列中有6个等待进程。
1.即信号量的当前值如果是正值N,该值表示有N个可用资源。
2.如果为0,则表示所有资源全部被分配,同时没有进程处于等待状态
3.如果为负数N,则表示全部资源分配完毕,且还有N个进程处于等待该资源的状态。
5.产生死锁的原因是竞争资源、进程推进顺序非法 。
6.目前常用的外存分配方法有竞争资源、进程推进顺序非法和索引分配三种。
7.采用页式存储管理方式,未使用快表,CPU每存取一次数据访问内存次数是2次。
分析:在段或者页式系统中,需要2次访问内存。
第一次是获取段表、页表里面的块号、页号算出物理地址
第二次访问物理地址得到数据。
8.一个文件系统中,其FCB占64B,一个盘块大小为1KB,采用一级目录,假定文件目录中有3200个目录项,则查找一个文件平均需要100次访问磁盘。
分析:方法一:一个文件目录项对应一个文件控制块,我们查找一个文件是不是查找它的目录项即可,顺序查找目录表平均需要查找(3200+1)/2=1600次(n个元素的顺序表平均查找次数为(n+1)/2),一个磁盘块大小为1KB,一个文件控制块大小为64B,一个磁盘块中有1KB(1024B)/64B=16个文件控制块,相当于查找了1600/16=100个磁盘
方法二:3200个目录项占用的盘块数=3200 X 64B /1KB= 200个。因为一级目录平均访盘次数 = 1/2盘块数(顺序查找目录表中的所有目录项,每个目录项为一个文件控制块),所以平均访问磁盘次数 = 200/2 = 100次。
9.进程的三个基本状态是阻塞状态、 就绪 、执行状态。
10.产生死锁的四个必要条件是: 互斥条件、请求和保持条件、____不剥夺___条件和环路等待条件。
11.目前常用的外存分配方法有连续,链接和索引分配三种。
12.采用段式存储管理方式,未配置快表,CPU每存取一次数据访问内存次数是_ 2_ 次。
13.实现SPOOLing系统时必须在磁盘上开辟出称为_输入井和_输出井_______的专门区域,以存放作业信息和作业执行结果。
二、单项选择题
1.下面对进程的描述中,错误的是 ( D )
A、进程是动态的概念 B、进程执行需要处理机
C、进程是有生命期的 D、进程是指令的集合
分析:程序与进程的区别:
程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
进程更能真实地描述并发,而程序不能;
进程是由进程控制块、程序段、数据段三部分组成;
进程具有创建其他进程的功能,而程序没有。
同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进程。
在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
2.如果分时操作系统的时间片一定,响应时间长的是 ( B )
A、就绪进程数越少 B、就绪进程数越多 C、内存越少 D、内存越多
分析:分时系统中,时间片一定时,用户数越多响应时间越长 T=Q*N Q(时间片)N(用户数)每一个进程代表系统正执行某一个"任务",我理解为用户数越多就绪进程数越多
3.在页式存储管理方案中,能实现地址变换的是 ( A )
A、页表 B、段表 C、段表和页表 D、空闲区表
分析:1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。
4.当已有进程进入临界区时,其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问,这体现的同步机制准则是 ( B )
A、空闲让进 B、忙则等待 C、有限等待 D、让权等待
分析:进程同步机制四条基本准则:空闲让进、忙则等待、有限等待、让权等待。
进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加zhi以限制以保证互斥地使用临界资源,相互合作完成任务。多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。
所有的进程同步机制应遵循下述四条准则:
空闲让进
当无进程进入临界区时,相应的临界资源处于空闲状态,因而允许一个请求进入临界区的进程立即进入自己的临界区。
忙则等待
当已有进程进入自己的临界区时,即相应的临界资源正被访问,因而其它试图进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
有限等待
对要求访问临界资源的进程,应保证进程能在有限时间进入临界区,以免陷入“饥饿”状态。
让权等待
当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等。
5.定义:作业的周转时间=作业的完成时间-作业到达时间。现有三个作业同时到达,每个作业的计算时间均为1小时,它们在一台处理机上按单道方式运行,则平均周转时间是 ( B)
A、1小时 B、2小时 C、3小时 D、6小时
解析:因为第一个作业无需等待,完成用1小时;第二个等待1小时,完成再用1小时,一共2个小时;第三个为3小时。所以(1+2+3)/3=2h。
6.位示图法可用于 ( B )
A、文件目录的查找
B、分页式存储管理中内存空闲块的分配和回收
C、动态分区存储管理中空闲区的分配和回收
D、页式虚拟存储管理中的页面置换
分析:位示图法可以在离散存储方式中,有效地表示相同大小的固定数据块(例如页面,磁盘的盘块)在存储空间的状态,并用于存储空间的分配和回收。因此本题选择B。
7.下列进程状态的转换中,不正确的是 ( C )
A、就绪→运行 B、运行→就绪
C、就绪→阻塞 D、阻塞→就绪
分析:
8.在一个可变式分区管理中,最坏适应分配算法空闲区表中的空闲区的最合适排列次序是 ( B)
A、地址递增 B、地址递减 C、长度递增 D、长度递减
分析:在实现最优适应分配算法时,可把空闲区按长度以递增次序登记在空闲区表中,则在一个可变式分区管理中,最坏适应分配算法空闲区表中的空闲区的最合适排列次序是 地址递减 。
9.用V操作唤醒一个等待进程时,被唤醒进程的状态转换为 ( B )
A、等待 B、就绪 C、 运行 D、完成
分析:signal操作(V操作)
释放一个资源,有进程等待则唤醒一个(被唤醒的进程进入就绪状态),可描述为if(s.value≥0)s.value++;if(s.value<0)s.value++;wakeup(s.L);简练为: s.value++;if(s.value≤0)wakeup(s.L);signal原语void signal(static semaphore s)
{s.value++;if (s.value≤0)wackup(s.L);}
10.使用户所编制的程序与实际使用的物理设备无关,这体现的设备管理的功能是 ( A)
A、设备独立性 B、设备分配 C、缓冲管理 D、虚拟设备
分析:设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收;
11.假设磁头当前位于第105磁道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110,180,170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是 ( A )
A、110,170,180,195,68,45,35,12
B、110,68,45,35,12,170,180,195
C、110,170,180,195,12,35,45,68
D、12,35,45,68,110,170,180,195
分析:本题考查磁道调度算法。SCAN调度算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务对象。当前磁道向序号增加的方向移动,当前位于第105道,则距离最近的下一个应该是第110磁道,依次递增到最高195,再向序号减少的方向移动,离当前195磁道最近的是68号磁道,依次递增到所有的请求完成,所以磁道访问序列为110,170,180,195,68,45,35,12。
12.以下技术在操作系统中用来解决进程同步的是 ( B )
A、管道 B、管程 C、通道 D、DMA
分析:管程在功能上和信号量及PV操作类似,属于一种进程同步互斥工具,但是具有与信号量及PV操作不同的属性。引入管程机制的目的:1、把分散在各进程中的临界区集中起来进行管理;2、防止进程有意或无意的违法同步操作;3、便于用高级语言来书写程序,也便于程序正确性验证。
13.完成设备的打开、关闭、读、写等操作的是 ( D )
A、用户程序 B、编译程序
C、设备分配程序 D、设备驱动程序
分析:有关设备的基本操作都由设备驱动程序负责。
14.单处理机系统中,不能并行的是 ( D )
A、进程与进程 B、处理机与设备
C、处理机与通道 D、设备与设备
分析:考查并行性的限定。
单处理机系统中只有一条指令流水线,一个多功能的操作部件,每个时钟周期只能完成一条指令,故进程与进程显然不可以并行。
处理机与设备,处理机与通道,设备与设备均是可以并行的。
15.为了对紧急进程或重要进程进行调度,调度算法应采用 ( B )
A、先来先服务法 B、优先级法
C、短作业优先法 D、时间片轮转法
分析:为了照顾到进程的紧急程度或重要进程的执行,使得紧急或重要的进程能够及时得到处理,很多操作系统使用了优先级调度法,即在进程调度时,把处理机分配给就绪队列中优先权最高的进程。
16.死锁的预防采取措施是( C )
A、防止系统进入不安全状态 B、配置足够的系统资源
C、破坏产生死锁的四个必要条件之一 D、使进程的推进顺序合法
分析:死锁预防是计算机操作系统,在设计时确定资源分配算法,为保证不发生死锁,而破坏产生死锁的必要条件的行为过程。
17. 按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这种调度算法是指 ( A )
A、先来先服务法 B、短作业优先法
C、时间片轮转法 D、优先级法
18.某基于动态分区存储管理的计算机,其内存容量为55MB(初始为空),采用最佳适应(Best Fit)算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配6MB,此时内存中最大空闲分区的大小是 ( D )
A、7MB B、9MB
C、10MB D、15MB
解析:其主存容量为55mb(初试为空间),
第一步分配15MB以后还有55MB-15MB=40MB;
第二步分配30MB以后还有 40MB-30MB=10MB;
第三步释放15MB以后有两个空闲区15MB,和10MB;
第四步分配 6MB,则空闲区为4MB,15MB;所以这个题目应该是15Mb。
19.设有四个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理信号量时S的可能取值是 ( C )
A、3,2 ,1,0,-1 B、2,1,0,-1,-2
C、1,0,-1,-2,-3 D、4,3,2,1,0
分析:S值的大小表示某类资源的数量。当S>0时,表示还有资源可以分配:当S<0时,其绝对值表示S信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源:每执行一次V操作,意味着释放一个资源。因为每次只允许一个进程使用该资源,剩下的都得等待进入临界区,就是正整数表示的运行的进程(为1), 为负数的绝对值是等待的进程数目(1~3、四个进程一个运行);
20.目录文件存放的信息是 ( D )
A、某一文件的数据信息 B、某一文件的FCB
C、所有数据文件FCB D、所有子目录文件和数据文件的FCB
分析:本题考查目录文件的基本概念。目录文件是文件控制块的有序集合,一个目录中可能既有子目录也有数据文件,目录文件中要包含子目录和数据的信息。因此本题选择D。
21.()不是基本的操作系统。 ( D )
A、批处理操作系统 B、分时操作系统
C、实时操作系统 D、网络操作系统
22.不是分时系统基本特征的是 ( C )
A、多路性 B、独立性
C、实时性 D、交互性
分析:分时系统:为了满足用户对人—机交互的需求。特点:多路性、 独立性、及时性、交互性
23.操作系统分配资源以()为基本单位。 ( B )
A、程序 B、进程 C、指令 D、作业
24.产生系统死锁的原因可能是由于 ( C )
A、进程释放资源
B、一个进程进入死循环
C、多个进程竞争,资源出现了循环等待
D、多个进程竞争共享型设备
25.临界区是指并发进程中访问临界资源的那段 ( D )
A、管理信息 B、信息存储 C、数据 D、代码
26.在页式管理中,页表的始址存放在 ( D )
A、内存中 B、存储页面表中 C、联想存储器中 D、寄存器中
27.在以下存储管理方案中,不适用于多道程序设计系统的是 ( A )
A、单一连续分配 B、固定分区分配 C、动态分区分配 D、页式存贮管理
28.()是进程存在的唯一标志。 ( C )
A、作业控制块 B、作业名 C、进程控制块 D、程序名
29.进程从运行状态进入就绪状态的原因可能是 ( D )
A、被选中占有处理机 B、等待某一事件
C、等待的事件已发生 D、时间片用完
30.用磁带作为文件存储介质时,文件只能组织成 ( A )
A、顺序文件 B、链接文件 C、索引文件 D、目录文件
31.一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是 ( B )
A、2 B、3 C、1 D、0.5
分析:分析:响应比=(等待时间+要求服务时间)/要求服务时间,响应比为(2+1)/1=3。响应比=周转时间/要求服务时间,周转时间为3小时(11:00~8:00)。
32.多道程序设计是指 ( D )
A、在实时系统中并发运行多个程序
B、在分布系统中同一时刻运行多个程序
C、在一台处理机上同一时刻运行多个程序
D、在一台处理机上并发运行多个程序
33.文件系统采用多级目录结构后,对于不同用户的文件,其文件名 ( C )
A、应该相同 B、应该不同 C、可以相同,也可以不同 D、受系统约束
34.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 ( D )
A、无上邻空闲区,也无下邻空闲区
B、有上邻空闲区,但无下邻空闲区
C、有下邻空闲区,但无上邻空闲区
D、有上邻空闲区,也有下邻空闲区
分析:本题考查动态分区分配系统内存回收的过程。选项A的情况,回收区作为单独的空闲分区记入空闲区说明表;选项B和选项C类似,回收区与相邻的一个空闲分区合并后,修改相应的空闲区说明表项,空闲分区数不会改变;只有当上、下都要邻接空闲分区时,系统将它们与回收区合并成一个空闲分区,从而空闲分区数会减少。因此本题选择D。
三、判断题
1.实时操作系统一般应用于实时控制。 ( √ )
2.PCB是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。 ( √ )
3.抖动是操作系统特征之一。 ( × )
分析:操作系统的四大基本特征:1、并发2、共享3、虚拟4、异步;
当处理器将大部分时间花在交换页面而不是执行指令时,操作系统抖动(thrashing)是虚拟内存方案中的一种现象。
通常是因为内存或其他资源耗尽或有限而无法完成所要执行的操作。当上述情况发生时,程序就会通过操作系统发出请求,操作系统就试图从其他程序中拿来所需的资源,这就使得新的请求不能得到满足。在虚拟存储系统(使用页来管理逻辑存储或内存的操作系统)中,颠簸就是发生过度页请求操作的情况。
4.最佳页面置换算法总是选择在内存驻留时间最长的页面淘汰。 ( × )
分析:一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应该保留最近重复访问的页面,将以后都不再访问或者很长时间内不再访问的页面调出,这样可以保证获得最低的缺页率。
正确: 最佳页面置换算法总是选择在内存驻留时间最长的页面保留。
5.可变分区可以有效地消除外部碎片,但不能消除内部碎片。 ( × )
分析:内部碎片指的是在存储管理时,给程序配了一定的内存,但是没有全部使用,有一部分空闲而浪费。
而外部碎片指的是可用内存无法满足用户要求而导致的浪费问题,比如用户要求2MB的内存,但是可用内存中有1MB,无法满足用户需求。
可变分区就是用户申请分区时系统根据用户的情况给用户分配大小的内存空间,而不是分配大小固定的内存。克服了固定分区方式中内存浪费的问题,解决的是内部碎片,而不是外部碎片,因为有时候可能用户申请的内存大于系统闲置的内存。可变分区法依据进程的要求为进程灵活地分配空间,通俗的理解可以是量体裁衣,对每一个人都进行量体裁衣的话,有可能就会导致剩下的空间无法满足下一个进程的请求,因此正确概述为可以消除内部碎,不能消除外部碎片。
6.页式系统的优点是消除了外部碎片,更有效地利用了内存。 ( √ )
7.采用多道程序设计的系统中,系统的道数越多,系统的效率越高。 ( × )
分析:多道程序设计是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计。
计算机内存的保证,主要目的是提高CPU的利用率,当CPU充分利用时,再多就不能再提高系统效率。凡事都有个度
8.磁盘是典型的块设备。 ( √ )
9.虚拟存储器不是物理上扩大内存空间,而是逻辑上扩充了内存容量。 ( √ )
10.在采用树型目录结构的文件系统中,各用户的文件名必须互不相同。 ( × )
分析:错,正确说法:在采用树型目录结构的文件系统 中,各用户在不同目录中的文件名可以互不相同
11.批处理操作系统一般应用于实时控制。 ( × )
12.PCB是专为用户进程设置的私有数据结构,每个进程可以有多个PCB。 ( × )
分析:每个进程只有一个PCB,但是PCB不是进程私有的
13.并发是操作系统特征之一 。 ( √ )
分析:操作系统的四大基本特征:1、并发2、共享3、虚拟4、异步;
四、应用题
1.在一单道批处理系统中,一组作业的提交时间和运行时间见下表所示。
作业 | 提交时间 | 运行时间 |
---|---|---|
1 | 8.0 | 1.0 |
2 | 8.5 | 0.5 |
3 | 9.0 | 0.2 |
4 | 9.1 | 0.1 |
计算以下二种作业调度算法的平均周转时间T和平均带权周转时间W。
(1)先来先服务调度算法。
(2)短作业优先调度算法。
(短作业优先又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。
在所有作业同时到达的情况下,短作业优先的平均周转时间才是最短的)
1.(1)FCFS调度的情况如下表:
作业 | 提交时间 | 运行时间 | 开始时间 | 结束时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|---|---|
1 | 8.0 | 1.0 | 8.0 | 9.0 | 1.0 | 1.0 |
2 | 8.5 | 0.5 | 9.0 | 9.5 | 1.0 | 2.0 |
3 | 9.0 | 0.2 | 9.5 | 9.7 | 0.7 | 3.5 |
4 | 9.1 | 0.1 | 9.7 | 9.8 | 0.7 | 7.0 |
解析:先来先服务就是根据作业顺序进行计算就可以了。
开始时间:为上个作业的结束时间;
结束时间=开始时间+运行时间;
这里的周转时间=结束时间-提交时间
带权周转时间=周转时间/运行时间
T=(1.0+1.0+0.7+0.7)/4=0.85
W=(1.0+2.0+3.5+7.0)/4=3.375
(2)SJF调度的情况如下表:
作业 | 提交时间 | 运行时间 | 开始时间 | 结束时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|---|---|
1 | 8.0 | 1.0 | 8.0 | 9.0 | 1.0 | 1.0 |
2 | 8.5 | 0.5 | 9.3 | 9.8 | 1.3 | 2.6 |
3 | 9.0 | 0.2 | 9.0 | 9.2 | 0.2 | 1.0 |
4 | 9.1 | 0.1 | 9.2 | 9.3 | 0.2 | 2.0 |
解析:短作业优先调度算法根据第一个运行时间然后进行第二个运行时间判断,第一个作业的结束时间为9.0.那么就有作业2和作业3可以运行,根据作业运行时间进行判断,时间短的首先运行,这里作业3的运行时间短,所以先运行作业3.
然后继续进行判断,当前的时间已经到了9.2,作业2和作业4进行判断,选择作业4,剩下的再运行作业2.
这里的周转时间=结束时间-提交时间
带权周转时间=周转时间/运行时间。
T=(1.0+1.3+0.2+0.2)/4=0.675
W=(1.0+2.0+3.5+7.0)/4=1.65
tips:(3)高响应比优先调度算法。
作业 | 提交时间 | 运行时间 | 开始时间 | 结束时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|---|---|
1 | 8.0 | 1.0 | 8.0 | 9.0 | 1.0 | 1.0 |
2 | 8.5 | 0.5 | 9.0 | 9.5 | 1.0 | 2.0 |
3 | 9.0 | 0.2 | 9.6 | 9.8 | 0.8 | 4.0 |
4 | 9.1 | 0.1 | 9.5 | 9.6 | 0.5 | 5.0 |
高响应比优先调度算法这里有些不同。这里作业一运行完毕之后,需要根据公式:优先权=(等待时间+执行时间)/执行时间,来判断下一个需要运行的作业,谁的优先权大就先运行那个作业。同样,这里的作业1的结束时间为9.0,留下作业2和作业3进行判断。等待时间=上个作业结束时间-提交时间;执行时间=运行时间;
根据公式计算作业2: (9.0-8.5+0.5)/0.5=2
计算作业3:(9.0-9.0+0.2)/0.2=1.所以先运行作业2,作业2运行完毕后,对作业3和作业4进行判断。
作业3:(9.5-9.0+0.2)/0.2=3.5
作业4:(9.5-9.1+0.1)/0.1=5,所以先运行作业4,后运行作业3
这里的周转时间=结束时间-提交时间
带权周转时间=周转时间/运行时间。
T=(1.0+1.0+0.8+0.5)/4=0.825
W=(1.0+2.0+4.0+5.0)/4=3.0
2.某系统在某时刻的状态如下表所示。
Allocation | Max | Available | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | A | B | C | D | 1 | 5 | 2 | 0 | |
P0 | 0 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ||||
P1 | 1 | 0 | 0 | 0 | 1 | 7 | 5 | 0 | ||||
P2 | 1 | 3 | 5 | 4 | 2 | 3 | 5 | 6 | ||||
P3 | 0 | 0 | 1 | 4 | 0 | 6 | 5 | 6 |
使用银行家算法回答下面的问题:
(1)求Need矩阵。
(2)系统是否处于安全状态?如安全,请给出一个安全序列。
(3)如果进程P1发来一个请求(0,4,2,0),这个请求能否立刻被满足?如安全,请给出一个安全序列。
Available:借出还剩下的钱:
Need:贷款方需要的钱:
答案:(1)
(1) 可利用资源向量 Available。这是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果 Available[j] = K,则表示系统中现Rj类资源K个。
(2) 最大需求矩阵Max。这是一个n x m的矩阵,它定义了系统中n个进程中的每个进程对m类资源的最大需求。如果Max[i,j] = K,则表示进程i需要Rj 类资源的最大数目为K。
(3) 分配矩阵 Allocation。这也是一个n x m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果 Allocation[i,jl = K,则表示进程i当前己分得Rj类资源的数目为K。
(4) 需求矩阵Need.这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j] = K,则表示进程i还需要Rj类资源K个方能完成其任务。
上述三个矩阵间存在下述关系: Need[i,j] = Max[i,j] - allocation[i, j]
(2) 安全,安全序例为:P0,P2,P1,P3……(3分)
第一步:
安全性算法:
系统所执行的安全性算法可描述如下:
(1) 设置两个向量:①工作向量Work,它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work = Available;② Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做 Finish[i] = false;当有足够资源分配给进程时,再令Finish[i] = true。
(2) 从进程集合中找到一个能满足下述条件的进程
① Finish[i] = false;
② Need[i,j] ≤ Work[j];
若找到,执行步骤(3),否则,执行步骤(4)。
(3)当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:
Work[j] = Work[j] + Allocation[i,j];
Finish[i] = true;
go to step 2;(goto语句不推荐使用 _ )
(4)如果所有进程的 Finish[i] =true都满足,则表示系统处于安全状态;否则,系统处于不安全状态。
(3)能立刻被满足,满足的安全序列为: P0,P2,P1,P3……(3分)
**1.可利用资源向量Available
2.最大需求矩阵Max
3.分配矩阵Allocation
4.需求矩阵Need
功能介绍:
模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成:
第一部分:银行家算法(扫描)
1.如果Request<=Need,则转向2;否则,出错
2.如果Request<=Available,则转向3,否则等待
3.系统试探分配请求的资源给进程
4.系统执行安全性算法
第二部分:安全性算法
1.设置两个向量
(1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目)
(2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False
2.若Finish[i]=False&&Need<=Work,则执行3;否则执行4(I为资源类别)
3.进程P获得第i类资源,则顺利执行直至完成!并释放资源:
Work=Work+Allocation;
Finish[i]=true; 转2
4.若所有进程的Finish[i]=true,则表示系统安全;否则,不安全!
3.桌子上有一只盘子,每次只能向其中放入一只水果。爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,儿子专等吃盘子中的桔子,女儿专等吃盘子中的苹果。只有盘子为空时,爸爸或妈妈就可向盘子中放一只水果;仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出。用信号量机制解决该问题。
解:在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。(2分)
father()
{while(1){P(S);放苹果V(Sa);}
}(2分)mather()
{while(1){P(S);放苹果V(So);}
}(2分)
son()
{while(1){P(So);从盘中取出桔子;V(S);吃桔子;}
}(1分)
daughter()
{while(1){P(Sa);从盘中取出苹果;V(S);吃苹果;}
} (1分)
4.设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框,在时刻260前的该进程访问情况见下表。
页号 | 页框号 | 装入时刻 | 访问位 |
---|---|---|---|
0 | 7 | 130 | 1 |
1 | 4 | 230 | 1 |
2 | 2 | 200 | 1 |
3 | 9 | 160 | 1 |
当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据。请回答下列问题:
(1)该逻辑地址对应的页号是多少?
(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。
(3)若采用时钟(Clock)置换算法,当前指针指向2号页框。该逻辑地址对应的物理地址是多少?要求给出计算过程。
二进制是Binary,简写为B。八进制是Octal,简写为O。十进制为Decimal,简写为D。十六进制为Hexadecimal,简写为H。
页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示
答案: (1) 17CAH=0001 0111 1100 1010B,且页的大小为1KB=2102^{10}210,故页号为000101B=5 (页号(前六位)+十位页内地址位)
(2)采用FIFO置换算法,与最早调入的页面即0号页面置换,其所在的页框号为7,逻辑地址17CAH所对应的二进制表示形式是:0001 0111 1100 1010B,根据上面的分析,页内地址,为十位,与最早调入的页面即0号页面置换,其所在的页框号为7,即物理块地址为:0011 1,拼接块内地址11 1100 1010,得0001 1111 1100 1010B=1FCAH
(3)首先要回顾clock算法,增加一个访问位[4],在选择要换出的页面时,先看访问位是不是为1,如果为1,不换出这个页面,但是要把它的访问位改成0,然后检查下一个页面,直到检查到一个访问位为0的页面,才将它换出。首先从当前位置(2号页框)开始顺时针寻找访问位为0的页面,当指针指向的页面的访问位为1时,就把该访问位清“0”,指针遍历一周后,回到2号页框,此时2号页框的访问位为0,置换该页框的页面,于是对应的物理地址为:0000 1011 1100 1010B=0BCAH。
5.某文件系统采用多级索引的方式组织文件的数据存放,假定在文件的i_node 中设有13个地址项,其中直接索引10项,一次间接索引1项,二次间接索引1项,三次间接索引1项。数据块的大小为4KB,磁盘地址用4个字节表示,这个文件系统允许的最大文件长度是多少?
答案:(1)直接索引中盘块总容量为4K×10=40KB。
一次间接索引中盘块总容量为:一个地址用4个字节,4K大小可以表示1K个地址,就是可以记录1K个物理盘块,则总容量为4K×1K=4MB。
二次间接索引中盘块总容量为:4K×1K×1K=4GB。
三次间接索引中盘块总容量为:4K×1K×1K×1K=4TB。
所以这个文件系统允许的最大文件长度为4TB+4GB+4MB+4KB。
(2)一个2G大小的文件,在这个文件系统中实际占用多少空间 (不包括i_node占用的空间)。
答案:一个2G大小的文件,在这个文件系统中实际占用的空间应该是文件大小加上索引块占用的空间总和。因为2G=29×4M=29×1K×4K,所以共需占用29×lK个物理块,直接索引中占10个物理盘块,一级间接索引中占用一个索引块和1K个物理盘块;所以二级索引中,还需要(29-1)×1K-10个物理盘块,((29-1)×1K-10)%1K=29-1=28,则在二级索引中占用的索引块数为:一个一级索引块,28个二级索引块。
所以一共占用29+1=30个索引块,则实际占用空间为2G+30×4K=2G+2M+4K
6.若干个等待访问磁盘者依次要访问的磁道为20,44,40,4,80,12,76,假设每移动一个磁道需要3ms时间,移动臂当前位于40号磁道,请按下列算法分别计算为完成上述各次访问总共花费的寻道时间。
(1)先来先服务算法;
(2)最短寻道时间优先算法。
答案:(1)先来先服务算法:
访问序列:20,44,40,4,80,12,76
访问时间 =(20+24+4+36+76+68+64)*3ms=876ms
最短寻道时间优先算法:就是每次都找最近的,因为移动臂当前位于40号磁道,初始位于40,每次都找最近的 访问序列:40,44,20,12,4,76,80
访问时间 =(0+4+24+8+8+72+4)*3ms=360ms
7.某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件。请回答如下问题:
(1)在连续、链式、索引三种文件的数据块组织方式中,哪种更合适?要求说明理由。为定位文件数据块,需要FCB中设计哪些相关描述字段?
(2)为快速找到文件,对于FCB,是集中存储好,还是与对应的文件数据块连续存储好 要求说明理由。
答案:(1)连续更合适。因为一次写入不存在插入问题,而且写入文件之后不需要修改,连续的数据块组织方式很适合一次性写入磁盘不再修改的情况。同时连续存储相对于链式和索引省去了指针的空间开销,支持随机查找,查找速度最快。
(2)FCB集中存储较好。FCB存储有文件的很多重要信息,同时是文件目录的重要组成部分,在检索时,通常会访问对应文件的FCB。如果将FCB集中储存,则可以减少在检索过程中产生的访盘次数,提高检索的速度。
8.一进程己分配到4个页框,如表所示。当进程访问第4页时,产生缺页中断。请分别用FIFO、LRU和改进的CLOCK算法,决定缺页中断服务程序选择换出的页面。
虚页号 | 页 框 | 装入时间 | 最近访问时间 | 访问位 | 修改位 |
---|---|---|---|---|---|
2 | 0 | 60 | 161 | 0 | 1 |
1 | 1 | 130 | 160 | 0 | 0 |
0 | 2 | 26 | 162 | 1 | 0 |
3 | 3 | 20 | 163 | 1 | 1 |
答案:.FIFO 换出进入内存时间最久的页面,装入时间20最久,故第3页换出。
LRU 最近最长时间未用的页,第1页最近被访问时间最久,故第1页换出。
改进的CLOCK 表中第1页的访问位为0,和修改位都为0,故第1页换出。