目录:
1.父子执行顺序问题。
2.子进程资源申请问题。
3.示例:父子进程是共享还是额外创建PCB空间
4.示例:创建子进程时,文件流中的缓冲区会拷贝一份
父子进程在创建完子进程后互相不关联,以独立身份抢占 CPU 资源,具体谁先执行由调度算法决定,用户空间没有办法干预。子进程执行代码的位置是 fork/vfork 函数返回的位置。
2.子进程资源申请问题。
子进程重新申请新的物理内存空间,复制父亲进程地址空间所有的信息(当然,现在的操作系统实际采用写时复制等策略,真正的物理内存空间发生在需要写入时)。
子进程复制父亲进程的代码段,数据段,BSS 段,堆,栈所有用户空间的信息,在内核中操作系统为其重新申请了一个 PCB,并且使用父亲进程的 PCB 来初始化,除了 pid等特殊信息外,几乎所有的信息都是一样的。
1.父子执行顺序问题。
2.子进程资源申请问题。
3.示例:父子进程是共享还是额外创建PCB空间
4.示例:创建子进程时,文件流中的缓冲区会拷贝一份
5.示例:创建子进程时,文件流缓冲区拷贝示例2
父子进程在创建完子进程后互相不关联,以独立身份抢占 CPU 资源,具体谁先执行由调度算法决定,用户空间没有办法干预。子进程执行代码的位置是 fork/vfork 函数返回的位置。
2.子进程资源申请问题。
子进程重新申请新的物理内存空间,复制父亲进程地址空间所有的信息(当然,现在的操作系统实际采用写时复制等策略,真正的物理内存空间发生在需要写入时)。
子进程复制父亲进程的代码段,数据段,BSS 段,堆,栈所有用户空间的信息,在内核中操作系统为其重新申请了一个 PCB,并且使用父亲进程的 PCB 来初始化,除了 pid等特殊信息外,几乎所有的信息都是一样的。