结论:PCB(Process Control Block,Linux 中是 task_struct)是内核为每个进程维护的管理结构,保存进程标识与状态、调度信息、CPU 上下文、内存管理信息、打开文件表、信号处理、资源统计等。它是进程存在的唯一标志——操作系统对进程的一切管理(调度、切换、资源回收)都通过 PCB 进行。
展开:按用途分组记忆:1)标识与关系:PID、PPID、用户/组 ID、父子兄弟进程链表指针;2)状态与调度:运行/就绪/阻塞状态、优先级、时间片、调度策略、CPU 亲和性;3)上下文保存:切换时要保存/恢复的寄存器值(程序计数器、栈指针、通用寄存器),这是进程能"接着上次跑"的关键;4)资源清单:页表基址(地址空间)、打开文件描述符表、当前工作目录、信号掩码与处理函数表。易错点:线程在 Linux 里也是 task_struct,线程间共享的部分(地址空间、文件表)通过指针指向同一份结构实现。
追问方向:fork 时 PCB 哪些字段被复制/重置、上下文切换时 PCB 的读写顺序。