新的进程通过克隆旧的进程来建立,当前进程是通过fork()系统调用来建立新的进程 当系统调用结束时,内核在系统的物理内存中为新进程分配新的task_struct结构,并为新进程要使用的堆栈分配物理页和进程标志符 父进程和子进程共享打开的文件 fork()的简单流程 如上图所示,分别使fork调用前后的两个部分 PC指向当前执行的语句,fork之前,它指向第一个printf语句,fork调用之后进程A、B一起运行,A是父进程,B是子进程-进程A的副本,执行与A一样的程序。两个pc都指向第二个printf语句。也就是AB从程序的相同点开始执行 Fork()执行的内存变动如下: 分配1页给task_struct结构 分配1页给内核堆栈 分配1页给pg_dir并且给page_tables分配一些页 硬件相关的变化 SS被置为内核堆栈(0x10) ESP被置为新分配栈的顶端(kernel_stack_page) CR3指向新分配的页目录 (由copy_page_table()完成) Idt=_LDT(task_nr)建立新的局部描述符 为新的任务状态段(tss)和局部描述符表(ldt[])装入gdt 从父进程继承剩下的寄存器 Pid_t fork(void); 由fork创建的新进程称为子进程。该函数被调用一次,会返回
您可能关注的文档
最近下载
- 部编版六年级语文上册第二单元习作 : 多彩的活动(第一课时)-2课件.pptx VIP
- 入党志愿书(版翻印电子版印刷模版)PDF打印版.pdf VIP
- 预制钢筋混凝土方桩标准文本.pdf VIP
- 透明膨胀型防火涂料国内外研究进展.docx VIP
- 2026注册会计师CPA税法增值税真题专项刷题卷(含答案).docx VIP
- 2026年DeepSeek Harness 全景白皮书:从 0 到 1 详细拆解与实战教程.docx
- MHRA-OOS-OOT-Oct17+中英.pptx VIP
- 苏GT25-2013预制钢筋混凝土方桩.docx VIP
- 国企造价师笔试试题.docx VIP
- JGJ-T304-2013:住宅室内装饰装修工程质量验收规范.pdf VIP
原创力文档

文档评论(0)