Linux应用软件编程-多任务处理(进程)
多任务:让系统具备同时处理多个事件的能力。让系统具备并发性能。方法:进程和线程。这里先讲进程。
进程(process):正在执行的程序,执行过程中需要消耗内存和CPU。
进程的创建:操作系统在进程创建时,会为每个进程分配4G的虚拟内存空间。
进程的调度:宏观并行,微观串行
进程的状态:第一张是简化版的进程状态助于理解,第二张是Linux的进程状态
进程的消亡:进程的退出 -》进程空间的回收
查看进程的命令:
ps -aux:查看进程的相关信息
ps -aux | grep ./a.out:
| : 管道:将前面结果的输出作为后面的输入
grep : 查找
ps -ef:查看进程的信息(父进程)
pstree:查看进程间的关系
pstree -p:查看进程间的关系(包含进程id号)
pstree -sp 进程ID:查看指定进程的族谱关系
top:查看进程信息,CPU占有率,MEM占有率
kill:给进程发送信号;kill -信号num 进程ID: 给指定进程发送一个信号
创建进程:
pid_t pid fork();子进程拷贝父进程0-3G的虚拟内存空间,PCB块,进程ID号不会拷贝
功能:创建一个新的进程
返回值:>0 : 父进程,返回值是子进程id号;==0:子进程;-1 : 出错
这里放一张图帮助理解:
getpid():用来获取当前进程的id号