Linux总结
Linux 模型
- 系统调用
- I/O
- 文件系统
- 设备驱动
- 内存管理
- 虚拟内存
- 页面替换
- 页面缓存
- 进程管理
- 创建
- 切换
- 调度
- 中断
进程管理
进程创建
- 0 号进程由上帝之手创建
- 1 号进程由 pthread_create()创建,是用户进程的祖先
- 2 号进程同样由 pthread_create()创建,是内核线程的祖先
fork()和 pthread_create()都调用了_do_fork()
进程切换
假设某一时刻进程 A 在 CPU 上运行,突然来了一个时钟中断,此时硬件会把 CPU 相关状态保存到进程 A 的内核栈并陷入内核,这是中断上下文的切换,此时 CPU 的控制权由内核持有,假设内核决定切换到进程 B,它会调用 switch 例程,把当前 CPU 状态保存到 task_struct 结构体里,这是进程上下文的切换,后面会从进程 B 的 task_struct 结构体里保存的 CPU 状态恢复到相关寄存器,这就切换到了进程 B,接着从进程 B 的内核栈恢复相关寄存器,从内核态返回用户态。
进程调度
Linux 有 0~139 共 140 个优先级,0~99 为实时进程,100~139 为普通进程,可分为三种调度:
- 实时 FIFO
- 实时 RR
- 普通优先级调度

浙公网安备 33010602011771号