Memoria particionada

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 7,59 KB

 

3.- GESTIÓN DE LA MEMORIA

3.1.- REQUISITOS DE LA GESTIÓN DE MEMORIA. 
Los requisitos que se intentan satisfacer son, básicamente, cinco:
reubicación, protección, compartición, organización lógica y organización física. 

REUBICACIÓN:


los programadores no saben que otros programas risidiran en memoria en el momento que se ejecute el suyo.Mientras el programa se ejecuta,puede ser movido al disco y devuelto a la memoria principal(SWAPPING).El hardware del procesador y el software del S.O. Deben ser capaces de traducir las referencias a memoria encontradas en el código del programa a las direcciones físicas reales que refelejn la posición actual del programa en memoria pincipal
Protección:Cada proceso debe protegerse contra interferencias no deseadas de otros procesos, tanto accidentales como intencionadas.Los procesos no deberían ser capaces de referencias el espacio de memoria de otros precesos sin permiso, para ello todos las referencias a memoria generadas por un programa deben ser comprobadas en tiempo de ejecución
Compartición:Permitir a varios procesos acceder a la misma zona de memoria.Es mejor permitir a cada proceso el acceso a la misma copia del programa que tener cada uno su copia individual.
ORGANIZACIÓN Física:La memoria disponible para un programa y sus datos puede ser insuficiente.Para ello el programador emplea la superposición, en la que el programa y los datos se organizan de tal forma que puede haber varios módulos asignados a la misma región de memoria.Este programa de superposición hace malgastar tiempo al programador.El programador no sabe cuanto espacio habrá disponible.Es responsabilidad del sistema la tarea de mover información entre la memoria interna y la memoria secundaria
Organización Lógica:Los programas se organizan en módulos.Los módulos se pueden escribir y compilar por separado.A los módulos se les puede dar diferente grado de protección(o lectura o ejecución).Es posible introducir mecanismos para la compartición de módulos.

3.2.- TÉCNICAS DE GESTIÓN DE MEMORIA. 
3.2.1- PARTICIONES ESTÁTICAS. 
Es la forma más sencilla de organizar la memoria para poder tener varios procesos simultáneamente residentes en memoria. Consiste en dividir la memoria en n particiones, quizás de tamaño diferente cada una de las cuales contendrá un programa. Las direcciones base son las direcciones de comienzo de cada partición.
El tamaño de cada partición es determinado por el operador o por el sistema operativo. Algoritmo de ubicación. 
El sistema operativo mantiene una tabla en la que cada fila corresponde a una partición, conteniendo la posición base de la misma, su tamaño (no todas las particiones tienen por qué ser iguales) y el estado de la partición (ocupada o libre). El planificador de procesos, una vez que una partición queda libre, hace que se introduzca el programa de máxima prioridad que quepa en ella. 
Este método está hoy ampliamente superado y presenta básicamente dos problemas: 
• Un programa puede no caber en una partición, lo que obliga al programador a estructurar su aplicación en módulos que sí quepan. 
• Efectúa un uso ineficiente de la memoria ya que cualquier programa, por pequeño que sea, ocupa una partición entera lo que provoca una fragmentación "interna": se malgasta el espacio interno de una partición

3.2.2.- PARTICIONES DINÁMICAS. 
Las particiones son variables en número y longitud. Conforme se carga un proceso se le asigna la memoria que necesita y no más. En la siguiente figura se muestra un ejemplo que usa 1MB de memoria principal. Al principio, la memoria principal está vacía, exceptuando el sistema operativo. Al principio, este método comienza bien, pero finalmente, 

desemboca en una situación en la que hay un gran número de huecos pequeños en memoria, problema que puede resolverse mediante la compactación de los huecos libres. La compactación se puede efectuar cambiando de lugar los programas en ejecución aprovechando la posibilidad de reubicarles que debe ofrecer el sistema operativo. 

Algoritmo de ubicación 
El sistema operativo gestiona una tabla de trabajos en la que cada línea contiene información sobre el número de trabajo o el identificador del mismo, el espacio que ocupa y la dirección base. Existe una tabla complementaria a la anterior con los fragmentos o huecos libres que quedan en la memoria. El planificador periódicamente consulta estas tablas introduciendo en memoria los trabajos que quepan en los fragmentos de memoria. Si hay libre más de un bloque de memoria de tamaño suficiente en el momento de cargar un proceso, el sistema operativo debe decidir cuál asignar. 
Los tres algoritmos de ubicación que se pueden considerar son: 
• Mejor ajuste (best-fit): elige el bloque de tamaño más parecido al solicitado. 
• Primer ajuste (first-fit): comienza recorriendo la memoria desde el principio y escoge el primer bloque disponible que sea suficientemente grande. 
• Siguiente ajuste (next-fit): recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande. 
Cuál de estos métodos es mejor dependerá de la secuencia exacta de intercambios de procesos que se den y del tamaño de estos procesos. 
3.2.3.- PAGINACIÓN. 
Con este procedimiento la memoria principal se estructura en trozos de tamaño fijo llamados marcos o marcos de página.
Cada proceso está dividido también en pequeños trozos de tamaño fijo y del mismo tamaño que los de memoria llamados páginas. De esta forma las páginas pueden asignarse a marcos de página libres. El fundamento de la paginación reside en que no es necesario que un programa se almacene en posiciones consecutivas de memoria. Las páginas se almacenan en bloques libres independientemente de que estén o no contiguos. Cada bloque, obviamente, contendrá, eso sí, instrucciones consecutivas. Una instrucción de programa se localiza dando el bloque de memoria y la dirección relativa dentro del bloque. 
El sistema operativo en lugar de mantener una tabla de trabajos como en el caso de las particiones dinámicas, mantiene en este caso tres, que son: 
• Tabla-mapa de páginas: Hay una por programa y contiene la posición del marco de cada una de sus páginas. La longitud de cada tabla es variable, dependiendo del número de páginas de cada programa. Dentro del programa la dirección lógica constará de un número de página y de un desplazamiento dentro de la página. El procesador emplea la tabla de páginas para convertir esa dirección lógica en una dirección física (número de marco + desplazamiento). 
• Tabla de marcos de memoria: Contiene tantas filas como marcos haya. Se indica el identificativo del programa que está en cada marco y, en su caso, si está libre. 
• Tabla de procesos: Cada fila contiene información relativa a cada trabajo en ejecución. Se indica su tamaño, dirección de memoria donde se encuentra su tabla-mapa de páginas y el estado y situación del programa. 



Entradas relacionadas: