linux基础---进程的概念《四》

Linux系统课程:

一.进程相关的概念:
在这里插入图片描述

  • 进程状态转换
    在这里插入图片描述
    **MMU:**内存管理单元
  • 虚拟内存到物理内存的映射
  • 修改内存访问级别
  • 用户空间映射到物理内存是独立的。

环境变量
env :查看所有的环境变量
查看某一个环境变量:
在这里插入图片描述
获取环境变量:
在这里插入图片描述
进程fork()
在这里插入图片描述
返回值:

  • 失败-1
  • 父进程返回子进程id
  • 子进程返回0
    在这里插入图片描述
    pid_t getpid(void); 获得pid,进程id,或得当前进程
    pid_t getppid(void); 获得当前进程父进程的id

查看进程命令:
ps aux
ps ajx --追踪进程之间的血缘关系
在这里插入图片描述
进程共享:
在这里插入图片描述
exec函数族
执行其他程序
在这里插入图片描述
执行程序的时候,使用PATH环境变量,执行程序可以不用加路径
int execlp(const char *file, const char arg, …/ (char *) NULL */);
在这里插入图片描述
执行execlp()函数后,替换了代码段,就不会再执行之前的函数内容
在这里插入图片描述

孤儿进程与僵尸进程:
孤儿进程:父亲挂了,子进程被init进程领养
僵尸进程:子进程挂了,父进程没有回收子进程的资源(PCB)
man ps 查看进程的状态
在这里插入图片描述
在这里插入图片描述
回收僵尸进程:杀死父进程,init领养,负责回收。

wait与waitpid函数
在这里插入图片描述
按照创建的顺序退出进程:
在这里插入图片描述
回收子进程,知道子进程的死亡原因
作用:

  • 阻塞等待
  • 回收子进程资源
  • 查看死亡原因

pid_t wait(int *status);

status传出的参数
返回值:

  • 成功返回终止的子进程ID

  • 失败返回-1
    判断返回值的状态:
    在这里插入图片描述
    正常死亡 WIFEXITED

    • 如果 WIFEXITED为真,使用WEXITSTATUS得到退出的状态 非正常死亡

    WIFSIGNALED

    • 如果WIFSIGNALED为真,使用得到 WTERMSIG得到信号

父子进程不共享全局变量:
在这里插入图片描述
在这里插入图片描述
waitpid()函数
在这里插入图片描述
在这里插入图片描述

回收多个子进程:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值