计算机中级-数据库系统工程师-操作系统-进程管理(2)
一、死锁1. 死锁的定义现象描述: 指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象。核心特征: 多个进程互相等待对方释放已获得的资源导致所有进程都在无限等待。1例题:死锁示例案例说明: 5个进程(A-E)每个需要4个资源系统共有15个资源时会发生死锁计算原理: 当每个进程都获得3个资源(共分配15个)时所有进程都缺少1个资源而互相等待公式推导: 系统中共有n个进程共享同类资源每个进程需要k个资源时不发生死锁的最小资源数M(k−1)×n1应用示例: 5个进程各需4个资源时最小需要(4−1)×5116个资源才能避免死锁2. 死锁的必要条件互斥条件: 资源具有独占性一个进程使用时其他进程不能共享请求保持条件: 进程获得部分资源后会保持占有这些资源同时请求其他资源不可剥夺条件: 已分配给进程的资源不能被其他进程或系统强行剥夺环路条件: 进程-资源分配图中存在环形等待链3. 死锁的处理策略鸵鸟策略: 忽略死锁问题适用于发生概率极低的场景预防策略: 通过限制资源请求方式破坏死锁必要条件实现方式: 采用静态分配策略进程运行前一次性分配所需全部资源避免策略: 使用银行家算法等动态评估资源分配安全性检测与解除: 定期运行检测程序发现死锁后采用资源剥夺法: 强制回收部分进程资源分配给其他进程撤销进程法: 终止部分进程释放其占用的所有资源4. 线程1进程的两个基本属性资源拥有: 可独立拥有系统资源的单位调度分配: 可被系统独立调度和分配的基本单位引入原因: 传统进程在创建、撤销、切换时会产生较大系统开销2线程的定义基本概念: 进程中的实体作为独立调度和分配的基本单位资源特征:仅拥有程序计数器、寄存器组和栈等必要资源共享所属进程的全部其他资源类型区分:用户级线程: 不依赖内核创建/撤销/切换无需系统调用内核支持线程: 依赖内核需要通过系统调用实现管理3线程的状态基本状态: 就绪、运行、阻塞三种状态别称对比:线程称为轻型进程(Lightweight Process)传统进程称为重型进程并发特性: 同一进程中的多个线程可以并发执行创建能力: 线程可以创建另一个线程二、知识小结知识点核心内容考试重点/易混淆点难度系数死锁定义多个进程互相等待对方已占有的资源导致无限等待的现象必要条件互斥、请求保持、不可剥夺、环路需完整记忆⭐⭐死锁示例5进程各需4资源系统15资源时必死锁16资源时可避免至少1进程满足资源计算公式(k-1)*n 1n进程每进程需k资源⭐⭐⭐死锁处理策略鸵鸟策略忽略、预防限制请求、避免如银行家算法、检测与解除剥夺/撤销进程预防 vs 避免预防是静态限制避免是动态评估⭐⭐⭐⭐线程概念轻量级进程独立调度单位但共享进程资源线程资源仅拥有程序计数器、寄存器、栈不可共享⭐⭐线程分类用户级线程无内核依赖、内核支持线程需系统调用关键区别是否依赖系统调用实现创建/切换⭐⭐进程 vs 线程进程是资源分配单位线程是调度单位线程共享进程资源除计数器/寄存器/栈重型进程 vs 轻型进程的术语对应⭐⭐⭐
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2495185.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!