操作系统学习(4)

135 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情

1.银行家算法

首先根据还剩的资源数来按需分配,先分配一个等其结束后就可以将资源解放,这个程序的资源就回到了公共部分,如果都满足的情况可以随便选,资源分配的这个序列叫做安全序列。

某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下: 进程已占有资源最大需求数

图片.png

按银行家算法回答下列问题:

(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的值

图片.png

(3)  P2ALL+提出的   

 P2Need-提出的

Avail-提出的

再将表进行替换,在使用2)中寻找安全序列方法,看是否能找到

2.原语

原子语句,不可分割,执行不可中断(要么全部执行,要么都不执行)

分类:

请求(Req)型原语,用于高层向低层请求某种业务

证实(Cfm)型原语,用于提供业务的层证实某个动作已经完成

指示(Ind)型原语,用于提供业务的层向高层报告一个与特定业务相关的动作

响应(Res)型原语,用于应答,表示来自高层的指示原语已收到