Skip to content

操作系统

第一章

1. 操作系统的名称、在计算机系统中所起的作用、操作系统的设计目标;

  • Linux/Windows || 实时/分时/批处理/嵌入式
  • 用户和硬件的接口 | 管理计算机资源(处理机、存储器、IO、文件)| 实现计算资源的抽象
  • 提高资源利用率 | 适应器件更新迭代 | 安全漏洞 |

2. 操作系统的五大功能:处理机(CPU)和进程管理、存储器管理、设备管理、文件管理、操作系统与用户间接口

第二章

1. 理解进程的基本概念;

  • 进程是程序的一次执行过程,是系统进行资源分配和调度的独立单位(1),是可独立调度和分派的基本单位(2)。可以并发
  • 动态性 | 并发性 | 独立性 | 异步性

2. 理解进程和线程的关系;

  • 线程变为调度和分配的基本单位
  • alt text

3. 理解和掌握进程的状态图:三状态模型、五状态模型;

  • 三状态:就绪、运行、阻塞
  • 五状态:加入创建和终止状态
  • 七状态
    • alt text

4. 理解进程的同步和互斥概念,理解临界资源的概念

  • alt text
  • 打印机、I/O设备、文件等,属于临界资源,进程间要采用互斥方式实现资源共享;软件资源:信号量、共享变量
  • alt text

5. 如何用信号量、临界区来实现进程同步、互斥;

  • alt text
    • 互斥、有序访问、防止死锁、公平性
  • alt text
  • alt text
    • 单标志
    • 双标志先检查
    • 双标志后检查
    • 皮特森
  • 生产消费者
    • 生产消费者
    • 生产消费者-And
  • 哲学家进餐
    • alt text
    • alt text
    • alt text
  • 小和尚老和尚
    • alt text
    • alt text
    • alt text

6. 理解死锁的概念、死锁产生的原因和产生的必要条件;

  • alt text
  • alt text

7. 掌握避免死锁的银行家算法和安全检测算法;

  • 安全监测
    • alt text
  • 银行家
    • alt text
    • alt text
    • alt text

第三章

1. 进程调度的两种方式:非抢占和抢占

2. 理解时间片的概念;

3. 理解作业的周转时间、带权周转时间、响应比的概念,掌握它们的计算方法;

  • 周转时间 = 完成时间 - 到达时间
  • 等待时间 = 周转时间 - 运行时间 = 完成时间 - 到达时间 - 运行时间
  • 带权周转时间 = 周转时间 / 运行时间
  • 响应比:Rp=等待时间+运行时间=响应时间要求服务时间

4. 理解和掌握基本的作业/进程调度算法;

alt text

  • 先来先服务 (FCFS)
  • 最短作业优先 (SJF)
  • 优先级调度 (Priority Scheduling), 等待时间就是优先级
  • 高响应比优先 (HRRN), 响应比 Rp=等待时间+运行时间=响应时间要求服务时间
  • 时间片轮转 (RR) : 按照到达顺序分别执行时间片
  • 多级队列调度 (Multilevel queue scheduling)

第四章

1. 理解存储器的分配方式;

存储器的分配方式是操作系统内存管理的核心内容之一,主要解决如何将有限的物理内存分配给多个并发运行的进程。根据不同的管理策略,常见的存储器分配方式可分为以下几类:


一、连续分配方式(Contiguous Allocation)

将内存划分为连续的区域分配给进程。适用于早期系统。

1. 单一连续分配
  • 内存分为系统区用户区
  • 只能运行一个用户进程。
  • ✅ 简单;❌ 无法多道程序,资源浪费大。
  • 应用于单用户单任务系统(如 DOS)。
2. 固定分区分配(Fixed Partitioning)
  • 启动时将内存划分为若干大小固定的分区
  • 每个分区装入一个作业。
  • ❌ 会产生内部碎片(作业小于分区时浪费)。
  • 分区大小可相等或不等,但一旦划分不可变。
3. 动态分区分配(Variable Partitioning)
  • 根据进程实际需求动态创建分区
  • 初始内存为一大块,随进程到来/结束而分裂/合并。
  • ✅ 无内部碎片;❌ 会产生外部碎片(空闲块太小且不连续)。
  • 需要空闲分区管理算法
    • 首次适应(First Fit)
    • 最佳适应(Best Fit)
    • 最坏适应(Worst Fit)
    • 邻近适应(Next Fit)

🛠️ 为缓解外部碎片,可采用紧凑(Compaction)技术,将进程移动使空闲区合并(需支持地址重定位)。


二、离散分配方式(Non-contiguous Allocation)

允许一个进程的内存分布在不连续的物理块中,提高内存利用率。

1. 分页存储管理(Paging)
  • 将逻辑地址空间和物理内存都划分为固定大小的页/块(如 4KB)。
  • 逻辑页 → 物理块通过页表映射。
  • ✅ 无外部碎片;❌ 有内部碎片(最后一页可能不满)。
  • 支持虚拟内存。
  • 地址结构:[页号 | 页内偏移]
2. 分段存储管理(Segmentation)
  • 按程序的逻辑结构(如代码段、数据段、堆栈段)划分。
  • 段大小可变,由用户/编译器决定。
  • 每段有段表项:基址 + 长度。
  • ✅ 便于共享与保护;❌ 有外部碎片
  • 地址结构:[段号 | 段内偏移]
3. 段页式存储管理(Segmented Paging)
  • 结合分段和分页的优点:
    • 先分段(逻辑清晰、便于共享)
    • 再对每段分页(消除外部碎片)
  • 每个进程:一张段表 + 每段一张页表
  • 地址转换需两次查表(段表 → 页表 → 物理地址),开销大。
  • ✅ 无外部碎片,支持共享;❌ 有内部碎片,管理复杂。

2. 理解逻辑地址、物理地址的概念;

alt text

3. 理解和掌握分页存储管理方式、分段存储管理方式的基本原理、地址映射过程;

alt textalt text

  • alt text
    • alt text
    • alt text
    • alt text
    • alt text
    • alt text
    • alt text

4. 理解“内存碎片”的概念;

5. 内存分配算法

  • 首次适应算法(First Fit):空闲分区大小递增链接,从头开始查找,找到第一个能满足要求的分区进行分配。
  • 循环首次适应算法(Next Fit): 从上一次空闲的位置开始查找,找到第一个能满足要求的分区进行分配。
  • 最佳适应算法(Best Fit): 每次都从空闲分区链表中选择最小的能满足要求的分区进行分配。
  • 最差适应算法(Worst Fit): 每次都从空闲分区链表中选择最大的分区进行分配。 alt text

6. 伙伴系统

alt textalt textalt textalt textalt text

第五章

1. 理解虚拟存储器的基本概念;

  • 虚拟存储器是一种存储管理技术,它使得程序可以使用比实际物理内存更大的地址空间。通过将不常用的数据和代码暂时存储在辅助存储设备(如硬盘)上,虚拟存储器允许程序运行时只需加载必要的部分到物理内存中,从而提高了内存利用率和系统性能。

2. 理解和掌握请求分页存储管理方式的原理;

  • alt text

  • alt text

3. 掌握页面置换算法的原理;

  • 缺页率 = 缺页次数 / 总访问次数

alt text

  • 最佳置换

    • alt text
  • 先进先出(FIFO)

    • alt text
  • 最近最少使用(LRU), 换出最长时间未被访问的页面

    • alt text
    • alt text
  • 最少使用(LFU), 换出访问次数最少的页面

  • Clock算法

    • alt text
    • alt text
    • alt text
    • alt text
    • alt text

4. 理解“抖动”产生的原因、工作集的基本概念;

✅ 什么是抖动?

抖动 是指:
系统花费大量时间在页面的换入换出(I/O 操作)上,而几乎没有时间执行有用进程的现象。此时 CPU 利用率急剧下降,系统“忙而无效”。

通俗地说:进程刚把一页调入内存,马上又被换出;再要用时又得调入……陷入恶性循环


🔍 抖动产生的原因

  1. 分配给进程的物理页框太少

    • 进程的活跃页面数 > 分配的页框数
    • 导致频繁缺页 → 频繁置换
  2. 多道程序度过高(并发进程太多)

    • 所有进程争抢有限的物理内存
    • 每个进程都得不到足够的页框 → 都频繁缺页
  3. 页面置换算法不合适

    • 如 FIFO 可能淘汰即将使用的页,加剧缺页
  4. 缺乏对进程“局部性”的尊重

    • 程序具有时间局部性(近期访问的页很可能再次访问)
    • 若内存无法容纳当前“活跃页面集合”,就会不断换页

💡 核心矛盾:进程需要的最小内存 > 实际分配的内存


二、工作集(Working Set)——解决抖动的关键思想

✅ 什么是工作集?

工作集 是指:
最近 Δ 个内存访问(或时间窗口 Δ)内,进程所访问的页面集合

记作:W(t, Δ),表示在时刻 t 的过去 Δ 时间内访问过的所有页面。

  • Δ 称为工作集窗口大小
  • 工作集反映了进程当前的“活跃页面需求”

📌 工作集的核心思想
  • 程序执行具有局部性原理
    • 时间局部性:刚访问的页面很可能很快再被访问
    • 空间局部性:访问某地址,其附近地址也可能被访问
  • 因此,在任一时间段内,进程只“活跃”使用一部分页面 —— 这就是它的工作集

关键结论
当分配给进程的页框数 < 其工作集大小时,就会发生抖动


三、操作系统如何应对抖动?(实际策略)

  1. 采用工作集模型进行内存分配
  2. 设置缺页率上限:若某进程缺页率过高,说明内存不足,应增加其页框
  3. L=S 调度策略(Page Fault Frequency, PFF):
    • 监控缺页间隔时间 L
    • 若 L 太小(缺页太频繁)→ 增加内存
    • 若 L 太大(内存过剩)→ 减少内存
  4. 降低多道程序度:挂起部分进程,集中资源给活跃进程

四、图示理解(文字版)

时间轴: ... [Δ窗口] ...

        当前时刻 t

在 Δ 时间内访问的页面:{页2, 页5, 页7, 页3}
→ 工作集 W(t, Δ) = {2, 3, 5, 7} → 至少需要 4 个页框

若只分配 2 个页框 → 必然频繁换页 → 抖动!

第六章

1. 理解中断的概念;

  • 中断(Interrupt)是指在计算机执行程序过程中,由于内部或外部事件的发生,CPU 暂停当前程序的执行,转去处理该事件,处理完毕后再返回原程序继续执行 的机制。

  • 作用:实现 CPU 与 I/O 设备的并行工作、处理异常、支持多任务等。

  • 分类:

    • 硬件中断:由外部设备(如键盘、磁盘)或硬件故障触发(如时钟中断、I/O 中断)。
    • 软件中断:由程序指令主动引发(如系统调用 int 0x80 或异常,如除零错误)。

alt text

2. 理解中断响应以及中断处理过程;

  1. 中断响应(由硬件自动完成)
    • CPU 检测到中断请求;
    • 完成当前正在执行的指令;
    • 关中断(防止嵌套干扰);
    • 保存现场:将程序计数器(PC)、程序状态字(PSW)等关键寄存器压入堆栈;
    • 根据中断类型,跳转到对应的中断服务程序(ISR)入口地址。
  1. 中断处理(由操作系统软件完成)
    • 执行中断服务程序(ISR):
    • 识别中断源;
    • 进行相应处理(如读取键盘输入、完成磁盘数据传输);
    • 恢复现场:从堆栈中弹出之前保存的寄存器值;
    • 开中断;
    • 返回原程序(通过中断返回指令,如 IRET),继续被中断处的执行。

第七章

1. 理解文件系统的基本功能;

文件系统是操作系统中用于管理和组织存储设备上文件的机制,其主要功能包括:

功能说明
按名存取用户通过文件名访问文件,无需关心物理位置(如磁盘块号)
文件存储空间管理分配和回收磁盘空间(如位示图、空闲链表、成组链接法)
文件目录管理组织文件结构,支持创建、删除、查找、重命名等操作
文件读写操作提供打开、读、写、关闭等接口,控制对文件的访问
文件共享与保护支持多用户共享文件,并通过权限机制(如读/写/执行)实现保护
提供统一接口屏蔽底层存储设备差异,为用户提供一致的文件操作视图

✅ 核心目标:让用户方便、安全、高效地使用文件,而无需了解物理存储细节

2. 理解文件的逻辑结构、文件目录的概念;

(1)文件的逻辑结构

从用户视角看到的文件组织形式,与物理存储无关。分为两类:

  • 无结构文件(流式文件)

    • 文件是一串字符序列,无内部结构(如文本文件、源代码)。
    • 操作以字节或字符为单位(如 read()write())。
  • 有结构文件(记录式文件)

    • 文件由若干记录组成(如数据库表、学生信息表)。
    • 记录可定长或变长,支持按记录读写(如“读第3条记录”)。
    • 现代系统中较少直接支持,多由应用程序或 DBMS 实现。

💡 注意:现代操作系统(如 Linux、Windows)主要将文件视为无结构的字节流

(2)文件目录的概念

  • 定义:文件目录是文件控制块(FCB)的有序集合,用于管理文件信息

  • 作用

    • 实现“按名存取”;
    • 组织文件层次结构(如树形目录);
    • 存储文件元数据(如文件名、大小、创建时间、物理地址、权限等)。
  • 目录项内容(即 FCB):

    • 文件名
    • 文件类型
    • 物理位置(如索引节点号 i-node)
    • 文件大小、访问权限、时间戳等
  • 目录结构发展

    • 单级目录 → 两级目录 → 树形目录(多级目录,支持子目录嵌套)→ 图形目录(带链接)

✅ 现代文件系统(如 NTFS、ext4)采用多级树形目录,支持路径名(如 /home/user/file.txt)。

  • alt text
    • alt text
    • alt text
    • alt text

第八章

1. 理解常用的磁盘调度算法;

  • 先来先服务(FCFS)

    • alt text
  • 最短寻道时间优先(SSTF)

    • alt text
  • 扫描算法(SCAN)

    • alt text
    • alt text
  • 循环扫描算法(C-SCAN)

    • alt text
    • alt text

2. 掌握如何计算磁盘调度算法的寻道长度;