
本文共 1674 字,大约阅读时间需要 5 分钟。
一、什么是程序,什么是进程,有什么区别?
程序:程序是静态的概念,是存放在磁盘中的可执行文件,如gcc data.c -o Pro,磁盘中生成一个Pro文件,叫做程序
进程:进程是程序的一次运行活动,也就是程序运行起来了,在系统中又多了一个进程二、如何查看系统中有哪些进程?
1: PS指令
ps -aux :显示全部进程
使用方法
ps -aux | grep init //显示关于init的进程

三、什么是进程标识符?
1.PID(process ID):
PID是程序被操作系统加载到内存成为进程后动态分配的资源,每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。 Pid = 0:称为交换进程(swapper) 作用——进程调读Pid = 1:init进程
作用——系统初始化2、PPID(parent process ID):PPID是程序的父进程号。
3、PID和PPID都是非零的整数。
4、PID是唯一的,一个PID只标识一个进程。
5、一个进程创建的另一个新进程称为子进程。相反地,创建子进程的进程称为父进程。
6、对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于Linux而言,Shell就是bash。
注:
a:在Linux系统中执行的第一个进程是init,它是所有进程的祖先最终都会落到进程号为1的init进程身上。 b:init进程是linux内核启动后第一个执行的进程,引导系统,启动守护进程并且运行必要的程序。编程使用mypid函数获取自己的pid号
头文件
#include#include
函数原型
pid_t getpid(void);pid_t getppid(void);
代码
#include#include #include int main(){ pid_t pid; //定义pid为pid_t的类型 pid_t ppid; pid = getpid(); //获取自己的pid号 ppid = getppid(); printf("my pid is %d\n",pid); printf("my ppid is %d\n,",ppid); while(1); //不让程序退出 return 0;}

四、什么叫父进程,什么叫子进程?
如果进程A创建了进程B,那么A叫做父进程,B叫做子进程,父子进程都是相对的概念,相当于人类中的父子关系
五、C程序的存储空间是如何分配的?
代码段:代码段就是CPU执行的机器指令部分,用来存放代码执行部分,代码段这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许自修改程序。 在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
数据段:通常是用来存放程序中已初始化的全局变量的一块内存区域,数据段属于静态内存分配。
BSS段:BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域,特点是可读写的,在程序执行之前BSS段会自动清0。
堆:通常在堆中进行动态的内存分配,如(malloc函数申请的空间)
栈:一些自动变量或者函数调用时所需要保存的信息都可以存放在此段中,函数调用返回地址都存放在栈中
命令行参数和环境变量:这个部分是用来存放一些命令行的参数的,如main函数中的 int argc , char **argv 等
发表评论
最新留言
关于作者
