- 什么是操作系统
- 操作系统要做什么?
-
操作系统的目标
- 方便些
- 有效性
- 可拓展性
- 开放性
-
OS作为计算机系统资源的管理者(软硬件资源)
- 处理机管理,用于分配和控制处理机
- 存储器管理,主要负责内存的分配与回收
- IO设备管理,负责I/O设备的分配与操纵
- 文件管理,负责文件的存取、共享和保护
-
单道批处理系统
- 多道批处理系统
- 分时操作系统
- 实时系统
- 现代OS的四个基本特征:
- 进程 AND 线程
- 虚拟
- 操作系统是一个大型系统软件,其结构已经历了四代的变革:
- 微内核特点
- 导致一个进程去创建另一个进程的典型事件,可有以下四类:
(1)用户登录。
(2)作业调度。
(3)提供服务。例如:I/O请求
(4)应用请求。
-
进程通信
-
低级通信:进程之间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。
-
高级通信:是指用户可直接利用操作系统所提供的一组通信命令高效地传送大量数据的一种通信方式。如
- 共享存储器系统
- 管道通信
- 消息传递系统
- 客户机–服务器系统
-
消息传递系统
-
直接通信方式
- 对称寻址方式
Send(Receiver, message); 发送一个消息给接收进程; Receive(Sender, message); 接收Sender发来的消息;
- 非对称寻址方式
Send(P, message);发送一个消息给接收进程P; Receive(id, message); 接收来自任何进程的消息,进程id不固定。
-
间接通信方式 (信箱)
-
处理机调度与死锁
计算机完成作业是通过执行一系列有序的工作步骤进行的,每个步骤完成作业的一部分特定工作
编辑、编译或汇编、连接、装配、运行
- 高级调度:决定哪些程序可以进入系统
- 中级调度:决定内存中程序的位置和状态
-
低级调度:决定CPU资源在就绪进程间的分配
- 非抢占,引起调度的因素:
- 抢占
调度类型 | 运行频率 | 运行时间 | 算法复杂性 |
---|---|---|---|
进程调度 | 高 | 短 | 低 |
中程调度 | 中等 | 较短 | 中等 |
作业调度 | 低 | 长 | 高 |
三种调度队列模型
1、仅有进程调度
2、具有高级和低级调度
3、具有三级调度
1. **仅有进程调度的调度队列模型 **(分时系统)
分时系统中,通常仅设有进程调度
2. 具有高级和低级调度的调度队列模型 (批处理系统)
3. 同时具有三级调度的调度队列模型
系统选择调度方式和算法的准则分为两种
-
面向用户的准则: 周转时间短、响应时间快、截止时间的保证、优先权准则。
-
面向系统的准则:系统吞吐量高、处理机利用率高、各类资源的平衡使用。
调度算法
- 先来先服务 (适合于作业调度和进程调度)
-
短作业(进程)优先调度算法 SJ§F (用于作业调度和进程调度)
-
最短剩余时间优先调度算法SRT
-
优先权调度算法 PSA (适合于作业调度和进程调度)
-
非抢占式优先权算法(用于批处理、要求不严的实时)
-
抢占式优先权调度算法(用于要求严格的实时、性能要求较高的批处理和分时)
-
- 高响应比优先调度算法HRRN(动态优先权机制)
-
基于时间片的轮转调度算法 (进程调度)
-
更成熟的多级队列调度 ——多级反馈队列
实时调度
实现实时调度的基本条件:
- 提供必要的调度信息
- 系统处理能力强
- 采用抢占式调度机制
- 具有快速切换机制
- 具有快速响应外部中断的能力
- 快速的任务分派能力
实时调度算法的分类 :
-
非抢占式调度算法
- 非抢占式轮转调度算法,常用于要求不太严格的实时控制系统。
- 非抢占优先权调度算法,常用于有一定要求的实时控制系统。
-
抢占式调度算法
- 基于时钟中断的抢占式优先权调度算法 ,大部份实时系统采用
- 立即抢占(Immediate Preemption)的优先权调度算法 ,严格的实时系统采用
常用的几种实时调度算法 :
- 最早截止时间优先即EDF(Earliest Deadline First) 算法
- 最低松弛度优先即LLF(Least Laxity First)算法
产生死锁的必要条件
- 互斥条件
- 请求和保持条件
- 不剥夺条件
- 环路等待条件
处理死锁的基本方法
- 预防死锁:破坏死锁的四个条件
- 避免死锁
- 检测死锁
- 解除死锁
即LLF(Least Laxity First)算法
产生死锁的必要条件
- 互斥条件
- 请求和保持条件
- 不剥夺条件
- 环路等待条件
处理死锁的基本方法
- 预防死锁:破坏死锁的四个条件
- 避免死锁
- 检测死锁
- 解除死锁