进程(理解fork系统调用)

学习地址
创建子进程

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

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

  • fork子进程

  • 理解fork系统调用

  1. 一次fork调用,产生两次返回值
    父进程返回一次、子进程返回一次
    父进程返回大于0(子进程pid),子进程返回0
  2. 子进程与父进程几乎完全相同
    各自有自己的进程空间,父子进程不共享这些存储空间;
    例子:定义一个变量,子进程对变量赋值,不影响父进程变量值;
  3. 子进程什么时候运行:fork调用返回后的代码开始运行
    虽然父子进程有各自进程空间,但执行的代码是一样的,执行不同的代码段;
    子进程运行fork以后的代码,不会运行fork之前的代码;
posted @   我爱茜茜公主  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2022-01-18 读取输入设备信息
2022-01-18 输入系统框架及调试
2022-01-18 mdk中$Sub $Super
点击右上角即可分享
微信分享提示