1. 破坏“请求与保持”条件,规定所有进程都必须一次性申请运行过程所需的全部资源,会造成资源浪费严重和更多更久的进程阻塞 。
2. 破坏“不剥夺”条件,规定一个已经保持了某些资源的进程,在提出新的资源请求而不能立即得到满足时,必须释放它已经获得的所有资源,方法实现复杂且开销大 。
3. 破坏“环路等待“条件,将系统资源按类型赋予不同的序号,当进程要获取多种资源时必须按序号逐个获取资源 。会限制新设备类型的增加,由于有些进程使用资源的顺序与规定的顺序不同,会造成资源的浪费 。
避免死锁将系统状态分为安全状态和不安全状态,安全状态一定不会产生死锁,不安全状态可能会产生死锁 。
允许进程动态申请资源,系统分配资源前进行安全性检查,若分配会导致系统进入不安全状态,则不予以分配 。
银行家算法,根本思想:当某个进程提出资源请求,并请求资源小于等于它实际所需资源时,检查是否存在一条路径可以在资源分配后,剩余的进程仍然可以完全结束 。
数据结构:
1. 可用资源向量 Available
2. 最大需求矩阵Max
3. 分配矩阵Allocation
4. 需求矩阵Need
5. 工作向量work
6. 工作向量Finish
死锁的检测与解除系统定时进行死锁的检测,当判明将发生死锁或已经发生死锁时,进行死锁的解除 。
死锁的检测:
1. 判断的现有的资源能否让现有的进程全部正常结束,不能则认为将发生死锁 。
2. 周期性检测进程阻塞时间,当其超过某一时间后,认为该进程为死锁进程 。
死锁的解除:
1. 剥夺资源
2. 撤销进程
存储器管理三级存储:
1. 高速缓存cache
2. 内存RAM
3. 磁盘
五级存储:
1. 寄存器
2. 高速缓存
3. 内存
4. 磁盘缓存
5. 磁盘
存储分配的三种方式:
1. 直接指定
2. 静态分配方式
3. 动态分配方式
程序的装入
- 绝对装入方式
编译程序产生实际存储地址(绝对地址)的目标模块逻辑地址与实际内存地址完全相同 - 可重定位装入方式
重定位(地址映射/地址变换),根据地址变换进行的时间及采用技术手段不同,分为: - 静态重定位
地址变化在装入内存时一次完成,优点:不需要硬件支持,可以装入有限多道程序 。缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动,不易实现共享 。 - 动态重定位
地址变换在程序执行时进行,在硬件地址变换机构的支持下,对每条指令或数据的访问自动进行地址变换 。优点:主存使用更加灵活,几个作业共享一个程序段的单个副本比较容易,可以向用户提供一个比主存的存储空间大得多的地址空间而用户无需考虑覆盖结构 。缺点:需要附加硬件支持,实现存储器管理的软件比较复杂 。 - 动态运行时装入方式
- 静态链接
- 装入时动态链接
- 运行时动态链接
存储器管理的目的
- 主存储器的分配和管理
- 提高主存储器的利用率
- “扩充”主存容量
- 存储保护
- 自动地址修改
- 0页,1页寻址
- 界限寄存器
- 单一连续分配方式
- 分区式分配方式
- 可重定位分区分配
应用程序装入到用户区,可使用用户区全部空间 。
分区式分配方式算法复杂,回收分区时系统开销大 。
1. 固定分区分配
(1)分区大小不等(2)分区大小相等
建立分区说明表,内存分配程序检索分区说明表,找出合适分区后修改分区状态 。
优点:易于实现,开销小
缺点:内碎片造成浪费,分区总数固定,限制了并发执行的程序数目,存储空间的利用率太低 。
2. 动态分区分配
1. 分区数目固定
2. 分区数目大小均不固定
推荐阅读
- 辞职后全职开发的操作系统 SerenityOS 到底是个怎样的系统
- Android 13 虚拟化技术支持安装 Windows 和 Linux 操作系统
- 怎样设置电脑共享计算机,局域网共享设置,小编教你怎么设置共享
- 专业网站SEO人员精通的基础技能
- 要想成为黑客,离不开这十大基础知识
- 鸿蒙操作系统 HarmonyOS 你值得拥有
- Windows 10找不到共享计算机怎么办
- 计算机为什么偏爱用矩阵表示?因为设计简单、能硬件优化加速
- Windows操作系统|最重要Windows 11更新要来了:微软将敲定22H2时间 修复重大Bug
- python基础知识集合