简图记录-linux进程的管理与调度

简图记录学习~

参考:linux 内核设计与实现、Unix环境高级编程


进程就是执行期的程序及其相关资源(如打开的文件、映射的地址空间、执行线程等)的集合

linux内核通过一个双向循环链表tasklet管理进程,每一相为一个进程描述符,进程描述符包含了进程的所有信息(如进程标示PID、打开文件、地址空间、挂起信号、进程状态 等)。

学习linux进程的管理,要理解相关概念:什么是进程上下文、进程的家族树、进程的状态切换、线程的概念(linux并没有与Windows一样有比较明确的线程概念、都是通过task管理,可以理解为共享相关系统资源的轻量级进程)、内核线程与用户线程。

然后掌握进程相关的控制接口:创建fork、vfork;终止exit;等待wait、waitpid、执行excel、system;内核线程管理:kthread、wake_up_process、kthread_stop;用户线程管理(依赖C库):创建pthread_create、pthead_exit、pthread_join及相关线程同步的锁和条件等待接口。

当然,学好进程的基本管理后下一步一定要掌握进程间通信方法。


进程的调度概念就是说决定什么时候执行一个进程、什么时候停止一个进程的策略。

学习进程调度策略,要理解什么是分时操作系统和实时操作系统、进程从调度的角度分类(交互进程、批处理、实时进程)、评价一个调度策略的主要因素

linux常见的调度策略有:SCHED_NORMAL、SCHED_FIFO、SCHED_RR,要理解他们的基本原理。


简图记录-linux进程的管理与调度