进程(理解fork系统调用)

学习地址
创建子进程

  • 所有进程都是由父进程创建出来的
    pstree -T
    init pid是1,是所有进程的祖先
    ps aux

  • 进程空间
    进程间、进程与内核间相互隔离的,各自在自己的进程空间中运行;
    一个进程不能读取修改另一个进程或内核的数据;
    新进程被创建出来之后,便是一个独立的进程,拥有自己独立的进程空间,拥有唯一的pid,
    拥有自己独立的pcb,新进程被内核同等调度执行;

  • fork子进程

  • 理解fork系统调用

  1. 一次fork调用,产生两次返回值
    父进程返回一次、子进程返回一次
    父进程返回大于0(子进程pid),子进程返回0
  2. 子进程与父进程几乎完全相同
    各自有自己的进程空间,父子进程不共享这些存储空间;
    例子:定义一个变量,子进程对变量赋值,不影响父进程变量值;
  3. 子进程什么时候运行:fork调用返回后的代码开始运行
    虽然父子进程有各自进程空间,但执行的代码是一样的,执行不同的代码段;
    子进程运行fork以后的代码,不会运行fork之前的代码;
posted @ 2023-01-18 19:03  我爱茜茜公主  阅读(60)  评论(0)    收藏  举报