首页
›
Linux内核与驱动
›
107-操作系统原理
›
《xv6内核进程管理:fork与exec系统调用底层实现》
VIP10
本课程属于:107-操作系统原理
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
xv6内核进程管理:fork与exec系统调用底层实现
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
xv6操作系统概述 · 进程管理的重要性 · fork与exec在Unix/Lin…
课程导论
xv6
02
xv6源码结构
源码目录布局 · 关键文件(proc.c · syscall.c
xv6
源码结构
03
进程数据结构
struct proc详解(状态 · 上下文 · 内存
进程数据结构
struct
04
进程状态机
UNUSED · EMBRYO · SLEEPING
进程状态机
UNUSED
05
进程控制块(PCB)管理
进程表(ptable) · 进程分配与回收(allocproc · freeproc)
PCB
进程控制块
06
系统调用入口
用户态到内核态的切换(trap机制) · syscall函数分发流程
系统调用入口
trap
07
fork系统调用概述
fork的语义 · 返回值 · 写时复制(COW)概念引入
fork
系统调用概述
08
fork底层实现(一)
sys_fork入口 · 调用allocproc分配新进程结构
fork
底层实现
09
fork底层实现(二)
复制父进程上下文(trapframe · context)
fork
底层实现
10
fork底层实现(三)
复制内存空间(uvmcopy · 页表复制)
fork
底层实现
11
fork底层实现(四)
复制文件描述符表与当前工作目录
fork
底层实现
12
fork底层实现(五)
设置子进程返回值为0 · 父进程返回子进程PID
fork
底层实现
13
fork与写时复制(COW)
xv6原始fork的局限性 · COW优化思路
fork
COW
14
进程调度与fork
fork后子进程状态变为RUNNAB… · 调度器选择运行
fork
进程调度
15
exec系统调用概述
exec的语义 · 程序加载与替换进程映像
exec
系统调用概述
16
exec底层实现(一)
sys_exec入口 · 读取ELF文件头
exec
底层实现
17
exec底层实现(二)
解析ELF程序头 · 加载段到内存
exec
底层实现
18
exec底层实现(三)
分配用户栈 · 设置argc/argv
exec
底层实现
19
exec底层实现(四)
释放旧内存映像 · 切换新页表
exec
底层实现
20
exec底层实现(五)
设置trapframe中的入口点(e…
exec
底层实现
21
exec与文件系统交互
通过路径名查找inode · 读取文件内容
exec
文件系统交互
22
exec错误处理
文件不存在 · ELF格式错误 · 内存不足等场景
exec
错误处理
23
fork与exec的协同
shell中fork+exec典型流… · 父子进程分工
fork
exec
24
进程退出与回收
exit系统调用 · 子进程变为ZOMBIE · wait系统调用
进程退出
回收
25
wait系统调用实现
查找ZOMBIE子进程 · 释放子进程资源
wait
系统调用实现
26
进程资源释放
freeproc释放PCB · 内存 · 文件描述符
进程资源释放
freeproc
27
系统调用性能分析
fork/exec的开销 · 上下文切换代价
系统调用性能分析
fork/exec
28
xv6与Linux对比
xv6简化设计 vs Linux复杂… · vfork · clone)
xv6
Linux
29
实验与调试
使用QEMU+gdb调试fork/e… · 观察进程状态变化
实验
调试
30
课程总结
fork/exec设计哲学 · xv6教学价值 · 进一步学习方向
课程总结
fork/exec
所属VIP或分类
同VIP:内存管理核心:VMA结构分析与缺页中断处理流程
同VIP:同步互斥实战:Linux内核futex与读写锁实现
同VIP:同步互斥难题:Linux内核RCU机制与读写锁对比