第13章:进程管理
本章概述
进程是操作系统中最核心的抽象——它是程序的运行实例。本章将实现进程控制块(PCB)、进程创建与销毁、以及进程状态管理。
学习目标
- 理解进程的概念和生命周期
- 设计并实现进程控制块(PCB)
- 实现进程创建和销毁
- 管理进程状态转换
- 为下一章的调度器做准备
前置知识
- 虚拟内存(第12章)
- 中断处理(第9章)
知识要点
进程状态机
创建
│
↓
┌──── [就绪 READY] ←──────┐
│ │ │
│ 被调度 ↓ 时间片到/让出 │
│ [运行 RUNNING] ──────┘
│ │
│ 等待I/O ↓
│ [阻塞 BLOCKED]
│ │
│ I/O完成 │
└────────────┘
│
退出 ↓
[终止 TERMINATED]
进程控制块(PCB)
typedef struct process {
uint32_t pid; // 进程ID
char name[32]; // 进程名
process_state_t state; // 状态
registers_t regs; // 保存的寄存器
page_directory_t *page_dir; // 页目录
uint32_t kernel_stack; // 内核栈顶
struct process *next; // 链表指针
} process_t;文件结构
13-进程管理/
├── README.md ← 本文件
├── 理论讲解.md
├── code/
│ ├── process.h ← 进程数据结构
│ ├── process.c ← 进程管理实现
│ ├── kernel.c
│ ├── Makefile
│ └── [共享文件]
├── 常见错误.md
└── 练习题.md
构建与测试
cd code
make
make run本章收获
- ✅ PCB数据结构设计
- ✅ 进程创建与销毁
- ✅ 进程状态管理
- ✅ 进程链表维护