操作系统概述
- 三个重要作用:
- 管理运行的程序、分配各种软硬件资源
- 提供友善的人机界面
- 为应用程序的开发运行提供了一个高效平台
- 四个特征:并发性、共享性、虚拟性和不确定性(异步性)
- 操作系统功能
- 进程管理
- 文件管理
- 存储管理
- 设备管理
- 作业管理
- 操作系统分类
- 批处理操作系统
- 分时操作系统
- 实时操作系统
- 网络操作系统
- 分布式操作系统
- 微机操作系统
- 嵌入式操作系统特点
- 微型化
- 可定制
- 实时性
- 可靠性
- 易移植性
- 嵌入式 OS 初始化过程:片级初始化 —> 板级初始化 —> 系统初始化
进程的组成和状态
- 进程的组成:进程控制块 PCB(唯一标识)、程序(描述进程做什么)、数据(存放执行时所需数据)
- 进程状态:三态图
前趋图
- 用于表示:任务间的并行、任务间的先后顺序
进程资源图
- 表示进程和资源之间的分配和请求关系
- P 代表进程,R 代表资源。R 指向 P 表示 R 已经有资源分配给了 P,P 指向 R 表示 P 还需要一个 R 资源才可以执行
- 阻塞节点:某进程请求的资源已经全部分配完毕,该进程被阻塞无法继续,如 P2
- 非阻塞节点:某进程请求的资源还有剩余,可以分配给该进程继续运行,如 P1 和 P3
- 当所有进程都是阻塞节点时,即陷入死锁状态
进程同步和互斥
- 临界资源:各进程间需要以互斥方式进行访问的资源
- 临界区:进程中对临界资源进行操作的那段程序
- 互斥:某资源在某一时间只能由一个任务单独使用
- 同步:多个任务可以并发执行,只不过速度上有差异,在一定情况下停下等待
- 互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值是 1
- 同步信号量:对共享资源的访问控制,初值一般是共享资源的数量
- 信号量操作
- P 操作:申请资源,S = S - 1,若 S < 0,则该进程进入阻塞状态,进入阻塞队列
- V 操作:释放资源,S = S + 1,若 S <= 0,则从阻塞状态唤醒一个进程,将其插入就绪队列
- 生产者消费者问题
进程调度
- 指当有更高优先级的进程到来时如何分配 CPU,分为可剥夺和不可剥夺
- 在某些操作系统中,一个作业从提交到完成需要经历三级调度
- 高级调度,决定处于输入池的哪个后备作业可以调入主系统做好运行的准备,只需要一次
- 中级调度,决定处于交换区中的哪个就绪进程可以调入内存,以便参与 CPU 竞争
- 低级调度,决定处于内存中的哪个就绪进程可以占用 CPU
- 调度算法
- 先来先服务 FCFS
- 时间片轮转
- 优先级调度
- 多级反馈调度:时间片轮转和优先级调度结合,设置多个不同优先级的就绪队列,不同优先级分配不同的时间片长度。==存疑==
- 死锁产生的必备条件
- ==互斥==:资源互斥
- ==不可抢占==:系统不能剥夺进程资源
- ==占用且等待==:每个进程占用资源并等待其他资源
- ==循环等待==:进程资源图是一个环路
- 解决死锁:打破四大条件
- 死锁预防:采用某种策略限制并发进程对资源的请求,破坏四个条件之一
- 死锁避免:银行家算法,提前计算一条不会死锁的资源分配方法才分配资源,否则不分配
- 死锁检测:允许死锁产生,但定时运行检测死锁的程序,发现则尝试解除
- 死锁解除:如强制剥夺资源、撤销进程等
- ==死锁资源计算==:n 个进程,每个进程都需要 R 个资源,则发生死锁的场景的最大可能资源数是 n*(R-1),不发生死锁的最小资源数为 n*(R-1)+1
线程
- 进程有两个属性:可拥有资源的独立单位、可独立调度和分配的基本单位
- 由于进程开销较大,进程数目不宜过多
- 线程作为调度和分配的基本单位,进程作为独立分配资源的单位
- 线程基本不拥有资源,只拥有一些必备资源(如 PC、一组寄存器和栈),与其他线程共享进程的全部资源
分区存储管理
- 即整存,将某进程运行所需的内存整体一起分配。三种分区方式
- 固定分区,会产生内部碎片
- 可变分区,会产生外部碎片
- 可重定位分区,移动所有已经分配好的区域使其连续
- 可变分区算法
- 首次适应法,从头查找到第一个足够的空闲块
- 最佳适应法,找到最小的足够的空闲块
- 最差适应法,找到最大的足够的空闲块
- 循环首次适应法,从头查找第一个足够的空闲块,若下次还需分配则找下一个,这样就不用每次都从头查找
分页存储管理
- 逻辑页分为页号和页内地址,页号到物理块号需要查询页表才能得到对应的物理块号
- 页面置换算法
- 最优算法:OPT,理论上算法,淘汰未来最长时间不被访问的页面
- 先进先出算法:FIFO,淘汰最先调入内存的页,可能产生更抖动
- 最近最少使用算法:LRU,淘汰过去最少使用的页
- 淘汰原则:优先淘汰最近未访问的,而后淘汰最近未修改的
- 快表:一块小容量的相联存储器,按内容访问,速度快,一般存放当前访问最频繁的少数活动页面的页号,即页表的 cache
分段存储管理
- 将进程空间分为一个个段,每段有段号和段内地址。每段物理大小不同,分段是根据逻辑整体分段。段表有段长和基址两个属性
段页式存储管理
- 对进程空间先分段后分页
- 优点:空间浪费小、存储共享容易,存储保护容易、能动态链接
- 缺点:复杂度和开销增加,需要的硬件和占用增加,执行速度下降
设备管理概述
- 设备是计算机系统与外界交互的工具,负责计算机与外部的输入输出工作,通常成为外部设备(外设)
- 分类
- 按数据组织:块设备、字符设备
- 按设备功能:输入、输出、存储、网络、供电
- 按资源分配:独占、共享、虚拟
- 按数据传输速率:低速、中速、高速
- 设备管理:多个进程竞争使用设备时,按策略分配和管理各种设备。动态掌握并记录设备状态
I/O 软件
- I/O 设备管理软件的层次图
- 与设备无关软件检查高速缓存中有无要读的数据块
- 调用驱动程序,向 I/O 硬件发送请求
- 磁盘操作完成时,硬件产生中断,转入中断处理
- 中断处理唤醒用户进程取回从磁盘读取的信息
设备管理技术
- SPOOLING(外围设备联机操作)技术,在外设上建立两个数据缓冲区,,分别称为输入井和输出井
文件管理概述
- 文件是具有符号名、在逻辑上具有完整意义的一组相关信息项的集合
- 信息项是构成文件内容的基本单位,包括文件体和文件说明
- 文件管理系统,即操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构
- 文件的逻辑结构可分为:有结构的记录式文件;无结构的流式文件
- 文件的物理结构指文件在物理存储设备上的存放方法
- 连续结构:逻辑上连续的文件信息依次存放在连续编号的物理块上
- 链接结构:将逻辑上连续的文件信息存放在不连续的物理块,每个物理块设有指针指向下一块
- 索引结构:将逻辑上连续的文件信息存放在不连续的物理块,索引表记录了文件信息所在的逻辑块号对应的物理块号
- 多个物理块的索引表。在文件创建时由系统自动建立
索引文件结构
- 0-9 为直接索引,每个索引节点存放的是内润
- 10 为一级间接索引,存放的为链接到直接物理盘块的地址
- 多级索引节点指向次级索引节点
文件目录
- 文件控制块的有序集合称为文件目录
文件存储空间管理
- 文件存取方法是指读/写文件存储器上一个物理块方法,分为顺序存取和随机存取
- 管理方式
- 空闲区表
- 位示图:每一位对应一个物理块,0 和 1 表示存储和占用
- 空闲块链
- 成组链接法