Вы находитесь на странице: 1из 14

Sistemas Operativos

Gestin de Memoria en Linux

Introduccin
La memoria es uno de los recursos mas valiosos que gestiona el sistema operativo. Uno de los elementos principales que caracterizan un proceso es la memoria que utiliza.

Es tpicamente una memoria de acceso aleatorio (RAM) cuyo tiempo de acceso es mucho mas pequeo que el de la memoria
secundaria (discos duros, maquinas en red..)

El sistema operativo debe estar administrar toda la memoria fsica y asignarla tanto a los subsistemas del ncleo como a los programas de usuario. Cuando el sistema arranca, el ncleo reserva parte de la memoria principal para su cdigo y sus estructuras de datos
estticas.

Memoria Principal / Fsica


Se encuentra lgicamente separada de la de cualquier otro proceso del sistema. Un proceso no puede acceder, al espacio en memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema.

Direccionamiento de la memoria
El direccionamiento es una parte muy importante de la gestin de la memoria, dado que influye mucho en la visin del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema.

En Linux, adems un proceso tiene 2 espacios en memoria: el espacio de memoria del usuario, nico para ese proceso, y el espacio en memoria del kernel, idntico en todos los procesos

Gestin de Memoria
Objetivos del sistema de Gestin de Memoria:
Ofrecer a cada proceso un espacio logico propio. Proporcionar proteccin entre procesos. Permitir que los procesos compartan memoria. Dar soporte a las distintas regiones del proceso. Maximizar el rendimiento del sistema. Proporcionar a los procesos mapas de memoria muy grandes.

Espacio de direcciones entre un proceso


Los espacios de direcciones involucrados en la gestin de memoria son 3 tipos:
Espacio de direcciones fsicas. Espacio de direcciones lgicas. Espacio de direcciones lineales.

Unidad de Manejo de Memoria


Sus Funciones son las siguientes:
Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas. Comprobar que la conversin se pueda realizar. La direccin lgica podra no tener una direccin fsica asociada. Comprobar que el proceso que intenta acceder a una cierta direccin de memoria tiene permisos para ello.

Subsistema de Gestin de Memoria


Es la parte del Ncleo responsable de gestionar la memoria principal e interacta fuertemente con la unidad de administracin de memoria (MMU) que funcionalmente se sita entre la CPU y la memoria principal. Decide que procesos residen en memoria principal (al menos una parte). Maneja parte del espacio de direcciones virtuales que ha quedado afuera. Controla la cantidad de memoria principal. Gestiona el intercambio de procesos entre memoria principal y memoria secundaria o dispositivo de swap.

Otras Caractersticas
Ofrecer al proceso mas memoria de la que hay fsicamente disponible. Se emplean tcnicas de swapping y paginacin por demanda. Aprovechar la memoria mediante tcnicas Copy-On-Write. Mapeado de ficheros sobre memoria. En general, mejorar el rendimiento del sistema mediante diversas tcnicas a la hora de asignar o liberar memoria (Buddy system, Slab allocator, caches, etc.).

Paginacin
Cuando se crea un procesos, puede, en principio utilizar todo el espacio de usuario en 2gbytes (menos 128 kbytes).Este espacio se encuentra dividido en paginas de tamao fijo, cualquiera de las cuales se puede cargar en la memoria principal.

Estados de las paginas


Disponible: Paginas que no estn actualmente usadas por este proceso. Reservada: Conjunto de paginas contiguas (juntas) que el gestor de memoria virtual separa para un proceso que no se cuentan para la cuota. Asignada: Las paginas para las cuales el gestor de la memoria virtual ha reservado espacio en el fichero de paginacin.

Paginacin
La distincin entre memoria reservada y asignada es muy til debido a que minimiza la cantidad de espacio de disco que debe guardarse para un procesos en particular, manteniendo espacio libre en disco para otros procesos. Adems permite que un hilo o un proceso declare una peticin de una cantidad de memoria que puede proporcionarse rpidamente si se necesita.

Conclusiones
Hemos visto que Linux hace uso de las ventajas de la segmentacin y de los circuitos de paginacin de los procesadores i386 para traducir direcciones lgicas en direcciones fsicas. Podemos tambin decir que alguna porcin de RAM esta permanentemente asignada al kernel y utilizada para almacenar el cdigo del kernel y estructuras de datos estticas del mismo. La restante parte de la RAM se denomina memoria dinmica, y esta es un recurso muy valioso y necesitado no solo por los procesos sino tambin por el propio kernel.

Conclusiones
De hecho el rendimiento global del sistema depende fuertemente de como se gestiona la memoria dinmica. Por tanto, todos los sistemas operativos multitarea actuales tratan de optimizar el uso de la memoria dinmica, asignndola solo cuando es estrictamente necesario y liberndola tan pronto como sea posible.

Вам также может понравиться