administracion de memoria

83
Instituto Politécnico Nacional Escuela Superior de Cómputo Unidad III: Administración de memoria Memoria principal M. en C. Hermes Francisco Montes Casiano [email protected]

Upload: kuby-santos

Post on 13-Sep-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Administración de memoria en unix

TRANSCRIPT

  • Instituto Politcnico NacionalEscuela Superior de Cmputo

    Unidad III:Administracin de memoria

    Memoria principal

    M. en C. Hermes Francisco Montes [email protected]

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Objetivos

    Objetivos1 Proporcionar una descripcin de las diversas formas de

    organizar el hardware de memoria.2 Analizar diversas tcnicas de gestin de memoria, incluyendo la

    paginacin y la segmentacin.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    2/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 FundamentosIntroduccinHardware bsicoReasignacin de direccionesEspacios de direcciones lgico y fsicoCarga dinmicaMontaje dinmico y bibliotecas compartidas

    2 Intercambio

    3 Asignacin de memoria contigua

    4 Paginacin

    5 Estructura de la tabla de pginas

    6 Segmentacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    3/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Introduccin

    La memoria es un componente crucial para la operacin de unsistema de cmputo.La memoria est compuesta de una gran matriz de palabras obytes, cada una con su propia direccin.La CPU extrae instrucciones de la memoria de acuerdo con elcontrador de programa de la memoria.Dichas instrucciones pueden provocar operaciones adicionalesde carga o de almacenamiento en direcciones de memoriaespecficas.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    4/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Introduccin

    La memoria es un componente crucial para la operacin de unsistema de cmputo.La memoria est compuesta de una gran matriz de palabras obytes, cada una con su propia direccin.La CPU extrae instrucciones de la memoria de acuerdo con elcontrador de programa de la memoria.

    Ciclo de instruccin1 Extraer una instruccin de la memora.2 Decodificar instruccin y extraer operandos.3 Ejecutar la instruccin.4 Almacenar resultado en la memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    4/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Introduccin

    La memoria es un componente crucial para la operacin de unsistema de cmputo.La memoria est compuesta de una gran matriz de palabras obytes, cada una con su propia direccin.La CPU extrae instrucciones de la memoria de acuerdo con elcontrador de programa de la memoria.Dichas instrucciones pueden provocar operaciones adicionalesde carga o de almacenamiento en direcciones de memoriaespecficas.

    InstruccionesLa unidad de memoria slo ve el flujo de direcciones de memoria yno sabe como se generan esas direcciones.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    4/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Hardware bsico

    La memoria principal y los registros dentro del propioprocesador son las nicas reas de almacenamiento a las que laCPU puede acceder.Todas las instrucciones en ejecucin y los datos utilizados porlas instrucciones debern encontrarse en almacenados en unode los medios de almacenamiento de acceso directo.Si los datos no se encuentran en memora, debern llevarsehasta all antes de que ls CPU pueda operar con ellos.Puede accederse a los registros integrados en la CPU en nicociclo de reloj del procesador.El acceso a la memoria puede requerir ms de un ciclo de relojpara poderse completar, el procesador necesitar detenerse.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    5/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Harware bsicoProteccin: registros base y lmite

    Se debe garantizar una correcta operacin que proteja elespacio de direcciones del sistema operativo y dems procesos.La proteccin debe ser proporcionada por el hardware.Cada proceso debe tener su espacin de memoria separado.Proteccn mediante registros:

    1 Registro base: almacena la direccin fsca legal ms pequea.2 Registro lmite: epecfica el tamao del rango.

    Figura : Registro base y registro lmite.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    6/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Harware bsicoProteccin: registros base y lmiteProteccn mediante registros:

    1 Registro base: almacena la direccin fsca legal ms pequea.2 Registro lmite: epecfica el tamao del rango.

    La proteccin del espacio de memoria se consigue haciendoque el CPU compare todas las direcciones con esos registros.Cualquier intento por parte de un proceso de acceder a lamemoria de otro har que se produzca una interrupcin haciael sistema operativo.

    Figura : Proteccin hardware de las direcciones.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    6/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Harware bsicoProteccin: registros base y lmite

    Se debe garantizar una correcta operacin que proteja elespacio de direcciones del sistema operativo y dems procesos.La proteccin debe ser proporcionada por el hardware.Cada proceso debe tener su espacin de memoria separado.Proteccn mediante registros:

    1 Registro base: almacena la direccin fsca legal ms pequea.2 Registro lmite: epecfica el tamao del rango.

    La proteccin del espacio de memoria se consigue haciendoque el CPU compare todas las direcciones con esos registros.Cualquier intento por parte de un proceso de acceder a lamemoria de otro har que se produzca una interrupcin haciael sistema operativo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    6/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Harware bsicoProteccin: registros base y lmite

    Los registros base y lmite slo pueden ser cargador por elsistema operativo.El sistema operativo tiene acceso no restringido a la memoriatanto del sistema como de los dems procesos.Lo anterior permite al sistema operativo cargar programas enla memoria, volcarlos en caso de error, leer y modificarparmetros en llamadas al sistema, etc.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    6/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direcciones

    Los programas residen en disco duro como archivos binariosejecutables.Para ejecutarse, un programa, deber cargarse en memoria ycolocarse dentro de un proceso.Los procesos del disco que estn esperando a ser cargados enmemoria para su ejecucin constituyen la cola de entrada.El procedimiento normal consiste en seleccionar uno de losprocesos de la cola de entrada y cargarlo en memoria.Eventualmente, el proceso terminar su ejecucin y su espaciode memoria ser declarado como disponible.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    7/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    En la mayora de los casos, un programa de usuario recorrervarios pasos antes de ser ejecutado.A lo largo de esos pasos las direcciones sufrentransformaciones:

    1 Las direcciones del programa fuente generalmente sonsmbolicas.

    2 Un compilador se encargar de asignar direcciones reubicablesa las direcciones smbolicas.

    3 El editor de montaje se encargar de asignar direccionesabsolutas a las direcciones reubicables.

    Cada operacin de reasignacin constituye una relacin de unespacio de direcciones a otro.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    Figura : Pasos en el procesamiento de un programa de usuario.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    La reasignacin de las instrucciones y los datos a direccionesde memoria puede realizarse en cualquiera de los siguientespasos:

    1 Tiempo de compilacin:2 Tiempo de carga:3 Tiempo de ejecucin:

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    La reasignacin de las instrucciones y los datos a direccionesde memoria puede realizarse en cualquiera de los siguientespasos:

    1 Tiempo de compilacin:Si al momento de compilar se sabe donde va a residir elproceso se pueden generar direcciones absolutas.Si se se sabe que el proceso residira en una zona de memoriaque comienza en la ubicacin R, el cdigo generado por elcompilador comenzar en dicha ubicacin y se extender apartir de ah.

    2 Tiempo de carga:3 Tiempo de ejecucin:

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    La reasignacin de las instrucciones y los datos a direccionesde memoria puede realizarse en cualquiera de los siguientespasos:

    1 Tiempo de compilacin:2 Tiempo de carga:

    Si no se conoce en tiempo de compilacin donde va a residir elproceso en memoria, el compilador deber generar cdigoreubicable.En este caso, se retarda la asignacin final hasta el momentode la carga.

    3 Tiempo de ejecucin:

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Reasignacin de direccionesEjecucin de un proceso

    La reasignacin de las instrucciones y los datos a direccionesde memoria puede realizarse en cualquiera de los siguientespasos:

    1 Tiempo de compilacin:2 Tiempo de carga:3 Tiempo de ejecucin:

    Si el proceso puede desplazarse durante su ejecucin desde unsegmento de memoria a otro, entonces es necesario retardar lareasignacin hasta el momento de la ejecucin.La mayora de los sistemas operativos de propsito generalutilizan este mtodo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    8/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsico

    Tipos de direccionesUna direccin generada por la CPU se denomina direccinlgica o direccin virtual.Una direccin fsica es una direccin vista por la unidad dememoria, es decir, la que se carga en el registro de direccionesde memoria de la memoria.

    Los mtodos de reasignacin de direcciones en tiempo decompilacin y en tiempo de carga generan direcciones lgicas yfsicas idnticas.El esquema de reasignacin de direcciones en tiempo deejecucin hace que las direcciones lgicas y fsicas difieran.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsico

    DefinicionesEl conjunto de todas las direcciones lgicas generadas por unproceso es lo que se denomina un espacio de direccioneslgicas.El conjunto de todas las direcciones fsicas correspondientes aesas direcciones lgicas es un espacio de direcciones fsicas.

    La correspondencia entre direcciones virtuales y fsicas entiempo de ejecucin es establecida por el dispositivo hardwareque se denomina unidad de gestin de memoria (MMU).

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsicoConversin de direcciones

    La correspondencia entre direcciones virtuales y fsicas entiempo de ejecucin es establecida por el dispositivo hardwareque se denomina unidad de gestin de memoria (MMU).

    Ejemplo de esquema MMU: registro base o de reubicacinEl valor contenido en el registro de reubicacin suma a todas lasdirecciones generadas por un proceso de usuario en el momento deenviarlas a memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsicoConversin de direcciones

    Ejemplo de esquema MMU: registro base o de reubicacinEl valor contenido en el registro de reubicacin suma a todas lasdirecciones generadas por un proceso de usuario en el momento deenviarlas a memoria.

    Figura : Reubicacin dinmica mediante un registro de reubicacin.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsicoConversin de direcciones

    El proceso de usuario nunca ve direcciones fsicas reales.Un programa puede crear un puntero a la direccin dememoria FF y tratarla siempre como el nmero FF.Slo cuando lo utiliza como direccin de memoria se producirla reubicacin en relacin con el registro base.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Espacios de direcciones lgico y fsicoConversin de direcciones

    ConversinEl proceso de usuario maneja direcciones lgicas y el harware deconversin de memoria convierte esas direcciones lgicas endirecciones fsicas.

    Espacios de direccionesEl concepto de un espacio de direcciones lgicas que se acopla a unespacio de direcciones fsicas separado resulta crucial para unaadecuada gestin de la memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    9/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Carga dinmica

    El tamao de un proceso est limitado al tamao de lamemoria fsica.Para obtener una mejor utilizacin del espacio de memoria sepuede utilizar un esquema de carga dinmica.Con la carga dinmica una rutina no se carga hasta que seinvoca.Todas las rutinas se mantienen en disco en formato de cargareubicable.La carga dinmica se realiza como sigue:

    1 El programa principal se carga en memoria y se ejecuta.2 Cuando una rutina necesita llamar a otra, la rutina que invoca

    comprueba si la otra rutina ya ha sido cargada.3 Si no es as, se invoca al cargador de montaje reubicable para

    que cargue en memoria la rutina deseada (actualiza la tabla dedirecciones).

    4 Se pasa el control a la rutina recin cargada.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    10/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Carga dinmica

    VentajaUna rutina no utilizada no se cargar nunca en memoria. Estemtodo es muy til cuando se necesitan grandes cantidades decdigo para gestionar casos que slo ocurren de manera espordica.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    10/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Montaje dinmico y bibliotecas compartidas

    Montaje estticoLas bibliotecas del sistema se tratan como cualquier otro mduloobjeto y son integradas por el cargador dentro de la imagen binariadel programa.

    En el montaje dinmico se incluye un stub dentro de la imagenbinaria para cada referencia a una rutina de biblioteca.

    StubEs un fragmento de cdigo que indica como localizar la rutinaadecuada de biblioteca residente en memoria o como cargar labiblioteca si esa rutina no est todava presente.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    11/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Montaje dinmico y bibliotecas compartidas

    En el montaje dinmico se incluye un stub dentro de la imagenbinaria para cada referencia a una rutina de biblioteca.

    Cuando se ejecuta el stub, ste comprueba si la rutinanecesaria ya se encuentra en memoria.Si no se encuentra el programa carga la rutina en memoria.En cualquiera de los casos el stub se sustituye a si mismo porla direccin de la rutina y ejecuta la rutina.El mecanismo de bibliotecas compartidas permite que msde un proceso haga referencia a una misma biblioteca, sin queesta se cargue dentro del espacio de direcciones de cadaproceso que la utiliza.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    11/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Montaje dinmico y bibliotecas compartidas

    Carga dinmica vs. Montaje dinmicoA diferencia de la carga dinmica, el montaje dinmico requiereayuda del sistema operativo.

    El sistema operativo es la nica entidad que puede comprobar su larutina necesaria se encuentra dentro del espacio de direcciones deotro proceo y ser tambien la nica entidad que pueda permitir amltiples procesos acceder a las mismas direcciones de memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    11/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 Fundamentos

    2 IntercambioIntercambio

    3 Asignacin de memoria contigua

    4 Paginacin

    5 Estructura de la tabla de pginas

    6 Segmentacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    12/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Intercambio

    Un proceso debe estar en memoria para ser ejecutado.Sin embargo, los procesos pueden ser intercabiadostemporalmente, sacndolos de la memoria y almacenndolosen un almacn de respaldo.Posteriormente, dichos procesos se vuelven a llevar luego a lamemoria para continuar su ejecucin.Normalmente, un proceso descargado se volver a cargar en elmismo espacio de memoria que ocupaba anteriormente(asignacin en tiempo de ensamblado o carga).Esta restriccin la dictaminar el mtodo de reasignacin de ladirecciones.Si se est utilizando reasignacin en tiempo de ejecucin spuede moverse un proceso a un espacio de memoria distinto.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    13/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Intercambio

    Los mecanismos de intercambio requieren un almacn derespaldo (disco duro).El sistema mantiene una cola de procesos preparados queconsistir en los procesos que se encuentren en memoria o enel almacn de respaldo y estn listos para ejecutarse.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    14/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Intercambio

    Cada vez que el planificador de la CPU decide ejecutar unproceso, llama al despachador:

    1 Verifica si el proceso se encuentra en memoria.2 Si no es as, y si no hay ninguna regin de memoria disponible,

    el despachador intercambia el proceso deseado por otro.3 Recarga los registros y transfiere el control al proceso

    seleccionado.

    Figura : Intercambio de dos procesos utilizando un disco como almacnde respaldo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    14/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    IntercambioEjemplo

    EjemploEs necesario intercambiar un proceso de usuario que tiene detamao 10 MB y el almacn de respaldo es un disco duro con unavelocidad de transferencia de 40 MB.

    10000 KB40000 KB por segundo

    = 250 milisegundos (1)

    Asumiendo una latencia media de 8 milisegundos, el tiempo deintercambio ser de 258 milisegundos.

    Sin embargo, dado que el intercambio requiere de las operacionesde carga y descarga, el tiempo total necesario sera de 516ms.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    15/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Intercambio

    Para conseguir un uso eficiente de la CPU, es necesario que eltiempo de ejecucin de cada proceso se largo en relacin conel tiempo de intercambio.La mayor parte del tiempo de intercambio es tiempo detransferencia.El tiempo de transferencia total es directamente proporcional ala cantidad de memoria intercambiada.Es til saber cuando memoria utiliza un proceso, con lafinalidad de intercambiar slo est utilizando.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    16/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    IntercambioFactores que restringen el intercambio

    EjemploSi se requiere intercambiar un proceso, se debe asegurar deque est completamente inactivo.Es necesario prestar atencin especial a todas las operacionesde E/S pendientes.Un proceso puede estar esperando por una operacin de E/Sen el momento en que quiera intercambiar para liberarmemoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    17/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    IntercambioFactores que restringen el intercambio

    ProblemaSi la E/S est accediendo asncronamente a la memoria deusuario donde residen los buffers de E/S, el proceso no podrser intercambiado.Si se descargara el proceso P1 y se cargara el proceso P2, laoperacin de E/S podra entonces intentar utilizar la memoriaque ahora pertenece al proceso P2.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    17/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    IntercambioFactores que restringen el intercambio

    SolucionesHay dos soluciones principalmente:

    1 No descargar nunca un proceso que tenga actividades de E/Spendientes.

    2 Ejecutar las operaciones de E/S nicamente con buffers delsistema operativo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    17/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Intercambio

    En muchas versiones de UNIX, es intercambio estanormalmente desactivado.El intercambio se activa cuando se estn ejecutandonumerosos procesos y la cantidad de memoria utilizada excedecierto umbral.El intercambio se desactiva cuando la carga del sistema sereduce.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    18/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 Fundamentos

    2 Intercambio

    3 Asignacin de memoria contiguaMapeo de memoria y proteccinAsignacin de memoria

    4 Paginacin

    5 Estructura de la tabla de pginas

    6 Segmentacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    19/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Introduccin

    La memoria principal debe albergar tanto al sistema operativocomo los diversos procesos de usuario.Es necesario asignar las distintas partes de la memoriaprincipal de la forma ms eficiente posible.La memoria usualmente est dividida en dos particiones: unapara el sistema operativo y otra para los procesos.Dado que el vector de interrupciones se situa en la parte bajade la memoria, el sistema operativo suele situarse tambin enla parte baja de la memoria.En el esquema de memoria contigua, cada proceso estcontenido en una nica seccin de memoria contigua.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    20/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mapeo de memoria y proteccin

    Se puede proporcionar mapeo de memoria y proteccinmediante el uso de los registros de reubicacin y lmite.Reubicacin: contiene el valor de la direccin fsica ms

    pequea.Lmite: contiene el rango de las direcciones lgicas.

    La MMU convertir la direccin lgica dinmicamentesumndole el valor contenido en el registro de reubicacin.Cuado el planificador elije un proceso, el despachador carga enlos registros de reubicacin y de lmite los valores correctos,como parte del proceso de cambio de contexto.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    21/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mapeo de memoria y proteccin

    La MMU convertir la direccin lgica dinmicamentesumndole el valor contenido en el registro de reubicacin.Cuado el planificador elije un proceso, el despachador carga enlos registros de reubicacin y de lmite los valores correctos,como parte del proceso de cambio de contexto.

    Figura : Pasos en el procesamiento de un programa.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    21/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mapeo de memoria y proteccin

    La MMU convertir la direccin lgica dinmicamentesumndole el valor contenido en el registro de reubicacin.Cuado el planificador elije un proceso, el despachador carga enlos registros de reubicacin y de lmite los valores correctos,como parte del proceso de cambio de contexto.

    ProteccinPuesto que todas las direcciones generadas por el CPU, estemecanismo permite proteger tanto al sistema operativo como a losdems procesos.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    21/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 Fundamentos

    2 Intercambio

    3 Asignacin de memoria contigua

    4 PaginacinMtodo bsicoSoporte hardawareProteccinPginas compartidas

    5 Estructura de la tabla de pginas

    6 SegmentacinUnidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano22/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Introduccin

    PaginacinLa paginacin es un esquema de gestion de memoria que permiteque el espacio de direcciones fsicas de un proceso no sea contiguo.

    La paginacin evita considerablemente el problema de encajarfragmentos de memoria de tamao variable den el almacen derespaldo.El almacen de respando tambin sufre los problemas defragmentacin.El soporte para la paginacin se gestionaba mediante hardware,actualmente se realiza mediante hardware y sistema operativo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    23/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Mtodo bsicoEl mtodo bsico para implementar la paginacin implicadescomponer la memoria fsica en una serie de bloques de tamaofijo denominados marcos y descomponer la memoria lgica enbloques del mismo tamao denominados pginas.

    Cuando hay que ejecutar un proceso, sus pginas se cargandesde el almacen de respaldo en los marcos de memoriadisponibles.El almacn de resplando est dividido en bloques de tamaofijo que tienen el mismo tamao que los marcos de memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Toda direccin generada por la CPU est dividida en dospartes: un nmero de pgina (p) y un desplazamiento depagina (d).El nmero de pgina se utiliza como ndice de una tabla depginas.La tabla de pginas contiene la direccin base de cada pginaen memoria fsica.La direccin base se combina con el desplazamiento de pginapara definir la direccin de memoria fsica que se enva a launidad de memoria.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Figura : Hardware de paginacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Figura : Hardware de paginacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    El tamao de pgina est definido por el hardware ynormalmente es una potencia de 2.El tamao de pgina varia entre 512 bytes y 16 MB porpgina, dependiendo de la arquitectura de la computadora.La seleccin de una potencia de 2 como tamao de pginafacilita la traduccin de direcciones lgicas a fsicas.

    Espacio de direccionesSi el tamao del espacio de direcciones lgicas es 2n y el tamao depgina es 2n unidades de direccionamiento, entonces los m n bitsde mayor peso de cada direccin lgica designarn el numero depgina, mientras que los n bits de menor peso indicarn eldesplazamiento de pgina.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Figura : Hardware de paginacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    24/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsicoEjemplo

    Tamao de pgina 4 bytesMemoria fsica de 32 bytes (8 pginas)La direccin lgica 0 representada en la pgina 0,desplazamiento 0.Realizando la indexacin en la tabla de pginas, se observa quela pgina 0 se encuentra en el marco 5.La direccin lgica 0 se hace corresponder con la direccin20(= (5x4) + 0)

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    25/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsicoEjemplo

    Figura : Hardware de paginacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    25/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Con un esquema de paginacin no se tiene fragmentacinexterna, pero si fragmentacin interna.Si el tamao de los procesos es independiente del tamao delas pginas, se puede esperar que la fragmentacin interna seen promedio igual a media pgina por proceso.Hoy en da las pginas utilizadas se encuentran entre 4KB y8KB.

    EscenarioSi cada entrada de la tabla de pginas tiene 4 bytes de longitud.Una entrada de 32 bits puede apuntar a una de 232 marcos depgina fsicos. Si el tamao de marco es de 4KB, entonces unsistema con entradas de 4 bytes podr direccionar 244 bytes dememoria fsica.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    26/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Cuando un proceso llega al sistema para ejecutarlo, se examinasu tamao expresado en pginas.Cada pgina del proceso necesitar un marco.Si el proceso requiere n pginas, deber haber disponibles almenos n marcos en memoria.

    1 Si hay disponibles n marcos, se les asignarn al proceso queacaba de llegar.

    2 La primera pgina del proceso se carga en uno de los marcosasignados y se incluye el nmero de marco en la tabla depginas para este proceso.

    3 La siguiente pgina dr carga en otro marco y su nmero demarco se coloca en la tabla de pginas, y as sucesivamente.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    26/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    Figura : Marcos libres y asignados.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    27/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Soporte hardware

    La mayoria de los sistema operativos asignan una tabla depginas para cada proceso.Almacenan un apuntador a la tabla de pginas en el bloque decontrol del proceso.La tabla de pginas se implementa se implementa como unconjunto de registros de dicados.Los registros se deben construir con lgica de muy altavelocidad, con el objetivo que la traduccin de direcciones seaeficiente.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    28/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Soporte hardware

    Cada acceso a la memoria debe pasar a travs del mapa depaginacin.Las instrucciones para cargar o modificar los registros de latabla de pginas son exclusivas del sistema operativo.Se utiliza un hardware especial de tamao reducido y de rpidoacceso denominado buffer de consulta de traduccin(TLB).El nmero de entradas del TLB es de entre 64 y 1024.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    28/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Soporte hardware

    Su uso es el siguiente:1 El buffer TLB contiene slo unas cuantas entradas de la tabla

    de pginas.2 Cuando se genera una direccin lgica, se presenta un nmero

    de pgina al TLB.3 Si se encuentra ese nmero de pgina, su nmero de marco

    estar inmediatamente disponible.4 Si el nmero de pgina no est disponible, es necesari hacer

    referencia a la memoria para consultar la tabla de pgina.

    Una vez obtenido el nmero de marco, este se utiliza paraacceder a la memoria.Se puede aadir el nmero de pgina y el numero de marco alTLB para los accesos futuros.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    28/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Soporte hardware

    Figura : Hardware de paginacin con TLB.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    29/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Proteccin

    La proteccin de memoria en un entorno paginado se consiguemediante una serie de bits de proteccin asociados con cadamarco.Dichos bits se mantienen en la tabla de pginas.Uno de los bits puede definir a una pgina como delectura-escritura o dolo de lectura.Toda referencia a la memoria pasa a travs de la tabla depginas con el fin de encontrar el nmero de marco correcto.Al mismo tiempo que se calcula la referencia se puedencomprobar los bits de proteccin.Cualquier intento anomalo provocar una interrupcinhardware al sistema operativo.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    30/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Proteccin

    Se suele asociar un bit adicional con cada entrada de la tablade pginas:

    Vlido: la pgina asociada se encontrar dentro del espacio dedirecciones lgicas del proceso.Invlido: la pgina no se encuentra dentro del espacio dedirecciones lgicas del proceso.

    El sistema operativo configura dicho bit para permitir odenegar el acceso a dicha pgina.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    30/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Proteccin

    Figura : Bit vlido-invlido.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    31/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Pginas compartidas

    Una ventaja de la paginacim es la posibilidad de compartircdigo en comn.Lo cual es muy til en ambientes de tiempo compartido.

    EjemploConsidere un sistema que de soporte a 40 usuarios, cada uno de loscuales est ejecutando un editor de texto.Si el editor de texto est compuesto por 150 KB de cdigo y 50 KBde espacio de datos, se necesitaran 8000 KB para dar soporte a los40 usuarios.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    32/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Pginas compartidas

    El cdigo reentrante es cdigo que no se automodifica duranteel tiempo de ejecucin.Dos o ms procesos pueden utilizar el mismo cdigo, si ste esreentrante.Cada proceso tendr su propia copia de los registros y delalmacenamiento de datos.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    32/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Pginas compartidas

    Figura : Pginas compartidas.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    33/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 Fundamentos

    2 Intercambio

    3 Asignacin de memoria contigua

    4 Paginacin

    5 Estructura de la tabla de pginasPaginacin jerrquicaTablas hashTablas de pginas invertidas

    6 SegmentacinUnidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    34/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Paginacin jerrquica

    La mayora de los sistemas modernos soportan un gran espaciode direcciones lgico (232 a 264).En dichos entornos la tabla de pginas puede llegar a ser muygrande.

    EjemploConsidere un sistema con un espacio de direcciones lgico dedirecciones de 32 bits. Si el tamao de pgina en dicho sistema esde 4 KB (212), entonces la tabla de pginas puede estar compuestapor 2

    32

    212 entradas.

    Una forma de minimizar la cantidad de memoria es utilizar unalgoritmo en dos niveles.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    35/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Paginacin jerrquica

    De modo que la direccin tendria la siguiente estructura:

    Figura : Estructura de la direccin

    Donde:p1: es un ndice a la tabla de pginas externa.p2: es el desplazamiento dentro de la pgina de la pgina de latabla de pginas externa.d: es el desplazamiento dentro de la pgina.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    35/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Paginacin jerrquica

    Figura : Tabla de pginas en dos niveles.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    35/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Paginacin jerrquica

    Figura : Tabla de pginas en dos niveles.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    35/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Tablas de pginas hash

    Una tcnica comn para gestionar los espacios de direccionessuperiores a 32 bits sonsite en utilizar una tabla hash depginas.Cada entrada de la tabla hash contiene una lista enlazada delos elementos que tienen como valor hash una mismaubicacin.Cada elemento est compuesto de tres campos:

    1 El nmero de la pgina virtual2 El valor del marco de pgina mapeado3 Apuntador al siguiente elemento de la lista

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    36/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Tablas de pginas hash

    Figura : Tabla de pginas hash.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    36/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Tablas de pginas invertidas

    Usualmente, cada proceso tiene una tabla de pginas asociada.La tabla de pginas incluye una entrada por cada pgina que elproceso est utilizando.El sistema operativo debe traducir cada referencia a unadireccin fsica.

    DesventajaCada tabla de pginas puede estar compuesta por millones deentradas y pueden ocupar gran cantidad de memoria fsica.

    Para resolver el problema se puede utilizar una tabla depginas invertida.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    37/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Tablas de pginas invertidas

    Las tablas de pginas invertidas tiene una entrada por cadamarco de memoria.Cada entrada est compuesta de la direccin virtual de lapgina almacenada en dicha ubicacin de memoria real eincluye informacin del proceso que posee dicha pgina.

    VentajaEn el sistema habr una nica tabla de pginas y esa tabla slotendr una entrada por cada pgina de memoria fsica.

    Las tablas de pginas invertidas requieren a menudo que sealmacene un identificador del espacio de direcciones en cadaentrada de la tabla de pginas.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    38/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Tablas de pginas invertidasTraduccin de direcciones

    Cada entrada de la tabla de pginas invertida es una pareja< id proceso, numero pagina >.La traduccin de direcciones realiza como sigue:

    1 Cuando se produce una referencia a memoria, se presenta alsubsistema de memoria una parte de la direccin virtual< id proceso, numero pagina >.

    2 Se explora la tabla de pginas invertida en busca de unacorrespondencia.

    3 Si se encuentra la correspondencia (ej. i), se generar ladireccin fsica .

    4 Si no se encuentra la correspondencia, quierra decir que se harealizado un intento de acceso ilegal a una direccin.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    39/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    ndice

    1 Fundamentos

    2 Intercambio

    3 Asignacin de memoria contigua

    4 Paginacin

    5 Estructura de la tabla de pginas

    6 SegmentacinMtodo bsicoHardware

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    40/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    DefinicinLa segmentacin es un esquema de gestin de memoria que soportala visin de la memoria que tienen los usuarios.

    Un espacio lgico de direcciones es una coleccin desegmentos y cada segmento tiene un nombre y una longitud.Las direcciones especifican tanto el nombre del segmento comoel desplazamiento dentro de ese segmento.Por simplicidad de implementacin, los segmentos estnnumerados y se hace referencia a ellos mediante el nmero desegmento, en lugar de utilizar el nombre del segmento.Una direccin lgica tiene la estructura:.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    41/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Mtodo bsico

    DefinicinLa segmentacin es un esquema de gestin de memoria que soportala visin de la memoria que tienen los usuarios.

    Normalmente, el programa de usuario se compila y elcompilador construye automaticamente los segmentos parareflejar el programa de entrada.Un compilador de C, podra generar segmentos separados paralos siguientes elementos:

    1 El cdigo2 Las variables globales3 El cmulo de memoria4 Las pilas utilizadas por hilos independientes de ejecucin5 La biblioteca C estndar

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    41/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Hardware

    El mapeo de direcciones se realiza mediante la tabla desegmentos.Cada entrada de la tabla de segmentos tiene una direccinbase del segmento y un lmite del segmento.

    base: contiene la direccin fisica inicial del lugar donde elsegmento reside dentro de la memmorialmite: especifica la longitud del segmento

    Una direccin lgica estar compuesta de dos partes:1 nmero de segmento (s): se utiliza como ndice para la tabla

    de segmentos.2 desplazamiento (d): debe estar comprendido entre 0 y el lmite

    del segmento, si no lo est se producir una interrupcin haciael sistema operativo.

    Cuando un desplazamiento es legal, se le suma a la direccinbase del segmento para generar la direccin de memoria fsicadel byte deseado.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    42/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Hardware

    Figura : Hardware de segmentacin.

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    42/42

  • Introduccin Intercambio Asignacin de memoria Paginacin Tabla de pginas Segmentacin

    Hardware

    Figura : Ejemplo de segmentacin

    Unidad III: Administracin de memoria Memoria principal Hermes Francisco Montes Casiano

    42/42

    FundamentosIntroduccinHardware bsicoReasignacin de direccionesEspacios de direcciones lgico y fsicoCarga dinmicaMontaje dinmico y bibliotecas compartidas

    IntercambioIntercambio

    Asignacin de memoria contiguaMapeo de memoria y proteccinAsignacin de memoria

    PaginacinMtodo bsicoSoporte hardawareProteccinPginas compartidas

    Estructura de la tabla de pginasPaginacin jerrquicaTablas hashTablas de pginas invertidas

    SegmentacinMtodo bsicoHardware