Diferencia entre revisiones de «Estructura de la memoria; heap, stack»
(No se muestran 4 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
+ | [[Categoría: EC3731 - Arquitectura del Computador 2]] | ||
+ | [[Categoría:MIPS]] | ||
+ | |||
+ | |||
+ | <div style="top:+0.3em; text-align: center;font-size:100%; border:1px solid #C7D0F8; background:#F2F5FD;width:80%"> | ||
+ | '''Este artículo está incompleto. Está en construcción. Revisar la discusión.'''</div> | ||
+ | |||
+ | |||
+ | [[Image:Pila.PNG|thumb|200px|right| Representación simplificada de una pila ]] | ||
+ | |||
Una '''pila''' (''stack'' en inglés) es una lista ordinal o [[estructura de datos]] en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés ''Last In First Out'', '''último en ''entrar'', primero en ''salir''''') que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura. | Una '''pila''' (''stack'' en inglés) es una lista ordinal o [[estructura de datos]] en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés ''Last In First Out'', '''último en ''entrar'', primero en ''salir''''') que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura. | ||
Línea 15: | Línea 25: | ||
* http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html | * http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html | ||
* http://courses.cs.vt.edu/~cs2505/fall2010/Notes/pdf/T25.MIPSStack.pdf | * http://courses.cs.vt.edu/~cs2505/fall2010/Notes/pdf/T25.MIPSStack.pdf | ||
+ | * https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica) | ||
+ | |||
+ | |||
+ | == Véase también == | ||
+ | |||
+ | * [[Instrucciones de salto condicional en el Mips|Instrucciones de salto condicional en el MIPS]] | ||
+ | * [[Instrucciones de transferencia de datos en el Mips|Instrucciones de transferencia de datos en el MIPS]] | ||
+ | * [[Instrucciones aritméticas, lógicas y de salto incondicional en el Mips|Instrucciones aritméticas, lógicas y de salto incondicional en el MIPS]] |
Revisión actual del 23:38 12 may 2013
Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado.
En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
En cuanto al heap (la sección de memoria utilizada para la parte dinámica de la memoria), y empieza en la posición 0x10040000 de la memoria.
El heap o montón es más difícil de implementar. Típicamente se necesita un código que maneje el heap, de manera que las interacciones de inserción y extracción de datos deben tener algún tipo de estructura de datos que permitan seguir en qué posición de memoria se encuentra en el momento.
Bibliografía
- http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html
- http://courses.cs.vt.edu/~cs2505/fall2010/Notes/pdf/T25.MIPSStack.pdf
- https://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
Véase también
- Instrucciones de salto condicional en el MIPS
- Instrucciones de transferencia de datos en el MIPS
- Instrucciones aritméticas, lógicas y de salto incondicional en el MIPS