首页 > 试题广场 >

死锁的预防方法中,不太可能的一种方法是( )。

[单选题]
死锁的预防方法中,不太可能的一种方法是( )。
  • 摒弃互斥条件
  • 摒弃请求和保持条件
  • 摒弃不剥夺条件
  • 摒弃环路等待条件

(1) 互斥条件:一个资源每次只能被一个进程使用。
          不可破坏
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
          一次性分配:要么全给,要么啥也不给。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
          设置优先级,高优先级可要求低优先级让出资源。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
          对资源进行编号,按照编号顺序申请访问
编辑于 2017-07-07 15:37:21 回复(3)
<p>互斥是非共享设备所必须的,不进不能改变,还要加以保证</p>
发表于 2020-10-27 19:46:29 回复(0)
互斥是资源的特性,不是执行的特性。解决计算机资源的问题在于节流(公平性),而非开源。
发表于 2021-01-03 16:11:19 回复(0)
# 死锁预防的四种方法及实例说明 死锁的预防是通过破坏死锁四个必要条件中的一个或多个来实现的。以下是四种预防方法及其实际例子: ## 1. 摒弃互斥条件(不太可能的方法) **原理**:允许资源共享,不要求资源独占 **问题**:很多资源本质就是必须互斥使用的 **例子**: - 打印机如果允许多个进程同时使用,会导致打印内容混杂 - 数据库记录如果允许多个进程同时修改,会导致数据不一致 **结论**:这是最不可能实现的方法,因为许多关键资源(如打印机、某些数据)本质就必须互斥访问 ## 2. 摒弃请求和保持条件 **原理**:要求进程一次性申请所有所需资源,或者在申请新资源前释放已有资源 **实现方式**: - 资源预分配:进程开始前申请所有需要的资源 - 无保持申请:申请新资源时必须先释放所有已持有资源 **例子**: - 建筑施工:承包商要求在开工前获得所有建材(水泥、钢筋等),而不是边施工边申请 - 银行转账:系统要求同时锁定转出账户和转入账户,而不是先锁定一个再尝试锁定另一个 ## 3. 摒弃不剥夺条件 **原理**:允许系统强制收回进程已持有的资源 **实现方式**: - 当进程申请新资源得不到满足时,释放其当前持有的所有资源 - 高优先级进程可以抢占低优先级进程的资源 **例子**: - 医院急诊:当急诊病人需要病床时,系统可能让非急诊病人暂时离开病床 - 云计算:当高优先级任务需要资源时,系统可能暂停低优先级任务并回收其资源 ## 4. 摒弃环路等待条件 **原理**:对资源类型进行排序,要求进程按顺序申请资源 **实现方式**: - 为所有资源类型建立全局顺序(如R1 < R2 < R3) - 要求进程必须按递增顺序申请资源 **例子**: - 数据库系统:规定所有事务必须按固定顺序(如表A→表B→表C)锁定表 - 餐厅管理:规定服务员必须按固定顺序(拿菜单→拿餐具→拿食物)获取物品 ## 实际应用对比 | 方法 | 实用性 | 系统开销 | 适用场景 | |------|--------|----------|----------| | 摒弃互斥 | 很低 | 低 | 几乎不适用 | | 摒弃请求保持 | 中 | 中 | 资源需求可预知的场景 | | 摒弃不剥夺 | 高 | 高 | 实时系统、优先级系统 | | 摒弃环路等待 | 高 | 低 | 资源类型明确的系统 | 在实际系统中,**摒弃环路等待**和**摒弃不剥夺条件**是最常用的方法,而**摒弃互斥条件**正如题目所说,是最不可能实现的方法。
发表于 2025-07-02 09:33:56 回复(0)