本文根据ppt以及书本来编写,仅自己做笔记复习操作系统用,有错误请帮忙纠正!
OS复习提纲
文章目录
第1章:计算机系统概述
1、指令执行的基本指令周期
2、中断分类与中断处理过程
中断的分类:程序中断,时钟中断,I/O中断以及硬件失效中断
3、 处理多中断的两种方法:禁止中断(顺序处理),中断嵌套
4、 存储器层次,二级存储器(Cache-内存)下计算内存的平均存取时间
层次结构的特点:
由上至下:
①每“位”的价格递减
②容量递增
③存取时间递增
④处理器访问存储器的频率递减
容量较大、价格较便宜的慢速存储器,是容量较小、价格较贵的快速存储器的后备。
存储器层次结构能够成功的关键:低层访问频率递减。
5、 高速缓存:为加快内存访问速度,CPU 首先访问 Cache,不命中时再访问内存且复制进 Cache
原理:
指令执行期间,处理器需要多次访问内存;
处理器和内存的速度不匹配,处理器速度的提高一直快于内存访问速度的提高——处理器执行指令的速度受限;
利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器——高速缓存。
6、 程序的局部性原理
第 2 章:操作系统概述
7、 操作系统的发展过程及衍生出来的操作系统类型(多道批处理系统,分时系统)
操作系统的发展史:
串行处理时期(20世纪40年代到50年代中期),没有操作系统,用户必须顺序访问计算机。存在两个主要问题:
-调度
-准备时间
第一个操作系统(第一个批处理操作系统)
20世纪50年代中期,General Motors开发,用于IBM701
中心思想:监控程序
用户作业-计算机操作员-将作业组织成批-输入-监控程序
每个程序处理完后返回到监控程序,同时,监控程序自动加载下一个程序。
作业控制语言(JCL)
为监控程序提供指令。每个作业中的指令以JCL的基本形式给出。
涉及到的硬件功能
内存保护
定时器
特权指令
中断
用户态-用户程序
内核态-监控程序
衍生出了多道批处理系统与分时系统
多道批处理系统:
分时系统
8、 与单道串行处理相比,多道程序设计如何提高资源利用率
由于任何一道作业的运行总是交替地串行使用CPU,外设等资源,即使用一段时间的CPU,然后使用一段时间的I/O设备,由于使用多道程序设计技术,加之对多道程序实施合理的运行调度,则可以实现CPU和I/O设备的高度并行,可以大大提高CPU与外设的利用率
9、 多个作业并发执行时资源利用率的计算
例:若主存中有3道程序A、B、C,它们按A、B、C优先次序运行,各程序的计算轨迹为:
A:计算(20)、I/O(30)、计算(10)
B:计算(40)、I/O(20)、计算(10)
C:计算(10)、I/O(30)、计算(20)
如果三道程序都使用相同设备进行I/O(即程序用串行方式使用设备,调度开销忽略不计)。试分别画出单道和多道运行的时间关系图。两种情况下,CPU的平均利用率各为多少?
第 3 章:进程描述和控制
10、五状态进程模型,包含两个挂起态的模型,状态转换
挂起进程的特点:
进程不能立即执行;
若进程正在等待一个事件,阻塞条件不依赖于挂起条件,阻塞事件发生不会使进程立即被执行;
为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统;
除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。
11、进程映像,进程控制块 PCB(进程属性的集合)
12、进程的创建与终止
创建进程的步骤:
-分配进程标识符
-分配空间
-初始化进程控制块
-设置正确的连接
-创建或扩充其它数据结构
13、进程切换
进程切换是让处于运行态的进程中断运行,让出处理器,让操作系统指定的新进程运行。被中断进程的上下文环境需要保存。
1、切换时机
①中断
-时钟中断
-I/O中断
-内存失效
②陷阱
③系统调用
14、执行模式的切换:用户态和系统态
15、UNIX 中,父进程通过系统调用 fork()创建子进程。fork()有两个返回值:向父进程返回子进程的 PID,向子进程返回 0。
第 4 章:线程
16、进程和线程区别(资源分配单位,调度运行单位)
17、线程的优点,线程的三种状态(运行,就绪,阻塞)
18、用户级线程和内核级线程的特点
第 5 章:并发性:互斥和同步
与并发相关的关键术语:
原子操作
-保证指令序列要么作为一个组来执行,要么都不执行;
临界区
-一段代码,在这段代码中进程将访问共享资源,当一个进程已经在这段代码中运行时,另外一个进程就不能在这段代码中执行;
死锁
-两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行;
活锁
-两个或两个以上进程为了响应其他进程中的变化而持续改变自己的状态但不做有用的工作;
互斥
-当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源;
竞争条件
-多个线程或进程在读写一个共享数据时,结果依赖于它们执行的相对时间;
饥饿
-一个可运行的进程被调度程序无限期地忽略,不能被调度执行的情形。
19、互斥的概念
当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问任何共享资源;
20、临界资源与临界区
**临界区:**一段代码,在这段代码中进程将访问共享资源(临界资源),当一个进程已经在这段代码中运行时,另外一个进程就不能在这段代码中执行;
21、信号量含义,semWait、semSignal 含义
22、信号量原语定义(图 5.3)
23、用信号量实现互斥与同步
24、有限缓冲的生产者/消费者问题(图 5.13)
25、进程间通过“消息传递”交换信息:无阻塞 send 和阻塞 receive
第 6 章:并发:死锁和饥饿
26、死锁原因:竞争资源、进程推进顺序不当
27、资源分配图(若死锁,则资源分配图中必有环路,但有环路时不一定死锁)
28、死锁的四个必要条件
29、三种处理方法:预防,避免,检测和恢复
处理死锁的方法:
死锁预防:
死锁避免:
死锁检测与恢复:
30、银行家算法:要求能够判断现在是否安全,某进程请求资源是否能够满足
银行家算法:
数据结构
Available:Available[j]=k
-资源类型Rj 现有k个实例
Claim: Claim[i,j]=k
-进程Pi最多可申请k个Rj的实例
Allocation:Allocation[i,j]=k
-进程Pi现在已经分配了k个Rj的实例
Need:Need[i,j]=k
-进程Pi还可能申请k个Rj的实例
-Need[i,j] = Claim[i,j] - Allocation[i,j]
*符号说明
X<=Y
-(X和Y是长度为n的向量),当且仅当对所有i=1,2,…,n,X[i]<=Y[i]
Allocationi
-表示分配给进程Pi的资源(将Allocation每行作为向量)
Need同Allocation
安全性算法:
用于确定计算机系统是否处于安全状态
1)设Work和Finish分别是长度为m和n的向量,初始化Work:=Available,Finish[i]=false(i=1,2,…,n)
2)查找 i 使其满足
a.Finish[i] = false
b.Needi <=Work
若没有这样的 i 存在,转到4)。
3)Work := Work + Allocationi
Finish[i] := true
返回到2)
4)如果对所有 i,Finish[i] = true,则系统处于安全状态
资源请求算法:
设Requesti 为进程Pi的请求向量
1)如果Requesti <= Needi ,那么转到第2)步。否则,产生出错条件,因为进程已超过了其请求。
2)如果Requesti <=Available,那么转到第3)步。否则, Pi等待,因为没有可用资源。
3)假定系统可以分配给进程Pi 所请求的资源,并按如下方式修改状态:
-Available:= Available – Requesti ;
-Allocationi := Allocationi + Requesti ;
-Needi := Needi – Requesti ;
4)调用安全性算法确定新状态是否安全
-安全—操作完成且进程Pi分配到其所需要的资源
-不安全—进程Pi必须等待,并将数据结构恢复到原状态(即 3)的逆操作)
实例:
问题:
1)T0时刻是否为安全状态?若是,给出安全序列。
2)若在T0时刻进程P1请求资源(1,0,2),是否能实施分配?为什么?
3)在(2)的基础上,若进程P4请求资源(3,3,0),是否能实施分配?为什么?
4)在(3)的基础上,若进程P0请求资源( 0,2,0),是否能实施分配?为什么?
31、用信号量解决不死锁的哲学家就餐问题
第 7 章:内存管理
32、固定分区,动态分区分配策略-首次适配、下次适配、最佳适配
33、内部碎片,外部碎片
内部碎片(书本p199):由于装入的数据块小于分区大小,因而导致分区内部存在空间浪费,这种现象称为内部碎片。
外部碎片(书本p200):动态分区方法最终在内存中形成了许多小空洞。随着时间推移,内存中形成了越来越多的碎片,内存的是利用率随之下降,这种现象称为外部碎片。
34、伙伴系统的分配与回收
35、重定位:将逻辑地址转换为物理地址
36、存储保护与越界:基址+界限寄存器
37、分页:基本原理,逻辑地址结构,页和页框,页表,地址转换
38、分段:基本原理,逻辑地址结构,段表,地址转换
第 8 章:虚拟内存
39、虚拟地址概念,实地址概念
虚拟地址:(p214)在虚拟内存中分配给某一位置的地址,它使得该位置可被访问,就好像是主内的一部分那样
实地址:(p214)内存中存储位置的地址
40、虚拟分页:基本原理,虚实地址转换
41、缺页中断处理过程
42、转换检测缓冲区 TLB(快表)。根据内存访问时间、TLB 访问时间和 TLB 命中率,求将逻辑地址转换成物理地址并访问内存数据所需的有效访问时间(见作业)。
43、虚拟分段和虚拟段页式的基本原理
44、虚拟分页的置换算法:最佳置换 OPT、LRU、先进先出 FIFO
OPT:
LRU:
FIFO:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021052600200379.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTgyMDQ3MA==,size_16,color_FFFFFF,t_70
45、置换过程及缺页次数的计算(注:计算页框填满之前和之后发生的总缺页次数即可)
同上
46、抖动
抖动在分页存储管理系统中,内存中只存放了那些经常使用的页面, 而其它页面则存放在外存中,当进程运行需要的内容不在内存时, 便启动磁盘读操作将所需内容调入内存,若内存中没有空闲物理块, 还需要将内存中的某页面置换出去。也就是说,系统需要不断地在内外存之间交换信息。 若在系统运行过程中,刚被淘汰出内存的页面,过后不久又要访问它, 需要再次将其调入。而该页面调入内存后不久又再次被淘汰出内存,然后又要访问它。 如此反复,使得系统把大部分时间用在了页面的调入/换出上, 而几乎不能完成任何有效的工作,这种现象称为抖动。
第 9 章:单处理器调度
47、处理器调度的类型-长程,中程,短程
48、调度准则与指标
49、非抢占式调度、抢占式调度
50、调度算法:先来先服务(FCFS)、轮转、最短进程优先(SPN)、最高响应比优先(HRRN)。计算“周转时间”、 “归一化周转时间(带权周转时间 Tr/Ts)”及所有作业的平均值
第 10 章:多处理器和实时调度
51、多处理器系统中,采用简单的 FCFS 或“静态优先级+FCFS”调度算法就足够了
52、实时任务分类:硬、软,周期性、非周期性
附:最早完成最后期限调度:
有自愿空闲时间的最早最后期限调度:
第 11 章:IO管理和磁盘调度
53、程序控制 I/O:CPU 忙等 I/O 结束,CPU 与设备串行工作。
54、中断驱动 I/O:各种设备通用,中断次数多。
55、直接存储器访问 DMA 原理与 I/O 过程
56、缓冲 buffer 的主要作用:缓和 CPU 与 I/O 设备间速度不匹配矛盾,提高并行性
57、磁盘访问时间:寻道时间,旋转延迟时间,传输时间
58、磁盘调度算法:先进先出,最短服务时间优先算法(SSTF),电梯。计算平均寻道长度
1.FIFO:
2.SSTF:
3.SCAN:
4.C-SCAN
59、RAID 的核心技术:条带化,并行访问,块交叉校验,镜像。RAID 0,RAID 1
错误校正码:
每个数据磁盘中的相应位都计算一个错误校正码,这个码位保存在多个奇偶检验磁盘中相应的位中。成本仍然较高。
奇偶校验位
为所有数据磁盘中同一位置的位的集合计算一个简单的奇偶校验位,而不是错误校正码。以较低的成本保证较好的可靠性。
第 12 章:文件管理
60、树型目录,文件共享
61、三种文件分配方法:连续分配,链接分配,索引分配
连续分配:
链接分配:
索引分配:
62、索引分配对文件尺寸的影响(例:如果块长 4KB(即索引块和数据块均长 4KB),每个指针 4B,则采用基于单个盘块的索引分配时,允许的文件最大尺寸是多少?一个索引块可保存 4KB/4B=1K 个指针,每个指针指向一个数据块,文件最大尺寸为 4KB×1K= 4MB)
63、磁盘空闲空间管理:位图。
64、UNIX 中的文件控制块:索引节点 i-node