操作系统考试题型选择、判断、简答,计算、程序
选择、判断到系统http://10.22.27.60:8080/online2test完成每周作业
操作系统大题(计算、程序描述、简答)
1.简述页式管理方法的基本思想,并说明分配、回收、地址转换、内存扩充、共享和保护是如何的实现。
答:页式存储管理需要硬件的支持,首先把主存储器分成大小相等的许多区,把每个区称为“块”,块是进行主存空间分配的物理单位。程序中的逻辑地址进行分页,页的大小与块的大小一致。这样,就可把作业或进程按页存放到块中,可实现作业或进程在内存中不连续存放。页式存储管理提供编程使用的逻辑地址由两部分组成:页号和页内地址。页式存储管理分为静态和动态两种,现以静态页式存储管理为例说明页式管理方法中分配、回收、地址转换、内存扩充、共享和保护是如何的实现。
静态页式管理方法的分配过程为:根据进程或作业所需的块数,在存储分配表中找到空闲页进行全部分配,建立进程或作业的页表。回收过程为:根据页表找到应回收的块号,在存储块表中进行状态修改。地址转换方式为:绝对地址=块号*块长+页内地址,采用静态页式管理方法一般不进行内存扩充,可按页共享,采取的保护方式为:页内地址≤页长,逻辑地址中的页号在页表中。
2.简述设备管理的功能、设备分配原则和策略。
答:通常设备管理一般要提供下述功能:
(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;
(2)进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求的设备或其他有关硬件的进程放入等待队列;
(3)实现设备和设备、设备和CPU等之间的并行操作。
(4)进行缓冲区管理。设备管理负责进行缓冲区分配、释放及有关的管理工作。
设备分配的原则是根据设备特性、用户要求和系统配置情况决定的。设备分配的总原则是既要充分发挥设备的使用效率,尽可能的让设备忙,但又要避免由于不合理的分配方法造成进程死锁;另外还要做到把用户程序和具体物理设备隔离开来,再根据要求的物理设备号进行分配。
常用的分配策略有先请求先分配、优先级高者先分配策略。
3.磁盘存储空间是如何管理的?各种管理方法有何特点?
答:常用的磁盘空间管理方法有位示图、空闲块表和空闲块链。
位示图:对每个磁盘可以用一张位示图指示磁盘空间的使用情况。一个磁盘的分块确定后,根据总块数决定位示图由多少字组成,位示图中的每一位与一个磁盘块对应,某位为“1”表示相应块已被占用,为“0”表示所对应的块是空闲块。
空闲块表:系统为每个磁盘建立一张空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数,其中空闲块数为“0”的登记项为“空”登记项。这种管理方式适合采用顺序结构的文件。
空闲块链:把所有的空闲块连接在一起构成空闲块链,分配空间时从链中取出空闲块,归还空间时,把归还块加入到链中。这种管理方式不需要外加专门记录空闲块分配情况的表格。空闲块的连接方式有两种:单块连接和成组连接。
(1)单块连接把所有空闲块用指针连接起来,每一个空闲块中都设置一个指向另一个空闲块的指针,所有的空闲块就构成了一个空闲块链。系统设置一个链首指针,指向链中的第一个空闲块,最后一个空闲块中的指针为“0”。
(2)成组连接把空闲块分成若干组,把指向一组中各空闲块的指针集中在一起,这样既可方便查找,又可减少为修改指针而启动磁盘的次数。
4.操作系统管理的对象是什么?设计操作系统的根本目的是什么?
答:操作系统管理的对象是计算机的硬件和软件,即计算机的所有资源。其根本目的是使系统高效、安全地运行,并为用户提供简单、直观、灵活的接口,以方便用户对计算机系统的使用。
6.简述段式管理方法的基本思想,并说明分配、回收、地址转换、内存扩充、共享和保护是如何的实现。
答:段式管理方法的基本思想是组成作业或进程逻辑段放在内存中的一块连续区域,不同逻辑段所在的区域可以不连续。段式存储管理提供给用户编程时使用的逻辑地址由两部分组成:段号和段内地址。段式存储管理中逻辑地址是二维的。段式存储管理分为静态和动态两种,现以静态段式存储管理为例说明分配、回收、地址转换、内存扩充、共享和保护是如何的实现。
静态段式管理方法的分配是对作业或进程中的每个逻辑段在空闲区表中找到满足要求的内存空间进行分配,分配可采用最先适应、最坏适应、和最佳适用中的一种方法进行,并在分配表中记录,建立对应的段表。回收方式是根据段表找到应回收的内存区域,在空闲表中进行记录(其中存在空闲区的合并问题),并修改内存分配表。地址转换方式是绝对地址=段起始地址+段内地址。一般不进行主存扩充。共享是按段共享。保护方式是段内地址≤段长,逻辑地址中的段号在段页表中。
7.并发:并发是指两个或多个事件在同一时间间隔内发生。
8.进程控制:进程控制是处理机管理中最基本的一项内容。一方面,它使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换;另一方面,系统根据进程的性质对进程对系统资源的访问权限进行了限制,以保证系统安全、可靠地运行。
9.Belady现象:Belady现象是在未给作业分配满足它所需要的主存块数时,出现当分配的块数增多时,缺页次数反而增多的现象。
10.互斥:为了有效地管理临界区,通常按共享对象的种类将临界区分成若干类,对每一类临界区,系统应有一套完整的措施和方法分配和释放公共资源,以制约并发进程的执行,这就是互斥。
11.简述SPOOL系统的工作原理。
答:SPOOL的含义是联机的外围设备同时操作。SPOOL系统的工作原理如下:
为了实现SPOOL系统必须在磁盘上划出称为“井”的专用存储空间,“井”又分成两部分“输入井”和“输出井”。“输入井”中存放作业的初始信息,“输出井”中存放作业的执行结果。
SPOOL系统由预输入程序、井管理程序(又分为井管理读程序和井管理写程序)、缓输出程序三部分程序组成,并使用了作业表、预输入表和缓输出表三种数据结构。
当把一批作业组织在一起形成作业流,预输入程序把作业流中的每个作业的初始信息传送到“输入井”保存以备作业执行时使用。
作业在执行过程中请求从输入机上读文件信息时,就由“井管理读程序”,从“输入井”读出信息供用户使用。
当作业请求从打印机上输出结果时,就由“井管理写程序”,把产生的结果保存到“输出井”中。当作业执行结果全部放入输出井,由缓输出程序查看“输出井”中是否有待输出的结果信息,若有,则启动打印机把作业的结果打印输出。
14.抖动:在动态页式存储管理中如何选择调出的页面是很重要的,如果采用了一个不合适的算法,就会出现这样的现象:刚被调出的页面又立即要用,因而又要把它重新装入,而装入不久又被选中调出,调出不久又被重新装入,如此反复,使调度非常频繁。这种现象称为“抖动”。
15.同步:异步环境下的一组并发进程,因直接制约而互相合作,使得各进程按一定的顺序和速度执行的过程称为进程间的同步。
16.简述研究操作系统的几种观点?
答:研究操作系统的观点主要有:资源管理的观点、用户界面的观点、进程管理的观点。
(1)资源管理的观点
现代计算机系统是由CPU、存储器、输入/输出设备以及程序和数据所组成。这些硬件和软件为系统软件和用户程序运行提供所需的各种资源和工作环境。操作系统的目的就是对这些资源进行有效地管理,协调这些资源的分配、使用,避免因有限资源竞争而导致系统不能正常运行现象的发生,最终达到有效、安全地分配资源、协调任务运行、充分发挥软硬件资源效率的目的。
(2)用户界面的观点
用户是操作系统的最终使用者,所以操作系统产品能否被广泛接受是由用户来决定的。从用户角度来看,操作系统的功能越强、界面越友好、使用越方便,肯定越受用户欢迎。
(3)进程管理的观点
进程是操作系统中的一个重要概念,它是为了描述系统中程序的并发执行过程而引入的,它是程序执行过程的动态描述,为资源分配的基本单位。进程作为独立运行的实体、资源分配的基本单位,其管理贯穿于操作系统的始终。
19.线程:线程是一个进程内的基本调度单位,也称为轻权进程,它可以由操作系统内核控制,也可以由用户程序来控制,是程序中的一个单一的顺序控制流。
21.信号量:信号量定义为一整形变量,表示资源的使用情况,大于零时表示可供并发进程使用的共享资源数,小于零时表示正在等待使用资源的并发进程数。
22.为什么程序并发执行时会产生间断性特征?
答:由于资源的有限性以及对资源的共享和竞争使得程序间相互制约,导致程序执行速度的改变,即程序在执行过程中呈现出“执行—暂停—执行—暂停……”的活动规律,也即程序执行具有间断性。
24.简述影响缺页中断率的因素有哪些?
答:影响缺页中断率的因素有:
(1)分配给作业或进程的主存块数:通常分配给作业或进程的主存块数越多缺页中断越少,因为一个作业或进程装入了主存中的部分越多。
(2)页面的大小:通常页面越大缺页中断越少,因为一个作业或进程装入了主存中的部分越多。
(3)程序编制方法:程序编写的方式直接影响到缺页中断次数。
(4)页面调度算法:页面调度算法选择的恰当可以减少缺页中断次数
25.并行:并行是指两个或多个事件在同一时刻同时发生。并行既可以指在同一个环境中进程执行的行为,也可以指在不同环境中进程执行的行为。
26.进程调度:进程调度是处理机调度的重要组成部分,它协调和控制各进程对处理机的使用,进程调度按照一定的准则合理地将处理机动态地分配给处于就绪队列中的某个进程,使之投入运行。
27.缓冲:为了缓解CPU和外设之间的速度差异,在内存划出一个具有n个单元的专用区,以便存放输入输出的数据,这部分内存称为内存缓冲区,此技术称缓冲技术。
28.为什么说处理机调度是现代操作系统的核心?
答:处理机是计算机系统的运算、控制中心,其处理能力是评价计算机系统性能的重要指标。操作系统设计的目的是增强系统的处理能力和提高系统资源的利用率,而处理机作为系统的重要资源,如何有效地进行管理和调度就成为设计操作系统时应优先考虑的问题。通过操作系统的发展史可以看出,处理机利用率的不断提高及其处理能力的不断增强是操作系统发展的重要标志。
31、什么是进程?什么是线程?进程与线程有何区别?
答:
(1)进程是具有独立功能程序在某个数据集合上的一次执行过程。(2分)
(2)线程是进程内的一个执行实体或执行单元。(2分)
(3)进程和线程的区别:(a)不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的。(b)在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
32、什么是死锁?产生死锁的原因和必要条件是什么?
答:
(1)在多道程序系统中,当一组进程中的每个进程均无限期地等待被改组进程中的另一进程所占有且永远不会释放的资源,此时的系统处于死锁状态,简称死锁。(2分)
(2)死锁产生的原因:(a)系统提供的资源有限;(b)进程推进顺序不当。(2分)
(3)产生死锁的必要条件:互斥条件、不可剥夺条件、请求和保持条件、循环等待条件。(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
33、说明作业调度,中级调度和进程调度的区别,并分析下述问题应由哪一级调度程序负责。
(1)在可获得处理机时,应将它分给哪个就绪进程;
(2)在短期繁重负载下,应将哪个进程暂时挂起。
答:
(1)作业调度用于决定把外存中处于后备队列中的哪些作业调入内存,并为它们创建进程,分配资源,然后将新创建进程插入就绪队列;中级调度负责将内存中暂时不具备运行条件的进程换到外存交换区存放,但内存空闲时,又将外存中具备运行条件的进程重新换入内存;进程调度决定将处理机分配给就绪进程队列的哪个进程。(4分)
(2)进程调度、中级调度(2分)
说明:论述条理清晰,包含上述要点,本题即可得满分
1有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果.
(1)试说明A,B两进程之间存在什么样的制约关系
(2)为保证这两个进程能正确地打印出各自的结果,请用信号量和P,V操作写出各自的有关申请,使用打印机的代码.要求给出信号量的含义和初值.
答:(1)A,B两进程之间存在互斥制约关系.因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用.
(2)mutex:用于互斥的信号量,因为只有一台打印机,所以初值为1.
进程A
......
P(mutex);
使用打印机;
V(mutex);
……
进程B
......
P(mutex);
使用打印机;
V(mutex);
……
2设input进程不断向缓冲区Q写入信息,output进程不断地将刚由input进程写入的信息读出。试问:
(1)这两个进程有何相互制约关系?
(2)试用P、V操作写出这两个进程完成这项任务的代码段和信号量的含义及初值。
答:(1)这两个进程的相互制约关系为同步关系;
(2)设两个信号量S1和S2。其中S1表示Q是否为空,初值为1,表示Q是空的;S2表示Q中是否有信息,初值为0,表示Q中无信息。
两进程的代码段如下:
input进程
{
while信息未处理完毕
{
加工一个信息;
P(S1);
将信息放入Q中;
V(S2);
}
output进程
{
while信息未处理完毕
{
P(S2);
从Q中读出一个信息;
V(S1);
}
4-9某系统进程调度状态变迁图如下图所示,回答
(1) 什么原因导致变迁2、变迁3、变迁4?
变迁2:某进程的时间片满变迁3:某进程请求服务,或等待事件变迁4:某进程请求服务完成,或等待事件发生
(2) 当观察系统中进程时,可能看到某一进程产生的一次状态变迁将导致另一进程做一次状态变迁,这两个变迁称为因果变迁。在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?
Da:当有一个进程发生变迁3时,将会让出处理器,这时调度必然在就绪队列中选中一个进程使之由就绪状态变为运行状态。
(3)下述因素变迁是否可能发生?如果可能,是在什么情况下发生?
a.2->1可能发生。有一个进程由运行状态变就绪状态,它让出处理器,则这时必有一个进程由就绪状态转运行状态。
b.3->2不可能发生。有一个进程由运行状态变等待状态,它让出处理器,这种变迁不会导致另一个进程由运行状态转就绪状态。
c.4->1不可能发生。一个进程由等待状态变就绪状态,只是自身进程的状态变迁,不涉及处理器,故不会引起其它进程由就绪状态变运行状态。
19.在某段式存储管理系统中,有一作业共4段,段号分别为0、1、2、3,段表如下表所示。
段号 |
段长 |
主存起始地址 |
状态 |
0 |
500 |
1500 |
0 |
1 |
400 |
2600 |
0 |
2 |
120 |
--- |
1 |
3 |
85 |
380 |
0 |
试计算逻辑地址[0,45],[1,50],[2,60],[3,90]相应的主存地址。当无法进行地址转换时,应说明产生何种中断(其中方括号中的第一个元素为页号,第二个元素为页内地址,按十进制计算)。
答:对于逻辑地址[0,45],因45<500,地址合法,对应主存地址为:
1500+45=1545;
对于逻辑地址[1,50],因50<400,地址合法,对应主存地址为:
2600+50=2650;
对于逻辑地址[2,60],因60<120,地址合法,但该段状态位为1,所以产生中断,待缺段调入主存后再进行地址变换;
对于逻辑地址[3,90],因90>85,地址非法,产生地址越界中断。
3.设系统中仅有一类数量为M的独占型资源,系统中有N个进程竞争该类资源,其中各进程对该类资源的最大需求数为W,当M,N,W分别取下列值时,试判断哪些情况会发生死锁,为什么?
(1) M=2,N=2,W=1
(2) M=3,N=2W=2
(3) M=3,N=2,W=3
解答:
(1) 不会发生死锁。因为系统中只有两个进程,每个进程的最大需求量为1,
且系统中资源总数为2,系统能够满足两个进程的最大资源需求量,故不会发生死锁。
(2) 不会发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为2,
且系统中资源总数为3,无论如何分配,两个进程中必有一个进程可以获得两个资源,该进程将顺利完成,从而可以将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,故不会发生死锁。
(3) 可能发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为3,
且系统中资源总量为3,若系统先将全部资源分配给其中一个过程,则该进程将顺利完成,从而可将分配给它的资源归还给系统,使另一进程也能顺利完成,以这种方式分配资源时不会发生死锁;若系统将两个资源分配给一个过程,而剩余的一个资源分配给另一个进程,则系统中没有空闲资源,而每个进程都需要等待资源,此时发生死锁。
3、假定当前磁头位于100号磁道,进程对磁道的请求序列依次为55,58,39,18,90,160,150,38,180。当采用先来先服务和最短寻道时间优先算法时,总的移动的磁道数分别是多少?(请给出寻道次序和每步移动磁道数)(8分)
FCFS:服务序列依次为:55,58,39,18,90,160,150,38,180
移动的磁道数分别是:45,3,19,21,72,70,10,112,142
总的移动的磁道数是:494
SSTF:服务序列依次为:90,58,55,39,38,18,150,160,180
移动的磁道数分别是:10,32,3,16,1,20,132,10,20
总的移动的磁道数是:244
四、程序与算法(共10分)
设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用信号量写出两个进程的同步算法,要求写出信号量的初值。
解:
semaphoremutex=1;
semaphoreempty=20;
semaphorefull=0;
intin,out=0;
itemp[20];
voidProducer(){
while(ture){
produceraniteminnextp;
wait(empty);
wait(mutex);
p[in]:=nextp;
in:=(in+1)mod20;
signal(mutex);
signal(full);
}
}
voidConsumer(){
while(ture){
wait(full);
wait(mutex);
nextc:=p[out];
out:=(out+1)mod20;
signal(mutex);
signal(empty);
}
}
六、计算题(第1题6分;第2题10分;第3题8分;共24分)
1、某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 |
物理块号 |
0 |
5 |
1 |
10 |
2 |
4 |
3 |
7 |
则逻辑地址0A5D(H)所对应的物理地址是什么?(6分)
0A5D(H)=0000101001011101
2号页对应4号块,所以物理地址是0001001001011101
即125D(H)。
2、设有三道作业,它们的提交时间及执行时间由下表给出:
作业号提交时间执行时间
18.52.0
29.21.6
39.40.5
试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间(时间单位:小时,以十进制进行计算;要求写出计算过程)(10分)
FCFS:作业号提交时间执行时间开始时间完成时间周转时间
18.52.08.510.52.0
29.21.610.512.12.9
39.40.512.112.63.2
平均周转时间=(2.0+2.9+3.2)/3=2.7(小时)
SJF:作业号提交时间执行时间开始时间完成时间周转时间
18.52.08.510.52.0
29.21.611.012.63.4
39.40.510.511.01.6
平均周转时间=(2.0+3.4+1.6)/3=2.3(小时)
1.设有两个进程P1和P2,其优先权分别为10和8,同时进入就绪队列(ReadyQueue);各自运行的程序段(Code)如下表,其中信号量S1和S2的初值均为0,已知x,y,z为共享变量(PublicVariable),x的初值为0,z的初值为3,若调度程序执行的策略为抢占式优先权调度算法,试问:
[1](5分)P1、P2并发执行序列(用代码标号Mi,Ni表示i=1,..,6)
[2](3分)变量x,y,z的运行结果是什么?
进程P1 |
进程P2 |
||
M1 |
y:=1; |
N1 |
x:=1; |
M2 |
y:=x+y+3; |
N2 |
x:=x+z+1; |
M3 |
V(S1); |
N3 |
P(S1); |
M4 |
z:=x+y; |
N4 |
y:=x+y+z; |
M5 |
P(S2); |
N5 |
V(S2); |
M6 |
x:=z+y; |
N6 |
z:=x+z; |
解: M1y=1
M2y=4
M3(S1=1)P1继续
M4z=4
M5P1阻塞
N1x=1
N2x=6
N3(S1=0)P2继续
N4y=14
N5唤醒P1,P1抢占CPU
M6x=18P1完成
N6z=22P2完成
x=18,y=14,z=22
------------------------------------------------------------------------
2.考虑下面的页访问串(ReferenceString):
0,1,4,3,0,1,2,4,0,1,5,1,6,2,1,7,0,1,2,3,0,1,2
假定系统给该进程分配4个物理块(Frames),进程运行时,先将0,1号页装入内存。应用下面的页面置换算法(Page-replacementalgorithm),计算各会出现多少次缺页中断(PageFaults);并给出依次被置换的页号(PageNO.)
[1](4分)LRU
[2](4分)Optimal
解:Opt:
序列 |
0 |
1 |
4 |
3 |
0 |
1 |
2 |
4 |
0 |
1 |
5 |
1 |
6 |
2 |
1 |
7 |
0 |
1 |
2 |
3 |
0 |
1 |
2 |
内存 |
0 1 |
0 1 |
0 1 4 |
0 1 4 3 |
0 1 4 3 |
0 1 4 3 |
0 1 4 2 |
0 1 4 2 |
0 1 4 2 |
0 1 4 2 |
0 1 5 2 |
0 1 5 2 |
0 1 6 2 |
0 1 6 2 |
0 1 6 2 |
0 1 7 2 |
0 1 7 2 |
0 1 7 2 |
0 1 7 2 |
0 1 3 2 |
0 1 3 2 |
0 1 3 2 |
0 1 3 2 |
缺页 |
|
|
√ |
√ |
|
|
√ |
|
|
|
√ |
|
√ |
|
|
√ |
|
|
|
√ |
|
|
|
置换 |
|
|
|
|
|
|
3 |
|
|
|
4 |
|
5 |
|
|
6 |
|
|
|
7 |
|
|
|
7次缺页
LRU:
序列 |
0 |
1 |
4 |
3 |
0 |
1 |
2 |
4 |
0 |
1 |
5 |
1 |
6 |
2 |
1 |
7 |
0 |
1 |
2 |
3 |
0 |
1 |
2 |
内存 |
0 1 |
1 0 |
4 1 0 |
3 4 1 0 |
0 3 4 1 |
1 0 3 4 |
2 1 0 3 |
4 2 1 0 |
0 4 2 1 |
1 0 4 2 |
5 1 0 4 |
1 5 0 4 |
6 1 5 0 |
2 6 1 5 |
1 2 6 5 |
7 1 2 6 |
0 7 1 2 |
1 0 7 2 |
2 1 0 7 |
3 2 1 0 |
0 3 2 1 |
1 0 3 2 |
2 1 0 3 |
缺页 |
|
|
√ |
√ |
|
|
√ |
√ |
|
|
√ |
|
√ |
√ |
|
√ |
√ |
|
|
√ |
|
|
|
置换 |
|
|
|
|
|
|
4 |
3 |
|
|
2 |
|
4 |
0 |
|
5 |
6 |
|
|
7 |
|
|
|
10次缺页
------------------------------------------------------------------------
3.假设系统已完成某进程对86#磁道的访问请求,正在为访问100#磁道的请求者服务,还有若干个进程在等待服务,它们依次要访问的磁道号为55,58,39,18,90,160,150,38,184
[1](12分)写出按FCFS、SSTF、SCAN和CSCAN算法调度时,各进程被调度的次序。
[2](6分)计算平均寻道长度。(保留两位小数)
答:FCFS(先来先服务):100->55->58->39->18->90->160->150->38->184
平均寻道长度=(45+3+19+21+72+70+10+112+146)/9≈55.33
SSTF(最短寻道时间优先):100->90->58->55->39->38->18->150->160->184
平均寻道长度=(100-18+184-18)/9≈27.56
SCAN(扫描):100->150->160->184->90->58->55->39->38->18
平均寻道长度=(184-100+184-18)/9≈27.78
CSCAN(循环扫描):100->150->160->184->18->38->39->55->58->90
平均寻道长度=(184-100+184-18+90-18)/9≈35.78
-------------------------------------------------------------------------------------------------------------
4.假设有5个进程,P1、P2、P3、P4和P5;它们到达相对时刻和所要求服务时间(CPU-bursttime)如下表(时间单位为ms),试问非抢占方式(NonPreemptive)情况下,采用短进程优先(SPF)调度算法时:
[1](4分)写出进程调度顺序;
[2](4分)计算平均带权周转时间w。(保留两位小数)
进程(Process) |
P1 |
P2 |
P3 |
P4 |
P5 |
到达相对时刻(ArrivalTime) |
0 |
10 |
11 |
13 |
20 |
执行时间(Bursttime) |
12 |
8 |
4 |
2 |
1 |
解:进程 P1 P2 P3 P4 P5
完成时间 12 26 16 18 27
周转时间 12 16 5 5 7
带权周转时间 1 2 1.25 2.5 7
执行顺序:P1->P3->P4->P2->P5平均周转时间W=(1+2+1.25+2.5+7)/5=2.75
5.假定系统中有五个进程(P0,P1,P2,P3,P4)和四种类型的资源(A,B,C,D),全部资源
的数量(Vector)为(3,12,14,14);在T0时刻的资源分配情况如下表。
[1](4分)用银行家算法判断T0时刻系统状态是否安全?如为安全状态给出所有安全序列。
[2](4分)若进程P2提出请求Request(0,1,1,0),系统能否将资源分配给它?
Process |
Max |
Allocation |
||||||
A |
B |
C |
D |
A |
B |
C |
D |
|
P0 |
0 |
0 |
4 |
4 |
0 |
0 |
3 |
2 |
P1 |
2 |
7 |
5 |
0 |
1 |
0 |
0 |
0 |
P2 |
3 |
5 |
9 |
8 |
1 |
3 |
4 |
4 |
P3 |
0 |
8 |
8 |
4 |
0 |
3 |
3 |
2 |
P4 |
0 |
6 |
6 |
11 |
0 |
0 |
1 |
4 |
解:
(1)Available=(3,12,14,14)-(2,6,11,12)=(1,6,3,2)
Work=Available=(1,6,3,2)
Process |
Work |
Need |
Available |
Work+Ava |
Finish |
P0 |
(1,6,3,2) |
(0,0,1,2) |
(0,0,3,2) |
(1,6,6,4) |
True |
P3 |
(1,6,6,4) |
(0,5,5,2) |
(0,3,3,2) |
(1,9,9,6) |
True |
P1 |
(1,9,9,6) |
(1,7,5,0) |
(1,0,0,0) |
(2,9,9,6) |
True |
P2 |
(2,9,9,6) |
(2,2,5,4) |
(1,3,4,4) |
(3,12,13,10) |
True |
P4 |
(3,12,13,10) |
(0,6,5,7) |
(0,0,1,4) |
(3,12,14,14) |
True |
T0时刻是安全的,安全序列为:{P0,P3,P1,P2,P4},
(2)若P2提出请求Request(0,1,1,0),调用银行家算法:
Request(0,1,1,0) Request(0,1,1,0) 进行假分配,修改相应的数据结构: Allocation=(1,3,4,4)+(0,1,1,0)=(1,4,5,4) Need=(2,2,5,4)-(0,1,1,0)=(2,1,4,4) Available=(1,6,3,2)-(0,1,1,0)=(1,5,2,2) 调用安全性算法: 能得到安全序列:{P0,P3,P1,P2,P4},所以可以分配