关于操作系统

概念与目标

  • 操作系统OS 是一组控制和管理计算机硬件软件资源

  • 合理地对各类作业进行调度,方便用户使用计算机

  • 程序集合

  • 目的是使系统资源利用率高,系统吞吐量

面临的问题

  • 运行任务的管理——进程和线程、调度和同步机制
  • 运行任务的存储管理——内存管理
  • 运行任务的外设管理——I/O管理
  • 存储数据设备的管理——文件系统

进程与线程

进程与程序

程序的组成是代码的集合,是数据的集合。
但程序无法实现并发

进程模型

一个进程实质上代表了某个正在执行的程序的一个具体实例。

  • 不仅包含程序代码,还涵盖了程序计数器、寄存器的当前状态以及程序中变量的即时值。

  • 物理层面上,CPU是通过时间分片机制在多个进程间进行快速切换,从而实现并发执行的假象。

时间分片

调度

批处理中的调度

实时调度

最早截止时间优先EDF算法

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

其中A周期20ms,每个周期处理时间10ms
B周期50ms,每个周期处理时间25ms

EDF

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

EDF_1

最低松弛度优先LLF算法

松弛度是实时变化的,即任务的距离截止时间的距离

优先级倒置

即高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞

死锁

资源

  • 可抢占资源

这类资源可以被系统从当前持有它的进程中强制收回,而不会对系统或进程造成灾难性影响。

  • 不可抢占资源

这类资源一旦被某个进程占用,除非发生错误或异常,否则不能被其他进程抢占。

死锁

因此,当一组进程中额每个进程都在等待一个事件,而这个事件只能由该组中的另一个进程来触发时,就发生了死锁

操作系统处理死锁的方法是什么都不做,由用户决定——鸵鸟算法

资源死锁的条件

  • 互斥条件:每个资源在任意时刻只能被一个进程占用,或者处于可用状态等待被分配

  • 保持和等待条件:已经持有至少一个资源的进程,还可以请求获取新的资源,并且在新资源被分配给它之前,不会释放已经持有的资源

  • 不可抢占条件:资源只能由持有它的进程释放,而不能被其他进程强制抢占

  • 循环等待条件:系统中必然存在一个或多个进程组成的循环连,其中每个进程都在等待下一个进程持有的资源,而最后一个进程又在等待第一个进程持有的资源

破坏死锁

即破坏以上四个条件,但实际上不会采用

避免死锁

  • 单个资源的银行家算法

死锁检测与恢复

  • 死锁检测:构建资源分配表

  • 死锁恢复:抢占式恢复、回滚恢复