问1.什么是程序,什么是进程,有什么区别?
答1:程序是静态的概念,gcc xxx.c -o pro 磁盘中生成的pro文件,叫做程序
进程是程序的一次运行活动,通俗点意思是程序跑起来了,系统中就多了一个进程
问2.如何查看系统中有哪些进程?
a.使用ps指令查看
实际工作中,配合grep来查找层序中是否存在某一个进程
ps -aux显示全部进程 ps -aux|grep 想要的进程名
(其实就是把ps -aux显示全部进程 放进一个管道里再用grep去过滤 找到 想要的进程名)
补充:查找某个.c文件里的某个代码段grep+空格+“查询的代码段”
b.使用top指令查看,类似windows任务管理器
问3.什么是进程标识符?
每个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证
pid=0:成为交换进程(swapper)作用——进程调度
pid=1:init进程 作用——系统初始化
编程调用getpid函数获取自身的进程标识符getppid获取父进程的进程标识符
问4.什么叫父进程,什么叫子进程?
进程A创建了进程B
那么A叫做父进程,B叫做子进程,父子进程是相对的概念,理解为人类中的父子进程
问5.C程序的存储空间是如何分配?
1.堆区域是 malloc申请空间的地方
2.栈空间是函数调用以及函数内产生的信息,自己定义的func()函数的地址存放的地方 ,func函数里的局部变量也全是放在栈里面
3.代码段是正文if else等这样的
4.数据段是初始化的变量
5.BSS段是在函数外未被初始化的变量
6.命令行参数和环境变量 就是 argc argv