Linux进程相关的概念

Linux进程相关的概念
理清楚以下的5个问题:
1、什么是程序,什么是进程,有什么区别?

程序是静态的概念,gcc xxx.c -o pro 磁盘中生成pro文件,叫程序。
进程是程序的一次运行活动,通俗点讲是程序跑起来了,系统中生成一个进程。

2、如何查看系统中有哪些进程?
a、操作系统提供一个指令ps,配合grep使用查看是否存在某个进程。
b、或者使用top来观察进程。
ps -aux|grep +某个程序
如:

CLC@Embed_Learn:~$ ps -aux|grep a.out
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
CLC       3418  0.0  0.1  13588   976 pts/0    S+   09:01   0:00 grep --color=auto a.out
CLC@Embed_Learn:~$ 

3、什么是进程表示符?
a、每个进程都有一个非负整数表示唯一ID,叫做pid,类是以身份证

b、在操作系统中,默认pid=0;称为交换进程,作用是管理进程调度

c、pdi=1;init进程,作用是系统初始化。(init进程在系统初始化,加载内核完毕后,显示嵌入式设备相对应的开机页面)

d、编程使用.**getpid().**获取当前进程ID,.**getppid().**获取父进程ID

4、什么是父进程,什么是子进程?
进程A创建进程B;从而A叫做父进程,B叫做子进程;父子进程是相对的概念,可以理解人类中父子关系。

5、C程序的存储空间是如何分配?

#include <stdio.h>

int cc =100;     // 2、初始化的数据
int kk;         //  3、未初始化的数据
int arry[10];  // 2、初始化的数据

void  add(int a)
{
 a = cc+a;
}
int main(int argc,char **argv)
{
       int a =0;                  // 2、初始化的数据
       if(a==0){                // 1、代码段 从14行-20行
            printf("a=0\n");
            int *p =(int *)malloc(sizeof(int)*10);  // 4、堆(手动申请空间)
       }else{
           printf("a!=0\n");
           add(a);         //栈(函数调用产生的信息)
       }                   
       return 0;
}

最高地址
6、命令行参数和环境变量
5、栈(函数调用产生的信息)
4、堆(手动申请空间)
3、未初始化的数据
2、初始化的数据
1、代码段
最低地址
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值