进程1:进程概念,查看进程,进程标识符,父进程子进程,空间分配
进程概念,查看进程,进程标识符,父进程子进程,空间分配
问1:什么是程序?什么是进程,有什么区别?
程序是静态概念,gcc xxx.c -o pro(可执行程序,如:电脑软件)
磁盘中生成pro文件,叫做程序
进程是程序的一次运动活动,
通俗点意思就是程序跑起来了,系统中就多了一个进程
问2:如何查看系统中有哪些进程?
使用ps指令查看
实际工作中,配合grep来查找程序中是否存在某一个进程
Ps -aux:查看当前所有进程
Ps -aux|grep int:查找特定进程
Top:类似windows下的任务管理器,显示相关信息
问3:什么是进程标识符?
每一个进程都有一个非负整数表示唯一的ID,叫做pid,类似身份证
Pid=0:称作交换进程(swapper)
作用:进程调度
Pid=1:init进程
作用: 系统初始化
获取进程:
查找man手册:Man 2 getpid
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
获取自己的进程ID号:
pid_t pid;
pid=getpid();
printf(“my pid :%d\n”,pid);
问4:什么叫父进程?什么叫子进程?
进程A创建了进程B
那么A叫做父进程,B叫做子进程,
父子进程是相对的概念,理解为人类中的父子关系
问5:C程序的存储空间如何分配?
正文段:这是由CPU执行的机器指令部分。
初始化数据段:通常将此段称为数据段
非初始化数据段:通常将此段成为bss段,在程序开始执行之前,内核将此段中的数据初始化为0或者空指针。
栈:存放函数,供调用使用
堆:通常在堆中进行动态存储分配。如:malloc