一、进程的描述

为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。

1.进程控制块PCB——task_struct

进程状态

进程打开的文件

进程优先级信息

2.操作系统的三大管理功能

进程管理

内存管理

文件系统

3.进程的状态

主要有就绪、等待、运行等。

二、进程的创建

创建进程的系统调用有3个,它们通过统一的系统调用接口进入核心态运行后就分道扬镳,各自调用自己的内核函数sys_fork、sys_clone、sys_vfork进行处理。这三个函数最终都是调用do_fork函数进行创建子进程的工作,只不过使用的参数有所不同。

Linux通过复制父进程来创建一个新进程:复制父进程PCB--task_struct来创建一个新进程,要给新进程分配一个新的内核堆栈。

修改复制过来的进程数据,比如pid、进程链表等等执行copy_process和copy_thread。

之后,从ret_from_fork开始执行新进程。

三、实验内容

1.删除menu,下载新代码并执行。

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

2.gdb设置断点,观察各个断点。

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

linux内核分析 第六周-LMLPHP

吴汉彦 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

05-11 13:45