Practica de sistemas

Solo disponible en BuenasTareas
  • Páginas : 11 (2713 palabras )
  • Descarga(s) : 0
  • Publicado : 2 de septiembre de 2010
Leer documento completo
Vista previa del texto
ORGANIZACIÓN DE MEMORIA EN TIEMPO DE CORRIDA

Cuando un programa se ejecuta sobre un sistema operativo existe un proceso previo llamado cargador que suministra al programa un bloque contiguo de memoria sobre el cual ha de ejecutarse. El programa resultante de la compilación debe organizarse de forma que haga uso de este bloque. Para ello el compilador incorpora al programa objeto el códigonecesario.
Las técnicas de gestión de la memoria durante la ejecución del programa difieren de unos lenguajes a otros, e incluso de unos compiladores a otros.
Para lenguajes imperativos, los compiladores generan programas que tendrán en tiempo de ejecución una organización de la memoria similar a:

CÓDIGO
Es la zona donde se almacenan las instrucciones del programa ejecutable en código máquina, ytambién el código correspondiente a los procedimientos y funciones que utiliza. Su tamaño puede fijarse en tiempo de compilación. Algunos compiladores fragmentan el código del programa objeto usando “overlays”. Estos “overlays” son secciones de código objeto que se almacenan en ficheros independientes y que se cargan en la memoria central (RAM) dinámicamente, es decir, durante la ejecución delprograma. Los overlays de un programa se agrupan en zonas y módulos, cada uno de los cuales contiene un conjunto de funciones o procedimientos.

Durante el tiempo de ejecución sólo uno de los módulos de cada uno de los overlays puede estar almacenado en memoria. El compilador reserva en la sección de código una zona contigua de memoria para cada overlay. El tamaño de esta zona debe ser igual aldel mayor módulo que se cargue sobre ella. Es función del programador determinar cuántas zonas de overlay se definen, qué funciones y procedimientos se encapsulan en cada módulo, y cómo se organizan estos módulos para ocupar cada uno de los overlays. Una restricción a tener en cuenta es que las funciones de un módulo no deben hacer referencia a funciones de otro módulo del mismo overlay, ya quenunca estarán simultáneamente en memoria. El tiempo de ejecución de un programa con overlays es mayor, puesto que durante la ejecución del programa es necesario cargar cada módulo cuando se realiza una llamada a alguna de las funciones que incluye. También es tarea del programador diseñar la estructura de overlays de manera que se minimice el número de estas operaciones. La técnica de overlays seutiliza cuando el programa a compilar es muy grande en relación con la disponibilidad de memoria del sistema, o bien si se desea obtener programas de menor tamaño.

La memoria de un proceso puede clasificarse del siguiente modo:
➢ Memoria estática
➢ Memoria dinámica

MEMORIA ESTATICA
Consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado seaejecutado.
Es una manera de distribuir la propiedad de recursos de memoria limitada entre muchas piezas de código y datos.
Para que un objeto pueda ser almacenado en memoria estática su tamaño (número de bytes necesarios para su almacenamiento) debe de ser conocido en tiempo de compilación, como consecuencia de esta condición no podrán almacenarse en memoria estática:
➢ Los objetoscorrespondientes a procedimientos o funciones recursivas, ya que en tiempo de compilación no se sabe el número de variables que serán necesarias.
➢ Las estructuras dinámicas de datos tales como listas, árboles, etc. ya que el número de elementos que las forman no es conocido hasta que el programa se ejecuta.
Las técnicas de asignación de memoria estática son sencillas.
A partir de una posiciónseñalada por un puntero de referencia se aloja el objeto X, y se avanza el puntero tantos bytes como sean necesarios para almacenar el objeto X.
La asignación de memoria puede hacerse en tiempo de compilación y los objetos están vigentes desde que comienza la ejecución del programa hasta que termina.
En los lenguajes que permiten la existencia de subprogramas, y siempre que todos los objetos de...
tracking img