一、进程的描述
为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。
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,下载新代码并执行。
2.gdb设置断点,观察各个断点。