操作系统 死锁内容.docVIP

  • 2
  • 0
  • 约1.77千字
  • 约 5页
  • 2020-05-12 发布于山东
  • 举报
2)破坏环路条件 这种方法的基本思想是:对系统提供的每一项资源,由系统设计者将它们按类型进行线性排队,并赋予不同的序号。例如,设卡片输入机为1,打印机为2,磁带机为3,磁盘机为4,……。所有的进程都只能严格地按照编号递增(或递减)的次序去请求资源,亦即,只有低编号的资源要求满足后,才能对高编号资源提出要求;释放资源时,应按编号递减的次序进行。由此可以看出,对资源请求采取了这种限制之后,所形成的进程—资源图不可能再产生环路。如图所示 . 图 资源申请和释放顺序图 3、避免死锁 避免死锁是指通过某种算法,当系统分配资源时始终能作出是否分配的正确选择,从而避免死锁。 (1)静态预先分配所有资源,又称为银行算法。即事先静态说明而后静态分配,破坏部分分配条件,但这种方法的资源利用率低。 (2)受控资源分配法:1969年由Haberman提出,分配资源前先检查会不会发生死锁,要求各进程说明所需资源,将资源分类,按不同策略分配,又称为静态说明动态分配。 目前运用的避免死锁的算法是E.W.Dijkstra提出的银行家算法。 银行家算法的数据结构包括: 1)可用资源向量Available 2)最大需求矩阵Max 3)分配矩阵Allocation 4)需求矩阵Need 银行家算法如下: 设Requesti是进程Pi的请求向量,Requesti (j)=k表示进程Pi请求分配Rj类资源k个,当Pi发

文档评论(0)

1亿VIP精品文档

相关文档