linux进程管理-2进程创建
0、前言
主要分析进程创建fork,线程、进程关系、copy_on_write。
1、复制进程
fork是通过复制父进程的方式来创建一个新的进程,内核中相关键函数和流程主要是被定义在了kernel/fork.c之中,通过fork.c里我们可以看到,有几个常用的sys_call:
* fork
* vfork
linux进程管理-1描述符和状态
1、task_struct数据结构
描述进程状态的基础数据结构名称是task_struct,在内核的include/linux/sched.h中定义。
随着内核的发展,这个结构体里的内容越来越多,6.6的版本上,现在直接800+行,下边截取一些关键的片段。
struct task_struct {
#ifdef
linux进程管理-kthread
0、背景
kthread是指代特殊的在内核态运行的线程,其创建、管理的逻辑与普通集成有所区别,但在调度上还是与其他进程或者线程是类似的。
1、创建
内核线程的创建主要是通过kthread_create,另外kthread_run也可创建线程,区别是在创建的同时还会直接运行这个线程。
可以看到kthread_create的实际原型是kthread_create_on_node。
#define kthread_