¿Qué hace la pila?
1. Asignación de espacio de pila
Pila (sistema operativo): asignada y liberada automáticamente por el sistema operativo, almacenando valores de parámetros de función, valores de variables locales, etc. Opera como una pila en una estructura de datos.
Montón (sistema operativo): generalmente lo asigna y libera el programador. Si el programador no lo libera, el sistema operativo puede reciclarlo cuando finaliza el programa. El método de asignación es similar a un. lista enlazada.
2. Método de almacenamiento en caché de la pila
La pila utiliza un caché de primer nivel. Generalmente están en el espacio de almacenamiento cuando se llaman y se liberan inmediatamente después de que se completa la llamada.
El montón se almacena en la caché de segundo nivel y el ciclo de vida está determinado por el algoritmo de recolección de basura de la máquina virtual (no se puede reciclar una vez que se convierte en un objeto huérfano). Por lo tanto, la velocidad de llamada de estos objetos es relativamente baja.
3. Comparación de eficiencia
El sistema asigna automáticamente la pila y es más rápida. Pero el programador no tiene control.
El montón es memoria asignada por nuevos. Generalmente es lento y propenso a la fragmentación de la memoria, pero es el más conveniente de usar.
4. Contenido de almacenamiento
Pila: cuando se llama a una función, en la mayoría de los compiladores de C, los parámetros se colocan en la pila de derecha a izquierda y luego las partes locales de la función. variable. Tenga en cuenta que las variables estáticas no se insertan en la pila.
Cuando finaliza esta llamada a función, las variables locales se extraen de la pila primero, luego los parámetros y, finalmente, el puntero superior de la pila apunta a la dirección de retorno de la función, que es la dirección del siguiente instrucción en la función principal. El programa comienza desde aquí. Haga clic en Continuar.
Montón: generalmente, se utiliza un byte para almacenar el tamaño del montón en la cabecera del montón. El contenido específico del montón lo organiza el programador.
Información ampliada:
Introducción
En aplicaciones de microcontroladores, la pila es un área de almacenamiento especial. La pila es parte del espacio RAM. para llamadas de función e interrupción de conmutación Guarde y restaure datos en vivo en cualquier momento.
Los objetos de la pila tienen una característica: el primer objeto que se pone en la pila siempre se saca el último. Esta característica suele denominarse FILO—Primero en entrar/Último en salir. Hay una serie de operaciones definidas en la pila, siendo las dos más importantes PUSH y POP. Operación PUSH: aumente el puntero de la pila (SP) en 1 y luego agregue un elemento en la parte superior de la pila.
La operación POP (pop) es la opuesta. Al salir de la pila, el contenido de la unidad ram interna indicada por SP se envía primero a la unidad direccionada por la dirección directa (ubicación de destino). y luego el puntero de la pila (SP) menos 1. Estas dos operaciones implementan la inserción y eliminación de elementos de datos.
Pila de enciclopedia Baidu