Asignación de memoria contigua
danteeeeeeeeelEnsayo7 de Diciembre de 2017
817 Palabras (4 Páginas)328 Visitas
Asignación de memoria contigua
Introducción:
La memoria principal tiene como tarea asignar un espacio al sistema operativo y a su vez tener un espacio para los procesos del usuario por lo que la memoria se divide en distintas partes con el fin de ser más eficiente a esto se le conoce como la asignación de memoria contigua, existen varias maneras de llevarla a cabo por lo cual vamos a explicarlo a continuación:
Desarrollo:
La memoria usualmente se encuentra dividida en dos particiones: una para el sistema operativo y otra para los procesos del usuario. Se dice que el sistema operativo se encuentra en la zona baja o alta de memoria, esto dependiendo de la ubicación del vector de interrupciones.
Por lo común en la memoria queremos albergar varios procesos de usuario al mismo tiempo. Por lo cual debemos considerar como es que va a ser asignada la memoria que se encuentre disponible entre los procesos que se encuentren en la cola de entrada, los cuales esperan a ser cargados en la memoria.
Mapeo de memoria y protección: para poder continuar analizando la asignación de memoria, debemos hablar de la conversión de memoria y la protección. Podemos proporcionar estas características utilizando un registro de reubicación. Utilizando los registros de ubicación y de limite, cada dirección lógica debe ser inferior al valor contenido en el registro limite.
Cuando el planificador de la CPU selecciona un proceso para ser ejecutado, el despachador carga en los registros de reubicación y de límite sus valores correctos como parte de cambio de contexto pero como todas las direcciones que son generadas por la CPU se comparan con estos registros, este mecanismo permite proteger al SO y a los programas y datos de los otros usuarios.
Asignación de memoria: un método simple para la asignación de la memoria es dividirla en varias particiones de memoria, cada partición tiene un tamaño fijo y puede contener exactamente un proceso a manera que el grado de multiprogramación se encuentre limitado por el numero de particiones disponibles.
Cuando una partición se encuentra disponible se selecciona un proceso de la cola de entrada para posteriormente ser cargado en dicha partición. Y cuando el proceso dentro de la partición es completado, la partición queda en un estado disponible.
Existe otro método denominado MVT el cual consiste en entornos de procesamiento por lotes.
En el esquema de particiones fijas, el sistema operativo mantiene una tabla que indica que partes en la memoria se encuentran libres y cuales ocupadas. Al iniciar toda la memoria se encuentra libre para los procesos de usuario y existe un único bloque de gran tamaño de memoria disponible, al cual se le denomina agujero. Cuando llega un proceso y requiere de memoria buscaremos un agujero lo suficientemente grande como para albergar este proceso. Si lo encontramos solo se le asigna la memoria justamente necesaria, manteniendo el resto disponible para futuras solicitudes.
Conforme los procesos entran en el sistema, se introducen en una cola de entrada. El SO toma los requisitos de memoria de cada proceso y le memoria disponible para poder determinar a que procesos se le asigna la memoria. Cuando asignamos espacio a un proceso, se carga en memoria y puede comenzar a competir por el uso de la CPU. Al terminar, el proceso deja libre su memoria para que el SO puede rellenarla con otro proceso extraído de la cola de entrada.
Fragmentación: tanto la estrategia de primer ajuste como la de mejor ajuste para la asignación de memoria sufren del problema de fragmentación externa. A medida que se cargan procesos en memoria y se los elimina, el espacio de memoria libre se descompone en una serie de fragmentos de pequeño tamaño. El problema de la fragmentación externa aparecer cuando hay un espacio de memoria total suficiente como para satisfacer
...