当前位置: 首页 > news >正文

进程资源分配的安全性判断与安全序列

        假设5个进程P0、P1、P2、P3、P4共享三类资源R1、R2、R3,这些资源总数分别为18、6、22。T0时刻的资源分配情况如下表所示,此时存在的一个安全序列是(         )

进程

已分配资源

资源最大需求

R1

R2

R3

R1R2R3

P0

3235510

P1

403536
P2405436
P3204425
P4314424

                A. P0,P2,P4,P1,P3                 B. P1,P0,P3,P4,P2

                C. P2,P1,P0,P3,P4                 D. P3,P4,P2,P1,P0

首先,我们需要了解一下,什么是安全序列?

 安全序列

        如果系统在执行进程的过程中,对进程按某种不安全序列进行资源分配会使系统进入不安全状态,这个时候需要进行【进程等待】。

                        【需要知道的是】不是所有不安全状态都是死锁状态。

                        【需要知道的是】系统进入不安全状态后,有一定概率进而进入死锁状态。

        【需要知道的是】计算机操作系统处于安全状态,系统便可避免进入死锁状态。

                为了进入安全状态,系统会允许进程动态地申请资源,并在系统资源分配给进程之前,系统会根据进程序列先计算判断是否能进入安全状态。

                        如果系统能按某种序列为每个进程分配直到最大需求的所需资源,使每个进程都可顺利完成,则该序列便可称为安全序列。如果按该安全序列进行资源分配就会使系统进入安全状态,此时系统才会允许将资源分配给进程去执行。                     

        这里要求的是5个进程在R1、R2、R3这3个资源是否存在安全序列,也提供了1个表,我们可以将这个表换个形式延伸继续做,从而更方便我们理解整个计算过程。

进程

已分配资源

资源最大需求

R1

R2

R3

R1R2R3

P0

3235510

P1

403536
P24054011
P3204425
P4314424

R1的资源总数为18R2的资源总数为6R3的资源总数为22

目前已分配资源量

3+4+4+2+3=162+0+0+0+1=33+3+5+4+4=19

可利用资源矢量Available

18-16=26-3=322-19=3【可利用资源矢量】由【各资源总数】减去【目前已分配资源量】可得
故目前资源R1、R2、R3的可利用资源矢量为(2,3,3)
⬇由进程对相应资源的最大需求减去目前该进程已分配到的资源⬇
R1R2R3
进程P0需要的资源量Need237
进程P1需要的资源量Need133
进程P2需要的资源量Need006
进程P3需要的资源量Need221
进程P4需要的资源量Need110

由上表可知,R1、R2、R3的可利用资源矢量为(2,3,3)

        进程P0需要的资源量为(2,3,7),其中对资源R3需要的资源量达到7,很明显目前可利用资源矢量(2,3,3)里的最后1个3不够用,所以判断如果以进程P0开头的这个【P0,P2,P4,P1,P3】序列进行资源分配有可能会让系统进入到不安全的状态,故序列【P0,P2,P4,P1,P3】不是安全序列。

        进程P1需要的资源量为(1,3,3),目前可利用资源矢量(2,3,3)都能涵盖进程P1的需求,所以判断以进程P1开头的序列可能是安全序列。

        进程P2需要的资源量为(0,0,6),其中对资源R3需要的资源量达到6,很明显目前可利用资源矢量(2,3,3)里的最后1个3不够用,所以判断如果以进程P2开头的这个【P2,P1,P0,P3,P4】序列进行资源分配有可能会让系统进入到不安全的状态,故序列【P2,P1,P0,P3,P4】不是安全序列。

        进程P3需要的资源量为(2,2,1),目前可利用资源矢量(2,3,3)都能涵盖进程P3的需求,所以判断以进程P3开头的序列可能是安全序列。


        通过上面我们得出,以进程P1或进程P3开头的序列可能是安全序列。


         

        因为通过上面的表格我们已计算出目前资源R1、R2、R3的【可利用资源矢量Available】为(2,3,3)

        如果一开始给进程P1分配资源,

                【R1的可利用资源】为2,那么分1个去给P1使它原本已分配资源4个加上1个为5个,此时满足资源最大需求5,它满足的话它这个进程P1对资源R1的资源获取就完成,同时也就将R1的资源最大需求5个给释放出来,因为刚才【R1的可利用资源】为2,那么分1个去给P1,也就是只剩下了1个,那么这1个加上刚刚释放出来的5个,也就是1个+5个=6个,故此时的【R1的可利用资源】6个

                【R2的可利用资源】为3,它的原本已分配给进程P1的资源为0,即还没分配,它的资源最大需求为3,那么从【R2的可利用资源】3个全部抽出来去满足进程P1对R2资源的最大需求,它满足的话进程P1对资源R2的资源获取也就完成,也就将R2的资源最大需求3个给释放出来,因为刚才【R2的可利用资源】已全部抽出,故没有剩下,所以0个+3个=3个,故此时的【R2的可利用资源】为3个

                【R3的可利用资源】为3,它的原本已分配资源为3,进程P1对它的资源最大需求为6,那么从【R3的可利用资源】3个全部抽出来去满足进程P1对R3资源的最大需求,它满足的话进程P1对资源R3的资源获取也就完成,也就将R3的资源最大需求6个给释放出来,因为刚才【R3的可利用资源】已全部抽出,故没有剩下,所以0个+6个=6个,故此时的【R3的可利用资源】为6个

即给进程P1分配资源完成后,

        R1、R2、R3的【可利用资源矢量Available】将变为(6,3,6)

而题目选项讲到的以进程P1开头的序列为【P1,P0,P3,P4,P2】,即进程P1后面为进程P0,进程P0对资源R1、R2、R3的最大需求为(5,5,10),其中P0对R2的资源最大需求为5,此时P1分配资源完成后,【R2的可利用资源】仅为3,无法满足进程P0对R2的需求,所以判断如果以进程P1开头的这个【P1,P0,P3,P4,P2】序列进行资源分配有可能会让系统进入到不安全的状态,所以序列【P1,P0,P3,P4,P2】不是安全序列。


          

        因为通过上面的表格我们已计算出目前资源R1、R2、R3的【可利用资源矢量Available】为(2,3,3)

        如果一开始给进程P3分配资源,

                【R1的可利用资源】为2,那么分2个去给进程P3使它原本已分配资源2个加上2个为4个,此时满足资源最大需求4,它满足的话这个进程P3对资源R1的资源获取就完成,也就将R1的资源最大需求4个给释放出来,因为刚才【R1的可利用资源】为2,那么分2个去给P3,也就是只剩下了0个,已全部抽出,故没有剩下,所以0个+4个=4个,故此时的【R1的可利用资源】4个

               【R2的可利用资源】为3,那么分2个去给P3使它原本已分配资源0个加上2个为2个,此时满足资源最大需求2,它满足的话这个进程P3对资源R2的资源获取就完成,也就将R2的资源最大需求2个给释放出来,因为刚才【R2的可利用资源】为3,那么分2个去给P3,也就是只剩下了1个,所以1个+2个=3个,故此时的【R2的可利用资源】3个

                【R3的可利用资源】为3,那么分1个去给P3使它原本已分配资源4个加上1个为5个,此时满足资源最大需求5,它满足的话这个进程P3对资源R3的资源获取就完成,也就将R3的资源最大需求5个给释放出来,因为刚才【R3的可利用资源】为3,那么分1个去给P3,也就是只剩下了2个,所以2个+5个=7个,故此时的【R3的可利用资源】7个

即给进程P3分配资源完成后,

                R1、R2、R3的【可利用资源矢量Available】将变为(4,3,7),

                而题目选项讲到的以进程P3开头的序列为【P3,P4,P2,P1,P0】,即进程P3后面为进程P4,可查到进程P4的对资源R1、R2、R3的最大需求为(4,2,4),均小于目前R1、R2、R3的【可利用资源矢量Available】(4,3,7)

所以判断以P3开头的序列可能是安全序列。

继续画表进一步判断。以进程P3开头的序列【P3,P4,P2,P1,P0】,进程P3完成后轮到进程P4,已知进程P3完成后R1、R2、R3的【可利用资源矢量Available】为(4,3,7)

以进程P3开头的序列为【P3,P4,P2,P1,P0】
R1R2R3

进程P4的资源最大需求

424比如从R1的可利用资源4抽取1个去加上已分配资源的3个来满足进程P4的资源最大需求4,那么现在R1的可利用资源变为3,这个3加上刚刚已满足的最大需求4就是3+4=7,其他以此类推

已分配资源

314

目前可利用资源矢量Available

437

3+4=7

2+2=4

7+4=11

进程P2的资源最大需求

4011

已分配资源

405

目前可利用资源矢量Available

7411

7+4=11

4+0=4

6+11=17

进程P1的资源最大需求

536

已分配资源

403

目前可利用资源矢量Available

11417
10+5=151+3=414+6=20

进程P0的资源最大需求

5510

已分配资源

323

目前可利用资源矢量Available

15420
13+5=181+5=613+10=23

故此时假设走完了整个序列,最后的可利用资源矢量Available为

18623

因为

 如果系统能按某种序列为每个进程分配直到最大需求的所需资源,使每个进程都可顺利完成,则该序列便可称为安全序列。

        经过上面的各项计算,进程P3开头的序列【P3,P4,P2,P1,P0】能为每个进程分配直到最大需求的所需资源,使每个进程都可顺利完成,执行该序列能让系统进入到安全状态,故该序列为安全序列。

http://www.dtcms.com/a/290469.html

相关文章:

  • 14.6 《3步实战LLaMA2-7B指令微调:Hugging Face生态+LoRA技术,MT-Bench得分从5.1直升7.3》
  • 【烧脑算法】拓扑排序:从“依赖”到“序列”,理解题目中的先后逻辑
  • 通俗易懂卷积神经网络(CNN)指南
  • [深度学习] 大模型学习3上-模型训练与微调
  • Pytorch02:深度学习基础示例——猫狗识别
  • 无人机避障雷达模式运行方式
  • 【服务器】服务器调试及仿真软件安装调试心得
  • 《RISC-V 导论:设计与实践》开源课件(附下载链接)
  • 第三章自定义检视面板_创建自定义编辑器类_如何自定义预览窗口(本章进度5/9)
  • MySQL分布式架构深度实践:从分库分表到云原生集成
  • 牛客周赛 Round 101--幂中幂plus
  • 【计算机组成原理】浮点数表示与运算
  • 开尔文封装的 SiC MOSFET 器件可靠性实例研究
  • Java学习----NIO模型
  • 朝歌智慧盘古信息:以IMS MOM V6重构国产化智能终端新生态
  • 20250720问答课题-基于BERT与混合检索问答系统代码解读
  • 论文笔记:EDITING MODELS WITH TASK ARITHMETIC
  • 【论文阅读】Nonparametric clustering of RNA-sequencing data
  • 【力扣】第42题:接雨水
  • Smart Tomcat
  • 人工智能教研室暑期培训flask全栈开发培训
  • 元图 CAD:PDF 与 CAD 格式互转的完美解决方案
  • 【Python 】dotenv 模块与用法介绍及Flask 集成用法示例
  • 力扣-45.跳跃游戏II
  • 解决mac chrome无法打开本地网络中的内网网址的问题
  • 【HTML】图片比例和外部div比例不一致,最大程度占满
  • CSS实现背景色下移10px
  • 网络协议(四)网络层 路由协议
  • Vue组件之间通信
  • 使用相机不同曝光时间测试灯光闪烁频率及Ai解释