Linux操作系统分析 Chapter9进程管理 陈香兰(xlanchend@ustc.edu.cn) 计算机应用教研室。计算机学院 嵌入式系统实验室苏州研究院 中国科学技术大学 Fa112014 December 23,2014 1口t4四1是142月00 陈香兰(xlanchenouste,edu,cn)(升异款应Lnux棕作系统分行Chapter 9注任管理 December 23.2014 1 /95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linux操作系统分析 Chapter 9 进程管理 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2014 December 23, 2014 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 9 进程管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) December 23, 2014 1 / 95
Outline ○进程描逑符 。Linux的进程描遂符:task_struct ●进程的栈和thread info数据结构 。进程相关的几个链表 ●proC文件系统简介 进程的等待和唤醒 ③进程切换 ●进程上下文 ●上下文切换 进程的创建和删除 。进程的创建 ●Linux的进程创建 。内核线程及其创建 ●进程树及其开始 ·进程的终止和刷除 ○进程调度 ·进程的分类 ●Linux中的调度策略和调度算法 ●Linux-2.6.26中的调度相关数据结构和代码 ●Linux2.6.26中的优先级及其设置 需小结和作业 1口4四1是4P在刀00 练查兰(xlanchenoustc,.ed加,cn)(升界丸应Linuxs操作系统分折Chapter 0连花管现 December 23.2014 2/95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline . 1. 进程描述符 Linux的进程描述符:task_struct 进程的栈和thread_info数据结构 进程相关的几个链表 proc文件系统简介 .2 进程的等待和唤醒 .3 进程切换 进程上下文 上下文切换 4. 进程的创建和删除 进程的创建 Linux的进程创建 内核线程及其创建 进程树及其开始 进程的终止和删除 5. 进程调度 进程的分类 Linux中的调度策略和调度算法 Linux-2.6.26中的调度相关数据结构和代码 Linux2.6.26中的优先级及其设置 .6 小结和作业 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 9 进程管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) December 23, 2014 2 / 95
进程和线程 。多道程序,对操作系统的需求→进程 。进一步提高并发度,对操作系统的需求→线程 ·进程是执行程序的一个实例 ·几个进程可以并发的执行一个程序 ·一个进程可以顺序的执行几个程序 。进程和程序的区别?线程和进程的区别? ●Linux2.4内核以及之前的版本都不支持线程 Linux2.6内核中有thread,但仍不是线程 ~Linux中的线程主要在用户态实现,不是本课程的内容 ~但Liux内核对用户态线程有一定的辅助支持 4口4四1是14P,刀00 东香兰(xlanchenoustc,ed加,cn)(计异丸应L1nux操作系统分折Chapter 0注在管理 December 23.2014 4 /95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 进程和线程 . . 多道程序,对操作系统的需求⇒进程 进一步提高并发度,对操作系统的需求⇒线程 进程是执行程序的一个实例 ▶ 几个进程可以并发的执行一个程序 ▶ 一个进程可以顺序的执行几个程序 进程和程序的区别?线程和进程的区别? Linux 2.4内核以及之前的版本都不支持线程 Linux 2.6内核中有thread,但仍不是线程 ▶ Linux中的线程主要在用户态实现,不是本课程的内容 ▶ 但Linux内核对用户态线程有一定的辅助支持 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 9 进程管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) December 23, 2014 4 / 95
唯一的标识一个进程 ●使用进程描述符地址 ·进程和进程描述符之间有非常严格的一一对应关系,使得 用32位进程描述符地址标识进程非常方便 O使用PID(Process ID,PID) ~每个进程的PID都存放在进程描述符的pid域中 常用接口getpid() 在/proc文件系统中列出所有的进程 1s /proc -U 1口4四1是42在月0C 陈香兰(xlanchenoustc,ed加,cn)(计异款应Linux操作系统分折Chapter 9洗任管理。 December 23.2014 5/95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 唯一的标识一个进程 1. 使用进程描述符地址 ▶ 进程和进程描述符之间有非常严格的一一对应关系,使得 用32位进程描述符地址标识进程非常方便 2. 使用PID (Process ID,PID) ▶ 每个进程的PID都存放在进程描述符的pid域中 ▶ 常用接口getpid() . 在/proc文件系统中列出所有的进程 . . ls /proc -U 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 9 进程管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) December 23, 2014 5 / 95
Outline ①○进程描逑符 ●Linux的进程描速符:task_struct 。进程的钱和thread info最据结物 。进程相关的几个佳表 。proc文件系航简价 进程的等待和唤醒 进程切提 。进程上下文 a上下文切换 ●进程的创建和则除 。进程的创建 o Linux的进程创建 。内核线程及其创建 。进程树及其开焰 。近程的终止和刷 进程调度 。进程的分美 aLix中的调度菜略和调度算法 o Linux-2.6.26中的调度相关数据结构和代码 0L山x2.6.26中的优先级及其设盟 小结和作 4口4四1是14P,刀00 东奇兰(x1 anchenoustc,ed加,cn)(计异款应Linux操作系统分折Chapter 9注任管理 December 23.2014 6 95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline . 1. 进程描述符 Linux的进程描述符:task_struct 进程的栈和thread_info数据结构 进程相关的几个链表 proc文件系统简介 .2 进程的等待和唤醒 .3 进程切换 进程上下文 上下文切换 4. 进程的创建和删除 进程的创建 Linux的进程创建 内核线程及其创建 进程树及其开始 进程的终止和删除 5. 进程调度 进程的分类 Linux中的调度策略和调度算法 Linux-2.6.26中的调度相关数据结构和代码 Linux2.6.26中的优先级及其设置 .6 小结和作业 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 9 进程管理 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) December 23, 2014 6 / 95