操作系统综合复习网页
这是一份根据操作系统教材与题库整理生成的交互式复习网页,适合期末前集中回顾核心概念、公式、例题和易错点。
在线复习网页:点击打开 操作系统综合复习.html。
使用的 Skills:daxueren666/exam-review-helper。
内容概览
- 覆盖导论、进程、调度与死锁、同步、存储器管理、虚拟存储器、I/O、文件管理、磁盘管理等章节。
- 每章整理核心知识点,并配套公式、例题和易错点。
- HTML 页面支持侧边导航、搜索、暗黑模式和卡片式复习。
- 下方为「末日基地」风格第1章学习笔记,帮助你更直观地理解操作系统核心概念。
第 1 章 末日基地操作系统说明书
我们把第 1 章当成一个**“末日基地操作系统说明书”**来学。
这一章 PPT 的主线是:操作系统是什么、为什么出现、有什么特征、靠什么运行、管什么、结构怎么设计。PPT 大纲也正是这 6 部分:目标和作用、发展过程、基本特征、运行环境、主要功能、结构设计。
第 1 章一句话总览
操作系统 = 末日基地总管家它负责:
1. 管人:进程/线程2. 管仓库:内存3. 管工具:设备4. 管档案:文件5. 给幸存者提供入口:用户接口 / 系统调用你先记这一句:
操作系统就是夹在”用户/应用程序”和”硬件”之间的资源管理者、服务提供者和硬件抽象层。
1.1 操作系统的目标和作用
先抓本质
PPT 里说操作系统的位置是:紧贴系统硬件之上,所有其他软件之下。也就是说,应用程序不能直接乱碰硬件,要通过操作系统。
末日基地版:
硬件 = 基地里的武器库、仓库、发电机、水泵应用程序 = 幸存者小队操作系统 = 基地管理员幸存者不能直接冲进仓库拿东西,必须向管理员申请。
操作系统的目标
主要记四个词:
有效性、方便性、可扩充性、开放性对应人话:
有效性:让资源别闲着,提高利用率和吞吐量方便性:让用户不用直接面对 0/1 和硬件细节可扩充性:以后方便加功能、改功能开放性:能和其他系统/网络协同工作末日版记忆:
有效性:基地资源别浪费方便性:幸存者不用懂发电机原理也能开灯可扩充性:以后能加医疗站、武器站开放性:能和别的基地联网交易操作系统的三大作用
1. 用户和硬件之间的接口2. 计算机资源的管理者3. 对硬件资源的抽象,即虚拟机 / 扩充机器特别重要的是第二个:四大资源管理。
处理机管理存储器管理设备管理文件管理这四个后面每一章都会展开。
记忆口诀:
CPU、内存、设备、文件操作系统四大管理1.2 操作系统的发展过程
这一节最适合用”末日基地进化史”来记。
阶段 1:人工操作方式
最早没有操作系统,程序员要自己预约机器、装纸带、启动运行、取结果。PPT 里强调了早期人工操作导致用户独占全机、CPU 等待人工操作、资源浪费。
末日版:
基地刚建立,没有管理员。每个幸存者要亲自开仓库、搬物资、发电、记录。一个人用基地时,其他人全等着。问题:
人机矛盾:人太慢,机器等人CPU 与 I/O 矛盾:CPU 很快,外设很慢阶段 2:脱机输入输出
为了解决 CPU 等人工和慢速 I/O 的问题,出现脱机输入输出。PPT 里说它可以减少 CPU 空闲时间,提高 I/O 速度。
末日版:
以前:主基地 CPU 亲自等人搬物资。现在:先用外部小队提前把物资搬到中转仓库。主基地只和高速仓库交接。关键词:
Off-Line I/O减少 CPU 空闲提高 I/O 速度SPOOLing 假脱机阶段 3:单道批处理系统
PPT 里说单道批处理是把一批作业放到外存上,由 Monitor 逐个调入内存运行,特征是:自动性、顺序性、单道性。优点是减少人工操作,缺点是一个作业 I/O 时 CPU 仍然等待。
末日版:
基地管理员开始按名单自动处理任务。但一次只处理一个任务。如果当前任务去等水泵,管理员也只能干等。记:
单道批处理 = 自动排队,但一次只跑一个阶段 4:多道批处理系统
这是操作系统真正成型的关键。
PPT 里说,多道批处理是多个作业先在外存后备队列排队,经作业调度选择若干个调入内存,共享 CPU 和系统资源。特征是:调度性、无序性、多道性;优点是资源利用率高、吞吐量大;缺点是平均周转时间长、无交互能力。
末日版:
基地同时安排多个任务:A 小队等水泵时,B 小队可以用发电机,C 小队可以用厨房。资源不闲着。这就是你后面学”进程调度”的根源。
记忆:
多道 = 一个等 I/O,另一个用 CPU核心目的 = 提高资源利用率和吞吐量阶段 5:分时系统
PPT 里说分时系统的主要动力是用户需求,包括人机交互、共享主机、便于用户上机;特征是:多路性、独立性、及时性、交互性。
末日版:
很多幸存者共用一台总控电脑。每个人分到一点点时间片。宏观看起来大家都在同时操作,微观看其实是轮流用。口诀:
分时系统 = 多用户轮流用 CPU核心:时间片阶段 6:实时系统
实时系统强调”及时响应外部事件”,有严格时间限制。PPT 里提到实时系统主要用于过程控制和事务处理,主要特征是实时性和可靠性。
末日版:
基地防空系统、医疗监护系统、核反应堆冷却系统。警报来了必须马上处理。不能说"等我排队慢慢来"。记:
实时系统 = 必须在规定时间内反应1.3 操作系统的基本特征
这节特别容易出选择题。
PPT 明确列出操作系统四个基本特征:
并发性共享性虚拟性异步性并且强调:并发性是最重要特性,其他三种特性以此为前提。
1. 并发性
并发是:
一段时间内同时存在多道运行的程序注意并发和并行不同:
并发:看起来同时,单 CPU 上其实轮流执行并行:真正同一时刻执行,需要多个 CPU末日版:
并发 = 一个厨师轮流炒三口锅并行 = 三个厨师同时炒三口锅2. 共享性
共享是:
系统资源不再被一个程序独占,而是供多个程序共同使用并发和共享是互相依赖的。
末日版:
并发 = 多个小队同时存在共享 = 多个小队共用水、食物、武器、发电机没有共享,就没法并发;没有并发,也谈不上共享。
3. 虚拟性
PPT 里说虚拟是把一个物理实体映射为多个逻辑实体。常见方式有:
时分复用:虚拟处理机、虚拟设备空分复用:虚拟磁盘、虚拟存储器末日版:
只有一个发电机,但轮流给多个区域供电,每个区域都感觉"我有自己的发电机"。这就是虚拟。
4. 异步性
异步性也叫不确定性,意思是进程执行时间、顺序、推进速度、完成时间不可预知。PPT 还特别强调,不是不确定结果,而是运行时间和运行顺序不确定。
末日版:
多个小队同时行动。谁先回来,不一定。谁等水,谁等电,谁被丧尸堵路,也不一定。记忆口诀:
并发是核心,共享是条件,虚拟是假象,异步是不确定。1.4 操作系统的运行环境
这一节是考试高频,尤其是:
内核原语核心态/用户态中断系统调用1. 内核
PPT 说内核是现代 OS 中靠近硬件、受特殊保护、常驻内存的一部分,包含中断处理、时钟管理、原语操作,以及进程、存储器、设备管理等资源管理功能。
末日版:
内核 = 基地最核心的指挥室一直有人值班不能随便关普通幸存者不能乱进2. 原语
原语是由若干条指令组成、完成某个功能的过程。它和普通过程的区别是:原子操作,不允许被中断。PPT 也说明原语在核心态下执行,常驻内存。
末日版:
原语 = 开保险库的一套动作要么全部完成,要么完全不做中间不能被打断考试记:
原语 = 原子操作 = 不可分割 = 核心态执行3. 用户态和核心态
PPT 说处理机至少有两种模式:
核心态:OS 运行状态,可执行全部指令,包括特权指令用户态:用户程序运行状态,只能执行非特权指令用户态程序不能自己改成核心态,用户态到核心态的唯一途径是中断。
末日版:
用户态 = 普通幸存者区域核心态 = 基地控制室
普通人不能自己冲进控制室。只能按求助按钮 / 触发警报,由管理员接管处理。你之前问过的”关中断指令”就属于特权指令,只能核心态执行。
4. 中断
PPT 说中断是 CPU 对系统内外某个事件的反应,操作系统是由中断驱动的;中断可以解决主机与外设并行工作、提高可靠性、实现实时控制,也是多道程序的必要条件。
末日版:
中断 = 基地警报水泵完成了,响一下敌人来了,响一下时钟到了,响一下管理员暂停当前任务,先处理警报记:
操作系统是中断驱动的5. 系统调用
PPT 说系统调用是应用程序请求 OS 内核完成某功能的一种过程调用,是用户与内核的接口。
末日版:
系统调用 = 普通幸存者向管理员提交申请例如:
open 文件read 文件write 文件fork 创建进程申请内存访问设备考试记忆:
系统调用 = 用户程序获得 OS 服务的接口执行系统调用服务程序时 CPU 处于核心态1.5 操作系统的主要功能
PPT 列了五大功能:
处理机管理存储器管理设备管理文件管理用户接口可以用末日基地五部门记:
| OS 功能 | 末日基地部门 | 管什么 |
|---|---|---|
| 处理机管理 | 任务调度部 | 谁用 CPU,谁先执行 |
| 存储器管理 | 仓库空间部 | 内存怎么分、怎么保护 |
| 设备管理 | 工具设备部 | 打印机、磁盘、键盘、I/O |
| 文件管理 | 档案管理部 | 文件、目录、共享、保护 |
| 用户接口 | 服务窗口 | 命令、图形界面、系统调用 |
处理机管理
核心是:
进程控制进程同步进程通信进程调度后面第 2、3、4 章会详细讲。
存储器管理
核心是:
内存分配内存保护地址映射内存扩充你后面学分页、分段、虚拟存储器,全在这里。
设备管理
核心是:
缓冲管理设备分配设备处理/驱动程序虚拟设备后面第 7 章会讲。
文件管理
核心是:
文件存储空间管理目录管理文件读写管理文件共享与保护第 8、9 章就是这里展开。
1.6 操作系统的结构设计
这节主要考对比。
PPT 把结构发展分为:
无结构操作系统模块化结构分层式结构微内核结构外核结构无结构操作系统
大家乱成一团,过程之间互相调用优点不明显,缺点是:
庞大、杂乱、难调试、难维护末日版:
基地没有部门,谁都管一点,出了事没人知道问题在哪。模块化结构
按功能分模块优点:
更容易理解、维护、开发缺点:
模块和接口划分困难末日版:
分成医疗部、武器部、食品部,但部门边界不一定好划。分层式结构
从硬件开始,一层层向上上层只能使用下层服务优点:
正确性好易扩充易维护缺点:
层层调用,开销大,效率下降末日版:
基层士兵 → 小队长 → 部门长 → 总指挥流程清晰,但传话慢。微内核结构
微内核是重点。
PPT 说微内核思想是:内核只保留最基本功能,其他服务放到用户态进程中,用客户/服务器模式通过消息传递通信。微内核本身只是 OS 最基本部分,不是完整 OS。
末日版:
微内核 = 小指挥部只管最核心的通信、调度、低级内存、中断医疗、仓库、文件、设备等服务都变成独立部门优点:
可扩展性好可靠性高可移植性好适合分布式系统缺点:
消息传递和上下文切换多,效率较低你之前做过那道”微内核 vs 宏内核”的题,就记:
微内核:安全、可靠、易扩展缺点:性能较低第一章最容易考的选择/填空点
你优先背这些:
1. OS 位于硬件之上,其他软件之下。
2. OS 的目标: 有效性、方便性、可扩充性、开放性。
3. OS 的作用: 用户接口、资源管理者、扩充机器/虚拟机。
4. OS 四大基本特征: 并发、共享、虚拟、异步。 其中并发最重要。
5. 并发 ≠ 并行: 并发是一段时间内同时存在; 并行是同一时刻真正同时执行。
6. 分时系统特征: 多路性、独立性、及时性、交互性。
7. 实时系统重点: 实时性、可靠性。
8. 原语: 原子操作,不可分割,核心态执行。
9. 用户态: 只能执行非特权指令。
10. 核心态: 能执行全部指令,包括特权指令。
11. 用户态到核心态: 唯一途径是中断。
12. 系统调用: 用户程序请求 OS 服务的接口。
13. OS 五大功能: 处理机、存储器、设备、文件、用户接口。
14. 微内核: 机制与策略分离,小内核 + 用户态服务器。主动回忆小测
你现在合上笔记,试着回答这 6 个:
1. 操作系统在计算机系统中的位置是什么?2. 操作系统的四个基本特征是什么?哪个最重要?3. 分时系统和实时系统最大的区别是什么?4. 用户态和核心态的区别是什么?5. 系统调用是干什么的?6. 微内核的优点和缺点分别是什么?答不上来的地方,就是你下一轮要复习的地方。
末日基地总图
操作系统 = 末日基地总管家
目标:资源别浪费、用户好使用、系统好扩展、能开放协作
发展:人工操作 → 脱机 I/O → 单道批处理 → 多道批处理 → 分时 → 实时
特征:并发、共享、虚拟、异步
运行环境:内核、原语、用户态/核心态、中断、系统调用
主要功能:管 CPU、管内存、管设备、管文件、给用户入口
结构:无结构 → 模块化 → 分层 → 微内核 → 外核第 1 章不是让你死背历史,而是让你明白:操作系统为什么诞生,以及它如何把混乱的硬件资源变成用户能安全、方便、高效使用的”末日基地管理系统”。
好,我们继续用你那套”认知增强法”来学第 2 章:进程的描述与控制。这一章 PPT 的大纲包括:前趋图和程序执行、进程的描述、进程控制、进程通信、线程的概念、线程的实现。
第 2 章一句话总览
第 1 章讲:操作系统是末日基地总管家。第 2 章讲:基地里每一个正在执行的任务,怎么被描述、排队、暂停、唤醒、通信、拆成线程。核心词就是:
程序 → 进程 → PCB → 状态转换 → 进程控制 → 进程通信 → 线程末日场景版:
程序 = 任务说明书进程 = 正在执行任务的小队PCB = 小队档案卡进程状态 = 小队当前在干嘛进程控制 = 管理员让小队创建、暂停、继续、撤销进程通信 = 小队之间传消息/共享物资线程 = 小队里的具体队员2.1 前趋图和程序执行
1. 前趋图是什么?
前趋图就是:
描述任务先后关系的图专业说法:
前趋图 = 有向无循环图 DAG结点 = 一条语句 / 一个程序段 / 一个进程有向边 Pi → Pj = Pi 必须先完成,Pj 才能开始末日版:
先侦查 → 再制定路线 → 再搬物资 → 再撤离不能反过来。你不能还没侦查就搬物资。
记忆口诀:
箭头指向谁,谁就后执行。2. 顺序执行
顺序执行就是:
一个任务做完,再做下一个比如:
输入 I → 计算 C → 输出 P它有三个特征:
| 特征 | 人话 | 末日场景 |
|---|---|---|
| 顺序性 | 严格按顺序执行 | 先开门,再进屋,再拿物资 |
| 封闭性 | 程序独占资源,不被别人影响 | 一个小队独占仓库 |
| 可再现性 | 条件相同,结果相同 | 每次按同样路线拿物资,结果一样 |
重点:
顺序执行好理解、好检查、好改错,但效率低。3. 并发执行
并发执行就是:
多个程序在执行时间上重叠末日版:
A 小队搜药品时,B 小队修发电机,C 小队烧水做饭。这样基地效率高,但问题也来了。
并发执行有三个特征:
| 特征 | 人话 | 问题 |
|---|---|---|
| 间断性 / 异步性 | 谁先谁后不确定 | 执行顺序不可预测 |
| 失去封闭性 | 资源被共享 | 会互相影响 |
| 不可再现性 | 同样条件可能不同结果 | 容易出错 |
举个特别好懂的例子:
A 小队:库存 N = N + 1B 小队:打印库存 N,然后把 N 清零如果 A 先加,B 后打印,结果可能是 n+1。 如果 B 先打印,A 后加,结果可能是 n。 如果 A 插在 B 打印和清零中间,结果又不一样。
所以并发最大的问题是:
效率提高了,但结果可能乱。因此后面要引入:
进程、同步、互斥、通信4. Bernstein 条件怎么记?
它判断两个语句能不能并发执行。
你只记一句:
只要读写、写读、写写之间没有冲突,就可以并发。专业形式:
R(S1) ∩ W(S2) = 空W(S1) ∩ R(S2) = 空W(S1) ∩ W(S2) = 空其中:
R = 读集W = 写集末日版:
两个小队如果不抢同一个物资、不改同一本账本,就能同时行动。2.2 进程的描述
1. 什么是进程?
最重要定义:
进程 = 程序的一次执行过程更完整:
进程实体 = 程序段 + 数据段 + PCB进程 = 进程实体的运行过程末日版:
程序 = "搜药品任务说明书"数据 = "目标地点、药品清单、路线图"PCB = "小队档案卡"进程 = "这支小队真的出发去搜药品"2. PCB 是什么?
PCB 是本章超级核心。
PCB = Process Control Block,进程控制块它记录操作系统管理进程需要的全部信息。
最关键一句:
PCB 是进程存在的唯一标志。末日版:
PCB = 小队档案卡档案卡上写着:
小队编号当前状态优先级下一步去哪里占用了哪些资源等待什么事件CPU 上次执行到哪里没有这张卡,基地管理员就不知道这个小队存在。
3. 程序和进程的区别
这个特别爱考选择题。
| 对比 | 程序 | 进程 |
|---|---|---|
| 本质 | 静态指令集合 | 动态执行过程 |
| 生命周期 | 可长期存在 | 有创建、运行、暂停、终止 |
| 组成 | 只有代码 | 程序段 + 数据段 + PCB |
| 关系 | 一个程序可对应多个进程 | 一个进程是程序的一次执行 |
末日版:
程序 = 纸上的作战计划进程 = 真正出发执行计划的小队口诀:
程序是死的,进程是活的。程序在硬盘,进程在运行。4. 进程的特征
记四个:
动态性、并发性、独立性、异步性其中:
动态性是进程最基本特征。末日版:
动态性:小队有出生、行动、等待、死亡并发性:多个小队同时存在独立性:每个小队能独立执行任务异步性:每个小队推进速度不可预测2.2 进程状态转换
1. 五种状态
| 状态 | 人话 | 末日场景 |
|---|---|---|
| 创建 New | 正在创建进程 | 正在组建小队 |
| 就绪 Ready | 万事俱备,只差 CPU | 小队准备好了,只等出发命令 |
| 运行 Running | 正在用 CPU | 小队正在执行任务 |
| 阻塞 Waiting/Blocked | 等某事件,暂时不能运行 | 等水泵修好、等物资到达 |
| 终止 Terminated | 执行结束 | 小队任务结束,解散归还物资 |
2. 三态转换最重要
最常考的是:
就绪 → 运行:进程调度运行 → 就绪:时间片完 / 被抢占运行 → 阻塞:请求 I/O / 等事件阻塞 → 就绪:事件完成 / 被唤醒注意:
阻塞 → 运行 不可能直接发生因为阻塞事件完成后,它只是进入就绪队列,还要等 CPU 调度。
末日版:
等水的小队,水来了以后不能立刻出发。它要先回到待命区,等指挥官安排。考试口诀:
阻塞不能直达运行,必须先到就绪。3. 挂起状态
挂起就是:
把进程暂停起来,通常从内存移到外存。末日版:
小队暂时撤到地下避难所,不参加当前调度。常见原因:
用户需要暂停父进程需要检查子进程操作系统需要检查资源内存不够,需要对换系统负荷太重挂起后有两个重要状态:
活动就绪 → 静止就绪活动阻塞 → 静止阻塞你可以这样记:
活动 = 在内存,可参与调度静止 = 被挂起,不参与调度2.3 进程控制
进程控制就是:
操作系统对进程进行创建、撤销、阻塞、唤醒、挂起、激活。这些动作一般由:
内核 + 原语完成。
原语特点:
原子操作,不可中断。末日版:
管理员给小队改状态时,不能改一半被打断。否则档案会乱。1. 创建进程 Create
创建进程大概流程:
申请空白 PCB为新进程分配资源初始化 PCB插入就绪队列返回进程标识符末日版:
新建小队:拿一张空档案卡分配装备和成员填写状态、编号、优先级放入待命队列2. 终止进程 Kill / Destroy
进程终止原因:
正常结束异常结束外界干预终止时要:
找到 PCB若正在运行则停止终止子进程归还资源从队列中撤销 PCB末日版:
小队解散时,要收回武器、食物、车辆,还要处理它下面的小分队。3. 阻塞与唤醒 Block / Wakeup
重点:
阻塞是主动的。唤醒是被动的。也就是说:
进程发现自己要等 I/O 或等资源,于是自己调用 Block。但它不能自己 Wakeup,必须由其他进程或系统在事件完成后唤醒。末日版:
小队发现桥断了,主动停下等待。等工程队修好桥后,工程队通知它可以继续。口诀:
阻塞自己来,唤醒别人给。4. 挂起与激活 Suspend / Active
Suspend = 挂起Active = 激活挂起后进程进入静止状态。 激活后从静止状态回到活动状态。
末日版:
Suspend:小队被转移到地下避难所,暂不参加任务。Active:重新召回地面待命。口诀:
Suspend 变静止,Active 变活动。5. UNIX 系统调用:fork / exec / exit / wait
这部分很容易考代码输出。
fork()
fork 调用一次,返回两次。返回值:
父进程中:返回子进程 pid,大于 0子进程中:返回 0失败:返回 -1末日版:
一支小队复制出一支新小队。两支小队从 fork 后面的地方继续行动。记忆:
fork 之后,父子都继续往下跑。exec()
exec = 换程序子进程本来是父进程的复制品,exec 可以让它换成新的代码。
末日版:
复制出来的小队原本和父小队任务一样,exec 后换成"搜药品"或"修发电机"的新任务。exit()
exit = 进程退出但在 UNIX/Linux 中,exit 后可能先变成:
僵尸进程 zombie末日版:
小队任务结束了,但档案还没被总管回收。wait()
wait = 父进程等待子进程结束并回收它的信息末日版:
父小队等子小队回来交报告,然后把它的档案归档。2.4 进程通信
进程通信就是:
进程之间交换信息。末日版:
小队之间传情报、共享地图、交接物资。1. 低级通信 vs 高级通信
| 类型 | 特点 |
|---|---|
| 低级通信 | 信息量少,不透明,比如信号量 |
| 高级通信 | 信息量大,效率高,细节对用户透明 |
2. 共享存储器
多个进程共同访问一块内存。末日版:
几个小队共用一块公告板。大家都能往上写,也能读。优点:
速度快问题:
要处理同步和互斥,不然会乱写3. 消息传递
核心原语:
send(receiver, message)receive(sender, message)末日版:
A 小队给 B 小队发无线电消息。B 小队接收消息。有两种:
直接通信:点名发给某个进程间接通信:发到信箱,别人从信箱取4. 管道通信 Pipe
管道是:
连接读进程和写进程的共享文件特点:
FIFO 先进先出通常单向传送写端 fd[1]读端 fd[0]末日版:
一条单向传送带。左边小队放物资,右边小队按顺序拿。管道必须处理:
确认对方存在互斥访问同步:满了不能再写,空了不能再读5. Socket / RPC
Socket:
网络中进程双向通信的端点末日版:
两个基地之间的无线电频道。RPC:
远程过程调用末日版:
你在 A 基地喊一句:"B 基地医疗站,帮我查库存!"看起来像本地调用,其实跨基地通信。2.5 线程的概念
1. 为什么引入线程?
进程有两个属性:
资源拥有者独立调度单位问题是:
创建、撤销、切换进程开销大。所以引入线程。
一句话:
线程是更轻量的执行单位。末日版:
进程 = 一个小队线程 = 小队里的队员小队拥有车、枪、药品这些资源。 队员负责具体行动。
2. 进程和线程的核心区别
| 对比 | 进程 | 线程 |
|---|---|---|
| 资源 | 拥有资源 | 基本不拥有资源 |
| 调度 | 传统上是调度单位 | 引入线程后,线程是调度单位 |
| 地址空间 | 不同进程一般独立 | 同一进程线程共享地址空间 |
| 开销 | 创建/切换开销大 | 创建/切换开销小 |
| 独立性 | 强 | 同进程线程间弱 |
| 通信 | 较复杂 | 同进程线程通信方便 |
最重要一句:
引入线程后,进程是资源分配的基本单位,线程是处理机调度的基本单位。末日口诀:
进程管资源,线程干活。3. 线程状态
线程也有三种基本状态:
执行就绪阻塞但注意:
挂起是进程级概念。一个进程被挂起,它里面所有线程都被挂起。末日版:
整个小队被撤到地下避难所,里面所有队员都不能出任务。4. TCB
TCB = Thread Control Block相当于线程档案卡。
里面有:
线程标识符寄存器状态堆栈运行状态优先级线程专有存储器信号屏蔽末日版:
TCB = 队员档案卡记录这个队员当前在干嘛、工具在哪、下一步做什么。2.6 线程的实现
主要有三类:
内核支持线程 KST用户级线程 ULT组合方式1. 内核支持线程 KST
线程由操作系统内核直接管理。优点:
支持多处理器一个线程阻塞,其他线程还能运行调度由内核统一管理缺点:
切换要进内核,开销较大末日版:
每个队员都登记在基地总指挥系统里。指挥系统知道每个队员状态。管理精确,但登记和调度成本高。2. 用户级线程 ULT
线程在用户空间实现,内核不知道这些线程。优点:
同一进程内线程切换快不需要进入内核调度算法可以由用户程序自己定缺点:
一个线程系统调用阻塞,整个进程可能都阻塞不能充分利用多处理器末日版:
小队内部自己安排队员行动,总基地只知道"这个小队",不知道队员细节。内部调度很快,但如果小队长卡住,整个小队都可能停。3. 组合方式
组合方式就是:
用户级线程 + 内核支持线程常见模型:
多对一一对一多对多记忆:
多对一:多个用户线程对应一个内核线程,容易整体阻塞一对一:一个用户线程对应一个内核线程,开销大多对多:折中,更灵活第二章最容易考的点
你优先背这些:
1. 进程实体 = 程序段 + 数据段 + PCB。
2. PCB 是进程存在的唯一标志。
3. 程序是静态的,进程是动态的。
4. 进程最基本特征是动态性。
5. 进程三态转换:就绪 → 运行:调度运行 → 就绪:时间片完运行 → 阻塞:等待事件 / I/O 请求阻塞 → 就绪:事件完成阻塞 → 运行:不可能
6. 阻塞是主动的,唤醒是被动的。
7. Suspend 是挂起,Active 是激活。
8. fork 调用一次,返回两次。父进程返回子进程 pid,子进程返回 0。
9. exec 是用新程序覆盖当前进程内容。
10. wait 用来等待并回收子进程。
11. 进程通信方式:共享存储器、消息传递、管道、客户机-服务器。
12. 管道通信 FIFO,通常单向。
13. 进程是资源分配单位,线程是调度单位。
14. 同一进程内线程共享进程资源。
15. 用户级线程切换快,但一个线程阻塞可能导致整个进程阻塞。
16. 内核级线程更强,但切换开销较大。一张末日基地总图
程序 = 任务说明书
进程 = 正在执行任务的小队 = 程序段 + 数据段 + PCB
PCB = 小队档案卡 = 进程存在的唯一标志
状态:创建 → 就绪 → 运行 → 终止运行 ↔ 就绪运行 → 阻塞 → 就绪活动 ↔ 静止(挂起/激活)
进程控制:Create 创建Kill 终止Block 阻塞Wakeup 唤醒Suspend 挂起Active 激活
进程通信:共享公告板 = 共享存储器无线电发消息 = 消息传递单向传送带 = 管道跨基地频道 = Socket / RPC
线程:进程 = 小队线程 = 队员进程管资源,线程干活主动回忆小测
合上这份讲解,试着回答:
1. PCB 为什么说是进程存在的唯一标志?2. 程序和进程有什么区别?3. 运行态到阻塞态是什么原因?4. 阻塞态能不能直接到运行态?5. fork 为什么叫"调用一次,返回两次"?6. 进程和线程最核心区别是什么?7. 用户级线程和内核级线程各有什么优缺点?你只要能答出这 7 个,第二章最核心的骨架就已经立起来了。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!





