系统编程
进程
注意:进程是操作系统分配资源的基本单位!操作系统是以进程为单位来分配系统资源的,比如内存空间、CPU使用权等。 线程是操作系统调度资源的最小单位! 进程包含线程!
1.进程的特征
进程具有四个基本特征,分别是动态性、并发性、独立性、异步性
动态性:进程会在程序运行时被创建出来,当无法获取足够的系统资源时进程会暂停,当得到资源后会继续执行。
并发性:允许多个进程在程序中执行。
独立性:进程是一个能独立运行的基本单位,也是系统进行资源分配和调度的独立单位。
异步性:当系统资源不够时或者出现其他进程抢占资源时,都会影响进程的执行进度。
2.进程控制块PCB
- 进程标识符PID
一般使用 ps -ef 或者 ps -aux来查看Linux系统中所有用户相关的进程的所有信息。
- 进程当前状态:就绪态、运行态、阻塞态、创建态、结束态。
3)进程由三个部分组成:控制块,代码块,数据块
3.进程的控制
-
systemd其实是一个 Linux 系统基础组件的集合(守护进程)
-
linux内核提供了一个名字叫做fork()的系统调用接口,该接口可以在进程中创建一个子进程。
fork函数
(1)返回值
在父进程中返回的是创建成功的子进程的PID。
fork函数在子进程中的返回值是0。
如果子进程失败则返回-1。
geipid()//返回值获取当前进程PID的函数接口
getppid()//返回值获取当前进程的父进程PID的函数接口
wait()//让父进程等待子进程的状态改变并获取已经改变状态的子进程的信息
注意:如果当前进程没有子进程,则wait函数立即返回,如果当前进程有很多个子进程则wait函数会回收第一个变为僵尸态(第一个结束)的子进程资源。