什么是简单堆栈分配方案的实现

堆栈分配方案是最简单的运行时存储管理技术。存储在堆栈中从一端开始按顺序分配。存储应该按照分配的相反顺序被释放,以便被释放的存储块总是在堆栈的顶部。

程序由数据和过程组成。在每个过程执行时,都会占用一定的内存,其中包含有关过程的信息,即它的实际参数、参数个数、返回地址、返回值和本地数据等。这部分内存是那个程序。

激活记录

激活记录是在调用过程/函数时激活/创建的数据结构,它包含有关函数的以下信息。

“C”语言的激活记录包括

  • 实际参数

  • 参数数量

  • 退货地址

  • 返回值

  • 堆栈指针 (SP)

  • 函数或过程中的本地数据

这里,Old SP存储了调用该过程的过程的Activation Record的堆栈指针的值,从而导致该Activation Record的产生,即,它是指向调用者的激活记录的指针。

堆栈分配方案需要两个指针 -

  • top - 它指向堆栈的顶部。top 指向顶部激活记录的顶部。在图中,顶部指针将指向 C 激活记录的顶部。

  • Stack Pointer (SP) - 它指向当前活动过程的激活记录。

实际参数- 调用过程使用它为被调用过程提供参数。

返回值- 被调用过程使用此字段向调用过程返回值。上述每个字段的大小是在调用过程时确定的。几乎所有字段的大小都可以在编译时确定。

过程调用的堆栈分配

它可以分析在调用过程时以及返回过程中的值时在运行时如何分配内存。

考虑一个过程 P(x 1 , x 2 , x 3 ... ... x n )。调用这个过程的三个地址代码语句将是

参数 x 1

参数 x 2

………………。

参数 x n

呼叫 P, n

在哪里

以上是 什么是简单堆栈分配方案的实现 的全部内容, 来源链接: utcz.com/z/363466.html

回到顶部