安全序列

上传人:jiups****uk12 文档编号:90800853 上传时间:2019-06-19 格式:DOC 页数:12 大小:143.04KB
返回 下载 相关 举报
安全序列_第1页
第1页 / 共12页
安全序列_第2页
第2页 / 共12页
安全序列_第3页
第3页 / 共12页
安全序列_第4页
第4页 / 共12页
安全序列_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《安全序列》由会员分享,可在线阅读,更多相关《安全序列(12页珍藏版)》请在金锄头文库上搜索。

1、安全序列假设系统有4个进程,分别为P1、P2、P3、P4,9个R1资源,3个R2资源,6个R3资源,下图为T0时刻的资源分配表:进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P1322100222112P2613511102P3314211103P4422002420Max 表示:某个进程一共需要的资源个数。Allocation 表示:进程已分配到的资源个数。Need 表示:进程还需要的资源个数。Available 表示:系统到最后还剩下的空闲资源个数。Max = Allocation + Need一共需要 已分配 未分配另外,Avai

2、lable( 1,1, 2 )表示:系统剩下1个R1资源,1个R2资源,2个R3资源空闲。表示进程P1表示进程P2 (1,0,2)表示:进程P2还需要1个R1资源,0个R2资源,2个R3资源 表示:进程P1申请1个R1资源,0个R2资源,1个R3资源例如:进程MaxAllocationNeedR1R2R3R1R2R3R1R2R3P1322100222P1:3 = 1 + 2 (一共需要3个R1资源,已分配1个R1资源,还需要2个R1资源)进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P1322100222112P2613511102P3

3、314211103P4422002420上表所示:系统已经给P1分配了1个R1资源,给P2分配了5个R1资源,给P3分配了2个R1资源,给P1分配了0个R1资源,而系统原来一共有9个R1资源(题目已给出),所以,系统到最后一共还剩下 9 - ( 1 + 5 + 2 + 0 )= 1 个R1资源同理:系统到最后一共还剩下 3 - ( 0 + 1 + 1 + 0 )= 1 个R1资源系统到最后一共还剩下 6 - ( 0 + 1 + 1 + 2 )= 2 个R1资源如何求安全序列?进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P1322100

4、222112P2613511102P3314211103P4422002420第一步:先看表中的Available这一列,系统一共还剩下1个R1资源,1个R2资源,2个R3资源。 第二步:再看表中的Need这一列,只有进程P2申请的3个资源数分别小于系统剩余的3个资源数。所以先把剩余的系统资源分配给P1,让P2开始运行。(P1要申请2个R1和2个R2,但此时系统只剩下1个R1和1个R2,所以不能满足它的申请;P3要申请3个R3,但此时系统只剩下2个R3,所以也不能满足它的申请;P4要申请4个R1和2个R2,但系统只剩下1个R1和1个R2,所以也不能满足它的申请;) 第三步:P2运行完后,释放它

5、所占有的全部资源(6个R1,1个R2,3个R3),系统回收这些资源,因此系统此时一共剩下的资源增加为:6个R1,2个R2,3个R3(即:Allocation + Available)。得出下图结果:进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P1322100222623P3314211103P4422002420 第四步:再看表中的Need这一列,此时,进程P1、P3、P4申请的3个资源数都分别小于系统剩余的3个资源数。所以系统可以满足其中任意一个进程的申请。我们就先把系统资源分配给P1,让P1开始运行。第五步:P1运行完后,释放它所

6、占有的全部资源(3个R1,2个R2,2个R3),系统回收这些资源,因此系统此时一共剩下的资源增加为:7个R1,2个R2,3个R3(即:Allocation + Available)。得出下图结果:进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P3314211103723P4422002420第六步:再看表中的Need这一列,此时,进程P3、P4申请的3个资源数都分别小于系统剩余的3个资源数。所以系统可以满足其中任意一个进程的申请。我们就先把系统资源分配给P3,让P3开始运行。第七步:P3运行完后,释放它所占有的全部资源(3个R1,1个R

7、2,4个R3),系统回收这些资源,因此系统此时一共剩下的资源增加为:9个R1,3个R2,4个R3(即:Allocation + Available)。得出下图结果:进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3P4422002420934第八步:再看表中的Need这一列,此时,进程P4申请的3个资源数都分别小于系统剩余的3个资源数。所以系统可以满足它的申请。我们就把系统资源分配给P3,让P3开始运行。第九步:P3运行完后,释放它所占有的全部资源(4个R1,2个R2,2个R3),系统回收这些资源,因此系统此时一共剩下的资源增加为:9个R1

8、,3个R2,6个R3(即:Allocation + Available)。得出下图结果:进程MaxAllocationNeedAvailableR1R2R3R1R2R3R1R2R3R1R2R3936第十步:此时所有进程运行完毕,它们运行的时间先后顺序为: P2,P1,P3,P4 我们把这个序列称为安全序列,因为按照这个先后顺序执行进程,系统不会出现死锁,所以是安全的。注意:安全序列不是唯一的。(因为在“第四步”中,可以选择P1,P3,P4其中任意一个先执行,所以安全序列也可以是 P2,P3,P1,P4 、或 P2,P4,P3,P1 、或 P2,P4,P1,P3 等。安全性检查安全性检查,实质是

9、对前面那个 P2,P1,P3,P4,安全序列进行检验,下图是T0时刻的安全性检查(对应最前面那个T0时刻资源分配表)进程WorkNeed AllocationWork +AllocationFinishR1R2R3R1R2R3R1R2R3R1R2R3P2112102511623trueP1623222100723trueP3723103211934trueP4934420002936trueWork 表示:系统可提供给进程继续运行的各类资源的空闲资源的个数。( 安全性检查开始时,Work = Available )Work 与 Available的区别:Available是第一个进程运行前,系

10、统剩下的空闲资源。Work 是每个进程运行前,系统剩下的空闲资源。 ( “Available” 相当于第一个进程运行前的 “Work”)Finish 表示:系统是否有足够的进程分配给进程。 开始时,Finish = false; 当有足够资源分配给进程时,Finish = true。进程WorkNeed AllocationWork +AllocationFinishR1R2R3R1R2R3R1R2R3R1R2R3P2112102511623trueP1623222100723trueP3723103211934trueP4934420002936true注意:这里与前面的资源分配表是不同的,

11、是按之前的安全序列排列的,第一步:先看进程P2这一行,系统可提供的空闲资源“Work”大于进程P2所需要的资源“Need”,所以“Finish”为“true”。当进程P2运行完后,释放其所占有的全部资源,接着系统回收这些资源,此时,系统剩下的空闲资源为“Work +Allocation”,如下图所示:进程WorkNeed AllocationWork +AllocationFinishR1R2R3R1R2R3R1R2R3R1R2R3P2112102511623true第二步:再看进程P1这一行,先把P2运行完时,系统剩余的空闲资源“Work + Allocation”填入P2的“Work”这一列,接着,可以发现系统可提供的空闲资源“Work”大于进程P1所需要的资源“Need”,所以“Finish”为“true”。当进程P1运行完后,释放其所占有的全部资源,接着系统回收这些资源,此时,系统剩下的空闲资源为“Work +Allocation”,如下图所示:进程WorkNeed AllocationWork +AllocationFinishR1R2R3R1R2R3R1R2R3R1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号