1,操作系统的定义
① 用户与计算机硬件系统的接口,为用户提供良好的用户界面,快速,安全,便捷的使用计算机硬件和使用自己的程序
② 合理的组织计算机工作流程,管理,分配计算机系统硬件及软件资源(处理机,存储器,I/O,文件)
③ 现代操作系统中最基本的两个特征是共享和并发
2,发展过程
无操作系统->批处理系统(单道,多道)->分时系统->实时系统->网络操作系统->分布式操作系统->嵌入式操作系统
3,单道/多道单处理机批处理系统
单道:系统内存一次只允许进入一个作业
多道:系统内存可以运行多个作业进入(宏观的并行,微观的串行)
单处理机:一个CPU,意味着系统某一个时间只能处理一个作业
批处理:将多个作业组合成一批进行处理,批量进入,批量退出
并行:两个或多个事件同时发生且同时执行
并发:两个或多个事件同时发生但在不同的时间间隔内执行
题目类型(求效率,处理总时间等)
解题思路:
① 判断处理机为单道还是多道
② 判断处理机的机制(运行顺序,抢占还是分时)
③ 若为多道批处理机则对每一个机器画时间流程图即可
答案
4, 分时系统
概念:将每一个的处理机运行时间分成很短的时间片,每个作业一次只能运行一个时间片,超过该时间片则交给下一个程序进行运行
特征:
① 多路性:多个用户能同时工作,共享资源,提高了资源利用率
② 及时性:用户能在极短的时间内完成系统响应
③ 独立性:各用户互不影响,互不干扰
④ 交互性:系统能及时对用户的操作进行响应,加快调试过程
5,四大基本特性
① 并发性
② 共享性
③ 虚拟性
④ 异步性
6,五大基本功能
设备管理功能,处理机管理功能,存储管理功能,文件系统 管理功能,用户接口
7,进程
① 进程的概念
一个具有一定独立功能的程序在一个数据集合上的一次动态运行过程,简而言之,进程是程序的一次动态执行过程,是资源分配的最小单位
② 进程包括什么
由进程控制块(PCB)、程序段,数据段三部分组成
1.一个可执行程序,包括初始代码和数据
2一个独立的用户地址空间
3.系统资源,由OS分配给进程的系统资源,包括:1O设备、文件等
4进程运行及处理机调度进程切换时所要涉及到的数据
③进程和程序的区别
进程是动态的,程序是静态的
进程是暂时的,程序是永久的
进程与程序的组成不同,进程由PCB,程序块,数据块组成,程序是命令的集合
进程能实现并发,程序不能
进程与程序的对应关系,通过多次执行一个程序对应多个进程,通过调用关系,一个进程对应多个程序
④ PCB包括什么
进程标识符,进程调度信息,处理机状态信息,进程控制信息
⑤ 进程的三态图
⑥ 进程的状态转换
解题思路:
① 了解当前进程状态信息
② 熟读状态图,来进行解题
常出的题目类型:
1,一个进程可以有几个状态 ___
答案:一个
2,
答案:
1 0,9 0 ,10 0
3,程序创建后是什么状态___
答案:就绪态
4,程序被唤醒是由什么状态到达了什么状态__
答案:阻塞态->就绪态
8,进程的同步与互斥
① 临界资源,临界区
临界资源:一次仅允许一个进程使用的资源称为临界资源,互斥资源或共享变量
临界区:临界资源的代码块
② 互斥,同步
互斥:当一个进程使用临界资源时,其他进程必须等待临界资源使用完之后并退出,才能进入临界资源访问数据
同步:多个相互合作的进程,在某一个关键点上需要相互等待,这种直接制约的关系我们称为进程同步
题目:
解题步骤
① 确定临界资源
② 判断对象与对象之间是否需要合作或者等待
答案:
(1) 互斥(2) 互斥(3) 同步(4) 同步
9,信号量机制
① 整型信号量
wait中的S<=0会导致进程进入”忙等状态“
② 记录型信号量
S>0时则表示,当前资源可用,且存在多少可用资源
S<0时则表示,当前资源缺失,且被阻塞的进程数目有多少
p为Wait操作,v为Signal操作
③ 信号量机制实现同步与互斥
1,互斥实现
由于每一个进程必须等待临界资源区空闲下来才能使用临界资源所以资源S=1
2,同步实现
由于进程之间必须互相合作才能运行,所以临界资源大多情况下为S=0
只有当P1()完成了V(S),P2()才能被唤醒
总结
① 信号量必须成对出现,有一个P操作就一定有V操作
互斥进程P,V必定出现在同一个进程中
同步进程P,V在不同进程中出现
② S>0代表 还有多少资源
S=0代表无资源可用
S<0代表 有多少等待进程
题目:
一,基本概念考察以及信号量特征
解题步骤:
① 分清楚临界资源的数量,也就是S的值
② 明确清楚S的不同状态的值为多少
③ 根据信号量机制进行答题
答案:
1,B 2,C 3,B 4,D 5,D 6,[1-m,1] 7, [-2,2]
二,模拟信号量编写代码
解题步骤:
① 确认信号量有哪几种
② 确认对象与对象之间是互斥还是同步关系
③ 画图
由题可知:
dish 有一个 所以 dish=1
苹果,香蕉一开始为空 所以 apple=0 banna=0
主程序过程如下
母亲和父亲要等待盘子放入水果,而儿子和女儿要等待水果返回盘子,由此可得
10,处理机调度
① 调度的概念
概念:系统将计算机资源分配给进程
② 处理机三级调度
作业的概念与分类
概念:作业由一组统一管理和操作的进程集合构成,是用户要求计算机系统完成的一项相对独立的工作。作业是可以完成了编译,链接之后的一个用户程序,也可以是用各种命令构成的一个脚本。
分类:
处理工作的类型分为计算型作业和I/O型作业
作业提交方式,分为批处理作业和终端型作业
高级调度-作业调度
–作业调度是在资源满足的条件下,将处于后备状态的作业调入内存,同时生成与作业相对应的进程,并为这些进程提供所需要的资源。
用途:一般用于作业调度。使用频率最低
中级调度-中程调度,交换调度
•是为了提高内存利用率和平衡系统负载而采取的一种利用外存补充内存的措施。
•为了充分利用内存资源,系统会采用进程对换的方法将进程换出到外存,将这些进程占用的内存空间释放,让内存能够接纳新的进程或使得内存中的进程能够更快推进。当被换出到外存中的进程挂起时间到时,又需要将这些进程换入到内存。
用途:一般用于内存管理,特别是虚拟存储器管理。使用频率中等
低级调度-短程调度,进程调度
•按照一定的调度算法从内存的就绪进程队列中选择进程,为进程分配处理器,避免进程对处理器竞争的方法。
用途:一般用于避免进程对处理器竞争的方法,使用频率最高
机制:排队器,分派器,上下文切换机制
③ 调度算法
题目:
解题步骤:
1)作业的周转时间:指从作业提交到作业完成之间的时间间隔。
2)平均周转时间:指多个作业的周转时间的平均值。
3)带权周转时间:指作业周转时间与作业实际运行时间的比。
4)平均带权周转时间:指多个作业的带权周转时间的平均值。
答案:
11,作业调度算法
① FCFS (先来先服务)
• 基本思想– 遵循先进入后备队列的作业,先进行调度的原则。– 非抢占式算法– 优 先考虑作业的等待时间,没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求• 算法评价– 有利于长作业,不利于短作业– 有利于 CPU 繁忙的作业,不利于 I/O 繁忙的作业
② SJF (短作业优先)
•基本思想–根据作业控制块中作业申请时指出的执行时间,选取执行时间最短的作业优先调度。–抢占调度方式:只要就绪队列中出现了需要执行时间比当前正在运行作业的剩余处理时间更短的作业,则该作业会抢占当前正在运行的作业。•算法评价–克服FCFS调度算法对短作业不利的缺点,效率高,易于编程实现–不利于长作业–预先估计作业的执行时间
③ HRRF (响应比高者优先)
④ HPF (优先权高者优先)
•基本思想–根据作业的优先权进行作业调度,每次总是选取优先权高的作业调度。–作业的优先数可由系统或用户给定。•评价–综合考虑了作业的执行时间和等待时间的长短、作业的缓急程度、作业对外部设备的使用情况等因素根据系统设计目标和运行环境而给定各作业的优先权,决定作业调度的先后顺序
题目:
解题思路:
① 判断调度算法是什么
② 判断算法是否为抢占式
③ 根据进程表确认到达先后顺序,再根据算法要求求优先级
④ 画图,分析
12, 进程调度算法
① FCFS
② SPF(优先级调度算法)
•静态优先权–创建进程的时候就确定的,且在进程的整个运行期间保持不变。•动态优先权–创建的时候赋予优先权,可以随进程的推荐或者随其等待时间的增加而改变,以便获得更好的调度性能。
③ TRR(时间片轮转调度算法)
•基本思想:分时–首先将处理器的处理时间划分为大小相等的时间片。–调度程序每次从就绪队列中选择队首的进程,为之分配处理器的一个时间片并让进程运行。–当进程运行的时间片到时,强迫进程放弃处理器,到就绪队列中再次排队,并将处理器的下一个时间片分配给就绪队列中队首的进程。–所有就绪队列中的进程按照这样的形式轮转使用处理器时间片。
④ MFQ(多级反馈队列调度算法)
•基本思想–设置多个就绪队列,每个队列赋予不通过的优先级,第一个队列的优先级最高,第二个次之,时间片一次递增。–当一个新进程进入内存后,将他放到第一队列的末尾,按照FCFS原则排队等待调度,当轮到该进程执行后:• 在规定时间片完成,则撤离系统• 无法完成,则进入第二个就绪队列的末尾–仅当第一队列空闲时,调度程序才调度第二队列的进程运行。
13, 死锁
① 死锁概念
概念:一组进程中,所有进程都在等待另一个进程所占有的资源,因而永远无法得到资源,这种现象叫死锁,这一组进程叫做死锁进程
② 产生死锁的原因
1,竞争资源:当系统提供多个进程所享用的资源,不足以同时满足它们的需求时,引起进程竞争资源而产生死锁
2,进程推进顺序不当:当进程运行过程中,请求资源和释放资源的顺序不当,将导致进程死锁
③ 产生死锁的四个必要条件
互斥条件,不剥夺条件,部分匹配,环路等待条件
④ 预防死锁出现
1,防止不剥夺
一个已经保持了某些资源的进程,再请求新的资源不被满足时,必须放弃当前所有资源,并且待需要时才能重新申请。
2,防止部分分配
一个进程再请求资源时必须预先请求所有需要的资源,只有所需要的资源要求得到满足,系统才会给予分配,进程才能启动,否则便不允启动。启动期间,进程不会再请求新的资源,所以就没有分配了
3,防止“环路等待”
把所有资源线性排列,按递增的规则赋予每类资源唯一编号。进程申请资源时,必须严格按资源编号的递增顺序进行,否则系统不允分配
⑤ 避免死锁
概念:它是排除死锁的动态方法
14,银行家算法
思想:
当用户申请一组资源时,系统必须做出判断:如果把这些资源分出去,系统是否还处于安全状态
规定:
① 一个顾客对资金的最大需求不能超过银行家现有资金即可接纳用户
② 顾客可以分期贷款,贷款数不能超过最大需求量
③ 当银行家的总资金不足以支付用户的贷款数时,可以推迟支付,但总能在有限时间内获得存款
④ 当顾客得到所需全部资金时,必能在规定时间内归还资金
数据结构:
可用资源向量Avaliable:当前资源尚未分配的资源总量 Avaliable[i]=k 代表资源i还有k个
最大需求矩阵max:当前所有进程所需的资源的最大资源数量 Max[i,j]进程i对资源j的最大需求
分配矩阵Allocation:当前每个进程所分配的资源的资源数量Allocation[i,j]进程i分配j的数量
需求矩阵Need:当前每个进程所需剩余的资源数量Need[i,j]进程i缺少j的数量
算法过程:
Request_i[j]=k表示进程i请求资源j所需k个
1,Request_i[j] <= Need[i,j] 是跳转到2,不是报错
2,Requset_i[j] <= Avaliable[j] 是跳转到3,不是则进行等待
3,执行修改状态
4,系统执行安全算法,查看这样分配资源是否安全
15,存储器层次结构
CPU内部寄存器,主存储器,高速缓存,磁盘
16,程序的装入和链接
① 逻辑地址和物理地址
逻辑地址:必须将程序装入内存,经过用户编译后每一个模块都已0为基地址编译
物理地址:内存中各个物理存储单元的地址都是同一个基地址开始的顺序编址
② 装入和链接
装入:由装入程序将装入模块装入内存
链接:将进程的不同有程序段链接在一起
链接 装入
- 静态链接 绝对装入方式
- 装入时动态链接 可重定位装入方式
- 运行时动态链接 动态运行时装入方式
③ 重定位
概念:由于一个作业装入到与其地址空间不一致的存储空间所引起的需对其有关地址部分进行调整的过程就称为重定位
17,连续分配存储管理
① 单一连续分配
概念:将内存分为系统区(内存低端)和 用户区 (内存高端),采用静态分配模式。
② 固定分区分配
概念:事先将内存分为多个固定或者不固定的分区,系统区占一个分区,其余每一个分区可容纳一个用户程序
③ 动态分区分配
概念:不事先将内存划分成一块块的分区,而是在作业进入内存时,根据作业的大小动态地建立分区,并使分区的大小正好适应作业的需要。因此系统中分区的大小是可变的,分区的数目也是可变的。
1,基于顺序搜索的动态分区分配算法
首次适应算法(FF,根据地址高低递增排序)
– 空分区(链)按 地址递增 的次序排列。– 在进行内存分配时, 从空闲分区表 / 链首开始顺序查找 ,直到找到第一个满足其大小要求的空闲分区为止。– 然后按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍按地址递增的次序保留在空闲分区表(链)中。
循环首次适应算法(NF,从选择上一次选择的下一个分区开始)
在为作业分配内存空间时,不再每次从空闲分区表/链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到第一个能满足其大小要求的空闲分区为止。
最佳适应算法(BF,以容量大小递增排序)
空闲分区表/链按容量大小递增的次序排列。在进行内存分配时,从空闲分区表/链首开始顺序查找,直到找到第一个满足其大小要求的空闲分区为止。
最坏适应算法(WF,以容量大小递减排序)
空闲分区表/链按容量大小递减的次序排列。在进行内存分配时,从空闲分区表/链首开始顺序查找,找到的第一个能满足作业要求的空闲分区,一定是个最大的空闲区。
18,分页存储管理
① 逻辑空间与物理空间管理
逻辑空间管理(页):将进程的逻辑空间分为若干个大小相等的部分
物理空间管理(页帧):将内存划分成与页面大小相等的存储块
分配原则:
1,以块为单位分配内存
2,进程每页对应一个内存块
3,可以装入不连续的内存块
页表:页号到页帧的地址映射
逻辑地址表示:页号p+页内位移d
例如:页面大小位1024B,访问5000B,该如何确定该地址的页号,页内偏移?
页号 = 地址/页面大小 = 4
页内偏移 = 地址%页面大小 = 904
物理地址表示:页帧号*页面大小+页帧内位移d(页内偏移)
19,分段存储管理
概念:按照程序自身的逻辑关系将逻辑空间划分成若干个段。如:每个函数一个段,各段单独占用一片内存空间。
逻辑地址:由于整个逻辑空间被划分成若干个段。 逻辑地址由两部分构成:段号s和段内位移d。
物理地址:段基址+段内位移
20,虚拟存储器
概念: 具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。通过把主存、辅存统一起来管理给用户造成一种仿佛有一空间巨大的“内存” (其实这巨大的内存可能很大部分是辅存空间)可供用户使用的假象。
① 局部性原理
时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问,都集中在一个较短的时间内
空间局部性:当前指令和附近几条指令,当前访问数据和邻近数据都集中在一个较小的区域
21,页面置换算法
概念:当产生缺页,且主存中的所有页都被占据,替换策略决定当前在主存中的那个页被淘汰
FIFO(先进先出算法)
淘汰驻留在主存中时间最长的一页。即先进入内存的页先被淘汰。
OPT(最佳算法,需要知道访问串)
淘汰下次访问距当前时间最长的那些页中页号最小的一页。
LRU(最近最久未使用算法)
淘汰主存中上次使用距离当前最远的页(最长时间没有使用的页)。
Clock(根据设置0,1计数器来进行变更淘汰)
• LRU 的近似算法,最近未用算法• 为每一页设置一位访问位,将内存中所有页面链接成循环队列– 当某页被访问时。访问位置置为: 1– 进行淘汰时,检查页面的访问位:• 0 :选择该页• 1 :重置为 0 ,但暂不换出,给予该页第二次驻留内存的机会• 再按照 FIFO 的算法检查下一页面,直到检查到队列中最后一个页面是,其访问位仍为 1 ,则从队首再去检查
22,I/O控制方法
① 程序直接控制方式
概念:由cpu直接控制内存和外围设备之间的信息传输
优点:控制简单
缺点:
CPU和外围设备只能串行工作
CPU在一段时间内只能与一台外围设备进行交换数据
由于程序直接控制方式依靠测试设备标志触发器的状态为来控制数据传输,因此无法发现和处理由于设备或其他硬件产生的错误
② 中断控制方式
概念: CPU 向 I/O 部件发出命令后,转去做其他有用的工作。当I/O部件准备好一个数据(对输入)或输出完一个数据后(对输出)后,利用中断通知CPU,再由CPU完成设备与内存的数据传输。
优点:CPU利用率大大提高,支持多道程序和设备的并行操作
缺点:在一次数据传输中,产生的中断较多
CPU中断次数过多可能会导致数据丢失
③ 直接存储访问方式
概念:由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;在DMA控制之下完成内存与外设的成批数据交换,在操作完成时由DMA控制器向CPU发出中断
优点:CPU只需干预I/O操作的开始和结束,数据传输由DMA控制,排除了数据丢失的现象
缺点:多个DMA运行可能导致地址冲突
④ 通道控制方式
概念: 通 道是一个独立于 CPU 的专管输入输出控制的 处理机 ,它控制设备与内存直接进行数据交换。它有自己的通道指令,由通道指令构成通道程序。由CPU启动通道工作,通道通过执行通道程序控制数据传输,并在操作结束时向CPU发中断信号,由CPU进行传输结束中断处理通道。