Linux系统之进程相关概念

目录

什么是程序?什么是进程?他们有什么区别?

如何查询系统中有哪些进程?

什么是进程标识符?

什么叫父进程?什么叫子进程?

C语言程序的存储空间是怎么分配的?


什么是程序?什么是进程?他们有什么区别?

        1、程序是静态的概念,例如在Linux下 ,gcc xxx.c -o pro,磁盘就会生成一个叫pro的程序。

        2、通俗点说就是程序被运行起来,系统就多了一个进程。

如何查询系统中有哪些进程?

        1、使用ps -aux指令查询所有进程

        2、实际工作中使用grep管道来过滤进程,ps -aux|grep init(只看init的进程)

实现如下:

什么是进程标识符?

        1、每一个进程都有一个非负整数的id,叫做pid。类似身份证。

        2、在操作系统中默认pid=0为交换进程(swapper),作用:进程调度;

              pid=1为init进程,作用:系统初始化。

        3、如何获取当前进程号

        代码如下

#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main ()
{

        pid_t pid;
        pid=getpid();
        printf("now pid is %d\n",pid);
        return 0;
}

 

什么叫父进程?什么叫子进程?

        如果进程A创建了进程B,A就是B的父进程,相反,B就是A的子进程。

C语言程序的存储空间是怎么分配的?

        

我们又低至高开始看:

        正文:就是普通的代码段,控制流程、算法等等。

        初始化数据:给变量赋值。数据段

        未初始化数据:仅仅声明的变量。bss段

         堆:调用malloc函数时去申请空间就在堆这个空间。malloc的返回值和内存地址都在堆这。

        栈:比如我们声明一个void fun(){int a=0;}函数在正文调用,调用fun会把他的地址保存在栈里面,局部变量也会保存在栈里面。

        高地址:int main(int argc,char *agrv)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值