操作系统考试方案大纲

操作系统绪论和处理器管理

部分内容已在期中中出现过,期末内容包含期中部分

请通过右边的大纲栏快速复习查找

所以按照以下格式标注知识点重合性:

  • 期中+期末:(A
  • 期中 :(B)
  • 期末:(C
  • 必考部分{大题}(S

请着重关注A,C部分,B部分稍作关注

设计和构建操作系统的基本目标(A)

  1. 方便性:操作系统应提供用户友好的界面,简化用户操作。
  2. 有效性:系统资源的管理和调度应高效,以提高整体性能。
  3. 可扩充性:系统应支持模块化设计,便于未来功能的扩展和升级。
  4. 开放性:操作系统应支持开放标准,促进软件和硬件的兼容性。

操作系统管理功能(C)

  1. 处理器管理:负责调度和分配CPU资源,以确保各个进程的高效执行。
  2. 存储管理:管理内存的分配与回收,确保数据的有效存储和访问。
  3. I/O设备管理:协调和控制输入输出设备的操作,提供统一的接口。
  4. 文件管理:负责文件的创建、删除、读写及权限管理,确保数据的安全性和完整性。
  5. 网络管理:处理网络连接和数据传输,确保系统与其他设备的有效通信。
  6. 用户接口:提供用户与操作系统交互的方式,包括命令行和图形界面。

操作系统特性(A)

  1. 并发性
    <1> 宏观上,多个程序在计算机内同时发生。
    <2>** 微观上**,任何时候只有一个程序在CPU上运行,操作系统通过时间片轮转实现并发执行。

  2. 共享性:多个用户或进程可以共享系统资源,提高资源利用率。

  3. 不确定性:系统的行为在不同条件下可能会有所不同,增加了程序执行的复杂性。

  4. 虚拟性:操作系统通过抽象和虚拟化技术,在逻辑上提供资源,而不直接依赖于物理资源的限制。

操作系统引入多道系统的好处(C)

  • 提高资源(CPU)利用率:通过同时运行多个程序,提高CPU利用率
  • 内存和I/O设备的利用率。
  • 提高系统吞吐率:多道程序设计能够在单位时间内处理更多任务,提升系统的整体吞吐能力。
  • 有中断技术作为支撑:中断技术使得操作系统能够有效地管理和调度多个程序的执行。

操作系统的人机接口(C)

  1. 操作界面
    <1> 命令行界面:用户通过输入命令与系统进行交互,适合高级用户。
    <2> 图形化界面:通过图形元素和鼠标操作,提供直观的用户体验,适合普通用户。

  2. 系统调用和编程接口:提供程序与操作系统之间的交互方式,使得应用程序能够请求系统资源和服务。

进程的状态和转换(A)

  1. 进程状态
    <1> 运行态:进程正在CPU上执行。
    <2> 就绪态:进程已准备好运行,但等待CPU分配。
    <3> 等待态:进程因等待某些事件(如I/O操作)而暂停执行。

  2. 进程状态的转换
    进程状态之间的转换可以通过以下方式表示:

    +-----------+        +-----------+
    |           |        |           |
    |  就绪态   | <---- |  运行态   |
    |           |        |           |
    +-----------+        +-----------+
          ^                    |
          |                    |
          |                    v
    +-----------+        +-----------+
    |           |        |           |
    |  等待态   | <---- |  中断     |
    |           |        |           |
    +-----------+        +-----------+
    

进程控制块(A)

  1. 进程描述信息:包含进程的基本信息,如进程ID、进程状态、优先级等。
  2. 进程控制信息:用于管理进程的调度和执行,包括程序计数器、调度信息等。
  3. 进程拥有资源情况:记录进程所占用的资源,如内存、I/O设备等。
  4. 进程的CPU现场信息:保存进程在被中断时的CPU寄存器状态,以便后续恢复执行。

进程控制块与进程的关系

进程控制块与进程一一对应,一个进程必须有一个控制块,且一个控制块必须且只能对着一个进程

进程控制原语(A)

进程的控制类型包括:
创建进程阻塞进程唤醒进程挂起进程激活进程撤销进程

所谓的原语,是指在管态下执行的,具有原子性的,能实现塔顶系统功能的程序段

原子性是指执行过程中不允许被中断

多道环境下调度例题<小题大题>(S)

进程同步和进程互斥(B)

  1. 进程同步
    进程同步是指多个进程协调执行顺序,以确保共享数据的一致性。

  2. 进程互斥
    进程互斥是指在同一时刻只有一个进程可以访问共享资源,以防止数据冲突。

临界区和使用规则(B)

临界区

临界区是指访问共享资源的程序代码片段,确保在同一时刻只有一个进程可以执行该代码。

使用规则

  1. 有空让进:如果临界区为空,允许进程进入。
  2. 无空等待:如果临界区已被占用,进程应等待。
  3. 多中择一:如果多个进程请求进入临界区,选择其中一个进入。
  4. 有限等待:每个进程在等待进入临界区时,应该在有限时间内被允许进入。

进程通信(A)

  1. 低级通信
    低级通信通常指通过操作系统提供的基本机制进行进程间的直接通信。

  2. 高级通信

    • 共享存储区:多个进程可以访问同一块内存区域,效率最高
    • 消息通信:进程通过发送和接收消息进行通信,适合松耦合的进程。
    • 管道通信:通过管道传输数据,使用生产者-消费者方式进行通信的共享文件效率最低,适用于简单的进程间通信。

进程死锁的预防机制(A)

四大死锁预防条件

  1. 破坏不可抢占条件:允许抢占资源,强制释放某些进程持有的资源。
  2. 破坏请求和保持条件:进程在请求资源时,不持有其他资源。
  3. 破坏循环等待条件:对资源进行排序,确保资源请求遵循一定的顺序。
  4. 互斥使用:确保资源在某一时刻只能被一个进程使用。

进程死锁的避免机制(A)

死锁避免机制通过动态分析资源分配情况,确保系统始终处于安全状态,从而避免死锁的发生。

死锁避免的典型算法

  • 银行家算法:核心思想是根据当前资源分配情况和进程的最大需求,判断是否安全地分配资源,确保系统不会进入不安全状态。例题见大题

进程死锁的检测和解决(A)

  1. 检测时机
    死锁检测通常在系统资源分配的特定时刻进行,例如在资源请求时或定期检查系统状态。

  2. 检测手段

    • 资源分配图:通过构建进程-资源分配图来检测死锁。图详情见p68 2.21
  3. 死锁解除

死锁解除可以通过以下方式实现:

  • 资源剥夺:强制从某些进程中剥夺资源,释放被占用的资源。
  • 进程终止:终止某些进程以打破死锁。
  • 回滚:将某些进程回滚到安全状态,释放资源。

银行家算法,信号量和p/v操作,作业调度<大题小题>(SS)

存储管理

分页和分段存储比较(C)

特性 分页存储 分段存储
存储单位 页面(固定大小) 段(可变大小)
地址空间 逻辑地址空间被划分为固定大小的页面 逻辑地址空间被划分为逻辑段
内存管理 页表管理 段表管理
访问效率 由于固定大小,页的管理较简单 段的大小不一,管理复杂
内存碎片 内部碎片(页未完全使用) 外部碎片(段大小不一)
适用场景 适合大多数程序 适合需要逻辑结构的程序

分页存储管理机制的主要优点是解决了内存碎片的问题

页面置换算法(C)

1. 先进先出页面置换算法(FIFO)

工作原理
  • FIFO算法维护一个页面队列,记录页面的加载顺序。
  • 当发生页面缺失时,检查当前内存中的页面。
  • 如果内存已满,按照FIFO原则,替换队列中最早进入的页面。
示例

假设内存容量为3页,页面访问序列为:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5。

  • 初始状态:空内存
  • 加载1:内存[1]
  • 加载2:内存[1, 2]
  • 加载3:内存[1, 2, 3]
  • 加载4:内存[2, 3, 4](替换1)
  • 加载1:内存[3, 4, 1](替换2)
  • 加载2:内存[4, 1, 2](替换3)
  • 加载5:内存[1, 2, 5](替换4)

2. 时钟页面置换算法

工作原理
  • 时钟算法使用一个循环队列(类似时钟)来管理页面的使用情况。
  • 每个页面都有一个使用位(referenced bit),表示该页面是否被访问过。
  • 当发生页面缺失时,检查当前指针指向的页面:
    • 如果使用位为1,将其置为0,并移动指针到下一个页面。
    • 如果使用位为0,替换该页面,并加载新页面。
示例

假设内存容量为3页,页面访问序列为:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5。

  • 初始状态:空内存,指针指向第一个页面。
  • 加载1:内存[1],指针指向1。
  • 加载2:内存[1, 2],指针指向2。
  • 加载3:内存[1, 2, 3],指针指向3。
  • 加载4:内存[2, 3, 4](替换1),指针指向3。
  • 加载1:内存[3, 4, 1](替换2),指针指向4。
  • 加载2:内存[4, 1, 2](替换3),指针指向1。
  • 加载5:内存[1, 2, 5](替换4),指针指向2。

存储管理<大题小题>(S)

I/O设备管理

设备管理模块的设计目标<简答>(C)

  1. 提高系统的利用率,实现设备的并行运行。
  2. 采用虚拟技术,实现设备的动态分配。
  3. 采用缓冲技术,减少主机和外设的速度差异。
  4. 方便用户使用,屏蔽设备的物理特性。
  5. 实现与文件系统等其他模块的有机协同工作。

设备控制方式及对比<简答>(C)

  • 典型控制方式:CPU参与度高,效率低。
  • 基于询问的设备控制:CPU参与度最高,效率最低
  • 基于中断的设备控制:CPU参与度中等,效率较高。
  • 基于DMA的设备控制:CPU参与度低,效率高。
  • 基于通道的设备控制:CPU参与度最低,效率最高

缓冲技术的基本思想(C)

  1. 写操作的缓冲
    进程执行操作输出数据时,申请缓冲区,不断地把数据写到缓冲区,直到被装满。进程继续运行,系统将缓冲区内容传到I/O设备。

  2. 读操作的缓冲
    进程执行操作输入数据时,申请缓冲区,系统将内容读到缓冲区,根据进程要求,把需要的内容从缓冲区传送给进程。

引入缓冲技术的目标(C)

  1. 改善主机和I/O设备之间速度不匹配的问题
    通过缓冲技术,可以有效地解决主机与I/O设备之间的速度差异,确保数据传输的顺畅。

  2. 提高CPU和I/O设备的并行性,提高资源利用率
    缓冲技术允许CPU在等待I/O操作完成时继续执行其他任务,从而提高系统的整体效率和资源利用率。

  3. 减少I/O中断次数,放宽对CPU中断响应的要求
    通过使用缓冲区,可以减少频繁的I/O中断,从而降低对CPU中断响应的要求,提高系统的稳定性。

硬盘的存储空间管理(C)

访问硬盘上的数据依赖以下三个参数:

  1. 柱面号/磁道号
    柱面号或磁道号指的是数据位于硬盘上某个特定半径的磁道上。

  2. 扇区号/块号
    是指数据位于某磁道的哪一个扇区上

  3. 磁头号/盘片号
    数据位于哪一个盘面上

I/O设备管理大题小题(SS)

文件管理

文件目录的基本要求(C)

文件目录要能满足以下的功能性和性能要求:

  1. 实现按名存储
    文件目录应能够根据文件名进行存储和管理,方便用户通过文件名快速找到所需文件。

  2. 提高检索速度
    文件目录应具备高效的检索机制,以提高文件的查找速度,减少用户等待时间。

  3. 实现文件共享
    文件目录应支持文件共享功能,允许多个用户或进程同时访问同一文件,提高资源利用率。

  4. 允许文件重名
    文件目录应允许同一目录下存在同名文件,通过不同的路径或其他标识来区分,从而提高灵活性。

文件控制块的有序集合就构成了文件目录

允许文件重名的条件

允许文件重名的条件通常包括以下几点:

  1. 不同的目录路径
    同一文件名可以在不同的目录中存在。例如,/folder1/file.txt/folder2/file.txt 可以同时存在。

  2. 文件扩展名的区分
    在某些系统中,文件名的扩展名可以作为区分的依据。例如,file.txtfile.doc 可以同时存在。

  3. 使用唯一标识符
    系统可以为每个文件分配一个唯一的标识符(如文件ID),即使文件名相同,系统仍能通过标识符来区分不同的文件。

  4. 版本控制
    在版本控制系统中,同一文件的不同版本可以使用相同的文件名,通过版本号或时间戳来区分。

  5. 命名空间
    在某些系统中,文件名可能会被放置在不同的命名空间中,从而允许相同的文件名存在于不同的命名空间中。

不同文件物理结构的性能对比(C)

性能指标 顺序文件结构 链接文件结构 索引文件结构
读取性能 顺序读取,随机读取都高 顺序读取一般,随机读取速度差 顺序读取一般,随机读取速度高
插入删除性能 开销大 开销小 开销小
文件拓展性 受限
系统资源使用率
可靠性 会受影响

文件安全的基本要求(C)

文件安全应满足以下基本要求:

  1. 保障有权限的合法用户对文件的各种合法操作

  2. 防止没权限的用户对文件的非法操作

  3. 防止非法用户冒充合法用户对文件进行操作

  4. 防止有权限的合法用户对文件的非法操作

文件管理题目(S)