一.什么是程序?什么是进程?有什么区别?
程序:是一个静态的概念,比如说电脑中安装的软件,在软件还没跑起来时,它只是一个程序。
进程: 是一个动态的概念,是程序的一次运行活动,当程序跑起来了,系统中就多了一个进程。
区别:程序是静态的、进程是动态的。
二、如何查看系统中有哪些程序?
a.使用ps指令查看
ps -aux|grep init ----->init为要查找的程序名字
b.使用top指令查看
top:相当于windows系统的任务管理器
三、什么是进程标识符?
1.每个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证。
pid = 0:称为交换进程,作用:进程调度
pid = 1:init进程,作用:系统初始化
2.编程调用getpid函数获取自身的进程标识符,getppid获取父进程的进程标识符。
编程示例:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;//这里的pid_t类似一个类型,就像int型一样
pid = getpid();//获取本程序的pid进程号
printf("my pid is %d\n",pid);//打印进程号
while(1);
return 0;
}
四.什么叫父进程?什么叫子进程?
进程A创建了进程B,那么A叫做父进程,B叫做子进程,父子进程是相对的概念,理解为人类中的父子关系。
五、C程序的存储空间是如何分配?
•正文:代码段,比如一些if else,算法等,都叫做代码段 。
•初始化的数据:初始化完毕的数据段。
•未初始化的数据:在函数外,还没有初始化的数据段(bss段)。
•堆:malloc等申请内存空间后,存放的地址。
•栈:调用函数,返回的地址,会保存在栈里面。
每负整数表示的唯
叫做pid,类每个进程都整数表示的唯I