进程相关概念

程序是静态的,如编译后的.exe文件,而进程是程序的动态执行实例。通过ps和top命令可以查看系统进程。每个进程有唯一的PID,PID=0是交换进程,PID=1是init进程。父进程创建子进程,如A创建B,A是父进程,B是子进程。C程序的存储空间包括代码段、数据段、BSS段、堆和栈,分别存储不同类型的变量和函数调用信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是程序,什么是进程,有什么区别

程序是静态的概念。例如:gcc xxx.c -o pro,磁盘中生成pro文件,叫做程序(还未运行起来)
进程是程序的一次运行活动,也就是程序跑起来了,系统中就多了一个进程

2、如何查看系统中有哪些进程

1、使用ps指令
2、使用top指令类似于windows的任务管理器

3、什么是进程标识符

每个进程都有一个非负整数表示的唯一ID,叫做pid,类似于身份证
pid=0:称为交换进程(swapper) 作用:进程调度
pid=1:init进程; 作用:系统初始化

编程调用getpid获取自身的进程标识符,getppid获取父进程的进程标识符
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main()
{
	pid_t pid;
	pid = getpid();
	printf("my pid: %d", pid);
	while(1);
	return 0;
}

4、什么叫父进程,什么叫子进程

进程A创建了进程B,那么A叫做父进程,B叫做子进程,父子进程是相当的概念,理解为人类中的父子关系

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

在这里插入图片描述

代码段:主函数里面的流程控制等属于这一段,也叫正文
数据段:初始化后的变量
bss段:未初始化的变量 (Block Started by Symbol )
堆:用malloc()申请空间是在堆里面申请,也就是说malloc()的返回值都是在堆里面
栈:调用函数后要返回,返回的地址就保存在栈里面,还有局部的自动变量的信息也保存在栈里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值