SERVICIOS DE GESTION DE MEMORIA SISTEMAS OPERATIVOS GNOME Daniel Cardenas Cristian Socha Jonathan Caballero Fabian Avila Jose Correal Cesar Canabal
CONTENIDO 1 2
¿ QUE ES LA GESTION DE MEMORIA ? Es el elemento fundamental para el sistema operativo ya que en funcion da la administracion de los procesos. Subdivide la memoria para hacer ejecutar varios procesos No hay politicas de planificacion la pagina correspondiente a una dirección se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello. La MMU se Inicializa para  cada proceso del sistema.  Esto permite que cada proceso pueda usar el rango completo de direcciones lógicas (memoria virtual), ya que las conversiones de estas direcciones serán distintas para cada proceso. En todos los procesos se configura la MMU para que la zona del núcleo solo se pueda acceder en modo privilegiado del procesador. La configuración correspondiente al espacio de memoria del núcleo es idéntica en todos los procesos.
GESTION DE MEMORIA MONOPROGRAMA No hay procesos ejecutandose de forma concurrente. No existe Gestion de Memoria. El procesador pasa mucho tiempo ocioso. SISTEMAS MULTIPROGRAMA Se ejecuta mas de un proceso a la ves. Seguridad en coexistencia entre programas con espacios de memoria diferentes. Procesador: se reparte equitativa o eficiente el tiempo. La memoria: Se reparte espacios de memoria.
GESTION DE MEMORIA OBJETIVOS Sea cual sea las politicas  de gestion de memoria,  se pueden destacar los siguientes objetivos
El objetivo del intercambio es dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema: Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de la que realmente existe en el sistema.  Esta técnica  puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una pequeña porción del código. Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su ejecución. El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imágenes de memoria de todos los usuarios
SERVICIOS GESTION DE MEMORIA Sistema de archivos: parte del SO responsable de la gestión de datos en dispositivos de almacenamiento secundario. Objetivo:  Abstraer propiedades físicas de diferentes dispositivos  Independencia de dispositivo  Permite organizar la información según las necesidades del usuario Facilita la manipulación de grandes cantidades de archivos Mantiene los parámetros de usuario de cada archivo Servicios genéricos de memoria
SERVICIOS GENERICOS DE MEMORIA
 
 
SERVICIO MEMORIA POSIX El estándar POSIX define un relativamente pequeño conjunto de servicios de gestión de memoria. Los servicios de gestión de memoria más frecuentemente usados son los que corresponden con la proyección y des proyección de archivos (mmap y munmap)
tiene el siguiente prototipo: caddr_t Mmap: (caddr_t direc, size_t longitud, int protec,int indicador, int descriptor, off_t despl) EL SERVICIO MMAP
El primer parámetro indica la dirección del mapa donde se quiere que se proyecte el archivo. Generalmente, se especifica un valor nulo para indicar que se prefiere que sea el sistema el que decida dónde proyectar el archivo. En cualquier caso, la función devolverá la dirección de proyección utilizada .
        DESCRIPTOR corresponde con el descriptor del archivo  que se pretende proyectar (que debe estar previamente abierto)  DESPLAZAMIENTO Y LONGITUD establecen qué zona del archivo se proyecta: desde la posición  de  desplazamiento hasta el final del desplazamiento mas la longitud del archivo.
PROTECCION establece la protección sobre la región que puede ser : de lectura(PROT_READ), de escritura(PROT_WRITE)   de ejecución (PROT_EXEC)  O cualquier combinación de ellas. Esta protección debe ser compatible con el modo de apertura del archivo.
INDICADOR  Es el que  permite establecer ciertas propiedades en la región: MAP_SHARED La región es compartida. Las modificaciones sobre la región afectarán al archivo. Un proceso hijo compartirá esta región con el padre. MAP_PRIVATE La región es privada. Las modificaciones sobre la región no afectarán al archivo. Un proceso hijo no compartirá esta región con el padre, sino que obtendrá un duplicado de la misma.
MAP_FIXED El archivo debe proyectarse justo en la dirección especificada en el primer parámetro, siempre que éste sea distinto de cero. En el caso de que se quiera proyectar una región sin soporte (región anónima)  en algunos sistemas se puede especificar el valor. MAP_ANOM en el parámetro indicador. Otros sistemas UNIX no ofrecen esta opción, pero permiten proyectar el dispositivo para lograr el mismo objetivo. Esta opción se puede usar para cargar la región de datos sin valor inicial de una biblioteca dinámica.
Cuando se quiere eliminar una proyección previa o parte de la misma, se usa el servicio Munmap cuyo prototipo es: Int   munmap (caddr_t direc, size_t longitud); EL SERVICIO MUNMAP
El primer parámetro indica la dirección del mapa donde se quiere que se proyecte el archivo. Generalmente, se especifica un valor nulo para indicar que se prefiere que sea el sistema el que decida dónde proyectar el archivo. En cualquier caso, la función devolverá la dirección de proyección utilizada.  definen una región (o parte de una región) que se quiere proyectar.
SERVICIOS DE MEMORIA WIN32 Son los servicios de memoria más utilizados son, nuevamente, los de proyección de archivos. A diferencia de POSIX, la proyección de un archivo se realiza en dos pasos. En primer lugar, hay que crear una proyección del archivo usando la primitiva CreateFileMapping HANDLE CreateFileMapping (HANDLE archivo,LPSECURITY_ATTRIBUTES segur, DWORD prot,DWORD tamanyo_max_alta; DWORD tamanyo_max_baja,LPCTSTR nombre_proy)
Esta función devuelve un identificador de la proyección y recibe como parámetros el nombre del archivo, un valor de los atributos de seguridad, la protección, el tamaño del objeto a proyectar(especificando la parte alta y la parte baja de este valor en dos parámetros independientes) y un nombre para la proyección .En cuanto a la protección, puede especificarse: de sólo lectura (PAGE_READONLY) de lectura y escritura (PAGE_READWRITE) o privada (PAGE_WRITECOPY )
 
 

Gestion-de-memoria

  • 1.
    SERVICIOS DE GESTIONDE MEMORIA SISTEMAS OPERATIVOS GNOME Daniel Cardenas Cristian Socha Jonathan Caballero Fabian Avila Jose Correal Cesar Canabal
  • 2.
  • 3.
    ¿ QUE ESLA GESTION DE MEMORIA ? Es el elemento fundamental para el sistema operativo ya que en funcion da la administracion de los procesos. Subdivide la memoria para hacer ejecutar varios procesos No hay politicas de planificacion la pagina correspondiente a una dirección se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello. La MMU se Inicializa para cada proceso del sistema. Esto permite que cada proceso pueda usar el rango completo de direcciones lógicas (memoria virtual), ya que las conversiones de estas direcciones serán distintas para cada proceso. En todos los procesos se configura la MMU para que la zona del núcleo solo se pueda acceder en modo privilegiado del procesador. La configuración correspondiente al espacio de memoria del núcleo es idéntica en todos los procesos.
  • 4.
    GESTION DE MEMORIAMONOPROGRAMA No hay procesos ejecutandose de forma concurrente. No existe Gestion de Memoria. El procesador pasa mucho tiempo ocioso. SISTEMAS MULTIPROGRAMA Se ejecuta mas de un proceso a la ves. Seguridad en coexistencia entre programas con espacios de memoria diferentes. Procesador: se reparte equitativa o eficiente el tiempo. La memoria: Se reparte espacios de memoria.
  • 5.
    GESTION DE MEMORIAOBJETIVOS Sea cual sea las politicas de gestion de memoria, se pueden destacar los siguientes objetivos
  • 6.
    El objetivo delintercambio es dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema: Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de la que realmente existe en el sistema. Esta técnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una pequeña porción del código. Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su ejecución. El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imágenes de memoria de todos los usuarios
  • 7.
    SERVICIOS GESTION DEMEMORIA Sistema de archivos: parte del SO responsable de la gestión de datos en dispositivos de almacenamiento secundario. Objetivo: Abstraer propiedades físicas de diferentes dispositivos Independencia de dispositivo Permite organizar la información según las necesidades del usuario Facilita la manipulación de grandes cantidades de archivos Mantiene los parámetros de usuario de cada archivo Servicios genéricos de memoria
  • 8.
  • 9.
  • 10.
  • 11.
    SERVICIO MEMORIA POSIXEl estándar POSIX define un relativamente pequeño conjunto de servicios de gestión de memoria. Los servicios de gestión de memoria más frecuentemente usados son los que corresponden con la proyección y des proyección de archivos (mmap y munmap)
  • 12.
    tiene el siguienteprototipo: caddr_t Mmap: (caddr_t direc, size_t longitud, int protec,int indicador, int descriptor, off_t despl) EL SERVICIO MMAP
  • 13.
    El primer parámetroindica la dirección del mapa donde se quiere que se proyecte el archivo. Generalmente, se especifica un valor nulo para indicar que se prefiere que sea el sistema el que decida dónde proyectar el archivo. En cualquier caso, la función devolverá la dirección de proyección utilizada .
  • 14.
           DESCRIPTORcorresponde con el descriptor del archivo que se pretende proyectar (que debe estar previamente abierto) DESPLAZAMIENTO Y LONGITUD establecen qué zona del archivo se proyecta: desde la posición de desplazamiento hasta el final del desplazamiento mas la longitud del archivo.
  • 15.
    PROTECCION establece laprotección sobre la región que puede ser : de lectura(PROT_READ), de escritura(PROT_WRITE) de ejecución (PROT_EXEC) O cualquier combinación de ellas. Esta protección debe ser compatible con el modo de apertura del archivo.
  • 16.
    INDICADOR Esel que permite establecer ciertas propiedades en la región: MAP_SHARED La región es compartida. Las modificaciones sobre la región afectarán al archivo. Un proceso hijo compartirá esta región con el padre. MAP_PRIVATE La región es privada. Las modificaciones sobre la región no afectarán al archivo. Un proceso hijo no compartirá esta región con el padre, sino que obtendrá un duplicado de la misma.
  • 17.
    MAP_FIXED El archivodebe proyectarse justo en la dirección especificada en el primer parámetro, siempre que éste sea distinto de cero. En el caso de que se quiera proyectar una región sin soporte (región anónima) en algunos sistemas se puede especificar el valor. MAP_ANOM en el parámetro indicador. Otros sistemas UNIX no ofrecen esta opción, pero permiten proyectar el dispositivo para lograr el mismo objetivo. Esta opción se puede usar para cargar la región de datos sin valor inicial de una biblioteca dinámica.
  • 18.
    Cuando se quiereeliminar una proyección previa o parte de la misma, se usa el servicio Munmap cuyo prototipo es: Int munmap (caddr_t direc, size_t longitud); EL SERVICIO MUNMAP
  • 19.
    El primer parámetroindica la dirección del mapa donde se quiere que se proyecte el archivo. Generalmente, se especifica un valor nulo para indicar que se prefiere que sea el sistema el que decida dónde proyectar el archivo. En cualquier caso, la función devolverá la dirección de proyección utilizada. definen una región (o parte de una región) que se quiere proyectar.
  • 20.
    SERVICIOS DE MEMORIAWIN32 Son los servicios de memoria más utilizados son, nuevamente, los de proyección de archivos. A diferencia de POSIX, la proyección de un archivo se realiza en dos pasos. En primer lugar, hay que crear una proyección del archivo usando la primitiva CreateFileMapping HANDLE CreateFileMapping (HANDLE archivo,LPSECURITY_ATTRIBUTES segur, DWORD prot,DWORD tamanyo_max_alta; DWORD tamanyo_max_baja,LPCTSTR nombre_proy)
  • 21.
    Esta función devuelveun identificador de la proyección y recibe como parámetros el nombre del archivo, un valor de los atributos de seguridad, la protección, el tamaño del objeto a proyectar(especificando la parte alta y la parte baja de este valor en dos parámetros independientes) y un nombre para la proyección .En cuanto a la protección, puede especificarse: de sólo lectura (PAGE_READONLY) de lectura y escritura (PAGE_READWRITE) o privada (PAGE_WRITECOPY )
  • 22.
  • 23.