操作系统复习
本复习手册主要针对选择填空判断和简答。计算相关题目会特别标注出涉及到的点。
概论
- 简述:计算机系统由硬件和软件两部分组成。
操作系统,简称OS(Operating System),是计算机系统中最重要最基本的系统软件,是所有其它软件运行的基础。操作系统是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。在计算机系统中占据了特别重要的地位。 - 概念:一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度,以及方便用户的程序的集合。
- 目标:有效性,方便性,可扩充性,开放性
- OS管理哪些资源:处理机,存储器,设备管理,文件管理(在后续章节会一一提到)
- 计算机系统的发展:
- 人工操作:资源利用率低,CPU快和I/O慢的矛盾(为解决这个矛盾出现了脱机输入输出:I/O操作在外围机的控制下,脱离主机进行。优点是外围机和主机并行工作,减少了CPU的空闲时间;提高I/O速度)
- 单道批处理系统
- 多道批处理系统:引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥系统部件的并行性。优点:提高CPU利用率,提高内存和设备利用率,增加系统吞吐量。缺点:无交互能力,作业平均周转周期(这个概念之后说)长。
- 分时系统:分时技术就是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂停运行,把处理机让给另一个作业使用,等待下一轮时再继续其运行。特征:多路性,交互性,及时性
- 实时系统(Real Time System):是指系统能及时响应外部事件的请求,在规定的时间范围内完成对该事件的处理,并控制实时任务协调一致地运行。
- 操作系统的基本特征:并发,共享,虚拟,不确定
- 并发:是指两个或多个事件在同一时间间隔内发生。为了使多个程序并发执行,引入了进程。为了进一步提高系统的并发性,引入了线程
- 区分并发和并行:并发是指两个或多个事件在同一时间间隔内发生。并行是指两个或多个事件在同一时刻发生
- 共享:互斥共享(一段时间,一个访问),同时访问(一段时间,多个访问)
- 最基本特征:并发和共享,互为存在条件。
- 互为存在条件的解释:一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
- 虚拟:物理实体到逻辑对应物的转化。举例:多道程序设计,分时技术,虚拟内存技术
- 不确定性,也就是异步性,好理解。
- 操作系统的功能:管理软硬件资源,提供用户接口(可能会考简答)
- 处理机管理:进程控制,进程同步,进程通信,调度(作业调度和进程调度)
- 存储器管理:内存分配,内存保护,地址映射,内存扩充(地址映射:将逻辑地址转换为物理地址。)
- 设备管理功能:缓冲管理,设备分配,设备处理
- 文件管理:文件存储空间管理,目录管理,文件读写管理及保护
- 接口:用户接口和程序接口。系统调用,是用户程序取得操作系统服务的惟一途径
- OS结构演变:无结构->模块化结构->分层结构->微内核结构
- 模块法的优缺点:优点:提高OS设计的正确性、可理解性和可维护性增强OS的适应性加速OS的开发过程 问题:接口设计难于满足实际需求
- 分层结构优缺点:优点:易保证系统的正确性易扩充和易维护缺点:系统效率降低
- 微内核的优缺点:优点:提高了系统的可扩展性增强了系统的可靠性提高了系统的可移植性提供了对分布式系统的支持问题:系统运行效率有所降低
- 课后习题: P31 1,3,4,13,14
进程管理
- 目的:使多道程序并发执行
- 顺序执行:顺序性,封闭性,可再现性
- 并发执行:间断性,失去封闭性,不可再现性
- 进程
- 定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
- 特点:结构性,动态性,并发性,独立性,异步性
- 进程的三种基本状态:就绪,执行和阻塞
- 三态模型图:
- 进程挂起的原因:终端用户的请求,父进程的请求,负荷调节的需要,操作系统的要求
- 挂起状态:静止就绪(就绪挂起)和静止阻塞(阻塞挂起)
- 增加了挂起的图:
- 状态转化的相关内容要了解一下,具体看课件
- 增加创建状态和终止状态
- 五态图:
- 七态图:
- 进程控制块(PCB,Process Control Block)是操作系统维护的,用于描述和管理进程的数据结构。它是进程实体*的一部分,操作系统通过PCB感知进程的存在,PCB是进程存在的唯一标志。
- 进程控制块中的信息:进程标识信息,处理机状态信息,进程调度和状态信息,进程控制信息。
- PCB组织方式:链接方式,索引方式
- 原语:原语是由若干条机器指令构成的,用以完成特定功能的一段程序,这段程序在执行期间不可分割
- 进程同步
- 两种形式的进程制约关系:相互协作,资源共享。
- 临界资源(Critical Resources, CR):一段时间内仅允许一个进程使用的资源称为临界资源。
- 互斥:当一个进程正在访问某共享资源时,就不允许其他进程对其访问。
- 临界区(Critical Section, CS):进程中访问临界资源的那段代码称为临界区,又称临界段。
- 解决互斥问题遵循的原则:空闲让进,忙则等待,有限等待,让权等待
- 同步:多个相关进程在执行次序上的协调。
- 互斥与同步:互斥是解决进程间竞争关系的手段。同步是解决进程间协作关系的手段。
- 信号量机制(考大题的地方)
- 整形信号量:仅能通过两个标准的原子操作wait(S)和signal(S)来访问Wait操作意味着申请一个资源,signal操作意味着释放一个资源。缺点: wait操作中只要是信号量S≤0,就会不断地测试。因此,该机制并未遵循“让权等待”的准则,而是使进程处于“忙等”的状态
- 记录型信号量:是一个记录型数据结构,包含信号量值和一个等待队列,其中信号量值是一个具有非负初值的整型变量,等待队列是一个初始状态为空的队列。(记录型信号量的具体用法看课件,非常重要)
- 利用信号量实现互斥:
- 利用信号量实现前驱关系:
- 例题:
- 管程机制(只考概念,不考大题)
- 定义:管程定义了一个数据结构和在该数据结构上能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
- 构成:名字,共享数据结构,一组操作,设置初始值的语句
- 三个经典的进程同步问题
- 生产者-消费者问题
- 哲学家进餐问题
- 上述算法有可能会出现死锁,需要规定至多允许四个哲学家同时进餐。仅当左、右两支筷子均可用时,才允许拿起筷子进餐。奇数号哲学家先拿左边筷子再拿右边筷子,偶数号哲学家相反。
- 读者-写者问题
- 下面是读者写者问题的限制版:最多只允许RN个读者同时读
- wait和signal操作的优缺点:优点:简单而且表达能力强,缺点:wait,signal操作使用不当会出现死锁,遇到复杂的同步互斥问题时实现复杂
- 进程通信
- 信号量:低级,效率低
- 共享存储器系统
- 消息传递系统:直接通信方式(消息缓冲通信):发送进程将消息发送到接收进程,并将其挂在接收进程的消息队列上;接收进程从消息队列上取消息。间接通信方式(信箱通信):发送进程将消息发送到信箱,接收进程从信箱中取消息。
- 管道通信:互斥同步存在
- 线程:
- 目的:在操作系统中再引入线程(Thread) ,则是为了减少程序并发执行所付出的时空开销,使操作系统具有更好的并发性
- 概念:是进程内的一个执行单元(执行路径)是系统独立调度和分派的基本单位资源分配的实体还是进程
- 属性:轻型实体,独立调度和分派的基本单位,可并发执行,共享进程资源
- 内核支持线程和用户级线程
- 课后习题 P81 2 3 20 22 27
处理机调度与死锁
- 高级调度:哪个作业调入内存
- 进程调度:CPU分配给哪个进程
- 中级调度:如何缓解内存紧张的问题
- 并非所有的系统都需要作业调度和中级调度
- 作业调度
- 作业的状态:提交,后备,执行,运行
- 进程调度
- 功能:保存处理机的现场信息。按调度算法选择进程运行。由分配程序实施处理机的分配及回收
- 进程调度的两种方式:抢占式和非抢占式
- 中级调度:中级调度的运行频率介于进程调度和作业调度两者之间
- 选择调度算法的准则:
- 面向用户的准则:周转时间段,响应时间快,截止时间保证,稳定性
- 周转时间:
- 带权周转时间:
- 面向系统的准则:系统吞吐量搞,CPU利用率好,各类资源平衡利用
- 选择调度算法的准则:
调度算法(考大题)
- 先来先服务 FCFS 特点:算法简单,易于实现,有利于长作业,不利于短作业有利于CPU繁忙型作业,不利于I/O繁忙型作业 ,可能导致I/O设备和CPU利用率低未考虑作业的紧迫程度
- 短作业优先调度算法:非抢占式(默认),抢占式(最短剩余时间调度算法)特点:算法调度性能较好缺点是对长作业不利;未考虑作业的紧迫程度;需要估计运行时间。
- 优先权调度算法(非抢占式和抢占式)
- 优先权分为静态优先权和动态优先权
- 调整优先权的原则:占用CPU时间越长,优先权越低。等待时间越长,优先权越高
- 最高响应比优先调度算法:在每次调度作业时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。
- 时间片轮转调度算法:系统将所有就绪进程按到达时间的先后次序排成一个队列(FIFO队列),每次调度时把CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,停止该进程的执行,将它送至就绪队列末尾等待下一次执行,然后再把处理机分配给就绪队列中的新队首进程。如此不断循环,直至完成为止
- 多级反馈队列调度算法(最难的一个,有可能考,但概率不大)
- 同一队列中进程执行的时间片大小相同,不同队列时间片大小不同,队列的优先级越高,其相应的时间片就越短。
- 多级反馈队列调度算法能较好满足各类用户的需求
死锁
- 概念:死锁是指多个进程因竞争系统资源而造成的一种僵局,若无外力作用,这些进程都将永远不能向前推进。
- 原因:竞争资源,进程推进顺序不当
- 可剥夺资源和不可剥夺资源
- 产生死锁的必要条件:互斥条件,请求和保持条件,不可剥夺条件,环路等待条件
- 处理死锁的方法:预防死锁,避免死锁,检测死锁及解除
- 有序资源分配法
- 银行家算法(考大题):
- 可用资源向量Available
- 最大需求矩阵Max
- 分配矩阵Allocation
- 需求矩阵Need
- 死锁的检测
- 资源分配图
- 死锁检测算法:资源剥夺法,撤销进程法
- 习题 P118 1 8 30 31
存储器管理
- 存储器的层次结构:
- 程序的装入
- 绝对装入方式
- 可重定位装入方式:静态地址变换 特点:不需硬件支持,但程序运行时不能在内存移动,程序需要连续存储空间,难以共享
- 动态运行时装入方式 需要硬件支持。程序可以在内存中移动,可以实现虚拟存储
- 程序的链接
- 静态链接
- 装入时动态链接
- 运行时动态链接
- 内存分配方式
- 连续分配方式
- 单一连续分配:系统区,用户区 单任务,单用户
- 固定分区分配:缺点:预先规定了分区的大小,大程序无法装入,预先限制了活跃进程的最大数,主存利用率不高,内存的扩充和共享是困难的
- 动态分区分配
- 分区分配算法(考大题)
- 首次适应算法 地址递增的次序排列
- 循环首次适应算法
- 最佳适应算法
- 最坏适应算法 容量大小递减次序排列
- 分区回收
- 相对灵活,但会产生外碎片
- 伙伴系统的内存分配(可有可能考大题)
- 伙伴地址公式
- 缺点:增加了系统开销,存储空间有浪费
- 内部碎片是指分配给作业的存储空间中未被利用的部分
- 外部碎片是指系统中无法利用的小存储块
- 对换:把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。
- 空闲分区表和空闲分区链
- 分页存储管理:把一个作业放到若干不相邻的分区中去
- 页表
- 地址变换(可能考大题):将逻辑地址映射为物理地址
- 快表
- 两级和多级页表
- 分段存储管理方式(可能考大题)
- 优点:方便编程,便于共享和保护,可以实现动态链接及段的动态增长
- 分段和分页的主要区别:
- 可重入代码
- 段页式存储管理方式
- 地址变换:
- 连续分配方式
- 虚拟存储器
- 定义:虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
- 理论基础:局部性原理
- 局部性原理体现在:时间局部性和空间局部性(循环结构和顺序执行)
- 物质基础:相当数量的外存,一定容量的内存,地址变换机构
- 常用的虚拟存储技术:请求分页系统,请求分段系统,请求段页式系统
- 特征:多次性,对换性和虚拟性
- 扩充后的页表项:
- 缺页中断和一般中断的区别:
- 内存分配策略和分配算法:进程需要的最少物理块数,分配策略和分配算法
- 固定分配局部置换
- 可变分配全局置换
- 可变分配局部置换
- 页面置换算法(一定考大题)
- 最佳置换算法
- 先进先出算法
- 最近最久未使用置换算法
- 时钟置换算法
- 其它置换算法
- 缺页
- 有效访问时间
- 影响缺页率的因素:分配给进程的物理块数,页面本身的大小,程序编制方式,页面置换算法
- 抖动:如果运行进程的大部分时间都用于页面的换入/换出,而几乎不能完成任何有效的工作,则称此进程处于抖动状态。抖动又称为颠簸。(局部抖动和全局抖动)
- 抖动产生的原因有:进程分配的物理块太少,置换算法选择不当,全局置换使抖动传播
- 请求分段系统
- 分段保护:越界检查,存取方式检查,环保护机构
- 习题:P152 3 9 13
- 习题:P177 5 13
设备管理
- I/O系统
- 分类:多种分类方式(一个:独占设备,共享设备,虚拟设备)
- 通道类型
- 字节多路通道
- 数组选择通道
- 数组多路通道
- I/O控制方式
- 程序I/O方式
- 中断驱动I/O方式
- DMA I/O控制方式
- I/O通道控制方式
- 缓冲管理
- 原因:(1) 缓和CPU与I/O设备速度不匹配的矛盾。 (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 (3) 提高CPU和I/O设备之间的并行性。
- SPOOLing技术:为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术
- 磁盘存储器管理
- 磁盘时间相关:
- 磁盘调度算法(可能考大题):
- 先来先服务(FCFS)
- 最短寻道时间优先(SSTF)
- 扫描算法(SCAN)
- 循环扫描算法(CSCAN)
- N-Step-SCAN
- FSCAN
- 磁盘高速缓存
- 提高磁盘I/O速度的其它方法
- 提前读
- 延迟写
- 优化物理块分布
- 虚拟盘
- 课后习题 P220 5 15 25 29 30
文件管理
- 文件和文件系统
- 数据项:基本数据项和组合数据项
- 记录:记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
- 文件:文件是指由创建者所定义的、 具有文件名的一组相关元素的集合,可分为两种:有结构文件:文件由若干个相关记录组成;无结构文件:可看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
- 文件的逻辑结构和物理结构
- 无结构的文件,流式文件
- 连续分配
- 优点:顺序访问容易,顺序访问速度快
- 缺点:要求有连续的存储空间,必须事先知道文件的长度
- 链接分配
- 隐式链接
- 显式链接
- 索引分配
- 目录管理
- 要求:实现按名存取,提高对目录的检索速度,文件共享,允许文件重名
- 利用符号链实现文件共享:在利用符号链方式实现文件共享时,只有文件主才拥有指向其索引结点的指针;而共享该文件的其他用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。