es necesario que la memoria se divida
ejemplo: una ciudad donde no hay calles ni carreras ni avenidas es muy difícil entregar un correo si no existe una dirección que permita saber donde esta esa persona
por eso es necesario hacer un tipo de división de memoria donde hay múltiples diseños para la división de ella
se inicia con el análisis de lo que es la memoria principal
de hoy en ocho habla sobre la memoria virtual
para la gestión de memoria : es necesario hacer una subdivision de la memoria para hacer múltiples procesos
toda la memoria la utiliza una sola aplicación donde es necesario desmontar la anterior para montar la siguiente
1979 sistemas operativos mono tarea
(multiprogramacion)
los pequeños trozos que se dividen tendrán diferencias del diseño del sistema operativo que se halla echo.
requisitos de gestión de memoria:
Reubicacion:
los procesos pueden ser reutilizados que una vez asignados a la memoria el sistema operativo pueda cambiarlos.
cuando se esta diseñando el programa (hola mundo) como no se sabe si hay otros programas en el momento de la ejecución el sistema operativo sabe donde guardar ,el programador desconoce que hallan otros procesos , donde cada proceso se puede ir a bloqueado o suspendido , cuando el proceso sale de memoria , cuando retorne .. no deberá ubicarse en el mismo sitio donde partió debe ubicarse en el momento donde halla espacio .
ejemplo:
el proceso tiene 2k de tamaño es bajado de memoria y en ese punto , llega un proceso de 1k cuando retorne no podrá ubicarse en el mismo sitio y hay huecos disponibles de 8k de 2k de 16k 1k, donde se ubica el proceso de 2k ? en un proceso de 2k donde podrían haber otras opciones mucho mejor, por eso es necesario que las direcciones sean relativas para que se pueda ejecutar el procesamiento.
posición de memoria que al llegar al uso efectivo de memoria cambian y se convierten en posiciones físicas o reales posiciones virtuales o lógicas , las posicionase de memoria que hablamos tiene un proceso de convercion que va ha ubicar ese proceso o esa variable o ese apuntador en memoria.
una imagen encontrada en google
todo proceso de memoria esta dividido en 4 regiones
bloque de control de proceso
programa o segmento de código
datos o segmento de pila
pila o segmento de pila
una vez terminado el bloque de control de proceso es el inicio del programa lo que hace es saltar del segmento del código al mismo segmento de código del proceso, cuando estoy asignando me dirijo directamente al segmento de datos, la pila sirve para guardar esos datos intermedios para el calculo interior, pero al usuario no le interesa saberlos, el proceso debe bloquearse para limpiar la pila, donde los cálculos grandes requieren gran cantidad de memoria.
No hay comentarios:
Publicar un comentario