计算机 408 · 操作系统

第 1 章「计算机系统概述」从零学习笔记

本章总问题:程序怎样安全、方便、高效地使用计算机硬件?

快速导航

学习进度

  • 第 1 遍:读懂第 1~5 节,能讲清“用户程序如何进入内核”。
  • 第 2 遍:默写四组比较表,能区分相近概念。
  • 第 3 遍:完成第 13 节自测,并回看错题。
  • 复习后:不看笔记复述第 14 节记忆卡片。

0. 先建立全章地图

把计算机想成一家公司:

  • 硬件是仓库、机器和运输设备。
  • 应用程序是来办事的客户。
  • 操作系统是总管,负责分配资源、制定规则、提供服务。
  • 系统调用是客户向总管提交申请的标准窗口。
  • 内核是总管真正执行核心管理工作的区域。

因此,操作系统不是“一个普通软件”,而是夹在用户和硬件之间的管理层:

用户
  ↓  命令、图形界面、应用程序
应用程序
  ↓  系统调用
操作系统内核
  ↓  驱动程序、控制器、总线
硬件:CPU / 内存 / 磁盘 / 键盘 / 网卡等

本章可以分成六条主线:

  1. 操作系统是什么、为什么需要它。
  2. 并发、共享、虚拟、异步四个基本特征。
  3. 操作系统从手工操作发展到分时、实时、网络和分布式系统。
  4. CPU 在用户态和内核态之间如何切换,以及中断、异常、系统调用的关系。
  5. 操作系统如何组织成分层、模块、宏内核、微内核或外核。
  6. 机器开机如何找到并启动操作系统,以及虚拟机怎样运行另一个操作系统。

1. 操作系统到底是什么

1.1 一句话定义

操作系统是管理计算机硬件和软件资源、为用户和应用程序提供服务的系统软件

这里有三个关键词:

关键词一:管理资源

计算机资源不是无限的。多个程序可能同时想要 CPU、内存、磁盘和打印机,操作系统必须:

  • 分配资源:谁先用、用多少、用多久。
  • 回收资源:使用结束后归还。
  • 保护资源:防止一个程序破坏另一个程序或系统。
  • 提高利用率:某个程序等待 I/O 时,让 CPU 去运行别的程序。

关键词二:提供服务

应用程序不需要自己控制磁盘磁头、网卡寄存器和内存页表。它只需要调用操作系统提供的服务,例如:

  • 创建、撤销和切换进程。
  • 申请和释放内存。
  • 打开、读取、写入和关闭文件。
  • 访问键盘、显示器、磁盘和网络设备。

关键词三:连接用户和硬件

用户希望使用“打开文件”“打印文档”这样的抽象功能,而硬件只能执行机器指令、读写寄存器和传输数据。操作系统把硬件细节封装起来,提供容易使用的接口。

这就是教材所说的操作系统具有两种身份:

身份 直观理解 典型体现
资源管理者 统一安排有限资源 处理器、存储器、文件、设备管理
扩充机器/接口 把难用的硬件包装成容易使用的服务 命令接口、图形接口、程序接口、系统调用

1.2 操作系统管理什么

教材把主要管理内容概括为四类:

  1. 处理器管理:进程创建、撤销、切换、同步、通信、调度。
  2. 存储器管理:内存分配与回收、地址映射、内存保护、虚拟存储。
  3. 文件管理:文件和目录的组织、访问、保护和磁盘空间管理。
  4. 设备管理:设备分配与回收、驱动程序、中断处理、I/O 管理。

记忆方法:进程、内存、文件、设备,后面第 2~5 章会分别展开。

1.3 操作系统不等于应用软件

浏览器、播放器、办公软件是应用程序;它们使用操作系统提供的服务。

编译器也通常不是操作系统本身。编译器可以调用系统调用,但“把源代码翻译成机器代码”不是操作系统的基本管理职责。


2. 四个基本特征:并发、共享、虚拟、异步

这四个词是本章最容易混淆、也最常考的内容。

2.1 并发:同一时间段内推进多个任务

并发不等于真正的同时执行。

在单 CPU 上,CPU 一次只能执行一个程序的指令,但操作系统可以让程序 A 运行一小段,再切换到程序 B,再切回来。只要从较长时间段看,多个任务都在推进,就叫并发。

单 CPU: A A A | B B | A A | B B B | A ...
        这是交替执行,但属于并发

2.2 并行:同一时刻真正执行多个任务

并行要求有多个处理单元,例如多核 CPU 或多处理器系统。

双核 CPU: 核 1 执行 A
           核 2 执行 B
           同一时刻真正执行两个任务

2.3 并发与并行的关系

概念 是否要求多 CPU 是否强调同一时刻真正执行
并发 不要求 不要求
并行 通常要求 要求

因此:并行一定是并发的一种更强形式;并发不一定是并行。

2.4 共享:多个程序使用同一资源

共享按访问方式可分为:

互斥共享

一段时间内只能允许一个进程使用。

例子:普通打印机。如果两个进程同时把内容发给打印机,输出会混在一起,所以必须排队。

同时共享

多个进程可以在宏观上同时访问,或通过交替访问实现共享。

例子:磁盘、内存中的只读数据。多个进程可以访问,但操作系统仍然要处理权限和一致性问题。

注意:“共享”不等于“所有进程在物理上同一时刻操作”。很多共享是通过快速切换实现的。

2.5 虚拟:把一个物理资源变成多个逻辑资源

虚拟技术让用户看到的资源比实际物理资源更灵活:

  • 一个 CPU 被分时复用,看起来像多个 CPU。
  • 一台打印机通过 SPOOLing 看起来像多个逻辑打印设备。
  • 一块物理内存通过虚拟存储形成更大的逻辑地址空间。
  • 一台物理计算机通过虚拟机运行多个客户操作系统。

核心不是“凭空制造资源”,而是用时间复用、空间复用或抽象映射来改变使用方式

2.6 异步:运行速度和发生时间不可预知

在多道程序环境中,程序什么时候被打断、什么时候重新获得 CPU,取决于调度、中断和 I/O 完成时间。即使同一个程序多次运行,切换时刻也可能不同。

异步会带来竞争和同步问题,所以后续进程章节要学习锁、信号量和同步机制。

2.7 四个特征的一张关系表

特征 解决或体现的问题 典型例子
并发 多个程序怎样交替推进 单 CPU 分时运行多个进程
共享 多个程序怎样使用同一资源 多个进程访问磁盘
虚拟 物理资源怎样提供更多逻辑使用方式 虚拟内存、虚拟机
异步 程序执行时刻为什么不确定 中断、调度、I/O 完成

[!TIP]
判断口诀:问“多个任务一起推进”看并发;问“同一时刻真的执行”看并行;问“一个资源给多个逻辑对象用”看虚拟;问“时刻不可预测”看异步。


3. 操作系统为什么会发展

发展历史不是死记年份,而是理解“上一个阶段的什么问题没有解决”。

3.1 手工操作阶段

程序员手工装入程序、启动程序、处理输出。

主要问题:

  • 用户独占机器,资源利用率低。
  • CPU 经常等待人工装入或 I/O。
  • 程序之间没有自动切换。

3.2 脱机 I/O

用外围机先把程序或数据读入磁带,再由主机批量处理;输出也可先写磁带,再由外围设备输出。

目的:让主机不必等待慢速外设,减少 CPU 空闲时间。

3.3 单道批处理系统

把多个作业自动排队、依次执行。作业运行过程中,用户不能与程序交互。

优点:自动化程度提高。
缺点:当当前作业等待 I/O 时,CPU 仍可能空闲;响应时间差。

3.4 多道批处理系统

让多个程序同时驻留内存。当一个程序等待 I/O 时,调度另一个程序使用 CPU。

程序 A:CPU CPU CPU | 等待 I/O       | CPU ...
程序 B:             CPU CPU CPU ...
CPU:   不因 A 等待 I/O 而闲置

主要收益:提高 CPU 和各种资源的利用率、提高吞吐量。

代价:需要解决内存保护、处理器调度、进程同步、死锁和 I/O 管理等问题。

3.5 分时操作系统

分时系统把 CPU 时间切成较短的时间片,让多个用户或任务轮流获得 CPU。

A | B | C | A | B | C | ...

用户感觉自己一直在使用计算机,因此强调:

  • 交互性
  • 响应时间
  • 公平地分享 CPU

分时系统和多道程序系统并不矛盾:分时是多道程序思想在交互环境中的应用。

3.6 实时操作系统

实时系统关心的不是“平均速度最快”,而是“能否在规定期限内完成”。

  • 硬实时:超过截止时间可能造成严重后果,必须满足期限。
  • 软实时:偶尔超过期限可以接受,但要尽量及时。

典型场景:飞机控制、工业控制、医疗设备、交易系统等。

3.7 网络与分布式操作系统

网络操作系统

重点是计算机之间通信和资源共享。每台计算机通常仍有自己的操作系统,用户可能需要知道资源在哪台机器上。

分布式操作系统

由多台计算机组成,但尽量让用户感觉是在使用一个统一系统。

重点特征:

  • 资源共享
  • 并行性
  • 透明性
  • 容错性

透明性就是用户不必关心资源具体位于哪台计算机。

3.8 微型计算机操作系统

按用户数和任务数常见分类:

  • 单用户单任务
  • 单用户多任务
  • 多用户多任务

现代 Windows、Linux 等通常支持多任务;服务器系统还支持多用户同时使用。

3.9 发展史记忆线

人工操作
  → 脱机 I/O:减少主机等待慢设备
  → 单道批处理:自动连续处理作业
  → 多道批处理:一个等待 I/O,另一个使用 CPU
  → 分时:时间片轮转,增强交互
  → 实时:在截止时间前完成
  → 网络/分布式:多台计算机通信、共享、协同

4. 操作系统运行环境:用户态、内核态和保护

4.1 为什么不能让应用程序随便控制硬件

如果任意程序都能:

  • 修改页表;
  • 关闭中断;
  • 直接访问别的程序的内存;
  • 擅自控制磁盘或设备;

那么一个错误程序就可能让整个系统崩溃。因此 CPU 至少提供两种运行状态:

状态 运行的代码 权限
用户态 普通应用程序 只能执行非特权指令,不能直接访问受保护资源
内核态 操作系统内核、驱动和中断处理程序 可以执行特权指令,管理系统资源

4.2 特权指令与非特权指令

特权指令

会影响系统整体安全和运行状态,例如:

  • 修改页表、地址映射和内存保护信息。
  • 设置时钟和中断控制。
  • 切换 CPU 状态。
  • 直接控制设备。

只能在内核态执行。

非特权指令

普通算术、逻辑、数据移动和程序控制指令。用户态可以执行。

如果用户态执行特权指令,CPU 会产生异常,操作系统接管处理。

4.3 用户态如何获得操作系统服务

用户程序不能直接进入内核内部,而要通过系统调用:

用户程序准备参数
      ↓
执行系统调用指令 / Trap
      ↓
CPU 保存返回地址和状态,用户态 → 内核态
      ↓
根据系统调用号找到内核服务例程
      ↓
内核完成文件、进程、内存或设备操作
      ↓
恢复现场,内核态 → 用户态
      ↓
用户程序得到返回值

4.4 系统调用和库函数不要混淆

例如 C 语言中的 printf()scanf() 是库函数或用户层接口;它们可能进一步调用 write()read() 等系统调用。

区别:

  • 库函数是给程序员使用的更方便的封装,可能完全在用户态完成。
  • 系统调用是请求内核服务的正式入口,必须进入内核态执行相应服务。
printf()
  ↓ 可能调用
write()
  ↓
Trap / 系统调用指令
  ↓
内核中的写文件或设备服务

4.5 中断、异常、Trap

三者都可能导致 CPU 暂停当前程序、转去执行处理程序,但来源不同。

名称 来源 例子 是否通常可屏蔽
外中断 CPU 外部硬件事件 时钟、键盘、磁盘 I/O 完成 可屏蔽中断通常可以
异常 CPU 执行当前指令时发现内部问题 除零、非法指令、缺页 通常不可简单屏蔽
Trap 程序主动执行特定指令 系统调用、调试陷阱 由程序主动触发

异常还常按处理后果理解:

  • Fault:通常可以修复后重新执行当前指令,例如缺页。
  • Abort:严重错误,通常不能恢复当前程序。
  • Trap:执行完处理程序后可返回下一条指令,系统调用常属于这一类。

4.6 中断处理程序做什么

典型过程:

  1. CPU 接收到中断或异常。
  2. 保存 PC、PSW 等返回所需现场。
  3. 切换到内核态。
  4. 根据中断号找到对应处理程序。
  5. 保存或恢复必要的通用寄存器。
  6. 判断中断原因并处理设备或异常。
  7. 必要时唤醒等待进程、更新调度信息。
  8. 恢复现场并返回原程序或调度到另一个程序。

中断处理程序是操作系统自动响应事件的机制;系统调用是用户程序主动请求服务的机制。二者都可能进入内核,但触发来源不同。

[!WARNING]
高频陷阱:系统调用不是普通函数调用。普通函数可以在用户态完成;系统调用需要通过 Trap 进入内核态。外部中断则来自时钟、键盘、磁盘等硬件事件。


5. 系统调用的四个阶段

教材把系统调用执行过程概括为:

阶段 1:传递系统调用参数

用户程序把系统调用号和参数放入寄存器、栈或内存中的规定位置。

阶段 2:执行 Trap 指令并切换到内核态

Trap 让 CPU 按预先设置好的入口进入内核。硬件会保存返回所需信息,防止用户程序伪造内核入口。

阶段 3:定位并执行服务例程

内核根据系统调用号,在系统调用表中找到对应服务程序,完成具体工作。

阶段 4:恢复现场并返回用户态

服务结束后,内核把返回值放到规定位置,恢复寄存器、PC 和 PSW,回到用户程序继续运行。

什么时候一定会使用系统调用

当程序需要操作受保护资源时,例如:

  • 创建或撤销进程。
  • 打开、读取和写入文件。
  • 申请或释放内存。
  • 访问 I/O 设备。
  • 进行进程通信。

只做普通加法、字符串处理或数学计算,未必需要系统调用。


6. 操作系统结构:为什么要分层、模块化或微内核

操作系统功能很多。如果所有代码混在一起,修改一个功能很可能破坏其他功能,因此需要结构化设计。

6.1 分层结构

从底层硬件逐步向上构造,每层只使用下一层提供的接口。

上层:用户接口
      文件 / 进程 / 设备等服务
      内存和处理器管理
底层:硬件相关功能

优点:

  • 接口清晰。
  • 容易调试和验证。
  • 一层修改不必影响所有其他层。

缺点:

  • 很难找到完全合理的层次边界。
  • 某些功能需要跨层,可能增加开销。
  • 层次过多会降低灵活性。

6.2 模块化结构

把操作系统分成相对独立的模块,例如进程管理、内存管理、文件管理和设备管理。模块之间通过接口协作,模块可以按需装入或替换。

优点:扩展、维护和复用方便。
难点:模块依赖、接口设计和并发访问必须管理好。

6.3 宏内核

宏内核把大量操作系统服务放在内核态,例如文件系统、设备驱动、网络协议和进程管理。

优点:模块之间通信直接,性能通常较好。
缺点:内核庞大;一个内核服务出错可能影响整个系统;调试和维护难。

6.4 微内核

微内核只把最基本的机制放进内核,例如:

  • 进程/线程管理的基本机制。
  • 地址空间和内存保护的基本机制。
  • 进程间通信。
  • 中断和陷入处理。

文件系统、网络、设备驱动等更多服务运行在用户态,通过消息传递与微内核通信。

优点:

  • 内核小,安全性和可靠性好。
  • 服务隔离,一个服务崩溃不一定拖垮整个系统。
  • 容易扩展和移植。

代价:

  • 用户态与内核态切换、消息传递较多。
  • 额外通信开销可能降低性能。

6.5 外核

外核尽量减少对硬件资源的抽象,主要负责分配和保护资源,把更多管理策略交给应用或库操作系统。

理解重点:

  • 微内核强调“把服务移出内核”。
  • 外核强调“内核只分配和保护资源,策略交给应用”。

6.6 结构比较表

结构 内核中放什么 主要优点 主要代价
分层 按层组织功能 清晰、易验证 层次边界和跨层开销
模块化 相对独立的功能模块 易扩展、易维护 接口和依赖复杂
宏内核 大量服务 性能好、通信直接 内核大、故障影响面大
微内核 最基本机制 隔离好、可靠、可移植 IPC 和切换开销
外核 资源分配与保护 灵活、高效 应用承担更多管理责任

[!TIP]
结构题答题模板:先说“核心功能放在哪里”,再说“通信/切换路径”,最后说“性能、可靠性、扩展性”的取舍。不要只写“微内核更好”或“宏内核更快”。


7. 操作系统引导:开机后系统如何启动

开机时,内存中还没有完整操作系统,CPU 必须先找到一小段启动代码,再逐步加载内核。

7.1 典型启动顺序

CPU 加电/复位
  ↓
执行 ROM 中的 BIOS/固件
  ↓
POST:硬件自检
  ↓
选择启动设备
  ↓
读取 MBR(主引导记录)
  ↓
根据分区表定位活动分区
  ↓
读取活动分区的 PBR/分区引导记录
  ↓
启动管理器(如 GRUB 或 Windows Boot Manager)
  ↓
加载操作系统内核到内存
  ↓
内核初始化内存、进程、设备和中断
  ↓
启动首个用户态进程与用户环境

7.2 关键名词

  • BIOS:固化在主板 ROM 中的基本输入输出程序,负责早期硬件初始化和寻找启动设备。
  • POST:开机自检,检查 CPU、内存和外设等是否基本正常。
  • MBR:磁盘开头的主引导记录,包含引导代码和分区表。
  • 活动分区:被标记为可启动的分区。
  • PBR:活动分区自己的引导记录。
  • 启动管理器:可以选择系统、读取内核并把控制权交给内核。

易错点:BIOS 不等于操作系统;BIOS 只是启动早期程序。操作系统内核加载后,才开始进行完整的进程、内存和设备初始化。

[!NOTE]
看到启动题时,先写顺序,再写每一步作用:BIOS 找入口,MBR 找分区,启动管理器找内核,内核启动系统


8. 虚拟机:一台机器运行多个操作系统

8.1 基本思想

虚拟机技术通过软件把一台物理计算机抽象成多个相互隔离的虚拟计算环境。每个虚拟机都可以拥有虚拟 CPU、虚拟内存、虚拟磁盘和虚拟网卡。

负责创建和管理虚拟机的软件叫 VMM(Virtual Machine Monitor,虚拟机监控器),也叫虚拟机管理程序。

8.2 Type I 和 Type II

Type I:裸机型
客户操作系统 A   客户操作系统 B
        ↓               ↓
       Type I VMM
            ↓
         物理硬件

VMM 直接运行在硬件上,自己承担资源分配、隔离和调度。常见于服务器和数据中心。

Type II:寄居型
客户操作系统 A   客户操作系统 B
        ↓               ↓
       Type II VMM
            ↓
       宿主操作系统
            ↓
         物理硬件

VMM 是宿主操作系统上的一个应用程序,安装方便,常见于个人电脑上的 VMware Workstation、VirtualBox 等。

8.3 虚拟机为什么安全

客户操作系统看到的是虚拟硬件。它的特权操作会被 VMM 截获、检查并模拟,不能直接破坏其他虚拟机或宿主系统。

虚拟机并不是“普通应用程序里放了一套文件”这么简单,而是需要提供隔离的 CPU、内存、设备和特权执行环境。

[!WARNING]
位置判断:Type I 是“硬件之上、客户 OS 之下”;Type II 是“宿主 OS 之上、客户 OS 之下”。只要先画层次图,通常不会混淆。


9. 本章最容易混淆的 12 组概念

9.1 并发 vs 并行

  • 并发:同一时间段内交替推进。
  • 并行:同一时刻真正同时执行。

9.2 共享 vs 虚拟

  • 共享:多个进程使用同一个资源。
  • 虚拟:把一个物理资源抽象成多个逻辑资源。

9.3 异步 vs 并发

  • 并发描述多个任务一起推进。
  • 异步描述推进时刻不可预知、没有固定同步节拍。

9.4 用户态 vs 内核态

  • 用户态:安全限制多,运行普通应用。
  • 内核态:权限高,运行内核、驱动和中断处理。

9.5 中断 vs 异常

  • 中断:CPU 外部硬件事件。
  • 异常:执行当前指令时,CPU 内部发现问题。

9.6 Trap vs 外中断

  • Trap:程序主动执行指令触发。
  • 外中断:外设或时钟主动通知 CPU。

9.7 库函数 vs 系统调用

  • 库函数:方便程序员使用的函数,可能不进内核。
  • 系统调用:正式请求内核服务的入口,必须进内核。

9.8 批处理 vs 分时

  • 批处理:自动成批执行,交互性弱。
  • 分时:时间片轮转,强调交互和响应。

9.9 多道程序 vs 并行

  • 多道程序在单 CPU 上也能运行,主要通过交替和 I/O 重叠提高利用率。
  • 并行需要多个处理单元同时执行。

9.10 宏内核 vs 微内核

  • 宏内核:更多服务留在内核,性能好但内核大。
  • 微内核:内核只留基本机制,隔离好但通信开销大。

9.11 BIOS vs 操作系统

  • BIOS:启动早期的固件程序。
  • 操作系统:内核加载后持续管理系统资源。

9.12 Type I vs Type II VMM

  • Type I:VMM 直接在硬件上。
  • Type II:VMM 在宿主操作系统上。

10. 用一个完整例子串起本章

假设你双击文本编辑器并打开一个文件:

  1. 图形界面接收鼠标事件,这是用户接口。
  2. 文本编辑器调用库函数,请求打开文件。
  3. 库函数进一步执行系统调用,触发 Trap。
  4. CPU 从用户态切换到内核态。
  5. 文件管理模块查找目录和文件信息。
  6. 设备管理模块调用磁盘驱动程序。
  7. 磁盘完成读取后通过外中断通知 CPU。
  8. 内核处理中断,完成数据复制并唤醒等待进程。
  9. 系统调用恢复现场,返回用户态。
  10. 文本编辑器把内容显示在屏幕上。

这个过程同时体现了:

  • 操作系统是用户和硬件之间的接口。
  • 文件和设备需要操作系统管理。
  • 系统调用是用户态进入内核态的正规入口。
  • 中断是硬件事件通知 CPU 的方式。
  • 内核态和用户态保证保护与安全。
  • 多道程序可以让等待磁盘的进程不一直占用 CPU。

11. 学习方法:不要一开始背全部名词

第 1 遍:只理解两条主线

先回答:

  1. 为什么应用程序不能直接控制硬件?
  2. 一个用户程序如何请求操作系统服务?

如果能画出下面的流程,就已经掌握了本章骨架:

应用程序 → 系统调用/Trap → 内核服务 → 驱动/硬件
硬件事件 → 中断 → 内核处理 → 唤醒或调度进程

第 2 遍:整理四个比较表

建议自己默写:

  1. 并发、并行、异步。
  2. 中断、异常、Trap。
  3. 用户态、内核态、特权指令。
  4. 宏内核、微内核、分层、模块化。

第 3 遍:做时序题

重点练:

  • CPU 与 I/O 重叠的时间线。
  • 系统调用进入和退出内核的步骤。
  • 中断处理过程。
  • 开机引导顺序。

推荐 3 天安排

第 1 天:概念和发展史
  • 阅读本笔记第 1~3 节。
  • 对照原 PDF 第 1~14 页。
  • 用自己的话解释四个基本特征。
第 2 天:运行环境
  • 阅读第 4~5 节。
  • 对照原 PDF 第 15~26 页。
  • 画三张图:用户态/内核态、系统调用流程、中断流程。
第 3 天:结构、引导和虚拟机
  • 阅读第 6~8 节。
  • 对照原 PDF 第 26~36 页。
  • 完成章末题和前面生成的摸底测试。

12. 学完后必须能回答的问题

如果以下问题还不能用自己的话回答,不要急着进入下一章:

  1. 操作系统为什么既是资源管理者,又是扩充机器?
  2. 单 CPU 上为什么可以并发,但不能真正并行?
  3. 多道程序如何减少 CPU 等待 I/O 的时间?
  4. 用户程序为什么不能直接执行特权指令?
  5. 系统调用为什么必须切换到内核态?
  6. Trap 和外部中断的触发来源有什么区别?
  7. 中断发生时为什么要保存 PC 和 PSW?
  8. 分时系统为什么比批处理系统更适合交互?
  9. 微内核为什么更容易隔离故障,但可能速度更慢?
  10. BIOS、MBR、启动管理器和操作系统内核分别做什么?
  11. Type I VMM 和 Type II VMM 的位置有什么区别?
  12. 为什么系统调用和库函数不能简单地画等号?

13. 轻量自测(先做,再看答案)

题 1

单 CPU 上,程序 A 等待磁盘 I/O 时,CPU 转去运行程序 B。这体现了哪些概念?

题 2

用户程序执行除零指令,CPU 自动进入内核处理。这是外中断、异常还是 Trap?为什么?

题 3

printf() 和系统调用是什么关系?为什么说库函数不一定都进入内核?

题 4

请按顺序写出:CPU 复位、BIOS、POST、MBR、活动分区引导记录、启动管理器、内核之间的关系。

自测答案

展开答案
  1. 体现并发、多道程序和 I/O 与 CPU 重叠;单 CPU 上不是真正并行。
  2. 属于异常,因为是 CPU 执行当前指令时发现内部错误;不是外部硬件事件,也不是程序主动请求服务的 Trap。
  3. printf() 通常是用户层库函数,可能格式化字符串后调用 write() 等系统调用;纯字符串格式化可以在用户态完成,因此库函数不一定进入内核。
  4. CPU 复位后执行 ROM 中 BIOS;BIOS 做 POST 并选择启动设备;读取 MBR;根据分区表定位活动分区并读取其引导记录;启动管理器选择并加载内核;内核完成初始化后启动用户环境。

14. 本章最终记忆卡片

操作系统 = 资源管理者 + 用户/硬件接口 + 安全保护者

四特征:并发、共享、虚拟、异步

两种状态:用户态、内核态
两类指令:特权指令、非特权指令

三类事件:外中断、异常、Trap
正规入口:系统调用 / Trap

四种结构:分层、模块化、宏内核、微内核

启动线:BIOS → POST → MBR → 活动分区 → 启动管理器 → 内核

虚拟机:Type I 在硬件上,Type II 在宿主 OS 上

当你能不看笔记解释这张卡片上的每一行时,第 1 章才算真正学会。


15. 复习日志

日期 学习内容 是否能脱稿讲解 仍然困惑的点
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐