计算机操作系统基础笔记 操作系统有哪些状态( 五 )


由上往下,响应时间数量级逐个降低,要求更为严格,所需资源也更多 。
常用的高优先权优先的实时调度算法:
1. 最早截止时间优先算法-EDF,截止时间越早越优先 。
2. 最低松弛度优先算法-LLF,松弛度:截止时间-剩余所需时间-当前时间,主要用于可抢占调度方式,当松弛度为0时,必须立即抢占CPU 。
产生死锁的原因

  1. 竞争资源
  2. 进程推进顺序非法
m个同类资源被n个进程共享,设一个进程最多可以请求多x个资源
m > n * (x-1) 时,系统不会发生死锁 。
产生死锁的必要条件
  1. 互斥条件
  2. 请求与保持条件
  3. 不剥夺条件
  4. 环路等待条件
处理死锁的基本办法预防死锁破坏死锁必要条件的后三者之一,互斥条件因为一些资源固有特性的限制,难以破坏,对于打印机这样的设备可以通过SPOOLing技术对互斥条件予以破坏 。
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. 动态分配方式
程序的装入
  1. 绝对装入方式
    编译程序产生实际存储地址(绝对地址)的目标模块逻辑地址与实际内存地址完全相同
  2. 可重定位装入方式
    重定位(地址映射/地址变换),根据地址变换进行的时间及采用技术手段不同,分为:
  3. 静态重定位
    地址变化在装入内存时一次完成,优点:不需要硬件支持,可以装入有限多道程序 。缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动,不易实现共享 。
  4. 动态重定位
    地址变换在程序执行时进行,在硬件地址变换机构的支持下,对每条指令或数据的访问自动进行地址变换 。优点:主存使用更加灵活,几个作业共享一个程序段的单个副本比较容易,可以向用户提供一个比主存的存储空间大得多的地址空间而用户无需考虑覆盖结构 。缺点:需要附加硬件支持,实现存储器管理的软件比较复杂 。
  5. 动态运行时装入方式
程序的链接
  1. 静态链接
  2. 装入时动态链接
  3. 运行时动态链接
运行时动态链接是目前最常使用的链接方式

推荐阅读