课程
第一部分:核心知识点
第一部分:核心知识点
重点提示:这些知识点在面试和考研中非常重要。
一、 操作系统概论
1. 操作系统的作用
- 作为用户与计算机硬件系统之间的接口:
- 命令方式
- 系统调用方式
- 图形和窗口方式
- 作为计算机系统资源的管理者:
- 处理机管理、存储器管理、设备管理、文件管理。
2. 基本特征与主要功能
- 四大基本特征:并发性、共享性、虚拟性、异步性。
- 五大主要功能:
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 用户接口
二、 进程管理 (重点)
1. 进程的描述
- 组成结构:每个进程(进程实体)由程序段、相关数据段及进程控制块 (PCB) 组成。
- 进程控制块 (PCB):
- 定义:OS 为管理和控制进程运行而定义的数据结构,记录了系统管理进程所需的全部信息。
- 地位:PCB 是进程存在的唯一标志。
- 包含信息:进程标志符、处理机状态、进程调度信息、进程控制信息。
2. 进程的控制
-
基本操作:创建、撤消、阻塞、唤醒。
-
创建进程的步骤:
- 申请一个空闲的 PCB。
- 为新进程分配资源。
- 初始化 PCB。
- 将 PCB 插入就绪队列。
- 返回进程标识号。
详细步骤补充:
- 申请一个空闲的 PCB (系统的 PCB 是有限的,申请不到则出错)。
- 为新进程分配资源(静态、动态)。
- 对 PCB 初始化:
- 初始化标识信息:将系统分配的标识符和父进程标识符填入新 PCB。
- 初始化处理机状态信息:程序计数器指向程序的入口地址,栈指针指向栈顶。
- 初始化处理机控制信息:设置进程的状态,设置优先级。
- 将 PCB 插入就绪队列。
- 返回一个进程标识号。
3. 进程同步与并发
-
程序并发执行条件(Bernstein 条件): 将程序中任一语句 划分为两个变量的集合 和 ,其中 ,。
- :语句 在执行期间必须对其进行参考的变量(读集)。
- :语句 在执行期间必须对其进行修改的变量(写集)。
如果对于语句 和 ,同时满足以下条件,则语句 和 是可以并发执行的:
-
同步机制遵循的原则:
- 空闲让进:临界区空闲时,允许一个请求进程立即进入。
- 忙则等待:临界区被访问时,其他试图进入的进程必须等待,保证互斥。
- 有限等待:保证进程在有限时间内能进入临界区,避免“死等”。
- 让权等待:进程不能进入临界区时,应立即释放处理机,避免“忙等”。
4. 调度算法
- 作业/进程调度:
-
FCFS (先来先服务)
-
SPF (短作业优先 - 非抢占)
-
SRT (最短剩余时间)
-
RR (时间片轮转)
-
多级反馈队列调度算法:
- 设置多个就绪队列,并为每个队列赋予不同的优先级。队列 1 的优先级最高,其余队列逐个降低。
- 每个队列中进程执行时间片的大小各不相同,进程所在队列的优先级越高,其相应的时间片就越短。
- 新进程进入系统时,先放入队列 1 的末尾,按 FCFS 等待调度。如能完成,便可准备撤离系统;反之由调度程序将其转入队列 2 的末尾,按 FCFS 再次等待调度,如此下去,最后进入队列 n 按 RR 算法调度执行。
- 仅当队列 1 为空时,才调度队列 2 中的进程运行。若一个队列中的进程正执行,此时有新进程进入高级队列,则新进程抢占运行,原进程转移至本队列队尾。
-
最低松弛度优先算法 (LLF, Least Laxity First):
- 低松弛 = 高紧急。
- 算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急度越高,其优先级越高,并使之优先执行。
- 算法采用抢占调度方式,可用于调度具有完成截止时间的周期性实时任务。
- 松弛度 = 必须完成时间 - 本身剩余运行时间 - 当前时间。
-
三、 死锁 (Deadlock)
1. 概述
- 定义:多个进程因争夺资源而造成的僵局,无外力作用无法推进。
- 产生的四个必要条件:
- 互斥条件 (Mutual Exclusion)
- 请求和保持条件 (Hold-while-applying)
- 不可剥夺条件 (Non-preemption)
- 环路等待条件 (Circular Wait)
2. 处理死锁的方法
-
解决方法(一定都要记住,尤其是预防死锁):
- 预防死锁:
- 破坏互斥条件
- 破坏不可剥夺条件
- 破坏请求和保持条件
- 破坏循环等待条件
- 避免死锁:安全状态、银行家算法。
- 检测死锁:利用死锁定理。
- 解除死锁:资源剥夺法、撤销进程法、进程回退法。
- 预防死锁:
-
银行家算法 (上课时反复练习过):
- 核心思想:在分配资源前,判断系统是否会进入不安全状态。如果不安全,则不分配。
-
死锁检测详解:
- 资源分配图 (进程-资源图):描述进程和资源间的申请和分配关系的有向图。
- 圆圈表示进程节点 P,方框表示资源节点 R,方框中的小黑点数表示资源数。
- 请求边:
- 分配边:
- 死锁定理:
- 资源分配图的化简方法:寻找一个既不阻塞又不孤立的进程结点 ,若无则算法结束;去除 的所有分配边和请求边,使 成为一个孤立结点;转步骤 (1)。
- 在进行一系列化简后,若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;反之,称该图是不可完全简化的。
- 孤立结点:没有请求边和分配边与之相连。
- 阻塞结点:有请求边但资源无法满足其要求。
- 定理:出现死锁状态的充分条件是资源分配图不可完全简化。
- 资源分配图 (进程-资源图):描述进程和资源间的申请和分配关系的有向图。
四、 存储器管理
1. 动态分区分配算法
- 基于顺序搜索:
- 首次适应算法 (First Fit)
- 循环首次适应算法 (Next Fit)
- 最佳适应算法 (Best Fit)
- 最坏适应算法 (Worst Fit)
- 基于索引搜索:快速适应算法、伙伴系统、哈希算法。
2. 页面置换算法
- 最佳置换算法 (OPT)
- 先进先出置换算法 (FIFO)
- 最近最久未使用算法 (LRU)
- 最近最少使用置换算法 (LFU)
- Clock 置换算法及改进型
五、 设备管理 (I/O)
1. 磁盘管理
- 磁盘访问时间 = 寻道时间 + 旋转延迟 + 传输时间 + 控制器时间。
- 磁盘调度算法:
- FCFS (先来先服务)
- SSTF (最短寻道时间优先)
- SCAN (扫描/电梯算法)
- CSCAN (循环扫描)
- N-STEP-SCAN 和 FSCAN
2. SPOOLing 技术 (假脱机)
- 定义:External Peripheral Operations On-Line,外部设备联机并行操作。利用多道程序模拟外围控制机,在联机条件下实现脱机 I/O 功能。
- 功能:
- 把独占设备改造为逻辑共享设备。
- 把一台物理 I/O 设备虚拟为多台逻辑 I/O 设备。
- 组成:
- 输入井和输出井
- 输入缓冲区和输出缓冲区
- 输入进程和输出进程
- 井管理程序
六、 文件系统
-
定义:OS 中负责操纵和管理文件的软件集合。
-
公式:文件系统 = 文件管理程序 + 它所管理的全部文件(文件和目录的集合)。
-
实例:FAT 文件系统、UNIX 混合索引分配。
-
增量式索引组织方式(混合索引分配):
- 基本概念:在采用混合索引分配方式的文件系统(如 UNIX)中,索引结点中设置了 13 个地址项,前 10 个是直接地址项,后 3 个是间接地址项。
- 直接地址:在索引结点中设置 10 个直接地址项,用来存放直接地址。假如每个盘块的大小为 4KB,当文件不大于 40KB 时,便可直接从索引节点中读出该文件的全部盘块号。
- 一次间接地址:利用索引结点中的一次间接地址项来提供一次间址。一次间址块中可存放 1K 个盘块号,允许文件长达 4MB。
- 多次间接地址:利用二次间接地址项提供二次间接地址。在采用二次间址方式时,文件最大长度可达 4GB。同理在采用三次间址方式时,所允许的文件最大长度可达 4TB。
七、 考试题型精练
1. 单项选择题
题目:在计算机系统中,操作系统是( )。
- A. 处于硬件之下的底层软件
- B. 处于系统软件之上的用户软件
- C. 处于应用软件之上的系统软件
- D. 处于裸机之上的第一层软件
2. 填空题
题目:操作系统的基本特征包括并发性、共享性、虚拟性 和异步性。
3. 简答题
题目:什么是操作系统?它有什么基本特征?
参考答案:操作系统是管理计算机硬件与软件资源、控制程序执行、改善人机界面、提供各种服务、合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的系统软件。基本特征见上文“基本特征”部分。
4. 综合应用题 (银行家算法)
题目:假设系统中有 5 个进程 {P0, P1, P2, P3, P4} 和三类资源 {R1, R2, R3},当前资源分配如下表:
| 进程 | 已分配 (Allocation) | 需求 (Need) | 剩余 (Available) |
|---|---|---|---|
| R1 R2 R3 | R1 R2 R3 | R1 R2 R3 | |
| P0 | 2 1 1 | 3 0 1 | 2 2 4 |
| P1 | 3 2 0 | 1 3 2 | |
| P2 | 1 1 2 | 1 1 2 | |
| P3 | 0 2 0 | 1 4 7 | |
| P4 | 0 1 1 | 2 5 0 |
(注:原表格数据可能存在误差,做题时请以试卷实际数据为准)
问题:
- 当前状态安全吗?如果安全,请给出安全序列。
- 当进程 P3 提出资源请求 (1, 1, 2) 后,系统能否满足?请给出计算过程。
第二部分:OS 简答题
简述操作系统的四个基本特征。
操作系统的四个基本特征是:并发、共享、虚拟、异步。其中并发和共享是两个最基本的特征,二者互为存在条件。
- 并发 (Concurrency):
- 指两个或多个事件在同一时间间隔内发生。
- 在一段时间内同时存在多道运行的程序(进程)。
- 并发执行能有效改善系统资源利用率,但使系统复杂化,需要对活动进行控制和管理。
- 共享 (Sharing):
- 计算机系统中的资源可供内存中多个并发的进程同时使用。
- 资源不再为某道程序所独占。
- 虚拟 (Virtual):
- 将一个物理实体变为若干个逻辑上的实体。
- 是操作系统管理系统资源的重要手段,可提高资源利用率。
- 异步 (Asynchronism):
- 也叫不确定性,指进程以人们不可预知的速度向前推进。
- 进程的执行时间、顺序、速度和完成时间都是不可预知的。
微内核OS的优点和缺点是什么?
- 提高了系统的可拓展性:采用 C/S 模式,许多功能由相对独立的服务器实现,扩展时只需增加专门的服务器。
- 增强了系统的可靠性:内核精简,正确性易保证;服务器间采用通信机制,单点出错不影响其他。
- 可移植性强:能较容易地运行在不同的计算机硬件平台上。
- 提供了对分布式系统的支持:采用消息传递机制,支持分布式系统和网络系统。
- 融入了面向对象技术:封装、继承等机制有利于提高系统的正确性、易修改性和易扩展性。
- 运行效率低:完成一次用户请求需要利用消息实现多次交互,并多次进行用户/内核模式的上下文切换。
批处理操作系统、分时操作系统和实时操作系统各有什么特点?
| 类型 | 特点/优点 | 缺点/适用场景 |
|---|---|---|
| 批处理操作系统 | 特点:脱机、多道、成批处理。 优点:系统利用率高,系统吞吐量大。 | 缺点:平均周转时间长,无交互能力。 分为单道(自动、顺序、单道) 和多道(调度、无序、多道)。 |
| 分时操作系统 | 特点:多路性、独立性、 及时性、交互性。 | 缺点:系统开销大。 适合小的不成熟的作业。 |
| 实时操作系统 | 特点:多路性、独立性、 及时性、交互性、高可靠性。 | 重点:必须在规定时间内响应外部事件, 系统必须安全可靠(如航空订票、生产控制)。 |
进程与程序
- 动态性:进程是动态的(程序的执行),程序是静态的(有序代码的集合)。
- 持久性:进程是暂时的(状态变化过程),程序是永久的(可长久保存)。
- 组成:进程包括数据段、程序段及 PCB(进程控制块),而程序组成不同。
- 对应关系:一个程序可对应多个进程(如多开 QQ),一个进程也可通过调用关系包含多个程序。
同步与互斥
- 引入原因:协调进程之间的相互制约关系。
- 同步 (直接制约关系):
- 为完成某种任务而建立的两个或多个进程,需要协调工作次序而产生的制约关系。
- 通俗理解:只有运行了 A 才能运行 B。
- 互斥 (间接制约关系):
- 当一个进程进入临界区使用临界资源时,另一个进程必须等待。
- 通俗理解:运行了 A 就不能运行 B。
临界区互斥的四个原则:
- 空闲让进:临界区空闲时,允许一个进程进入。
- 忙则等待:临界区已有进程时,其他进程必须等待。
- 有限等待:进程要在有限时间内退出临界区,避免死等。
- 让权等待:不能进入临界区时,应让出 CPU,避免忙等。
产生死锁的四个必要条件是什么?
产生死锁的四个必要条件
- 互斥条件:资源在一段时间内只能被一个进程排它性使用。
- 请求和保持条件:进程保持了至少一个资源,但又提出新请求并被阻塞,且不释放已获得资源。
- 不可抢占条件:已获得的资源未使用完之前不能被抢占。
- 循环等待条件:存在一个进程-资源的循环链(如 等 ,… 等 )。
死锁的处理方法
- 预防死锁:破坏四个必要条件(通常是破坏请求和保持、不剥夺、循环等待条件,互斥较难破坏)。
- 避免死锁:安全状态、银行家算法。
- 检测死锁:利用死锁定理。
- 解除死锁:资源剥夺法、撤销进程法、进程回退法。
补充公式:死锁计算
进程数小于资源数,则不会发生死锁的公式:
- 如果可以整除: 。
- 如果不可以整除: 。
- 例:。
简述利用假脱机技术实现打印机共享的基本处理过程。
处理过程:
- 接收请求:当多个用户进程提出打印请求时,假脱机管理进程不直接分配打印机,而是做两件事:
- 在磁盘输出井申请空闲缓冲区,存入要打印的数据。
- 申请一张打印请求表,填入信息并挂到假脱机文件队列上。
- 执行打印:当打印机空闲时,输出进程从队列队头取出一张请求表,将数据从输出井传送到输出缓冲区,再送到打印机打印。
分页存储管理和分段存储管理有何区别?
| 比较维度 | 分页存储管理 | 分段存储管理 |
|---|---|---|
| 单位性质 | 物理单位。为了实现离散分配,消减内存外零头。 | 逻辑单位。含有一组相对完整的信息,更好满足用户需求。 |
| 大小 | 固定,由系统决定。硬件实现。 | 不固定,由用户编写的程序决定(编译时划分)。 |
| 地址空间 | 一维(单一线性地址空间)。 | 二维(需给出段名 + 段内地址)。 |
| 权限 | 读、写。 | 读、写、执行。 |
内存访问与地址计算习题
习题 1:内存访问次数
题目:无快表(TLB)的基本页式存储管理中,每次从主存中取指令或取操作数,至少要 2 次访问主存。
-
解析:
- 第一次访问主存中的页表,获取物理地址。
- 第二次根据物理地址访问主存中的数据或指令。
- 注:如果有快表(TLB),且命中,则只需要访问 1 次主存。
习题 2:页面地址转换计算
题目:有一系统采用页式存储管理,作业大小 8KB,页大小 2KB。
依次装入内存的第 7、9、10、5 块。
试将虚拟地址 7145 转换成内存地址 7575。
解题步骤:
-
已知条件:
- 页大小 。
- 虚拟地址 。
- 页表映射关系(隐含在题目描述中):
- 页号 0 -> 块号 7
- 页号 1 -> 块号 9
- 页号 2 -> 块号 10
- 页号 3 -> 块号 5
- (注:题目中“依次装入”通常暗示页号 0, 1, 2, 3 分别对应这些块号)
-
计算页号 (P) 和页内偏移 (W):
- (取整)。
- 。
-
查找对应块号:
- 页号 3 对应的块号是 5。
-
计算物理地址:
- 。
- (注:原文计算式写为
5*2048+1001-11241,结果正确)
答案:虚地址 7145 的内存地址是 11241。
试说明关于索引文件和索引顺序文件的检索方法。
检索方法
- 索引文件:利用关键字进行折半查找 -> 找到表项(指针) -> 访问记录。
- 索引顺序文件:利用关键字检索索引表 -> 找到记录组第一个表项 -> 顺序查找主文件。
文件的物理结构有哪几种?
- 连续组织方式(顺序文件结构):分配连续磁盘空间。
- 链接组织方式(链接式文件结构):分配不连续空间,通过指针链接。
- 索引组织方式(索引式文件结构):建立索引表管理盘块。
磁盘空间管理:位示图法 (Bitmap)
-
分配过程:
- 顺序扫描位示图,找到 的空闲位。
- 计算盘块号 ( 为每行位数)。
- 将位示图对应位置为 1。
-
回收过程:
- 根据盘块号 计算行号和列号。
- 。
- 。
- 修改位示图:令 。
- 根据盘块号 计算行号和列号。
简答题题目
- 简述操作系统的四个基本特征。
- 微内核OS的优点和缺点是什么?
- 批处理操作系统、分时操作系统和实时操作系统各有什么特点?
- 产生死锁的四个必要条件是什么?
- 简述利用假脱机技术实现打印机共享的基本处理过程。
- 分页存储管理和分段存储管理有何区别?
- 试说明关于索引文件和索引顺序文件的检索方法。
- 文件的物理结构有哪几种?













