✅ 1. 死锁(Deadlock)
📌 产生原因:
- 竞争资源:多个进程对有限资源的争夺。
- 进程推进顺序非法:进程请求/释放资源的顺序不当,导致互相等待。
📌 死锁的四个必要条件(必须同时满足):
条件名称 | 含义说明 |
---|---|
互斥条件 | 资源一次只能被一个进程占用。 |
请求保持条件 | 进程已持有一个资源,又请求新资源,但未释放已占用的资源。 |
不可剥夺条件 | 已分配的资源在未使用完之前不能被强制剥夺。 |
环路条件 | 存在一个进程等待链(环),链中每个进程都在等待下一个进程所占用的资源。 |
✅ 3. 死锁处理策略(4种)
策略名称 | 简要说明 |
---|---|
鸵鸟策略 | 忽略死锁问题,系统不做任何处理(适用于极少发生死锁的系统)。 |
预防策略 | 破坏死锁的四个必要条件之一。 |
避免策略 | 使用算法(如银行家算法)动态判断资源分配是否安全。 |
检测与恢复 | 允许死锁发生,通过检测机制发现死锁,再采取措施恢复(如终止进程或回滚)。 |
✅ 4.2.7 线程(Thread)
类型 | 特点 |
---|---|
用户级线程 | 由用户程序管理,不依赖内核,切换快,无法利用多核。 |
内核支持线程 | 由操作系统内核管理,依赖内核,支持多核并行,切换开销较大。 |
✅ 4.3 存储管理(Memory Management)
📌 管理对象:
- 主存储器(主存/内存)
📌 主要功能:
- 分配与回收:为进程分配内存空间,使用完后回收。
- 提高利用率:减少碎片,优化内存使用。
- 扩充主存:通过虚拟内存技术扩展可用内存。
- 信息保护:防止进程间非法访问内存区域。
1. 死锁产生的原因
- 竞争资源:当系统中多个进程共享的资源(如CPU、内存、I/O设备等)数量不足以满足所有进程的需求时,进程会因争夺资源而陷入等待状态,可能引发死锁。
- 进程推进顺序非法:即使资源充足,若进程的执行顺序不合理(如进程A持有资源1等待资源2,进程B持有资源2等待资源1),也会导致进程之间相互等待对方释放资源,从而产生死锁。
2. 死锁产生的4个必要条件(缺一不可)
- 互斥条件:资源被一个进程独占使用,其他进程不能同时访问该资源(如打印机一次只能被一个进程使用)。
- 请求保持条件:进程已经持有部分资源,又提出新的资源请求,且在等待新资源时不释放已持有的资源。
- 不可剥夺条件:进程已获得的资源不能被其他进程强行剥夺,只能由进程自身主动释放。
- 环路条件:多个进程之间形成环形等待链,每个进程都在等待下一个进程所持有的资源。
二、死锁处理策略
死锁的处理主要有以下4种策略:
- 鸵鸟策略(不理睬策略):认为死锁发生的概率极低,系统不采取任何处理措施,适合对实时性要求不高的场景(如个人计算机)。
- 预防策略:通过破坏死锁产生的4个必要条件中的至少一个,从根本上避免死锁发生(如采用资源预先分配法破坏“请求保持条件”)。
- 避免策略:在资源分配过程中,通过算法(如银行家算法)判断分配资源后是否可能发生死锁,若可能则拒绝分配,动态避免死锁。
- 检测与解除死锁:允许死锁发生,通过检测机制及时发现死锁,再采取措施解除(如终止部分进程、剥夺部分资源等)。
三、线程
线程是进程中的一个执行单元,是CPU调度的基本单位,分为两类:
- 用户级线程:由用户程序管理,不依赖操作系统内核。其创建、撤销、切换等操作在用户态完成,无需系统调用,效率高,但内核无法感知线程存在,调度仍以进程为单位。
- 内核支持线程(内核级线程):依赖操作系统内核,由内核进行管理。内核可以直接调度线程,线程的操作(如创建、切换)需要通过系统调用实现,开销较大,但能更好地利用多处理器资源。
四、存储管理
1. 管理对象
存储管理的对象是主存储器(主存/内存),即计算机中直接与CPU交换数据的存储器。
2. 主要功能
- 主存空间的分配和回收:根据进程需求分配内存空间,当进程结束或释放资源时回收内存,提高空间利用率。
- 提高主存的利用率:通过内存分区、分页、分段等技术,减少内存碎片,优化内存使用效率。
- 扩充主存:利用虚拟存储技术(如请求分页、请求分段),将外存作为内存的补充,逻辑上扩充主存容量。
- 对主存信息实现有效保护:确保各进程的内存空间相互隔离,防止进程非法访问或修改其他进程的内存数据,保证系统安全。
这些知识点是操作系统的核心内容,理解死锁的产生机制和处理策略、线程的分类特点以及存储管理的功能,有助于深入掌握操作系统对资源和进程的管理逻辑。