欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

欧卡2入门方向盘选莱仕达V9莱仕达折叠便携游戏方向盘支架欢迎地图Mod入驻
查看: 4423|回复: 1
收起左侧

[系统] 什么是死锁

[复制链接]
oppo 发表于 2020-5-4 17:15 | 显示全部楼层 |阅读模式
1金币
死锁是什么?

最佳答案

查看完整内容

[md] 进程死锁,它是操作系统或系统软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其他进程占用时,就形成了死锁 ## 产生死锁的原因 - 系统资源不足 - 进程运行推进的顺序不合适 - 资源分配不当等 ## 产生死锁的四个必要条件 - 互斥条件:一个资源每次只能被一个进程使用 - 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放 - 不剥夺条件:进程已获 ...
百看不厌 发表于 2020-5-4 17:15 | 显示全部楼层

进程死锁,它是操作系统或系统软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其他进程占用时,就形成了死锁

产生死锁的原因

  • 系统资源不足
  • 进程运行推进的顺序不合适
  • 资源分配不当等

产生死锁的四个必要条件

  • 互斥条件:一个资源每次只能被一个进程使用
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
  • 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
  • 循环等待条件:若干进程之间形成一种头尾相连的循环等待资源关系

避免死锁的方法

  • 有序的资源分配法
  • 银行家算法

解决死锁

  • 进行系统的重新启动(最简单粗暴)
  • 撤销进程,剥夺资源

银行家算法

银行家算法是一种最有代表性的避免死锁的算法

我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们|手机版|欧卡2中国 ( 湘ICP备11020288号-1 )

GMT+8, 2024-12-28 17:22 , Processed in 0.040708 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表