操作系统
关于操作系统
概念与目标
操作系统OS 是一组控制和管理计算机硬件和软件资源
合理地对各类作业进行调度,方便用户使用计算机
的程序集合
目的是使系统资源利用率高,系统吞吐量大
面临的问题
- 运行任务的管理——进程和线程、调度和同步机制
- 运行任务的存储管理——内存管理
- 运行任务的外设管理——I/O管理
- 存储数据设备的管理——文件系统
进程与线程
进程与程序
程序的组成是代码的集合,是数据的集合。
但程序无法实现并发
进程模型
一个进程实质上代表了某个正在执行的程序的一个具体实例。
不仅包含程序代码,还涵盖了程序计数器、寄存器的当前状态以及程序中变量的即时值。
物理层面上,CPU是通过时间分片机制在多个进程间进行快速切换,从而实现并发执行的假象。

调度
批处理中的调度
实时调度
最早截止时间优先EDF算法
- 抢占式调度算法基于周期实时任务
其中A周期20ms,每个周期处理时间10ms
B周期50ms,每个周期处理时间25ms

- 非抢占式调度算法基于非周期实时任务

最低松弛度优先LLF算法
松弛度是实时变化的,即任务的距离截止时间的距离
优先级倒置
即高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞
死锁
资源
- 可抢占资源
这类资源可以被系统从当前持有它的进程中强制收回,而不会对系统或进程造成灾难性影响。
- 不可抢占资源
这类资源一旦被某个进程占用,除非发生错误或异常,否则不能被其他进程抢占。
死锁
因此,当一组进程中额每个进程都在等待一个事件,而这个事件只能由该组中的另一个进程来触发时,就发生了死锁
操作系统处理死锁的方法是什么都不做,由用户决定——鸵鸟算法
资源死锁的条件
互斥条件:每个资源在任意时刻只能被一个进程占用,或者处于可用状态等待被分配
保持和等待条件:已经持有至少一个资源的进程,还可以请求获取新的资源,并且在新资源被分配给它之前,不会释放已经持有的资源
不可抢占条件:资源只能由持有它的进程释放,而不能被其他进程强制抢占
循环等待条件:系统中必然存在一个或多个进程组成的循环连,其中每个进程都在等待下一个进程持有的资源,而最后一个进程又在等待第一个进程持有的资源
破坏死锁
即破坏以上四个条件,但实际上不会采用
避免死锁
- 单个资源的银行家算法
死锁检测与恢复
死锁检测:构建资源分配表
死锁恢复:抢占式恢复、回滚恢复
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Muelsyse!
评论
