进程、过程调用、函数调用、堆、栈

本文详细介绍了Unix/Linux平台上的进程,包括其组成部分如指令段、用户数据段、用户堆栈段和系统数据段。接着讨论了过程调用、函数调用的概念,以及堆和栈在内存管理中的作用。堆作为动态分配内存的区域,而栈由编译器自动管理,用于快速存取数据和传递参数。文章还提到了帧栈、帧指针和栈指针的概念,阐述了它们在过程调用中的角色。
摘要由CSDN通过智能技术生成
  • 我们在这里拿最典型且开源的Unix/Linux平台举例:
    1. 进程
    进程:程序的一次动态执行过程,是操作系统管理系统活动的基本单位。从内核的角度看,进程是系统中的一个对象,它对应一个程序的执行流并且是一个资源分配(包括内存和文件等)的单位。
    在Linux中,一个进程包括四个部分内容:指令段(正文段):存放程序的CPU指令代码。用户数据段:存放程序所需要的数据。用户堆栈段:程序执行所需要的堆栈空间。系统数据段:操作系统内核内的数据,每个进程对应一套数据,包括页表(page table)和进程控制块(process control block,PCB)。如下图所示:
                              +--------------------+  内存低端
                              |       指令段           |
                              |----------------------|
                              |       用户数据段     |
                              |----------------------|
                              |        用户堆栈       |
                              +-------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值