10. 操作系统
概述
- 管理系统的硬件、软件、数据资源
- 控制程序运行
- 人机之间的接口
- 应用软件与硬件之间的接口
- 进程管理
- 存储管理
- 文件管理
- 作业管理
- 设备管理
进程管理
进程的状态
前趋图
信号量与PV操作
- 进程的同步与互斥
- 互斥
- 如千军万马过独木桥,同类资源的竞争关系
- 同步
- 速度又差异,在一定情况停下等待,进程间的协作关系
- 互斥
PV操作
- 临界资源
- 诸进程间需要互斥方式对其进行共享的资源,如打印机,磁带机等
- 临界区
- 每个进程中访问临界资源的那段代码称为临界区
- 信号量
- 是一种特殊的变量
死锁及银行家算法
死锁问题
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,则会造成系统死锁
银行家算法
- 分配资源的原则
- 当一个进程对资源的最大需求量不能超过系统中的资源数时可以接纳该进程
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需资源数时,对进程是请求可以推迟分配,但总能使进程在有限的时间里得到资源
存储管理
页式存储组织
页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存
段式存储组织
段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样
段页式存储组织
段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同
快表
快表是一块小容量的相联存储器,由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号
快表:将页表存于Cache上
慢表:将页表存于内存上
页面置换算法
- 最优算法
- 随机算法
- 先进先出算法
- 有可能产生抖动现象
- 最近最少使用
- 不会抖动
- 理论依据来自于局部性原理
- LFU算法
- 根据数据的历史访问领率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序
- 时间局部性
- 刚被访问的内容,立即又被访问
- 空间局部性
- 刚被访问的内容,临近的空间又会被访问
文件管理
绝对路径与相对路径
- 文件属性
- R
- 只读文件属性
- A
- 存档属性
- S
- 系统文件
- H
- 隐藏文件
- R
- 文件名的组成
- 驱动器号
- 路径
- 主文件名
- 扩展名
- 绝对路径
- 从盘符开始的路径
- 相对路径
- 从当前路径开始的路径
索引文件
空闲存储空间的管理
- 空闲区表法
- 空闲链表法
- 位示图法
- 成组链接法
设备管理
数据传输控制方式
- 程序控制(查询)方式
- 分为无条件传送和程序查询方式两种
- 方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率
- 程序中断方式
- 于程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度
- DMA方式
- DMA方式是为了再主存于外设之间实现高速、批量数据交换而设置的。
- DMA方式比程序控制方式和中断方式都高效
- 通道方式
- I/O处理机
虚设备与SPOOLING技术
微内核操作系统
- 单体内核
- 实质
- 将图像、设备驱动及文件系统等功能全部再内核中实现,运行再内核状态和同一地址空间
- 优点
- 减少进程间通信和状态切换的系统开销,获得较高的运行效率
- 缺点
- 内核庞大,占用资源较多且不易裁剪。系统的稳定性和安全性不好
- 实质
- 微内核
- 实质
- 只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外
- 优点
- 内核精练,便于剪裁和移植
- 系统服务程序运行在用户地址空间,系统的可靠性、稳定性、安全性较高
- 可用于分布式数据库
- 缺点
- 用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核
- 实质
嵌入式操作系统
软硬件结合
功能在硬件上的分布
- 嵌入式操作系统特点
- 微型化
- 代码质量高
- 专业化
- 实时性强
- 可裁剪、可配置
- 实时嵌入式操作系统的内核服务
- 异常和中断
- 计时器
- I/O管理
- 常见的嵌入式RTOS(实时操作系统)
- VxWorks
- RT-Linux
- QNX
- pSOS