正在加载图片...
闲时,都可自己到该队列中取一进程(或线程)来执行 (2)成组调度方式。它是指将一组相互合作的进程或隶属于国一个进程的一组线程分配到 组处理器上去同时执行 3)专用处理器分配方式。它是指在一个应用程序的执行期间,专门为该应用程序分配一组 处理器,每一个线程一个处理器。这组处理器仅供该应用程序专用,直至该应用程序完成 4.1.3死锁 1.死锁的概念 所谓死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法 向前推进。死锁是计算机系统和进程所处的一种状态 2.产生死锁的原因和必要条件 (1)死锁产生的原因 死锁产生的原因有以下两点 ①系统资源不足例如在上面的例子中,若系统中有两台打印机或者两台输入设备可 供进程P1和P2使用,当其中任一个进程提出设备请求后,立即可得到满足,显然不会出现死锁 状态。这就是说,如果系统中有足够的资源可供每个进程使用,死锁就不会发生。所以说,产生 死锁的根本原因是可供多个进程共亭的系统资源不足。当然,只有当进程提出资源请求时,才 会发生死锁。 ②进程推讲顺序不当例如在上面的例子中,若进程P2在P1提出使用输入设备的要求之 前,已经完成了对输入设备和打印机的使用,并且释放了它们:或者是在进程P2提出使用打印 机的请求之前,进程Pl已经完成了对输入设备和打印机的使用,并且释放了它们,则均不会发 生死锁。 (2)死锁产生的必要条件 发生死锁的必要条件有以下四条: ①互斥条件:造程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一个 进程所占有。 ②不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放 ③部分分配条件:进程每次申请它所需要的一部分资源。在等待新资源的同时,进程继续 占有己分配到的资源。 ④环路条件:存在一种进程资源的循环等待链,链中的每一个进程已获得资源的同时被链 中下一个进程所请求 3.死锁的预防 根据以上讨论,要想防止死锁的发生,只需破坏死锁产生的四个必要条件之一即可 (1)破坏互斥条件 破坏互斥条件就是要允许多个进程同时访问资源。但是这受到资源本身固有特性的限制, 有些资源根本不能同时访问,只能互斥访问。比如打印机,就不允许多个进程在其运行期间交 替打印数据,打印机只能互斥使用。因此,企图通过破坏互斥条件防止死锁的发生是不大可能 (2)破坏不剥夺条件 为了破坏不剥夺条件,可以制定这样的策略:一个已获得某些资源的进程,若新的资源请 求不能立即得到满足,则它必须释放所有己获得的资源,以后需要再重新申请。这意味着,一个 进程已获得的资源在运行过程中可被剥夺,从而破坏了不剥夺条件。该策略实现起来比较复杂, 释放已获得资源可能造成前一段工作的失效,重复申请和释放资源会增加系统开销,降低系统 吞吐量。闲时,都可自己到该队列中取一进程(或线程)来执行。 (2)成组调度方式。它是指将一组相互合作的进程或隶属于国一个进程的一组线程分配到 一组处理器上去同时执行。 (3)专用处理器分配方式。它是指在一个应用程序的执行期间,专门为该应用程序分配一组 处理器,每一个线程一个处理器。这组处理器仅供该应用程序专用,直至该应用程序完成。 4.1.3 死 锁 1.死锁的概念 所谓死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法 向前推进。死锁是计算机系统和进程所处的一种状态。 2. 产生死锁的原因和必要条件 (1)死锁产生的原因 死锁产生的原因有以下两点: ①系统资源不足 例如在上面的例子中,若系统中有两台打印机或者两台输入设备可 供进程P1和P2使用,当其中任一个进程提出设备请求后,立即可得到满足,显然不会出现死锁 状态。这就是说,如果系统中有足够的资源可供每个进程使用,死锁就不会发生。所以说,产生 死锁的根本原因是可供多个进程共亭的系统资源不足。当然,只有当进程提出资源请求时,才 会发生死锁。 ②进程推讲顺序不当 例如在上面的例子中,若进程P2在P1提出使用输入设备的要求之 前,已经完成了对输入设备和打印机的使用,并且释放了它们;或者是在进程 P2 提出使用打印 机的请求之前,进程 Pl 已经完成了对输入设备和打印机的使用,并且释放了它们,则均不会发 生死锁。 (2)死锁产生的必要条件 发生死锁的必要条件有以下四条: ①互斥条件:造程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一个 进程所占有。 ②不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放。 ③部分分配条件:进程每次申请它所需要的一部分资源。在等待新资源的同时,进程继续 占有己分配到的资源。 ④环路条件:存在一种进程资源的循环等待链,链中的每一个进程已获得资源的同时被链 中下一个进程所请求。 3.死锁的预防 根据以上讨论,要想防止死锁的发生,只需破坏死锁产生的四个必要条件之一即可。 (1)破坏互斥条件 破坏互斥条件就是要允许多个进程同时访问资源。但是这受到资源本身固有特性的限制, 有些资源根本不能同时访问,只能互斥访问。比如打印机,就不允许多个进程在其运行期间交 替打印数据,打印机只能互斥使用。因此,企图通过破坏互斥条件防止死锁的发生是不大可能 的。 (2)破坏不剥夺条件 为了破坏不剥夺条件,可以制定这样的策略:一个已获得某些资源的进程,若新的资源请 求不能立即得到满足,则它必须释放所有己获得的资源,以后需要再重新申请。这意味着,一个 进程已获得的资源在运行过程中可被剥夺,从而破坏了不剥夺条件。该策略实现起来比较复杂, 释放已获得资源可能造成前一段工作的失效,重复申请和释放资源会增加系统开销,降低系统 吞吐量
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有