操作系统(1):概述

Last updated on June 18, 2025 pm

这是《操作系统》课程的课程笔记系列。本文整理部分为“第1章:操作系统概述”。

1.1 操作系统的基本概念

1.1.1 操作系统的功能

  • 资源的管理者:负责管理协调硬件、软件等计算机资源的工作
    • 管理内容:处理机管理(Chapter2)、存储器管理(Chapter3)、文件管理(Chapter4)、设备管理(Chapter5)
  • 向上层提供服务:为上层用户、应用程序提供简单易用的服务
    • 给用户使用
      • GUI:用户图形界面
      • 联机命令接口:即交互式命令接口,如 Windows 的命令提示符(说一句做一句)
      • 脱机命令接口:即批处理命令接口,如 .bat 文件(说一堆做一堆)
    • 给应用程序:程序接口,由系统调用组成,用户通过程序间接使用
  • 对硬件机器的扩展:将裸机改造为扩充机器,是一种系统软件

1.1.2 操作系统的特征

  • 并发:多个事件在同一时间间隔内发生
    • 宏观上同时发生,微观上交替发生
    • 并行:多个事件在同一时刻同时发生
  • 共享:资源可供内存中多个并发进程共同使用
    • 互斥共享方式:一个时间段内只允许一个进程访问(如摄像头)
    • 同时共享方式:一个时间段内允许多个进程“同时”访问(微观可能交替,如硬盘)
  • 虚拟:将一个物理上的实体变为若干逻辑上的对应物
    • 空分复用技术:如虚拟存储器
    • 时分复用技术:如虚拟处理器
  • 异步:由于资源有限,进程的执行不连续,以不可预知的速度推进

1.2 操作系统发展历程

  • 手工操作阶段:所有工作人工干预
    • 缺点:用户独占全机、人机速度矛盾
  • 批处理阶段
    • 单道批处理系统:引入脱机输入输出技术
      • 优点:缓解人机速度矛盾
      • 缺点:系统资源利用率仍较低
    • 多道批处理系统:操作系统开始出现
      • 优点:多道程序并发执行,资源利用率高
      • 缺点:不提供人机交互功能
  • 分时操作系统:多用户通过终端同时共享一台主机
    • 优点:提供人机交互服务
    • 缺点:不能优先处理紧急任务
  • 实时操作系统
    • 优点:能优先处理紧急任务
    • 硬实时系统:必须在绝对严格的规定时间内完成处理
    • 软实时系统:能接受偶尔违反时间规定
  • 网络操作系统和分布式操作系统
  • 个人计算机操作系统

1.3 操作系统的运行环境

1.3.1 操作系统的运行机制

  • 内核:操作系统最重要最核心的部分,由很多内核程序组成
    • 时钟管理:实现计时功能,时钟中断可实现进程切换
    • 中断处理:负责实现中断机制(保护和恢复中断现场的信息,转移控制权到处理程序)
    • 原语:是一种特殊的程序
      • 处于操作系统最底层,最接近硬件
      • 运行具有原子性,只能一气呵成,不能中断
      • 运行时间较短,但调用频繁,如 CPU 切换
    • 系统资源管理:进程管理、存储器管理、设备管理
  • 两类程序
    • 内核程序:可以执行特权指令
    • 应用程序:不可以执行特权指令
  • 两种指令
    • 特权指令:不允许用户直接使用的指令
      • 如:I/O 指令、内存清零指令、存取用于内存保护的寄存器等
    • 非特权指令:允许用户直接使用的指令
      • 不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间
  • 两种处理器状态
    • 内核态:表明此时正在运行的是内核程序,可以执行特权指令
    • 用户态:表明此时正在运行的是应用程序,只能执行非特权指令
    • 该状态一般记录在 CPU 的程序字状态寄存器(PSW)中
  • 处理器状态切换
    • 内核态->用户态:操作系统用一条特权指令将 PSW 中的标志位设置为用户态
    • 用户态->内核态:CPU 检测到中断信号后,会立即变为内核态(硬件自动完成)
      • 并停止运行当前的应用程序,转而运行处理中断信号的内核程序

1.3.2 中断和异常

  • 作用:操作系统内核重新获得 CPU 控制权的唯一途径,使 CPU 从用户态切换到内核态
  • 中断:也称外中断,与当前执行的指令无关,中断信号来源于 CPU 外部
    • 如:时钟中断(由时钟部件发出,实现进程切换)、I/O 中断(由 I/O 设备发出)
  • 异常:也称内中断,与当前执行的指令有关,中断信号来源于 CPU 内部
    • 陷入(Trap):由陷入指令引发,是应用程序故意引发的
      • 用于应用程序请求操作系统内核的服务
      • 如:系统调用
    • 故障(Fault):由错误条件引起,可能被内核程序修复
      • 修复后会将 CPU 使用权还给应用程序,该程序继续执行
      • 如:缺页故障
    • 终止(Abort):由致命错误引起,内核程序无法修复
      • CPU 使用权不会还给改该应用程序,而是直接终止该应用程序
      • 如:整数除 0、非法使用特权指令
  • 中断和异常的处理
    • 检查中断信号
      • 异常:CPU 在执行指令时会检查是否有异常发生
      • 中断:每个指令周期末尾,CPU 都会检查是否有中断信号需要处理
    • 找到相应的中断处理程序:中断向量表(根据中断信号的不同类型)

1.3.3 系统调用

  • 系统调用:操作系统提供给应用程序(程序员)使用的接口
  • 系统调用的功能:与共享资源有关的操作都必须通过系统调用来实现
    • 如:设备管理、文件管理、进程控制、进程通信、内存管理
  • 系统调用的过程
    1. 应用程序传递系统调用参数
    2. 执行陷入指令,引发中断,CPU 由用户态转为内核态
    3. 由操作系统内核程序处理系统调用请求
    4. 内核程序将 CPU 使用权还给应用程序,返回原应用程序

1.4 操作系统结构

  • 分层法:内核分为多层,每层单向调用更低一层提供的接口
    • 优点
      • 便于调试和验证(自底向上逐层调试验证)
      • 易扩充和易维护,各层之间调用接口清晰固定
    • 缺点
      • 仅可调用相邻低层,难以合理定义各层的边界
      • 效率低,不可跨层调用,系统调用执行时间长
  • 模块化:将内核划分为多个模块,各模块之间相互协作
    • 内核由主模块和可加载内核模块组成
      • 主模块:只负责核心功能,如进程调度、内存管理
      • 可加载内核模块:可动态加载新模块到内核,而无需重新编译整个内核
    • 优点
      • 模块间逻辑清晰易于维护,确定模块接口后可多模块同时开发
      • 支持动态加载新的内核模块(如安装设备驱动程序),增强 OS 适应性
      • 任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
    • 缺点
      • 模块间的接口定义未必合理实用
      • 模块间相互依赖,更难调试和验证
  • 宏内核(大内核):将操作系统的主要功能模块都作为系统内核,运行在核心态
    • 优点:内核各模块间可以相互调用,性能高
    • 缺点
      • 内核庞大,结构复杂,难以维护
      • 内核中某个功能模块出错,可能导致整个系统崩溃
  • 微内核:只把最基本的功能保留在内核(中断、原语、进程通信等)
    • 优点
      • 内核功能少,结构清晰,方便维护
      • 可靠性高,内核外某个功能模块出错不会导致整个系统崩溃
    • 缺点
      • 需要频繁地在内核态和用户态之间切换,性能低
      • 用户态下的各功能模块不可直接相互调,只能通过内核的消息传递来间接通信
  • 外核:内核负责进程调度和通信等功能,外核负责为用户进程分配未经抽象的硬件资源
    • 优点
      • 用户进程可以更灵活地使用硬件
      • 减少了虚拟硬件资源的映射层,效率提高
    • 缺点
      • 降低了系统的一致性
      • 使系统更加复杂

1.5 操作系统引导

  • 操作系统引导:操作系统的加载和启动过程
  • 引导过程
    1. CPU 读取并执行 ROM 中的引导程序(BIOS),先硬件自检再开机
    2. 将主引导记录(MBR)读入内存,执行磁盘引导程序,扫描分区表
    3. 从活动分区(即操作系统所在分区)读入分区引导记录(PBR),执行其中的程序
    4. 从根目录下找到操作系统初始化程序(即启动管理器)并执行,完成开机动作

1.6 虚拟机

  • 虚拟机:利用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器
  • 虚拟机管理程序(VMM)
对比维度 第一类 VMM 第二类 VMM
对物理资源的控制权 直接运行在硬件之上,能直接控制和分配物理资源 运行在宿主 OS 之上,依赖于宿主 OS 为其分配物理资源
资源分配方式 安装客户 OS 时,VMM 自行分配存储空间,分配未经抽象的物理硬件 VMM 为客户 OS 分配宿主 OS 提供的虚拟内存
性能 更好 更差,需要宿主 OS 作为中介
可支持的虚拟机数量 更多,不需要和宿主 OS 竞争资源 更少,宿主 OS 本身和宿主 OS 上运行的进程也要使用物理资源
虚拟机的可迁移性 更差 更好,只需导出镜像文件即可迁移到另一台宿主 OS 上,商业化应用更广泛
运行模式 运行在最高特权级,可以执行最高特权指令 部分运行在用户态、部分运行在内核态,客户 OS 发出的特权指令会被 VMM 捕获,并转化为 VMM 对宿主 OS 的系统调用

操作系统(1):概述
https://cny123222.github.io/2025/06/13/操作系统-1-:概述/
Author
Nuoyan Chen
Posted on
June 13, 2025
Licensed under