(1)调度 同一进程的多线程间调度时,不引起进程的切换 不同进程的线程间调度,需要进程切换 (2)并发性 个进程的多个线程之间可并发执行 (3)资源的拥有 线程不拥有系统资源,不拥有代码段、数据段 (4)系统开销 线程:系统仅为其保存少量寄存器内容 进程:整个当前CPU环境,资源清单等 死锁: 当两个或两个以上进程因竞争资源而无休止地处于相互等待状态 死锁将使进程己占用的资源的不到利用 严重情况下,死锁“蔓延”开,会导致“死机” 死锁 4.3死锁问题( dead lock) a例:进程1 进程2 P(s2) P(s2)十P(s1) 临界区 2临界区 v(s2) v(s2) 状态就绪执行阻塞 状态就绪执行阻塞 43.1死锁产生的必要条件 死锁和“资源”密切相关 1)资源访问的互斥条件 2)请求和保持条件 进程在需要时才申请资源——进程对资源的申请是分步的 进程在申请新资源时,对旧资源仍然保持占用 ◆3)不剥夺条件 资源一旦获得后在V(s)之前不放弃 ◆4)环路等待条件
(1)调度 同一进程的多线程间调度时,不引起进程的切换 不同进程的线程间调度,需要进程切换 (2)并发性 一个进程的多个线程之间可并发执行 (3)资源的拥有 线程不拥有系统资源,不拥有代码段、数据段。。。 (4)系统开销 线程:系统仅为其保存少量寄存器内容 进程:整个当前 CPU 环境,资源清单等 死锁: 当两个或两个以上进程因竞争资源而无休止地处于相互等待状态 死锁将使进程已占用的资源的不到利用 严重情况下,死锁“蔓延”开,会导致“死机” 死锁 ◼ 4.3死锁问题(dead lock) ◼ 例: P( s1 ) P( s2 ) 临界区 V( s2 ) V( s1 ) P( s2 ) P( s1 ) 临界区 V( s1 ) V( s2 ) ...... ...... ...... ...... 进程1 进程2 就绪执行阻塞 就绪执行 s1 s2 状态: 状态: 阻塞 死锁 4.3.1 死锁产生的必要条件 ◆ 死锁和“资源”密切相关 ◆ 1)资源访问的互斥条件 ◆ 2)请求和保持条件 进程在需要时才申请资源——进程对资源的申请是分步的 进程在申请新资源时,对旧资源仍然保持占用 ◆ 3)不剥夺条件 资源一旦获得后在 V(s)之前不放弃 ◆ 4)环路等待条件
死锁产生的必要条件 预防死锁 4)环路等待条件 预防 ◆存在进程资源环形链 ◆破坏死锁产生的四个条件的一个或几个 1)破坏互斥条件 c互斥访问是大部分资源的固有属性 ◆2)破坏请求和保持条件 c资源预分配,资源利用率低 ◆3)破坏不剥夺条件 c阻塞进程释放所有的资源,进程先前工作白费 ◆4)破坏环路等待条件 从资源出发的箭头表示已分配该资源 c资源按序分配,资源利用率低,进程受限 从进程出发的箭头表示进程正在申请资源 死锁的检测 资源分配图的化简 433死锁的检测 ■死锁检测法—资源图的化简 1)在图中找出一个不阻 资源分配图 寥,又不孤立的结点 c结点 2)削去该结点的所有 小进程结点 nP°边,使结点成为预立结 资源结点(同类资源形成一个结点)[ c有向线段 n3)继续步骤1直到所有 的结点都成为孤立结 进程正申请一个资源 点,或找不到可简化的 进程已获得一个资源 若资源分配图能被完全简化,则当前状态不存在死锁 反之,存在死锁进程,即那些非孤立结点 423进程之间的通信 进程同步问题的提出:进程异步推进可能造成混乱,混乱可能导致不可再现 进程同步目标:维持进程并发性以提高系统效率 进程间相互合作,资源有效共享(结果可再现) 进程间的两种主要关系 进程间的关系与进程间的独立性 进程间的关系是在进程间相对独立的前提下发展的 独立获得资源,独立调度
死锁产生的必要条件 ◼ 4)环路等待条件 ◆存在进程——资源环形链 Proc1 s2 Proc2 s1 Proc1 Proc3 Proc2 s2 s3 s1 从进程出发的箭头表示进程正在申请资源 从资源出发的箭头表示已分配该资源 预防死锁 ◼ 4.3.2 解决死锁的方法之一——预防 ◆破坏死锁产生的四个条件的一个或几个 ◆1)破坏互斥条件 互斥访问是大部分资源的固有属性 ◆2)破坏请求和保持条件 资源预分配,资源利用率低 ◆3)破坏不剥夺条件 阻塞进程释放所有的资源,进程先前工作白费 ◆4)破坏环路等待条件 资源按序分配,资源利用率低,进程受限 死锁的检测 ◼ 4.3.3 死锁的检测 ◆资源分配图 结点: ❖进程结点 ❖资源结点(同类资源形成一个结点) 有向线段: ❖进程正申请一个资源 ❖进程已获得一个资源 P1 P1 P1 资源分配图的化简 ◼ 死锁检测法——资源图的化简 P1 P2 r1 r2 P1 P2 ◼ 1)在图中找出一个不阻 塞,又不孤立的结点 ◼ 2)削去该结点的所有 边,使结点成为孤立结 点 ◼ 3)继续步骤1直到所有 的结点都成为孤立结 点,或找不到可简化的 结点 若资源分配图能被完全简化,则当前状态不存在死锁。 反之,存在死锁进程,即那些非孤立结点。 4.2.3 进程之间的通信 进程同步问题的提出:进程异步推进可能造成混乱,混乱可能导致不可再现 进程同步目标: 维持进程并发性以提高系统效率 进程间相互合作, 资源有效共享(结果可再现) 进程间的两种主要关系 进程间的关系与进程间的独立性 进程间的关系是在进程间相对独立的前提下发展的 独立获得资源, 独立调度