当前位置:网站首页 > 编程语言 > 正文

进程控制块是进程存在的唯一标志(进程控制块是进程存在的唯一标志。( )A对)




  1. 计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是:
    • A、2
    • B、3
    • C、4
    • D、5
  2. 下列关于银行家算法的叙述中,正确的是:
    • A、银行家算法可以预防死锁
    • B、当系统处于安全状态时,系统中一定无死锁进程
    • C、当系统处于不安全状态时,系统中一定会出现死锁进程
    • D、银行家算法破坏了死锁必要条件中的“请求和保持”条件
  3. 以下关于死锁问题的说法中正确的是:
    • A、死锁问题是无法解决的,但可以避免
    • B、死锁的预防是通过破坏进程进入不安全状态来实现的
    • C、通过破坏死锁四个必要条件中的所有条件才可以实现死锁避免
    • D、死锁的检测和解除是配合使用的,当系统检测到出现死锁时,就通过死锁解除方法解除死锁
  4. 以下关于系统的安全状态的描述中正确的是:
    • A、系统处于不安全状态一定会发生死锁
    • B、系统处于不安全状态可能会发生死锁
    • C、系统处于安全状态时也可能会发生死锁
    • D、不安全状态是死锁状态的一个特例
  5. 资源的静态分配算法在解决死锁问题中用于:
    • A、死锁预防
    • B、死锁避免
    • C、死锁检测
    • D、死锁解除
  6. 有3个进程共享7个同类资源,为使系统不会发生死锁,每个进程最多可以申请个资源:
    • A、1
    • B、2
    • C、3
    • D、4

(1)解决死锁的方法可以有多种,其中死锁的预防是通过 破坏死锁的必要条件之一 来实现的,死锁的避免是通过 防止系统进入不安全状态 来实现的。

(2)死锁的避免,就是通过保持系统处于 安全状态 来避免死锁,所以每当有进程提出资源分配请求时,系统应分析 各进程已占资源数、尚需资源数和系统中可以分配的剩余资源数,然后决定是否为当前的申请者分配资源。

(3)死锁检测要解决两个问题,一是 判断系统是否出现了死锁,二是当有死锁发生时怎样去 解除死锁

(4)为了避免死锁,可以采用 银行家 算法进行资源安全分配。

(5)系统出现死锁,不仅与 设备 分配策略有关,而且与 进程 执行的相对速度有关。

(6)当检测到系统发生死锁时,可采用 解除所有死锁进程逐个撤销死锁进程抢占死锁进程的资源供其它进程使用 来解除死锁。

  1. 何谓死锁?给出只涉及一个进程的死锁例子。
    • 死锁是进程在等待其他进程释放资源时发生的阻塞状态,无法继续执行。一个进程的死锁例子是:进程等待自己已经持有的资源被释放。
  2. 死锁预防和死锁避免。
    • 死锁预防是提前采取措施阻止死锁条件形成,如限制资源分配。死锁避免是在运行时动态确保系统不进入不安全状态,如使用银行家算法。
  3. 为什么说采用有序资源分配法不会产生死锁?
    • 有序资源分配法通过规定资源分配顺序,防止循环等待,从而避免死锁。
  4. 安全状态和不安全状态。
    • 安全状态指系统能找到资源分配序列使所有进程完成,而不安全状态则无法保证,存在死锁风险。

(1)假设系统由相同类型的m个资源组成,有n个进程,每个进程至少请求一个资源。证明:当n个进程最多需要的资源之和小于m+n时,该系统无死锁。

【分析】设ai为第i个进程对资源的最大需求数,如果每个进程均获得了最大需求数减1个资源,显然,此时系统只要还有1个资源,就不会发生死锁。

【证明】根据以上分析,有:
(a1-1)+(a2-1)+…+(ai-1)…+(an-1)≤m-1
即 a1+a2+…+ai…+an≤m+n-1
亦即 a1+a2+…+ai…+an<m+n
命题得证

(2)考虑下列资源分配策略:对资源的申请和释放可以在任何时候进行。如果一个进程提出资源请求时得不到满足,若此时无由于等待资源而被阻塞的进程,则自己就被阻塞;若此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程,如果它们有申请进程所需要的资源,则将这些资源取出分配给申请进程。
1)这种分配策略会导致死锁吗?如果会,请举一个例子;如果不会,请说明产生死锁的哪一个必要条件不成立?
2)这种分配方式会导致某些进程的无限等待吗?为什么?

(3)某系统有同类资源m个,被n个进程共享,请分别讨论当m>n和m≤n时每个进程最多可以请求多少个这类资源,才能使系统一定不会发生死锁?

| 进程 | 最大资源需求量 | 已分配资源数量 |
|------|----------------|----------------|
| P1   | 3              | 2              | 1         | 0        | 0        |
| P2   | 6              | 1              | 3         | 4        | 1        | 1        |
| P3   | 3              | 1              | 4         | 2        | 1        | 1        |
| P4   | 4              | 2              | 2         | 0        | 0        | 2        |
问题:
1)将系统中各类资源总数和此刻各进程对资源的需求数目用向量或矩阵表示出来;
2)如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因。
3)如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?

1)系统中各类资源总数向量为(9,3,6)
需求矩阵为
在这里插入图片描述
2)当P1和P2均发出资源请求向量Request(1,0,1)时,应把资源分配给P2,因为此时如果把资源分配给P1,则需求矩阵为:
在这里插入图片描述
而系统可用资源向量为(1,1,1),显然,系统资源已不足以帮助任何一个进程完成任务,系统将进入不安全状态。而把资源分配给P2后,需求矩阵为:
在这里插入图片描述
而系统可用资源向量为(1,1,1),显然,存在安全序列< P2,P1,P4,P3>,系统仍然处于安全状态。
3)如果(2)中两个请求立即得到满足后,系统此刻处于不安全状态,但并不是死锁状态。

到此这篇进程控制块是进程存在的唯一标志(进程控制块是进程存在的唯一标志。( )A对)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • xmouse怎么用(xmouse怎么快捷键关闭)2025-04-06 17:45:10
  • 蓝牙的地址(蓝牙地址规则)2025-04-06 17:45:10
  • gjk算法代码实现(gs算法代码)2025-04-06 17:45:10
  • 圈1到圈20复制(圈20到圈30序号复制)2025-04-06 17:45:10
  • 吃速排卵药注意什么(吃排卵药会快速怀孕吗)2025-04-06 17:45:10
  • vb方法名词解释(vb名次解释)2025-04-06 17:45:10
  • 华为模拟器ensp考试(华为的模拟器ensp)2025-04-06 17:45:10
  • ubuntu源码下载(ubuntu安装源码包)2025-04-06 17:45:10
  • 手机本机信息(手机本机信息怎么删除)2025-04-06 17:45:10
  • 合并数组并去重(合并数组中有相同属性的对象)2025-04-06 17:45:10
  • 全屏图片