进程的创建与回收学习笔记

目录

一、进程内容:

二、进程常用命令 

三、创建子进程 

 四、子进程进阶

 五、进程的退出

 六、进程的回收


一、进程内容:

程序:

        存放在磁盘上的指令和数据的有序集合(文件)

        静态的

进程:

        执行一个程序所分配的资源的总称

        进程是程序的一次执行过程

        动态的,包括创建、调度、执行和消亡

进程的创建与回收学习笔记_第1张图片

进程是在内存中运行,即RAM

flash是ROM,即磁盘,可以存放程序

 进程的创建与回收学习笔记_第2张图片

进程的创建与回收学习笔记_第3张图片

 进程的创建与回收学习笔记_第4张图片

交互进程就是运行可执行文件,比如./testdemo

批处理进程,就是按顺序执行脚本语言

守护进程不能用ctrl-c关闭,无法通过shell命令控制

进程的创建与回收学习笔记_第5张图片

进程的创建与回收学习笔记_第6张图片

只有运行态在消耗CPU。

二、进程常用命令 

 进程的创建与回收学习笔记_第7张图片进程的创建与回收学习笔记_第8张图片

ps:查看当前终端下的进程

ps -e:查看linux中所有的进程

ps -elf:查看所有进程的详细信息

进程的创建与回收学习笔记_第9张图片

top -p PID:查看某个进程信息

进程的创建与回收学习笔记_第10张图片 进程的创建与回收学习笔记_第11张图片

 ctrl+z:把运行的前台进程转为后台并停止

./test & 把test程序后台运行

三、创建子进程 

 在linux下,除了0号进程外的任何进程都是别人创建的,都是子进程

进程的创建与回收学习笔记_第12张图片 进程的创建与回收学习笔记_第13张图片

运行结果:

 一个是父进程打印的,一个是子进程打印的。

 通过判断pid来确定父子进程执行的内容:进程的创建与回收学习笔记_第14张图片

 运行结果:

进程的创建与回收学习笔记_第15张图片

父子进程仅仅复制关系,执行顺序没有规律,需要操作系统来进行调度。 

进程的创建与回收学习笔记_第16张图片

修改代码如下:

进程的创建与回收学习笔记_第17张图片

运行结果如下: 

 进程的创建与回收学习笔记_第18张图片

 父子进程执行顺序是随机的


若父进程先结束

 此时子进程继续运行,不过变为后台进程,不能被ctrl-c杀掉,只能用kill杀掉。


若子进程先结束 

进程的创建与回收学习笔记_第19张图片 此时子进程变成僵尸进程。

进程的创建与回收学习笔记_第20张图片

 四、子进程进阶

一个父进程创建出5个子进程 

进程的创建与回收学习笔记_第21张图片

代码如下:

进程的创建与回收学习笔记_第22张图片

 五、进程的退出

 进程的创建与回收学习笔记_第23张图片

 进程的创建与回收学习笔记_第24张图片

进程的创建与回收学习笔记_第25张图片 

exit结束进程刷新缓冲流,会打印上一行,_exit结束进程不刷新缓冲流,不会打印上一行
“\n”和return就是刷新缓冲流。 

 六、进程的回收

进程的创建与回收学习笔记_第26张图片

进程的创建与回收学习笔记_第27张图片 通过wait函数回收僵尸进程进程的创建与回收学习笔记_第28张图片

代码运行结果:

进程的创建与回收学习笔记_第29张图片

进程的创建与回收学习笔记_第30张图片进程的创建与回收学习笔记_第31张图片 此时效果和使用wait函数一样。

 

你可能感兴趣的:(Linux学习笔记,服务器,运维,linux,c语言,学习,笔记)