进程“开机阶段”

进程的基础知识

进程概念

是程序的一次动态执行的过程。(进程存在一个创建、执行、消亡的过程)

进程是程序执行的最小单位,是资源管理的最小单位。

对于资源管理的最小单位的理解:进程是基于操作系统上的操作,操作系统会将真实的物理内存映射成更容易理解的虚拟内存。减少程序员对于物理内存的顾虑。

Linux中进程的结构

进程号(PID):是进程的标识(即进程身份证)

父进程号(PPID):用于记录该进程的上级进程是谁。

包含的三个段:数据段:存放全局变量、常数、动态数据的空间

                         正文段:存放执行代码的空间

                         堆栈段:存放程序的局部变量、函数的返回地址、参数

Linux中进程的类型

交互进程(可在前台也可在后台,由shell控制)

 批处理进程(不属于某个进程;执行是按照队列的方式(先进先出))

守护进程(后台运行、系统开启时执行、关闭是结束)

 Linux中进程运行状态

运行态(正在运行或准备运行)

等待态(可中断或不可中断)

停止态

死亡态(释放了用户空间的内存,但在内核中还存在一个task_struct的结构)

进程的相关函数的基本使用

fork()函数

功能:创建进程;

使用时添加头文件 unistd.h;

参数:无;

返回值:在父进程的fork返回子进程的进程号(是大于0的数),在子进程的fork返回值0,如果返回-1,恭喜你记录了进程的第一个错误

孤儿进程:父进程先于子进程结束;子进程会被systemd收养(systemd是守护进程)

僵尸进程:子进程结束了,而父进程没有回收子进程在内核中的资源。

exit(status)

功能:退出进程;退出时会将IO缓冲区的内容写入文件。

添加头文件:stdlib.h

参数:ststus(该参数是用来记录该进程是以何种方式结束;自然结束是0;非自然结束是其他值)

返回值:无

还有一个和exit差不多的函数_exit,这个函数只是在退出时不会理睬IO缓冲区的内容。

waitpid(pid_t pid, int *status,int options)

功能:回收子进程结束后在内核中的资源

参数:

pid:大于0表示等待指定的子进程结束;等于-1:表示 任何一个进程退出(与wait一样)。

status:是一个整型指针,保存子进程退出时的状态;为NULL表示不保存,不为NULL表示保存。

options:为WNOHANG:表示指定的子进程没有结束,waitpid不阻塞,返回值为0。

                为0:表示阻塞父进程,等待子进程退出。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

问一下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值