INTRODUCTION 导论:

A. Overview 概述:

a. Definition 定义:

  1. Definition 定义: OS, Operating System 操作系统, 是管理计算机硬件资源并为程序提供运行环境、抽象接口和保护机制的系统软件
  2. Position 定位: 操作系统协调应用对 CPU、内存、存储与设备的使用;Kernel 内核是承担受保护核心职责的部分, Shell 与系统工具通常运行在用户态
  3. Concurrency and Sharing 并发与共享: 多个任务可以交替或同时推进并共享资源;并发不要求多个物理核心, 并行指多个任务在同一时刻实际执行
  4. Virtualization and Asynchrony 虚拟化与异步性: 通过进程、地址空间和文件等抽象隐藏部分物理细节;任务进展受调度和事件影响, 不必遵循固定相对速度

b. Core Goals 核心目标:

  1. Resource Management 资源管理: 分配、调度和回收 CPU、内存、存储及网络设备等资源, 在效率、公平性和响应之间取舍
  2. Abstraction 抽象: 提供进程、文件、虚拟地址空间与套接字等软件对象, 让程序通过统一接口使用资源
  3. Protection and Isolation 保护与隔离: 限制未授权访问并隔离故障, 结合地址空间、特权级和访问控制建立边界

image.png

B. OS Structure 操作系统结构:

a. OS Architecture 操作系统架构:

层面 内容 作用
User Level 用户层 Apps、Shell、System Tools 提供应用功能和用户交互
System Call Interface 系统调用接口 open、read、fork、exec 系列等平台接口 请求内核执行受控操作, 接口名称与语义依平台而异
Kernel Level 内核层 进程、内存、文件系统、驱动 管理资源、验证权限与协调执行
Hardware Level 硬件层 CPU、Memory、I/O Devices 执行指令、存储数据和提供设备能力

b. Privilege and Entry 特权与入口:

  1. User and Kernel Mode 用户态与内核态: 硬件限制用户程序执行受保护操作;切换到内核态是特权状态变化, 不必然切换到另一个进程
  2. System Call 系统调用: 用户程序通过库或平台接口准备参数并进入规定入口;内核验证参数与权限, 完成或安排操作后返回结果
  3. Exception and Interrupt 异常与中断: 异常与当前指令执行有关, 如缺页;设备中断通常来自外部事件;硬件入口、陷入分类和返回约定依平台而异

c. Kernel Organization 内核组织:

  1. Monolithic Kernel 宏内核: 多个核心服务运行在内核空间, 调用路径紧密;模块化组织可以改善扩展性, 但故障仍可能影响内核
  2. Microkernel 微内核: 将部分服务放入用户空间并通过通信协调, 缩小受保护核心;接口与通信设计影响性能和隔离
  3. Hybrid Designs 混合设计: 实际系统常综合多种取舍, 不能仅凭一个标签判断全部实现

d. Components of OS 核心组件:

  1. Process and Thread Management 进程与线程管理: 管理创建、执行、终止、状态和通信, 处理器调度决定可运行执行单元的运行机会
  2. Memory Management 内存管理: 管理地址空间、物理页、页表映射、保护、缺页处理与回收
  3. File System 文件系统: 组织文件、目录、元数据、权限、空间分配与持久化更新
  4. I/O and Device Management 设备与 I/O 管理: 通过驱动提交请求, 协调中断、DMA、等待、缓冲、缓存与假脱机
  5. Protection and Security 保护与安全: Authentication 认证确认身份, Authorization 授权决定允许的操作;结合特权级、权限与隔离降低越界访问
  6. Networking 网络子系统: 许多现代系统提供 Socket、协议栈和相关策略;协议本身在计算机网络笔记展开

image.png

<aside>

Read Request 读取请求:

  1. Request 请求: 应用调用 read 类接口, 提供文件描述符、缓冲区与长度
  2. Entry 进入: 执行系统调用入口, 内核检查描述符、权限与用户缓冲区
  3. Service 服务: 若缓存满足请求则复制数据;需设备 I/O 时提交请求, 调用线程可能阻塞
  4. Completion 完成: 设备完成后内核处理通知并唤醒等待者, 调度器选择可运行线程
  5. Return 返回: 程序获得已读取字节数或错误;一次系统调用可以包含多次调度变化, 也可能直接返回 </aside>

I. PROCESS MANAGEMENT 进程管理:

A. Process 进程:

a. Definition 定义:

I. Process 进程:

  1. Program and Process 程序与进程: 程序是指令与数据的静态描述, 进程是其执行实例及相关运行状态;同一程序可以对应多个进程
  2. Resources 资源: 进程通常承载地址空间、打开文件和安全身份等资源;独立地址空间并不排斥显式共享映射
  3. Scheduling 调度: 支持内核线程的系统通常以线程作为可调度执行单元;进程与线程的内部组织依 OS 实现而异

II. Thread 线程:

  1. Execution Context 执行上下文: 线程具有自己的 PC、寄存器和栈等执行状态;同进程线程通常共享代码、地址空间及打开文件等资源
  2. Concurrency and Parallelism 并发与并行: 多个线程可以交替推进;同时在多个核心执行才形成硬件并行
  3. User and Kernel Threads 用户与内核线程: 用户态运行时可调度用户线程, OS 调度内核可见的执行单元;二者映射方式影响阻塞和并行能力

b. PCB 进程控制块:

  1. Definition 定义: PCB, Process Control Block 进程控制块, 是内核记录进程状态和资源的概念性结构;多线程系统常另有线程控制与保存状态结构, 具体字段和名称依实现而异
信息 作用
PID 与身份 标识进程及关联安全上下文
PC、寄存器与栈状态 单线程教学模型可归于 PCB;多线程系统通常为每个线程保存执行上下文
内存信息 地址空间、映射区间、页表根及相关管理信息;程序布局和实现依平台而异
I/O 与打开文件 记录或引用打开文件表、等待对象和请求状态
调度信息 状态、优先级、运行时间及队列关联;线程调度系统通常记录在线程相关结构

c. Process Lifecycle 进程生命周期:

  1. New 新建: 创建标识与必要管理结构, 建立运行环境;不要求全部程序页面已经装入物理内存
  2. Ready 就绪: 具备运行条件, 等待 CPU
  3. Running 运行: 正在 CPU 上执行;多核系统可同时运行多个线程
  4. Waiting or Blocked 等待或阻塞: 等待 I/O、同步对象或其他事件, 当前不具备运行条件
  5. Terminated 终止: 执行结束并回收资源;Unix 类系统的僵尸状态通常保留退出信息等待父进程获取, 并非继续执行
  6. Transitions 状态转换: 调度使 Ready → Running;抢占使 Running → Ready;等待使 Running → Blocked;事件完成使 Blocked → Ready, 不保证立即运行

d. Context Switch 上下文切换:

  1. Saved State 保存状态: 保存当前执行单元的寄存器、PC、栈等状态, 恢复下一执行单元的状态;切换地址空间时需按平台规则更新相关映射上下文
  2. Mode Switch 模式切换: 用户态进入内核态并不必然更换线程;同一线程完成系统调用后可以返回用户态
  3. Cost 开销: 保存恢复、调度和 Cache/TLB 状态变化可能产生额外成本;切换自身不推进应用计算, 但支持共享资源、响应和等待处理

e. Creation and Termination 创建与终止:

II. MEMORY MANAGEMENT 内存管理:

III. FILE MANAGEMENT 文件管理:

IV. DEVICE MANAGEMENT 设备管理: