1. 1. 第一章 计算机系统概论
    1. 1.1. 了解
      1. 1.1.1. 计算机系统构成
      2. 1.1.2. 指令周期的过程
      3. 1.1.3. 硬件I/O需要的三种方式
  2. 2. 第二章 操作系统概论
    1. 2.1. 理解
      1. 2.1.1. 操作系统是什么
      2. 2.1.2. 操作系统构成的模块
      3. 2.1.3. 串型处理、简单批处理、多道程序批处理系统、分时系统 - 概念和区别
  3. 3. 第三章 进程描述和控制
    1. 3.1. 了解
      1. 3.1.1. 进程是资源分配的单位
      2. 3.1.2. 进程管理模块的功能
      3. 3.1.3. 进程映像构成
    2. 3.2. 理解
      1. 3.2.1. 进程是什么
      2. 3.2.2. 程序和进程的关系
      3. 3.2.3. PCB进程控制块有哪些内容、是做什么的
      4. 3.2.4. 执行的模式
      5. 3.2.5. 进程切换的过程
      6. 3.2.6. 模式的切换和进程的切换相似性和不同
      7. 3.2.7. 创建进程需要哪些流程
      8. 3.2.8. 进程的五状态
      9. 3.2.9. 进程的七状态
  4. 4. 第四章 线程
    1. 4.1. 理解
      1. 4.1.1. 进程和线程的区别:各自的优势,起到的角色
      2. 4.1.2. 线程实现的方法(4.2)
      3. 4.1.3. ULT、KLT的优势、劣势;
  5. 5. 第五章 并发性:互斥和同步
    1. 5.1. 了解
      1. 5.1.1. 解决互斥的三个方法 - 硬件类、软件类、系统类
      2. 5.1.2. 解决互斥的具体方法、怎么用
      3. 5.1.3. 信号量类型 - 计数型、二次型、弱信号量
      4. 5.1.4. 盲等和阻塞的进程状态区别
      5. 5.1.5. 信号量实现的伪代码
      6. 5.1.6. 信号量四大问题 - 生产者/消费者、五个哲学家就餐、读者/写者、理发师问题
    2. 5.2. 理解
      1. 5.2.1. 同步互斥、饥饿
      2. 5.2.2. 竞争的条件
      3. 5.2.3. 临界资源、临界区
      4. 5.2.4. 实现临界区(互斥)的需求
      5. 5.2.5. 信号量是什么
    3. 5.3. 掌握
      1. 5.3.1. 信号量实现的伪代码 习题课1
  6. 6. 第六章 并发:死锁和饥饿
    1. 6.1. 了解
      1. 6.1.1. 活锁;
      2. 6.1.2. 死锁的检测算法
      3. 6.1.3. 死锁的恢复
      4. 6.1.4. 死锁的综合解决方法
    2. 6.2. 理解
      1. 6.2.1. 什么是死锁
      2. 6.2.2. 什么是饥饿
      3. 6.2.3. 资源的分类
      4. 6.2.4. 死锁的条件
      5. 6.2.5. 解决死锁的三种方法 - 死锁的预防、避免、检测
    3. 6.3. 掌握
      1. 6.3.1. 银行家算法 习题课2
  7. 7. 第七章 内存管理
    1. 7.1. 了解
      1. 7.1.1. 内存管理的需求
      2. 7.1.2. 静态处理(编译和链接)和动态处理(加载和运行)
      3. 7.1.3. 链接器和装载器
      4. 7.1.4. 重定位
      5. 7.1.5. 覆盖
    2. 7.2. 理解
      1. 7.2.1. 什么是逻辑地址、物理地址
      2. 7.2.2. 四种内存管理方法
      3. 7.2.3. 碎片 - 内部碎片、外部碎片
      4. 7.2.4. 地址转换流程
      5. 7.2.5. 分区、分页、分段的区别
  8. 8. 第八章 虚拟内存
    1. 8.1. 了解
      1. 8.1.1. 按需清除和预清除的区别
      2. 8.1.2. 清除的概念、策略
      3. 8.1.3. 抖动
      4. 8.1.4. 页缓冲
    2. 8.2. 理解
      1. 8.2.1. 缺页、缺页后产生的流程
      2. 8.2.2. 页表是什么
      3. 8.2.3. 页表项
      4. 8.2.4. 虚拟地址和实地址
      5. 8.2.5. 地址转换的流程图
      6. 8.2.6. 简单分页和虚拟内存的区别
      7. 8.2.7. 段表、页表
    3. 8.3. 掌握
      1. 8.3.1. 习题课3
  9. 9. 第九章 单处理器调度
    1. 9.1. 了解
      1. 9.1.1. 调度的标准
    2. 9.2. 理解
      1. 9.2.1. 长、中、短调度的概念
      2. 9.2.2. 抢占式和非抢占式
      3. 9.2.3. 几个时间概念和关系
    3. 9.3. 掌握
      1. 9.3.1. 习题课4
  10. 10. 第十一章 I/O管理和磁盘调度
    1. 10.1. 了解
      1. 10.1.1. I/O buffer
      2. 10.1.2. 什么叫面向块设备和面向流设备
      3. 10.1.3. 磁盘的cache高速缓存
      4. 10.1.4. 驱动
    2. 10.2. 理解
      1. 10.2.1. 三种执行I/O的方式
      2. 10.2.2. 磁盘读写延迟、磁盘访问时间
      3. 10.2.3. I/O管理的层次(图11.4)
    3. 10.3. 掌握
      1. 10.3.1. 习题课5
  11. 11. 第十二章 文件管理
    1. 11.1. 了解
      1. 11.1.1. 文件、文件系统
      2. 11.1.2. 空闲空间的管理
    2. 11.2. 理解
      1. 11.2.1. 文件系统的功能
      2. 11.2.2. FAT - File Allocation Table
      3. 11.2.3. 文件系统的层次结构
      4. 11.2.4. 文件的组织方式 12.2
      5. 11.2.5. 文件分配的方法(连续、链式、索引)

OS

第一章 计算机系统概论

了解

计算机系统构成

  • 处理器
  • 内存
  • 输入输出模块
  • 系统总线

指令周期的过程

开始 - 取下一条指令 - 执行指令 - 停止

硬件I/O需要的三种方式

  • 可编程I/O
  • 中断驱动I/O
  • 直接内存存取(DMA)

第二章 操作系统概论

理解

操作系统是什么

操作系统是控制应用程序执行的程序,是应用程序和计算机硬件间的接口。

操作系统构成的模块

  • 进程管理
  • 存储管理
  • I/O管理
  • 文件系统

串型处理、简单批处理、多道程序批处理系统、分时系统 - 概念和区别

1、串行处理:用机器代码编写的程序输入设备(如卡片阅读机)载入计算机。

2、简单批处理系统:使用一个称为监控程序的软件。通过使用该软件,用户不再直接访问机器,相反,用户把卡片或磁带中的作业提交给计算机操作员,由操作员将这些作业按顺序组织成批,并将整个作业放在输入设备上,供监控程序使用。每个程序完成处理后返回到监控程序,同时监控程序自动加载下一个程序。

3、多道程序批处理系统:扩展存储器以保存更多程序,且在他们之间进行切换。这种处理称为多道程序处理或者多任务处理。它是现代操作系统的主要方案。

4、分时系统:在分时系统中,多个用户可以通过终端同时访问系统,由操作系统控制每个用户程序在很短的时间内交替执行。

批处理多道程序设计和分时的比较

批处理多道程序设计 分时
主要目标 充分利用处理器 减小响应时间
操作系统指令源 作业控制语言命令;作业提供的命令 终端键入的命令

第三章 进程描述和控制

了解

进程是资源分配的单位

进程管理模块的功能

进程映像构成

  • 用户数据
  • 用户程序
  • 进程控制块

理解

进程是什么

  • 一个正在执行的程序
  • 一个正在计算机上执行的程序实例
  • 能分配给处理器并由处理器执行的实体
  • 由一组执行的指令、一个当前状态和一组相关的系统资源表征的活动单元

程序和进程的关系

进程是一个正在执行的程序。

PCB进程控制块有哪些内容、是做什么的

  • 进程标识信息
  • 进程状态信息
  • 进程控制信息

控制块可以中断一个程序的进行,并在后来恢复程序的执行。

执行的模式

  • 用户模式
  • 系统模式

进程切换的过程

  1. 保存处理器的上下文,包括程序计数器和其他寄存器。
  2. 更新当前处于运行态进程的进程控制块,包括把进程的状态改变为另一状态。还须更新其他相关的字段,包括退出运行态的原因和记账信息。
  3. 把该进程的进程控制块移到相应的对列。
  4. 选择另一进程执行。
  5. 更新所选进程的进程控制块,包括把进程的状态改为运行态。
  6. 更新内存管理数据结构。是否需要更新取决于管理地址转换的方式。
  7. 载入程序计数器和其他寄存器先前的值,将处理器的上下文恢复为所选进程上次退出运行态时的上下文。

模式的切换和进程的切换相似性和不同

模式切换可在不改变运行态进程的状态的情况下出现。此时保存上下文并在以后恢复上下文仅需很少的开销。但是若当前的正运行的进程将转换到另一个状态,则操作系统必须使环境发生实质性的变化。

创建进程需要哪些流程

  1. 为新进程分配一个唯一的进程标志符
  2. 为进程分配空间
  3. 初始化进程控制块
  4. 设置正确的连接
  5. 创建或扩充其他数据结构

进程的五状态

进程的七状态

第四章 线程

理解

进程和线程的区别:各自的优势,起到的角色

区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。

线程的优点:

  1. 在已有进程创建一个线程的时间,远少于创建一个全新进程的时间。
  2. 终止线程要比终止进程所花的时间少。
  3. 同一个进程内线程间切换的时间,要少于进程间切换的时间。
  4. 线程提高了不同执行程序间通信的效率。

线程实现的方法(4.2)

ULT、KLT的优势、劣势;

UTL的优势:

  1. 减少状态转换的开销。
  2. 可以做到为应用程序量身定做调度算法。
  3. 可以在任何操作系统中运行。

UTL的劣势:

  1. 会引起阻塞。
  2. 在纯ULT策略中,多线程应用程序不能利用多处理技术。

KLT的优势:

  1. 克服了ULT的两个缺点:首先可以把一个进程中的多个线程调度到多个处理器中;其次当一个线程被阻塞时,内核可以调度同一个进程中的另一个线程。
  2. 内核例程自身也可以是多线程的。

KLT的劣势:

  1. 在把控制权从一个线程传送到同一个进程内的另一个线程时,需要切换到内核模式。

第五章 并发性:互斥和同步

了解

解决互斥的三个方法 - 硬件类、软件类、系统类

  1. 使用硬件方法实现互斥:使用中断禁用、使用专用机器指令
  2. 使用信号量实现互斥:使用计数信号量/一般信号量、使用二元信号量、使用互斥量
  3. 使用管程方法实现互斥:一个管程一次只能被一个进程访问

解决互斥的具体方法、怎么用

信号量类型 - 计数型、二次型、弱信号量

盲等和阻塞的进程状态区别

信号量实现的伪代码

信号量四大问题 - 生产者/消费者、五个哲学家就餐、读者/写者、理发师问题

理解

同步互斥、饥饿

竞争的条件

临界资源、临界区

实现临界区(互斥)的需求

信号量是什么

掌握

信号量实现的伪代码 习题课1

第六章 并发:死锁和饥饿

了解

活锁;

死锁的检测算法

死锁的恢复

死锁的综合解决方法

理解

什么是死锁

一组互相竞争系统资源或进行通信的进程间的“永久”阻塞。

什么是饥饿

资源的分类

  • 可重用资源:指一次仅供一个进程安全使用且不因使用而耗尽的资源。
  • 可消耗资源:指可被创建(生产)和销毁(消耗)的资源。

死锁的条件

  1. 互斥
  2. 占有且等待
  3. 不可抢占
  4. 循环等待

解决死锁的三种方法 - 死锁的预防、避免、检测

掌握

银行家算法 习题课2

第七章 内存管理

了解

内存管理的需求

  • 重定位
  • 保护
  • 共享
  • 逻辑组织
  • 物理组织

静态处理(编译和链接)和动态处理(加载和运行)

链接器和装载器

重定位

为了避免程序被换入主存时必须放入和以前相同的内存区域会产生巨大开销,还可以在再次换入进程时候把进程重定位到内存的不同区域。

覆盖

不同的模块被分配到内存的同一块区域,主程序负责在需要时换入或换出模块。

理解

什么是逻辑地址、物理地址

逻辑地址:是指与当前数据在内存中的物理分配地址无关的访问地址。

物理地址:或绝对地址,是数据在内存中的实际位置。

四种内存管理方法

  • 连续分配方式
  • 基本分页存储管理方式
  • 基本分段存储管理方式
  • 段页式存储管理方式

碎片 - 内部碎片、外部碎片

内部碎片:内部碎片是已经被分配出去的的内存空间大于请求所需的内存空间。

外部碎片:外部碎片是指还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。

地址转换流程

分页

分段

分区、分页、分段的区别

页是信息的物理单位,提高内存利用率,大小固定。

段是信息的逻辑单位,它具有一组其意义相对完整的信息,更好地满足用户的需要,大小不固定(取决于用户编写的程序)

第八章 虚拟内存

了解

按需清除和预清除的区别

清除的概念、策略

抖动

处理器的大部分时间都在用于交换块而非执行指令。

页缓冲

理解

缺页、缺页后产生的流程

若“存在位”为置位,则表示需要的页不在内存中,这时会产生一次内存访问故障,称为缺页中断。此时离开硬件作用范围,调用操作系统,由操作系统负责装入所需要的页,并更新页表。

页表是什么

页表给出了该进程的每页对应页框的位置。

页表项

在页表中,一个页号与其对应的物理块号称之为一个页表项。

  • 页号
  • 进程控制符
  • 控制位
  • 链指针

虚拟地址和实地址

虚拟地址:在虚拟内存中分配给某一位置的地址,它使得该位置可被访问,就好像是主内的一部分那样。

实地址:内存中存储位置的地址。

地址转换的流程图

简单分页和虚拟内存的区别

简单分页:进程运行时,它的所有页必须都在内存中,除非使用了覆盖技术。

虚存分页:进程运行时,并非所有页都须在内存页框内。仅在需要时才读入页;把一页读入内存可能需要把另一页写出到磁盘。

段表、页表

掌握

习题课3

  • FIFO
  • LRU
  • OPT
  • CLOCK

第九章 单处理器调度

了解

调度的标准

在大多数交互式操作系统中,不论是单用户系统还是分时系统,适当的响应时间都是关键需求。

理解

长、中、短调度的概念

  • 长程调度:决定加入待执行进程池。
  • 中程调度:决定加入部分或全部位于内存中的进程集合。
  • 短程调度:决定处理器执行哪个可运进程。

抢占式和非抢占式

  • 非抢占(non-preemptive):在这种情况下,一旦进程处于运行状态,就会不断执行直到终止,进程要么因为等待I/O,要么因为请求某些操作系统服务而阻塞自己。
  • 抢占(preemptive):当前正在运行进程可能被操作系统中断,并转换为就绪态。一个新进程到达时,或中断发生后把一个阻塞态进程置为就绪态时,或出现周期性的时间中断时,需要进行抢占决策。

几个时间概念和关系

  • 响应时间:提交一个请求到开始接受响应之间的时间间隔。
  • 等待时间:目前为止在系统中停留的时间。
  • 服务时间:进程所需的总服务时间。
  • 周转时间:这一项在系统中花费的总时间(等待时间+服务时间)。
  • 归一化周转时间:周转时间与服务时间的比值。

掌握

习题课4

  • FCFS:非抢占式
  • RR:抢占式
  • SPN:非抢占式
  • SRN:抢占式
  • HRRN:非抢占式
  • FB:抢占式

第十一章 I/O管理和磁盘调度

了解

I/O buffer

在输入请求发出前就开始执行输入传送,并且在输出请求发出一段时间之后才开始执行输出传送,这项技术称为缓冲。

什么叫面向块设备和面向流设备

面向块的设备将信息保存在中,块的大小通常是固定的,传送过程中一次传送一块。通常可以通过块号访问数据。磁盘和USB智能卡都是面向块的设备。

面向流的设备以字节流的方式输入/输出数据,他没有块结构。终端、打印机、通信端口、鼠标和其他指示的设备及其他大多数非辅存设备,都属于面向流的设备。

磁盘的cache高速缓存

通常指比内存小且比内存快的存储器,它位于内存和存储器之间。这种高速缓冲存储器利用局部性原理来减少平均存储器存取时间。

驱动

理解

三种执行I/O的方式

  • 程序控制I/O:处理器代表一个进程给I/O模块发送一个命名;该进程进入忙等待,直到操作完成才继续进行。
  • 中断驱动I/O:处理器代表进程向I/O模块发出一个I/O命令。有两种可能性:若来自进程的I/O指令式非阻塞的,则处理器继续执行I/O命令的进程的后续指令。若I/O指令式阻塞的,则处理器执行的下一条指令来自操作系统,它将当前的进程设置为阻塞态并调度其他进程。
  • 直接存储器访问(DMA):一个DMA模块控制内存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发请求,且只有在整个数据块传送结束后,它才被中断。

磁盘读写延迟、磁盘访问时间

  • 寻道时间:磁头定位到磁道所需要的时间。
  • 旋转延迟:磁头到达扇区开始位置的时间。
  • 存取时间:寻道时间(存在时)+旋转延迟,这是达到读或写位置所需要的时间。
  • 传输时间:传输所需的时间。

I/O管理的层次(图11.4)

掌握

习题课5

  • FIFO
  • SSTF
  • SCAN
  • C-SCAN

第十二章 文件管理

了解

文件、文件系统

空闲空间的管理

理解

文件系统的功能

提供了与二级存储相关的资源的抽象,允许用户建立具体所需要的特性的文件。

FAT - File Allocation Table

是用来记录文件所在位置的表格

文件系统的层次结构

  • 设备驱动程序层
  • 基本文件系统层
  • 基本I/O管理程序层
  • 逻辑I/O层
  • 访问方法层

文件的组织方式 12.2

  • 顺序文件
  • 索引顺序文件
  • 索引文件
  • 直接或散列文件

文件分配的方法(连续、链式、索引)

  • 连续分配:在创建文件时,给文件分配一组连续的块。
  • 链式分配:典型情况下,链式分配基于单个块,链中的每块都包含指向下一块的指针。
  • 索引分配:每个文件在文件分配表中都有一个一级索引。