开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情
1.银行家算法
首先根据还剩的资源数来按需分配,先分配一个等其结束后就可以将资源解放,这个程序的资源就回到了公共部分,如果都满足的情况可以随便选,资源分配的这个序列叫做安全序列。
某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下: 进程已占有资源最大需求数
按银行家算法回答下列问题:
(1)现在系统中的各类资源还剩余多少?(4分)
(2)现在系统是否处于安全状态?为什么?(6分)
(3)如果现在进程P2提出需要A类资源0个、B类资源4个、c类资源2个和D类资源0个,系统能否去满足它的请求?请说明原因。(6分)
(1)还剩多少=已有的-剩下的
A:3-2=1
B:14-9=5
C:12-10=2
D:12-12=0
(2)MAX:已有的 All:已分配的 Need:所需要的 Avail:各类资源还剩多少
Need=MAX-ALL work:第一次为Avail,之后为work+all的值
(3) P2ALL+提出的
P2Need-提出的
Avail-提出的
再将表进行替换,在使用2)中寻找安全序列方法,看是否能找到
2.原语
原子语句,不可分割,执行不可中断(要么全部执行,要么都不执行)
分类:
请求(Req)型原语,用于高层向低层请求某种业务
证实(Cfm)型原语,用于提供业务的层证实某个动作已经完成
指示(Ind)型原语,用于提供业务的层向高层报告一个与特定业务相关的动作
响应(Res)型原语,用于应答,表示来自高层的指示原语已收到