用户态进程:如何创建,如何销毁
如何创建 分为两个步骤:
fork()/clone() 创建新内核线程 execve() 执行新用户态程序 新 forked 出来的线程如何开始工作 在 fork()/clone() 的过程中:
由 copy_process() 调用体系结构相关的 copy_thread() 来构造新线程的上下文; 由 wake_up_new_task() 将新线程的 task_struct 挂到某个 CPU 的 run queue 上,待调度器调度执行。 x86_64 1copy_thread(p, args) { 2 struct pt_regs *childregs = task_pt_regs(p); 3 struct fork_frame …