Administracion memoria

Embed Size (px)

Citation preview

  • 1. 1Sistemas Operativos (IS11) Tema 4Administracin de Memoria.Sistemas OperativosTema 4.2Sistemas Operativos (IS11) Tema 4Administracin de memoria. Jerarqua de memoria: Registros CPU del procesador Cach (memoria rpida) Memoria principal RAM Almacenamiento secundario (memoria virtual) Al bajar en la jerarqua ms capacidad pero ms lento es eldispositivo y ms barato. Administrador de memoria: Parte del S.O. que gestiona la memoria: Control de que partes de la memoria estn utilizadas o libres. Asignar memoria a procesos y liberarla cuando terminan. Administrar intercambio entre memoria y disco (Memoria Virtual).

2. 3Sistemas Operativos (IS11) Tema 4Administracin de memoria. Proceso de Compilacin y Carga de un Programa: Ejemplo: (enlace de direcciones) Programa ensamblador consalto a una etiqueta: ETIQ ----jmp ETIQPrograma FuenteCompilacin yEnsambladorMduloObjetoEditor deEnlacesOtros ModulosObjetoCargaContenidode la memoriaen binarioEjecucin4Sistemas Operativos (IS11) Tema 4Proceso de Compilacin y Carga de Programas. En que momento se realiza el enlace o traduccin dedirecciones? Compilacin: Generando cdigo absoluto, en el momento decompilacin se sabe donde residir el programa en memoria. Carga (Reubicacin esttica): El compilador genera cdigo relocalizable. Se crean direcciones de memoria absolutas cuando se carga elprograma en memoria. Ejecucin (Reubicacin dinmica) : Durante la ejecucin puede moverse el cdigo de un proceso. Necesita apoyo del hardware:DireccionesLogicasCPURegistro BaseMEMORIAFISICA+01...100 3. 5Sistemas Operativos (IS11) Tema 4Administracin en sistemas Monoprogramados. En sistemas monoprogramados generalmente la memoriaprincipal dividida en dos particiones: Una para el usuario: Un proceso con su cdigo. Direccin a partir de la que se cargan programas de usuario. Otra para el sistema operativo residente (memoria baja). Es necesario proteger las particiones entre s.SistemaOperativo Usuario00000 0FFFF6Sistemas Operativos (IS11) Tema 4Administracin en sistemas Monoprogramados. A veces el tamao del S.O. desea variarse: Ej.: Manejadores de dispositivos que no se usan. Se puede realizar una reubicacion dinmica del espacio. Tambin, cargar los procesos de usuario en memoria alta.SistemaOperativoProcesoUsuario00000 FFFFFLibreCPURegistro Base=14000MEMORIAFISICA+DireccinLogica= 346DireccinFsica= 14346 4. 7Sistemas Operativos (IS11) Tema 4Administracin en sistemas Multiprogramados. Es deseable que haya varios procesos en memoria para suejecucin concurrente. Se debe compartir la memoria entre varios procesos queesperan asignacin de la misma. Esquemas de asignacin de memoria: Contigua: particiones fijas y variables Intercambio (swapping) Paginacin Segmentacin Segmentacin paginada8Sistemas Operativos (IS11) Tema 4Administracin en sistemas Multiprogramados. Primer esquema de asignacin de memoria: Particiones La memoria est dividida de antemano en espacios (Particiones). Un proceso necesita ejecutarse -> Se le asigna uno de dichosespacios (Particin). Cada particin puede contener un nico proceso. Pueden ser: Particiones Fijas: Todas el mismo tamao. Con diferentes Tamaos. Particiones Variables. 5. 9Sistemas Operativos (IS11) Tema 4Particiones Fijas. Particiones de igual tamao: Nivel de multiprogramacin limitado por nmero de particiones. Hay una cola con procesos que quieren utilizar memoria y ejecutarse. Hay una tabla para indicar particiones ocupadas y libres.SistemaOperativo Particin 1 Particin 2 Particin N00000 0FFFF 1FFFF 2FFFF NFFFF...10Sistemas Operativos (IS11) Tema 4 Particiones con diferentes tamaos: Para procesos que quieren utilizarmemoria para ejecutarse: Podemos tener varias colas: Cada proceso se asigna a unacola en funcin de su tamao. Podemos tener una nica cola: Cuando se libera una particin ->se asigna al primer proceso quecabe en ella.Particiones Fijas.SistemaOperativo Particin 1 Particin 2 Particin N00000 0FFFF 3FFFF 40FFF E1FFF FFFFF...SistemaOperativo Particin 1 Particin 2 Particin N00000 FFFFF......Proceso 1Proceso 2Proceso 3SistemaOperativo Particin 1 Particin 2 Particin N00000 FFFFF......Proceso 1 Proceso 2Proceso 5 Proceso 4Proceso 3Proceso 6 6. 11Sistemas Operativos (IS11) Tema 4 Problemas que presenta este tipo de asignacin de memoria: Debe proporcionarse reubicacin: En que particin entrar el proceso?. Existe Fragmentacin Interna y Externa: Interna: Una particin asignada y no ocupada totalmente por el proceso. Externa: Un proceso quiere ejecutarse, hay una particin libre, pero demenor tamao que el proceso. Necesidad de proteccin: (en sistemas multiprogramados) Un proceso no acceda al rea de memoria del otro. Si la reubicacin es dinmica puede usarse registros base-lmite.CPURegistro Base=14000Registro Lmite=1000MEMORIAFISICA+DireccinLogica= 346DireccinFsica= 14346Es menor ?Interrupcin Hardwareinterna al S.O.NOSIParticiones Fijas.12Sistemas Operativos (IS11) Tema 4Particiones Variables. Funcionamiento: Inicialmente: Toda la memoria (salvo particin del S.O.)disponible para procesos, como si fuese un gran hueco. Llega un proceso: Se introduce en un hueco libre. El espacio no ocupado ser un nuevo hueco. Cada zona de memoria ocupada -> una particin. Proceso termina: Libera su zona de memoria. Se convierte en un hueco. Dicho hueco se fusiona con los adyacentes. Se conserva una tabla de partes de memoria ocupadas y libres yla cola de entrada de procesos en memoria. 7. 13Sistemas Operativos (IS11) Tema 4 Un ejemplo:los procesos se cargan en memoria, compitenpor la CPU y al acabar liberan la memoriaParticiones Variables.Proceso ProcesoMemoriaRequeridaMemoriaRequeridaPPPPP12 5600 K1000 K300 K700 K500 K34S.O. S.O. S.O. S.O. S.O. S.O. S.O. S.O.400K1000K2000K2300K1700K2560K900KProcesoP1ProcesoP1ProcesoP1ProcesoP1ProcesoP1ProcesoP2ProcesoP2ProcesoP4ProcesoP4ProcesoP4ProcesoP5ProcesoP3ProcesoP3ProcesoP3ProcesoP3ProcesoP32160K560K260K1000K300K600K260K 260K 260K 260K300K 300K1560K14Sistemas Operativos (IS11) Tema 4 Fragmentacin de Particiones Variables: Externa: SI. (memoria dividida en huecos pequeos) Suma del espacio libre en memoria suficiente para el nuevo proceso. Pero no hay huecos suficientemente grandes para l. El nuevo proceso no se carga en memoria. Interna: NO. Las particiones se crean con el tamao solicitado por el proceso.Particiones Variables. 8. 15Sistemas Operativos (IS11) Tema 4 Esta asignacin de memoria se denomina: Asignacindinmica de almacenamiento Como elegir un hueco cuando llega un nuevo proceso detamao N? Estrategas: Primer Ajuste: Escoge el primer hueco libre de tamao suficiente. Mejor Ajuste: Hueco ms pequeo con tamao suficiente (requiere ver toda la listasi no est ordenada). Peor Ajuste: Hueco ms grande: Pretende conseguir que los huecos que quedensean grandes (requiere ver toda la lista si no ordenada).Particiones Variables.16Sistemas Operativos (IS11) Tema 4 Cul es el mejor? Simulaciones y Estadsticas: Criterio tiempo (reduccin) y utilizacin de memoria(aprovechamiento): Primer Ajuste y Mejor Ajuste son mejores que PeorAjuste. Regla del 50%: un anlisis estadstico refleja que Con Primer Ajuste por cada N bloques de memoria asignados sepierden 0,5 N bloques por fragmentacin externa (1/3 memoriainutilizada).Particiones Variables. 9. 17Sistemas Operativos (IS11) Tema 4CPURegistro Base=1400Registro Lmite=500+DireccinLogica= 346DireccinFsica= 1746Es menor ?Interrupcin Hardwareinterna al S.O.NOSIS.O.ProcesoP4ProcesoP5ProcesoP31400K1900K Proteccin de Memoria: se utiliza cdigo reubicable Si cdigo reubicable -> se pueden usar registros base y lmite.Particiones Variables.18Sistemas Operativos (IS11) Tema 4 Compactacin: intenta solucionar fragmentacin ext. Consiste en desplazar las particiones ocupadas para que estnjuntas en memoria: Queda un solo hueco libre de mayor tamao. Es una solucin al problema de fragmentacin externa. Slo es posible si la reubicacin es dinmica (en ejecucin). Ejemplo:100+300+260=Hueco de 660kParticiones Variables.S.O. S.O.400K 400K1000K2000K 1900K2300K1700K1600K2560K 2560K900K 900KProcesoP4ProcesoP4ProcesoP5ProcesoP5ProcesoP3ProcesoP3 10. 19Sistemas Operativos (IS11) Tema 4 Problemas de la Compactacin: Consume tiempo: Desplazar zonas de memoria. Difcil seleccionar una estrategia de compactacin ptima. Cul es la mejor?Particiones Variables.S.O.300K1000K1500K1900K1200K2100K500K600K800KP1 P1 P1 P1P2 P2 P2 P2P3P3P3P4P4P4200K 200K 200K 200K100K 100K 100K 100K200K200K200K400K400K400K(1) (2) (3)20Sistemas Operativos (IS11) Tema 4Paginacin. Paginacin: (solucin a fragmentacin externa) Permite que la memoria de un proceso no sea contigua. Hay una distincin entre direcciones lgicas y fsicas. La memoria fsica la dividimos en bloques de tamao fijo:marcos. La memoria lgica: La dividimos en bloques llamados: pginas. De igual tamao que el marco. Las pginas de un proceso se cargan en los marcos de lamemoria principal que estn disponibles: Tenemos trozos del proceso all donde la memoria estdisponible. 11. 21Sistemas Operativos (IS11) Tema 4 Hardware de paginacin: para traduccin de direcciones La direccin lgica generada consta de dos partes: Nmero de Pagina (P). Desplazamiento dentro de la pgina (D). La tabla de pginas: (contiene la direccin base en memoria fsica) Permite establecer una correspondencia entre el nmero depgina y un nmero de marco de memoria fsica. La direccin fsica es el nmero de marco y el desplazamiento.Paginacin.CPUP MD DTabla de Pginas012P M...DireccinLgicaDireccin Fsica22Sistemas Operativos (IS11) Tema 4 Ejemplos:Paginacin.Pagina 0Pagina 0Pagina 2Pagina 1Pagina 3Pagina 1Pagina 2Pagina 3MemoriaLgicaTabla dePginas14370123MemoriaFsica012345768Pagina 0Pagina 1Pagina 2Pagina 3MemoriaLgicaTabla dePginas56120123MemoriaFsica012345768013456789 910 1011 1112 1213 1314 1415 152aabbccddeeffgghhiijjkkllmmnnoopp16171819202122232425262728293031 12. 23Sistemas Operativos (IS11) Tema 4 Tamao de pginas y marcos definidos por Hardware. Normalmente se escoge un tamao de pgina potencia de 2: Ya que es ms fcil la traduccin de direcciones lgicas a fsicas.Paginacin.CPUTabla de Pginas012DireccinLgicaDireccin Fsica0010 000000 000000010001110110011011364758...Tamao memoria lgica 2tamao pgina 2 (bytes o palabras)P ndice en tabla de pginasD desplazamientoM-n bits altos de la direccin lgica= Pn bits bajos = Dde la direccin lgicamn24Sistemas Operativos (IS11) Tema 4 El SO traduce direcciones usando una copia de la tabla pginasen memoria Implementacin Hardware de la Tabla de Pginas:1) Un conjunto de registros (circuitos lgicos de alta velocidad): Habr que cargar estos registros en un cambio de contexto. Se usa para pocas entradas (unas 256)2) Tabla en memoria principal y registro base cuyo contenido apunta ala tabla de pginas: Para cambiar de tabla de pginas -> Basta cambiar de registro base. Menor tiempo de cambio de contexto pero mayor de acceso amemoria Accedemos dos veces a memoria para obtener un dato en memoria. Para tablas grandes (millones de entradas)Paginacin. 13. 25Sistemas Operativos (IS11) Tema 43) Registros Asociativos (TLB): (pequea cach de acceso rpido),(translation look-aside buffers) Los registros contienen solo unas pocas entradas de una T.pginas 2 partes en cada registro: Una clave (nmero de pgina). Y un valor (nmero de Marco). Compara el valor de la pgina deseada con todas las claves. Si la clave est: Proporciona el nmero de marco asociado. Si no est: Se accede a la tabla de pginas de memoria.Paginacin.CPUP MD DTLBMDireccinLgicaDireccin FsicaTabla de Pginas012P M...clave26Sistemas Operativos (IS11) Tema 4 Ventaja: Pginas Compartidas: La paginacin permite compartir cdigo comn entre varios procesos: Slo si el cdigo es reentrante (no se modifica durante ejecucin). El rea de datos de los procesos sera diferente. Ejemplo: varios procesos ejecutan el mismo editor de textosPaginacin.Datos 1Editor 1Editor 2Datos 2Editor 2 Editor 2Editor 2Editor 3 Editor 3Editor 3Datos 1 Datos 3Datos 2MemoriaLgicaMemoriaLgicaMemoriaLgicaTabla dePginasTabla dePginasTabla dePginas1 114 446 660 001 112 223 33MemoriaFsica012345971168PROCESO 1 PROCESO 3PROCESO 2Editor 1 Editor 1Editor 13 331 27Datos 3Editor 31012Una nica copiaDel editor enMemoria fsica 14. 27Sistemas Operativos (IS11) Tema 4 Proteccin de memoria en entorno con paginacin: En la tabla de pginas pueden encontrarse unos bits deproteccin asociados a cada marco indican si la pgina es de slo lectura o lectura y escritura. Cuando se consulta el nmero de marco, se consultan ademslos bits de proteccin. Se debe controlar que el nmero de pgina no supere el total depginas usadas por el proceso (sera una direccin incorrecta).Paginacin.28Sistemas Operativos (IS11) Tema 4Segmentacin. Otro esquema de asignacin memoria: Segmentacin El espacio de direcciones lgicas se compone de un conjuntode segmentos: Cada uno tiene un nombre y una longitud. Para el usuario las direcciones especifican el nombre delsegmento y el desplazamiento dentro de l. El nombre del segmento se numera (es un nmero). El procesador Intel 8086 usa segmentacin, los programas seseparan en: Segmento de Cdigo. Segmento de Datos. Segmento de Pila. Hay una divisin lgica del proceso en diferentes segmentos. 15. 29Sistemas Operativos (IS11) Tema 4 Hardware de segmentacin mediante Tabla de segmentos: Establece la correspondencia entre direcciones fsicas y lgicas. Se busca en la tabla de acuerdo con el nmero de segmento. Cada entrada 2 registros: base (dir. Fsica inicial del segmento en memoria) lmite de segmento (longitud del segmento) Se compara lmite del segmento con desplazamiento. Si desplazamiento vlido, se suma a la direccin el registro base.Segmentacin.CPUS dTabla de Segmentos012S...DireccinLgicaDireccin Fsica =Base + dLimite BaseLimite> d ?InterrupcinError dedireccionamientoNOSI+30Sistemas Operativos (IS11) Tema 4Ejemplo: sean 5 segmentos en memoria fsica Acceso a byte 1200 del segmento 0 da error direccionamientoSegmentacin.Subrrutina 1Subrrutina 2Segmento 0Segmento 1Segmento 3Segmento 2Segmento 4ProgramaPrincipalPilaDatosLimite Base100040040011001000140063004300320047001400240032004300470057006300670001234Segmento 0Segmento 3Segmento 2Segmento 4Segmento 1 16. 31Sistemas Operativos (IS11) Tema 4 Implementacin Hardware de la tabla de segmentos: Puede ubicarse en registros rpidos o memoria (como paginacin). Si est en memoria: Un registro base STBR (segment table base register) indicainicio de la tabla de segmentos en memoria. Un registro lmite indica longitud de la tabla de segmentos. Proteccin: Bits de proteccin: Segmento de slo lectura o lectura y escritura. Se consultan antes de acceder al segmento. Comparticin de cdigo: Puede realizarse a nivel de segmento (cdigo o datos). Cada proceso tendr una tabla de segmentos. Compartir un segmento significa que una entrada de la tabla desegmentos coincide en varios procesos (igual posicin fsica).Segmentacin.32Sistemas Operativos (IS11) Tema 4 Ejemplo comparticin editor: Si compartimos un segmento todos los procesos que lo compartendeben definir dicho segmento con el mismo cdigo.Direccin ( S , desplazamiento )Segmentacin.Segmento 0Segmento 0Segmento 1Segmento 1EditorEditorDatos 1Datos 2Memoria LgicaProceso P1Memoria LgicaProceso P2LimiteLimiteBaseBase001125286252864425855043062430626834890003Tabla de SegmentosProceso P2Tabla de SegmentosProceso P14306268348727739000398553EditorDatos 1Datos 2Memoria Fsica 17. 33Sistemas Operativos (IS11) Tema 4 Fragmentacin: Los segmentos son de tamao variable: Puede haber fragmentacin externa. Bloques de memoria demasiado pequeos para contener unsegmento. Solucin: Se puede compactar la memoria (segmentacin usareubicacin dinmica). Problema de fragmentacin, casos extremos: Cada proceso un segmento, igual esquema que en particionesvariables. Cada palabra (byte) un segmento: No habra fragmentacin externa. Necesitamos una tabla de segmentos del tamao de la memoria.Segmentacin.34Sistemas Operativos (IS11) Tema 4Segmentacin Paginada. Otro esquema de asignacin de memoria es: Segmentacinpaginada La Memoria lgica est dividida en bloque llamados segmentos quecontienen las regiones de un proceso. Direccin lgica== Los segmento estn divididos en pginas de igual tamao que los marcos(potencias de 2). Las pginas de un proceso se cargan en marcos de la memoria principal. Cada segmento tiene asociada una tabla de pginas Se usa un registro lmite y base de la tabla de pginas para cadasegmento 18. 35Sistemas Operativos (IS11) Tema 4Segmentacin Paginada. Esquema de traduccin de direcciones Direccin lgica== S= entrada de la tabla de segmentos: Contiene el lmitedel segmento Contiene ladireccin basede una tabla depginas. Habr una tablade pginas porcada segmento. El desplazamiento d es: Un nmero de pgina P. Un nuevo desplazamientodentro de la pgina d.CPUSP mdd dTabla de Segmentos01S...DireccinLgicaLimite Base Tablade PginasLimite> d ?InterrupcinError dedireccionamientoNOSI+Tabla de Pginasdel Segmento SmDireccinFsica36Sistemas Operativos (IS11) Tema 4 Recordemos que queremos: Mantener simultneamente varios procesos en memoria parapermitir multiprogramacin. Memoria Virtual: Permite separar la memoria lgica del usuario de la memoria fsica. Un proceso en ejecucin no tiene porque encontrarse totalmente enmemoria principal (slo parte). Ahora un proceso puede ser mayor que la memoria fsica. Permite transferencia de informacin entre memoria principal ysecundaria (2 niveles consecutivos de la jerarqua de memoria). Usa un dispositivo de almacenamiento secundario (disco) comodispositivo de intercambio. La memoria virtual puede implementarse sobre Paginacino Segmentacin paginada: se transfieren pginas. La transferencia suele ser bajo demanda.Memoria virtual. 19. 37Sistemas Operativos (IS11) Tema 4Paginacin por demanda. Paginacin por demanda: Los procesos estn divididos en pginas. Inicialmente: una serie de pginas del proceso cargadas en memoriaprincipal (MP), las que se usan. El resto en almacenamiento secundario. Necesario un bit de presencia en tabla de paginas: Bit vlido-invlido 1, pgina cargada en MP (v). 0, pgina no cargada (i). MemoriaLgicaTabla dePginasMemoriaFsicaDiscoABCDEF01234501234567469viviiviiA012345678910CFAB CD EF Si el proceso accede a pginasresidentes en memoria (bit depresencia vlido): la ejecucin prosigue normalmente Si accede a una pgina no residente(bit presencia invlido) Ocurre una interrupcin o fallo depgina , Control al SO38Sistemas Operativos (IS11) Tema 4 Gestin de un Fallo de pgina1. Se detecta que la pgina no est en memoria2. Se produce una interrupcin3. Se busca la pgina en almacenamiento secundario (disco)4. Se busca un marco libre, se lee la pgina de almacenamientosecundario y se copia en el marco seleccionado5. Se actualiza la tabla de pginas6. Reiniciamos en la instruccininterrumpidaPaginacin por demanda.Tabla dePginasMemoriaFsicaDiscoCargar M0123MMM+1M+2469viviviviB012345678910CFAB CD EF1 M correspondea una pginaque no esten memoria....SistemaOperativoInterrupcin 2La pgina est enalmacenamientoauxiliar.3Cargarla pgina enmemoria.4Actualizar la tabla de pginas.A2 5Reiniciar lainstruccin6 20. 39Sistemas Operativos (IS11) Tema 4 Hardware de apoyo a la paginacin por demanda: Capacidad de marcar en la tabla de pginas una entradacomo vlida o invalida (bit valido-invalido). Unidad de almacenamiento secundario: La seccin de disco empleado para este fin se denomina:espacio de intercambio o almacenamiento auxiliar. Paginacin por demanda pura: Caso extremo: comenzamos la ejecucin de un proceso sinninguna pgina cargada en memoria. Se irn produciendo fallos de pginas sucesivamente ycargando las pginas necesarias.Paginacin por demanda.40Sistemas Operativos (IS11) Tema 4Segmentacin Paginada con Paginacin por Demanda. No todas las pginas de todos los segmentos estaran enmemoria. Usamos tambin bits de valido-invalido para la tabla depginas asociada a cada segmento. El funcionamiento es igual que paginacin pordemanda. 21. 41Sistemas Operativos (IS11) Tema 4Reemplazo de pginas. Utilizando Memoria Virtual: Los procesos tienen parte de sus pginas cargadas en memoria. En un instante, la totalidad de los marcos de memoria estnocupados. Qu ocurre si ante un fallo de pgina no existe unmarco libre en memoria principal? Posibles soluciones que aplicara el S.O. : Abortar el proceso de usuario (no es una buena solucin). Descargar otro proceso y llevarlo a almacenamientosecundario liberando sus marcos (se puede hacer). Reemplazar pginas: Encontramos un marco que no se est utilizando y loliberamos.42Sistemas Operativos (IS11) Tema 4Reemplazo de pginas. Fallo de pgina con reemplazo de pginas: Se busca la pgina deseada en almacenamiento secundario. Se busca un marco libre. LO HAY: lo utilizamos. NO LO HAY: reemplazo de pgina usar un algoritmo de reemplazo de pginas para seleccionar unmarco vctima que genere el menor nmero de fallos de pgina Pasamos el contenido del marco a almacenamiento secundario. Actualizamos la tabla de pginas. Ya disponemos de un marco libre. Se lee la pgina dealmacenamiento secundario y se copia en el marco libre. Se actualiza la tabla de pginas. Se reinicia la instruccin interrumpida. 22. 43Sistemas Operativos (IS11) Tema 4Rendimiento Frecuencia de Fallo de pgina Sea p la probabilidad de que una referencia a memoria provoque unfallo de pgina (0