操作系统原理与xv6 Linux内核核心技术剖析 - 第1节

1.1 操作系统的定义与目标

1.1.1 操作系统的定义

操作系统(Operating System,OS)是计算机系统中最基本的系统软件,它负责管理计算机硬件资源、控制程序运行、改善人机交互界面,并为应用软件提供运行环境。从用户视角看,操作系统是用户与计算机硬件之间的接口;从系统视角看,操作系统是资源的管理者和分配者。

核心定义:操作系统是管理计算机硬件与软件资源的系统软件,它提供进程管理、内存管理、文件系统、设备管理和用户接口等核心功能。

1.1.2 操作系统的目标

目标维度 具体描述 衡量指标
方便性 为用户提供友好、高效的交互界面,屏蔽底层硬件复杂性 用户学习成本、操作效率
有效性 提高系统资源利用率,减少资源空闲和浪费 CPU利用率、内存利用率、I/O吞吐量
可扩展性 支持新硬件、新功能的添加,不破坏现有系统结构 模块化程度、接口稳定性
开放性 遵循标准接口,支持不同厂商软硬件的互操作 标准符合度、兼容性测试通过率
xv6 视角:xv6 作为教学操作系统,其首要目标是方便性——让学习者能够通过阅读源码理解操作系统的核心机制,而非追求极致的性能或功能完备性。

1.2 操作系统的历史演变

1.2.1 批处理阶段(1950s – 1960s 中期)

早期计算机没有操作系统,用户直接使用机器语言编程。批处理系统的出现解决了人工操作效率低下的问题:用户将作业提交给操作员,操作员将一批作业装入计算机,由监控程序自动依次执行。

  • 单道批处理:内存中仅有一道程序,CPU 在程序等待 I/O 时空闲
  • 多道批处理:内存中同时驻留多道程序,当一道程序等待 I/O 时,CPU 切换执行另一道程序
  • 关键问题:缺乏交互性,用户无法干预程序运行过程

1.2.2 分时系统(1960s 中期 – 1970s)

分时系统将 CPU 时间划分为很短的时间片,轮流分配给多个终端用户。由于时间片极短(通常为几十毫秒),每个用户都感觉自己独占了一台计算机。

  • CTSS(Compatible Time-Sharing System):第一个实用的分时系统,由 MIT 开发
  • Multics:分时系统的里程碑,影响了后来的 Unix 系统
  • Unix:由 Ken Thompson 和 Dennis Ritchie 在贝尔实验室开发,奠定了现代操作系统的基础

1.2.3 实时系统(1970s 至今)

实时系统要求系统在严格的时间约束内完成特定任务,常用于工业控制、航空航天、医疗设备等场景。

类型 特点 典型应用 时间约束
硬实时 必须严格遵守截止时间,超时即视为系统失败 飞行控制系统、汽车安全气囊 微秒级
软实时 允许偶尔超时,但超时会降低系统服务质量 视频播放、在线游戏 毫秒级
操作系统历史演变时间线 1940 1950 1960 1970 1980 1990 批处理系统 分时系统 实时系统 关键里程碑: • 1956: GM-NAA I/O — 第一个批处理系统 • 1969: Unix — 分时系统的集大成者,现代操作系统的基石

1.3 操作系统的四大特征

1.3.1 并发(Concurrency)

并发是指两个或多个事件在同一时间间隔内发生。在操作系统中,宏观上多个程序同时运行,微观上单核 CPU 在任一时刻只能执行一个程序,通过快速切换实现并发。

并发 vs 并行:并发是逻辑上的同时执行(交替执行),并行是物理上的同时执行(多核同时运行)。xv6 在单核上通过时间片轮转实现进程并发。

1.3.2 共享(Sharing)

共享是指系统中的资源可以被多个并发执行的进程共同使用。共享方式分为两种:

共享方式 定义 示例 同步要求
互斥共享 资源在一段时间内只能被一个进程使用 打印机、磁带机 需要互斥锁
同时共享 资源允许多个进程同时访问 磁盘、内存(只读段) 需要读写锁

1.3.3 虚拟(Virtualization)

虚拟技术将一个物理实体映射为多个逻辑实体,或者将多个物理实体映射为一个逻辑实体。操作系统通过虚拟化技术为用户提供比物理资源更丰富、更易用的资源视图。

  • 虚拟处理器:通过分时复用,让每个进程感觉自己独占 CPU
  • 虚拟内存:通过页表映射,让每个进程拥有独立的地址空间
  • 虚拟设备:通过 SPOOLing 技术,将独占设备虚拟为共享设备
操作系统虚拟化抽象层 进程 A 进程 B 进程 C 进程 D 操作系统虚拟化层 虚拟CPU · 虚拟内存 · 虚拟设备 物理 CPU(单核) 物理内存 物理设备 虚拟化:将 1 个物理 CPU 虚拟为 N 个逻辑 CPU,每个进程感觉自己在独占运行

1.3.4 异步(Asynchronism)

异步是指进程的执行不是一贯到底的,而是以不可预知的速度向前推进。由于资源竞争和 I/O 等待,进程可能随时被暂停或恢复执行。

异步带来的挑战:进程执行顺序的不确定性可能导致竞态条件(Race Condition)。xv6 通过锁机制(spinlock)来保证临界区的互斥访问,确保异步环境下数据的一致性。

1.4 四大特征的内在联系

并发和共享是操作系统最基本的两个特征,虚拟和异步是前两个特征衍生出来的结果。

四大特征关系图 操作系统 并发 共享 虚拟 异步 并发是前提,共享是结果,虚拟是手段,异步是表现