Diferencia entre revisiones de «Introducción»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Introducción)
 
(mejoras)
Línea 1: Línea 1:
Ahora desde el punto de vista de la memoria principal se van a ver el código,variables locales y globales. También se va a hacer referencia a la organización de memoria. Por ejemplo, a los sistemas operativos se les da una posición fija de memoria contigua mientras que a los procesos de forma fragmentada(páginas).
+
El administrador de memoria se trata de la parte del sistema operativo que se encarga de gestionar la memoria principal existente en el sistema. Para ello, asigna zonas de memoria principal a cada uno de los procesos existentes en base a sus necesidades.
  
Esta administración de memoria se va a tratar en:
+
Todo proceso, desde el punto de vista de la memoria, está compuesto de tres secciones:
  
* [[SO monoprogramables|SO monoprogramables]]
+
* ''Código'': Se trata de la sección de memoria que contiene el código de nuestro proceso, entendido como la sección de instrucciones que componen nuestro programa.
* [[SO multiprogramables con particiones fijas|SO multiprogramables con particiones fijas]]
+
* ''Variables globales y constantes'': Esta sección incluye las constantes definidas en el código del programa. Además, incluyen también las variable globales, que se trata de aquellas que son accesibles desde cualquier función.
* [[SO multiprogramables con particiones variables|SO multiprogramables con particiones variables]]
+
* ''Pila'': Se trata de la sección de memoria que se emplea para reservar espacio a la variables locales, y en la invocación de funciones (en las que se carga la dirección de retorno con respecto al código, la dirección de memoria en la que se encuentra definida la función y los parámetros de dicha función).
 +
 
 +
Cuando se lanza un programa desde el lanzador de aplicaciones se hace uso de las llamadas al sistema ''fork'' y ''exec''. La llamada ''fork'' crea un proceso clon del lanzador de aplicaciones, mientras que la llamada al sistema ''exec'' reemplaza el código del proceso clon recién creado por el de un programa que se encuentra almacenado en un fichero. El administrador de memoria actúa ante estas llamadas al sistema reservando memoria para el nuevo proceso que se acaba de lanzar.
 +
 
 +
En este tema, por razones de simplicidad, vamos a considerar que la administración de memoria se realiza de manera que '''todo''' el espacio de memoria ocupa una zona de memoria contigua. Es decir, no vamos a poder dividir las diferentes secciones de manera que se repartan en diferentes zonas de memoria que cuyo espacio de direccionamiento no sea consecutivo. No obstante, los sistemas operativos modernos '''no''' emplean las estrategias de asignación que vamos a ver a continuación:
 +
 
 +
* [[SO monoprogramables|Administración de memoria en sistemas operativos monoprogramables]]
 +
* [[SO multiprogramables con particiones fijas|Administración de memoria en sistemas operativos multiprogramables con particiones fijas]]
 +
* [[SO multiprogramables con particiones variables|Administración de memoria en sistemas operativos multiprogramables con particiones variables]]

Revisión del 17:47 25 nov 2011

El administrador de memoria se trata de la parte del sistema operativo que se encarga de gestionar la memoria principal existente en el sistema. Para ello, asigna zonas de memoria principal a cada uno de los procesos existentes en base a sus necesidades.

Todo proceso, desde el punto de vista de la memoria, está compuesto de tres secciones:

  • Código: Se trata de la sección de memoria que contiene el código de nuestro proceso, entendido como la sección de instrucciones que componen nuestro programa.
  • Variables globales y constantes: Esta sección incluye las constantes definidas en el código del programa. Además, incluyen también las variable globales, que se trata de aquellas que son accesibles desde cualquier función.
  • Pila: Se trata de la sección de memoria que se emplea para reservar espacio a la variables locales, y en la invocación de funciones (en las que se carga la dirección de retorno con respecto al código, la dirección de memoria en la que se encuentra definida la función y los parámetros de dicha función).

Cuando se lanza un programa desde el lanzador de aplicaciones se hace uso de las llamadas al sistema fork y exec. La llamada fork crea un proceso clon del lanzador de aplicaciones, mientras que la llamada al sistema exec reemplaza el código del proceso clon recién creado por el de un programa que se encuentra almacenado en un fichero. El administrador de memoria actúa ante estas llamadas al sistema reservando memoria para el nuevo proceso que se acaba de lanzar.

En este tema, por razones de simplicidad, vamos a considerar que la administración de memoria se realiza de manera que todo el espacio de memoria ocupa una zona de memoria contigua. Es decir, no vamos a poder dividir las diferentes secciones de manera que se repartan en diferentes zonas de memoria que cuyo espacio de direccionamiento no sea consecutivo. No obstante, los sistemas operativos modernos no emplean las estrategias de asignación que vamos a ver a continuación: