特别感谢
感谢软件学院往届学长姐的笔记,本文在前人的基础上根据2022-2023学年秋季课程复习重点,并参考教材《操作系统——精髓与设计原理(第九版)》进行了增改。(如有侵权,联系删除)
希望能为学弟学妹们的期末复习提供帮助!
(制作不易,如果有帮助到你的话请赞赞本文| ᐕ)
使用说明
文中下划线、加粗、红色字体等重点标记部分,以及图片内容均为考点范围,建议优先重点复习。
第一章
计算机系统的组成:Ⅰ.五部分组成:①运算器;②控制器;③存储器;④输入设备;
⑤输出设备。(冯诺依曼结构)
Ⅱ.计算机的4个主要组成部分:①处理器(一般指CPU);②内存;
③输入/输出模块;④系统总线
指令周期构成:①指令周期:一条指令的执行时间;
②程序顺序执行:1)取指;2)指令执行;
③中断:概念:一些其他模块(I/O,内存)可能中断处理器正常执行顺序的
机制;
原因:I/O设备速度慢,与CPU无法协调,提高CPU效率;
不同程序重要程度不一;计数;避免CPU被独占
分类:可屏蔽、可嵌套(优先级)、随机性/不可预测性。
中断类别:程序中断、时钟中断、I/O中断、硬件失效中断
存储器的层次结构:①存取时间越快,价格越高 ②容量越大,价格越低 ③容量越大,存取 速度越慢
I/O技术控制的三种手段:①程序控制的I/O;②中断I/O;③DMA(直接内存访问)。
第二章
操作系统设计的三个目标:方便、有效、扩展能力
操作系统提供的两种接口:命令接口、图形接口
作业控制语言(JCL): 构成:一种特殊类型的编程语言,用于向监控程序提供指令
(Job Control Language)处理流程:参考FORTRAN语言。
操作系统五大成就:①进程②内存管理③信息安全④调度和资源管理⑤系统架构
操作系统的概念:一个程序:①控制应用程序的执行;
②充当应用程序和硬件之间的接口
操作系统的组成:①进程;②进程管理模块;③存储模块;④文件系统;⑤I/O。
一系列术语:串行处理(serial processing):用户可以以串行的方式访问系统,程序员直
接与计算机硬件交互。
特点(问题):无操作系统,顺序执行指令;
①scheduling:调度时间不合理(预约方式);
②setup time:准备时间长,人机矛盾。
简单批处理系统(Simple Batch Systems):使用一个称为监控程序(monitor)
的软件。通过使用这类操作系统,用户不再直接访问机器。
特点:①monitor:常驻储存,主动与CPU交换控制权;
②CPU。
优点:①内存保护(memory protection);②定时器(timer);③特权指令(privileged instructions);④中断(interrupts)
多道批处理系统(Multiprogrammed Batch Systems):当一个作业还需等待
I/O是,处理器可以切换到另一个可能不需要等待I/O的作业。进一步还可
扩展存储器以保存更多的程序,并在它们之间进行切换(多道程序设计)。
特点:在内存中包含两道及两道以上的用户程序,提高效率。
分时系统(Time Sharing):一种多道系统;处理器的时间在多个用户/程序之间共享。
特点:多个用户可以通过终端同时访问系统,由操作系统控制每个用户程
序以很短的时间为单位交替执行。
分时系统与多道批处理系统的差异:
第三章
进程是资源的分配单位。资源所有权、调度/执行
进程控制块(PCB)的功能:进程控制块包含了充分的信息,这样就可以终端一个进程的执
行,并在后来恢复执行进程是就像未中断过。
进程的概念:一个正在执行的程序
※Or 一个活动的单元:①正在执行的指令序列;
②一个现时状态;
③一个有关联的系统资源的集合。
引入原因:为了实现:资源对多个应用程序可用;物理处理器在多个应用程序间切换以保证
所有程序都在执行中;处理器和I/O设备能得到充分利用等目的。
程序和进程之间的联系:进程是一个正在计算机上执行的程序实例。
内存表用于跟踪内(实)存和外(虚)存,包含如下信息:①分配给进程的内存;②分配给进程的外存;③内存块或虚存块的任何保护属性;④管理虚存所需要的任何信息
进程映像的构成:程序、数据、栈、进程控制块
进程控制块的概念:一种表示进程状态的数据结构。
构成要素:①进程ID;②进程状态信息;③进程控制信息
每个进程映像都由进程控制块、用户栈、进程专用地址空间以及与其他进程共享的其他地址空间组成。
执行模式:概念:用户模式:用户程序通常执行的模式
内核模式:指操作系统的内核,这是操作系统中包含重要系统功能的部分。
System mode = kernel mode
两者差异:在内核态下,软件具有对处理器及所有指令、寄存器和内存的控制
能力,这一级的控制对用户程序不是必需的,并且为了安全起见也
不是用户程序可以访问的。
引入原因:保护操作系统和重要的操作系统表(如进程控制块)不受用户程序干
涉。
进程创建的流程:①给新进程分配一个唯一的进程标识符;
②给进程分配空间;
③初始化进程控制块;
④设置正确连接;
⑤创建或扩充其他数据结构。
何时进程切换:①中断(时钟中断、I/O中断、内存失效);
②陷阱;
③系统调用(如用户请求打开文件)
进程切换步骤:
模式切换与进程切换的差异:发生模式切换可以不改变正处于运行态的进程状态;在这种情
况下,保存上下文环境和以后恢复上下文环境只需要很少的开
销。但是,如果当前正在运行的进程被转换到另一个状态(就绪、
阻塞等),则操作系统必须使其环境产生实质性的变化。
操作系统的执行:①无进程内核:在所有进程外部执行操作系统内核;操作系统代码是在特权模式下单独运行的实体
②在用户进程内运行:用户进程的上下文中执行所有操作系统软件;
进程在执行操作系统代码时以特权模式执行
优点:中断一个用户程序,使用操作系统例程,再恢复用户程序不用两次进程切换
③基于进程的操作系统:把操作系统作为一组系统进程来实现;主要的内
核功能被组织为独立的进程;在多处理器或多机环境
中很有用
两状态图:
五状态图:
空->新建:创建一个新进程
新建->就绪:操作系统准备好再接纳一个进程时,把一个进程从新建态转化
为就绪态。
就绪->运行:需要选择一个新进程运行时,操作系统选择一个处于就绪态的
进程。
运行->就绪:①正在运行的进程到达了“允许不中断执行”的最大时间段;
②优先级、抢占;
③进程自愿释放对处理器的控制。
运行->阻塞:进程请求他必须等待的某些事件,则进入阻塞态。
阻塞->就绪:当所等待的事件发生时,处于阻塞态的进程转换到就绪态。
就绪->退出:在某些系统中,父进程可以在任何时刻终止一个子进程。如果
一个父进程终止,与该父进程相关的所有进程都将被中止。
阻塞->退出:同上。
七状态图:
阻塞->阻塞/挂起:①没有就绪进程,则至少一个阻塞进程被换出,为另一
个没有阻塞的进程让出空间。
②操作系统确定当前正在运行的进程,或就绪进程为了
维护基本的性能要求而需要更多的内存空间。
阻塞/挂起->就绪/挂起:等待的事件发生了,处于阻塞/挂起状态的进程可
转换到就绪/挂起态。(要求操作系统必须能够得到
挂起进程的状态信息)
就绪/挂起->就绪:①内存中没有就绪进程;
②处于就绪/挂起态的进程比处于就绪态的任何进程的优
先级都高。
就绪->就绪/挂起:①如果释放内存以得到足够空间的唯一方法是挂起一个
就绪态进程,那么这种转换也是必需的;
②如果操作系统确信高优先级的阻塞态进程很快就会就
绪,那么它可能选择挂起一个低优先级的就绪态进
程,而不是一个高优先级的阻塞态进程。
新建->就绪/挂起&新建->就绪:当创建一个新进程时,该进程或者加入就绪
队列,或者加入就绪/挂起队列。
阻塞/挂起->阻塞:一个进程终止,释放一些内存空间,阻塞/挂起队列中
有一个进程比就绪/挂起队列中任何进程的优先级都高,
并且操作系统有理由相信阻塞进程的事件很快发生,这
时,把阻塞进程而不是仅需进程调入内存是合理的。
运行->就绪/挂起:由于位于阻塞/挂起队列中的具有较高优先级的进程变得
不再被阻塞,操作系统抢占这个进程,也可以直接把这
个运行进程转换到就绪/挂起队列中,并释放一些内存。
各种状态->退出:在某些操作系统中,一个进程可以被创建它的进程终止,
或当父进程终止时终止。如果这样,则进程在任何状态都
可转换到退出态。
引入五状态图原因:有一部分进程执行I/O阻塞,如果不细分,可能造成无效调度。
存在一些处于非运行态但已就绪等待执行的进程,同时还存在另外一些处于阻塞态等待I/O操作结束的进程。
引入七状态图原因:处理器速度比I/O速度快的多,可能造成所有进程都在等待。
第四章
引入线程原因:减少并发执行的开销,提高程序执行的并发程度。
线程实现方法:①用户级线程(ULT);②内核级线程(KLT);③混合实现。
第五章
解决互斥的三类方法:①硬件方法;②软件方法;
③操作系统:信号量、管程。
?如何运用上述机制实现进程之间的同步与互斥:
①软件方法:各类算法;
②硬件方法:终端屏蔽、机器指令;
③操作系统:信号量的实现、管程的实现。
多道程序设计困难:①全局资源的共享危险
②操作系统很难对资源进行最优化分配
③定位程序设计错误困难
信号量类型:一般信号量;计数信号量;二元信号量;互斥量;强信号量;弱信号量。
忙等与阻塞的差别:
信号量实现伪代码:
const int n = /*进程数*/
semaphore s = 1;
void P(int i)
{
While(true){
semWait(s);
/*临界区*/
semSignal(s);
/*其他部分*/
}
}
void main()
{
parbegin(p(1),p(2),…,p(n));
}
四大问题概念:①同步(Synchronization):两个进程间的消息通信隐含着某种同步的信息:只有当一个进程发送发消息之后,接收者才能接收消息。
②互斥:当一个进程在临界区访问共享资源时,其他进程不能进入该临界
区访问任何共享资源。
③饥饿:一个可运行的进程尽管能继续执行,但被调度程序无限期地忽
视,而不能被调度。
④死锁:两个或两个以上的进程因其中的每个进程都在等待其他进程做完
某些事情而不能继续执行。
互斥与同步之间的关系:同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是
说互斥是两个线程之间不可以同时运行,他们会相互排斥,必须
等待一个线程运行完毕,另一个才能运行,而同步也是不能同时
运行,但他是必须要安照某种次序来运行相应的线程(也是一种
互斥)
条件竞争:资源状态由最后一个进程来决定。
两个概念:临界资源:假设两个或更多的进程需要访问一个不可共享的资源。在执行过程
中,每个进程都给该I/O设备发命令,接受状态信息,发送数据和接收数据;这一类
资源被称为临界资源(critical resource)。一次仅允许一个进程所访问的资源。
临界区:一段代码,在这段代码中进程将访问临界资源(共享资源),当另一个进程在这段代码中运行时,这个进程就不能在这段代码中执行。
有效实现临界区的要求(互斥的要求)(十六字):
空闲让进,忙则等待,有限等待,让权等待。
信号量概念:用于进程间传递信号的一个整数值,递减操作用于阻塞一个进程,递增解除进程阻塞。
二元信号量:只取0值和1值的信号量
互斥量:类似于二元信号量。关键区别在于为其加锁(设定值为0)的进程和为其解锁(设定值为1)的进程必须为同一个进程。
强信号量:等待线程的调度遵循FIFO
弱信号量:没有规定进程从队列中移出顺序
管程:
消息:消息头+消息体
读写者优先问题:
Any number of readers may simultaneously(同时的) read from the file
-- 重点复习!
生产者消费者问题及其变种(读写者问题、理发师问题等)
哲学家就餐问题及其变种
第六章
活锁:两个或两个以上进程为了响应其他进程中的变化而持续改变自己的状态但不做有用
的工作。
死锁的检测算法(见红色字体部分)
死锁的恢复算法(解除死锁算法):①取消所有死锁的进程;
②把每个死锁进程回滚到前面定义的某些检查点,并重
新启动所有进程;
③连续取消死锁进程直到不再存在死锁;
④连续抢占资源直到不再存在死锁。
综合解决死锁策略:①把资源分成几组不同的资源类;
②对资源类之间采用线性排序(解除循环等待);
③在一个资源类中,使用该类资源最适合的算法。
死锁的概念:两个或两个以上的进程因其中每个进程都在等待其他进程做完某事而不能继
续执行。
饥饿的概念:一个可运行的进程尽管能继续执行,但被调度程序无限期的忽视,而不能被
调度。
资源的分类:可重用资源:一个进程执行完后,资源状态不会发生改变的资源。
可消费资源:由进程动态产生的软资源,数目无限,进程一旦结束,资源消失。
死锁的条件(死锁的存在性):①互斥;②占有且等待;③非抢占;(前三个为必要条件,死锁可能性,间接预防死锁)④循环等待(充分条件,直接预防死锁)
解决死锁的三类方法:①死锁预防:采用消除其中一种情况的政策;
②死锁避免:若此次分配可能导致死锁则不满足该资源请求;
③死锁检测:检测死锁的存在并采取行动恢复。
死锁恢复:
进程的启动拒绝方法:具体见书P191-192 or PPT
如果一个新进程的资源需求会导致死锁,则拒绝启动新进程Pn+1 ;
仅当对所有j成立时才启动新进程Pn+1 。
银行家算法:安全状态:至少有一组状态不会导致死锁。
当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确
定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该
进程直到同意请求后系统状态仍然是安全的。
死锁检测算法:①标记A矩阵中一行全为0的进程;
②初始化一个临时向量W,令W等于V向量;
③查找下标i,使进程i当前未标记且Q的第i行小于等于W,找不到这
样的行,终止算法。
④找到这样的行,标记进程i,并把A矩阵中的相应行加到W中,然后重
复步骤③④,直到算法终止。
哲学家就餐问题:引起该问题的根本原因——保证互斥,避免死锁和死锁 该问题是评价
同步方法的一个测试标准
解决策略——P177基于信号量(最多四个人同时吃)、P178基于管程(两边叉子同时有才能进入管程)
第七章
内存管理五大需求:①重定位;②保护;③共享;④逻辑组织;⑤物理组织
重定位:含义:一个进程从程序变为进程时,由程序的逻辑地址变为物理地址的过程P197
过程:逻辑地址—>物理地址的转化的过程,由OS或硬件执行,具体见书emmmm
保护:进程不能在未授权的情况下访问其他进程的数据,不能跳转到其他进程的代码区域执行指令。
运行时检测绝对地址
由处理器(硬件)完成
共享:允许多个进程访问内存的统一部分 受控访问
覆盖的概念:允许不同的模块分配到相同的内存区域。
重定位vs.覆盖
伙伴系统(buddy system)概念:整个可用空间被视为 的一个块;如果一个大小为s的请
求使 ,则分配整个块;否则块被分割成两个
相等的伙伴;进程继续,直到生成≥s 的最小块为止。固定分区和动态分区的
折中方案。
动态分区放置算法:最佳适配(差)——选择与要求大小最接近的块
首次适配(好)——从头开始扫描内存,选择大小够的第一个可用块
下次适配(次好)——从上一次放置的位置开始扫描内存,选择下一个大小足
够的可用块
页表:操作系统为每个进程维护一个页表,页表给出了该进程的每页所对应页框的位置。
在程序中,每个逻辑地址包括一个页号和在该页中的偏移量。
内部零头:由于被装入的数据块小于分区大小,从而导致分区内部有空间浪费。
外部零头:随着事件推移,内存中产生了越来越多的碎片,内存利用率随之下降。
分页、分段地址转化过程(三步):
分页:考虑一个n+m位的地址,最左边n位是页号,最右边m位是偏移量。
①提取页号,即逻辑地址最左边的n位;
②以这个页号为索引,查稿该进程页表中相应的页框号;
③该页框号的起始物理地址为,被访问字节的物理地址是这个
数加上偏移量。物理地址不需要计算,可以简单的把偏移量附加到
页框号后面来构造物理地址。
分段(与分页极为类似,不再详述)
第八章
分页:
页表项(page table entry,PTE):包含有与内存中的页框对应的页框号。存在位
(P),修改位(M)
多级页表:省内存
倒排页表:使用页框号而非虚拟页号来索引页表项。
转换检测缓冲区(TLB)
(页表页号按顺序排列可省略,TLB的页号非顺序)
分段:
页缓冲:概念:一种可以提高分页的性能并且允许使用较简单的页面置换策略的方法。
应用场景:未被修改的页,分配到空闲页链表;修改过的,则分配到修改页链
表。
缺页中断处理流程:(会画有缺页中断流程图)
OPT:Optimal 最佳
LRU: Least Recently Used 最近最少使用
FIFO: 先进先出
Clock: 时钟
若所有页框的使用位均为1,则指针在缓冲区中完整地循环一周,把所有使用位都置为0,并停留在最初的位置上,置换该页框中的页。
页缓冲:
驻留集管理:
工作集策略:
缺页中断频率PPF:
请求式清除与预清除的不同点:请求式清除的页面只有在被选择替换时才会被写出;而预
清除在需要页面之前就被分批写出。
结合页缓存较好
加载控制策略:控制驻留在内存中的进程数目不会过多也不会过少。
抖动(Thrashing):处理器的大部分事件都用于交换块,而不是执行指令。
进程挂起:
清除策略:用于确定在何时将一个被修改过的页写回辅存。通常有请求式清除和预清除两
种选择。
虚拟存储中的页表:功能:标记所对应的页是否在内存中,以及相应页的内容从上一次装
入内存中到现在是否已经改变。
?结构:页表项,页框号
页/段表的创建与运用:
页表:每个进程都有自己的页表,当它的所有页都装入到内存中时,页表被创建并装入内存。页表项包含有与内存中的页框相对应的页框号,一位(P)表示所对应的页当前是否在内存中,一位(M)表示相应页的内容从上一次装入到内存中到现在是否已经改变。从存储器中读取一个字时需要使用页表。
段表:与页表相类似。
段页式:先分段后分页
页面的置换算法(能画出每个帧的状态,能计算缺页中断率)
OPT(Optimal policy);LRU(Least Recently Used);FIFO(First-in First-out);
Clock Policy
第九章
调度标准:以满足系统目标(如响应时间、吞吐率、处理器效率)的方式,把进程分配到一
个或多个处理器中执行。
几种调度:
长程调度:增加新进程——当一个进程终止或当CPU空闲率超过某一个阈值。
中程调度:交换功能的一部分,换入决定取决于管理系统并发度的需求。
短程调度:
决策模式:抢占&非抢占
抢占:当前正在运行的进程可能被操作系统中断,并转移到就绪态。一个新进程到达时,或中断发生后把一个阻塞态进程置为就绪态时,或出现周期性的时间中断时,需要进行抢占决策。
非抢占:一旦进程处于运行状态,他就不断执行直到终止,或者因为等待I/O,或者因而
请求某些操作系统服务而阻塞自己。
周转时间(turnaround time):指一个进程从提交到完成之间的时间间隔,包括实际执行时间加上等待资源(包括处理器资源)的时间。(等待时间+服务时间)
响应时间:对一个交互进程,这是指从提交一个请求到开始接受响应之间的时间间隔。
服务时间:进程单独执行需要的时间。
归一化周转时间:周转时间与服务时间的比率。Tr/Ts P253
短程调度准则:
进程的调度算法:
FCFS 非抢占;
round-robin(轮转) 抢占; 就绪队列中轮转
SPN(Shortest Process Next) 非抢占;
SRT(Shortest Remaining Time) 抢占(新进程到达时);
HRRN(Highest Response Ratio Next) 非抢占;
反馈 抢占
图9.5和表9.5
甘特图
公平共享调度:
第十一章
三种I/O技术与优缺点:
I/O buffer:在发出请求之前执行输入传输,在发出请求之后执行输出传输。
两种设备:
设备驱动程序:与外围设备通信;负责启动该设备上的I/O操作,处理I/O请求的完成。
寻道时间:将磁头臂移到指定磁道所需要的时间。
旋转时间(旋转延迟):将磁盘待访问地址区域旋转到读/写磁头可访问位置的所需时间。
存取时间:寻道时间和旋转延迟的总和。
?读写过程涉及到的五种延迟:①寻道时间;②旋转延迟;③存取时间;④转换时间
磁盘调度策略(能画出磁头调度序列,计算平均调度长度)
FIFO(First in first out);SSTF(Shortest Service Time First);SCAN(电梯算法);C-SCAN(circular SCAN)
磁盘高速缓存:LRU(最近最少使用) LFU(最不常使用)
第十二章
文件:一组相似记录的集合,被用户和应用程序视为一个实体,并可以通过名字访问。
文件系统:提供了与辅助存储相关的资源的抽象,是操作系统的一个重要部分。
文件管理系统:是一组系统软件,为使用文件的用户和应用程序提供服务。
空闲空间管理技术手段:①位表;②链接空闲区:③索引;④空闲块列表。(外存储?)
文件管理系统功能:①确认和定位所选择的文件;
②使用某种类型的目录来描述所有文件的位置以及它们的属性。
③大多数共享系统都实行用户控制访问;
④I/O以块来访问文件;
⑤文件分配到二级存储中的空闲块;
⑥管理空闲存储空间,以知道新文件和现有文件增长时可使用哪些块。
FAT(文件分区表)概念:为跟踪分配给文件的分区而使用的表。
文件系统的层次结构:
①设备驱动程序:直接与外围设备相连,负责启动该设备上的I/O操作,处理I/O请求的
完成。
②基本文件系统(物理I/O层):与计算机系统外部环境的基本接口;处理在磁盘间或磁带
系统间交换的数据块。
③基本I/O管理程序:负责所有文件I/O的初始和终止;在这一层,需要一定的控制结构
来维护设备的输入/输出、调度和文件状态。
④逻辑I/O:使用户和应用程序能够访问到记录。
⑤访问方法层:与用户最近;在应用程序和文件系统以及保存数据的设备之间提供一个标
准接口。
文件的逻辑组织结构:
文件系统中的物理组织结构:
连续分配:
链式分配:
索引分配:
祝学弟学妹们考试顺利!
(制作不易,如果有帮助到你的话请赞赞本文| ᐕ)