Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Gestión de Memoria
E. Campo M. Knoblauch Ó. López J. Clemente
Departamento de AutomáticaUniversidad de Alcalá
Sistemas Operativos Avanzados Gestión de Memoria 1 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Índice1 Introducción: de programas a procesos
Formato de un archivo ejecutableMapa de memoria de un procesoEjemplo de programa y procesoAbstracciones de direccionamiento
2 Principios de gestión de memoriaJerarquía de memoria en un computadorPrincipio de LocalidadFragmentaciónReubicaciónProtección y uso compartido
3 Mecanismos de gestión de memoriaEvolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
4 Casos de estudioGestión de memoria del Pentium
Sistemas Operativos Avanzados Gestión de Memoria 2 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Archivo ejecutableProcesoCódigo de ejemploAbstracciones de direccionamiento
Formato de archivo ejecutable
Sistemas Operativos Avanzados Gestión de Memoria 3 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Archivo ejecutableProcesoCódigo de ejemploAbstracciones de direccionamiento
Mapa de memoria de un proceso
Sistemas Operativos Avanzados Gestión de Memoria 4 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Archivo ejecutableProcesoCódigo de ejemploAbstracciones de direccionamiento
Programa y proceso. . .char ∗ nomprog , i n t cont = 1 ;
vo id Func ( i n t x ){
i n t r e s u l t a d o = 0 ;char c a r a c t e r = ’ a ’ ;
i f ( cont )cont = r e s u l t a d o ++;
. . .r e t u r n ;
}
main ( i n t argc , char ∗ a rgv [ ] ){
i n t i ;char ∗ nomprog ;
Func ( cont ) ;nomprog = ( char ∗) ma l l o c (1 + s t r l e n ( a rgv [ 0 ] ) ) ;. . .f r e e ( nomprog ) ;. . .e x i t ( 0 ) ;
}
Sistemas Operativos Avanzados Gestión de Memoria 5 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Archivo ejecutableProcesoCódigo de ejemploAbstracciones de direccionamiento
Abstracciones de direccionamiento
Espacio de direccionamientoConjunto de direcciones referenciables
Espacio de direccionamiento virtual ⇒ independiente paracada procesoEspacio de direccionamiento físico ⇒ repartido entre todos losprocesosLos procesos sólo referencian direcciones virtualesTiene que haber una traducción de dirección virtual a físicatransparente al proceso
Sistemas Operativos Avanzados Gestión de Memoria 6 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Archivo ejecutableProcesoCódigo de ejemploAbstracciones de direccionamiento
Abstracciones de direccionamiento
Sistemas Operativos Avanzados Gestión de Memoria 7 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Jerarquía de memoria en un computador
La jerarquización de la memoria es un intento de aumentar elrendimiento de los computadoresPara ello se aprovechan los avances tecnológicos en el diseñode memorias y la localidad de los programasMemorias rápidas: tienen un coste elevado y una capacidadpequeñaMemorias lentas: son baratas y tienen una capacidad alta
Sistemas Operativos Avanzados Gestión de Memoria 8 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Esquema de jerarquía de memoria
Sistemas Operativos Avanzados Gestión de Memoria 9 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Principio de localidad
Los procesos tienden a concentrar sus referencias en unintervalo de tiempo en un subconjunto de su espacio dedirecciones
Donald Knuth [1971]:Los programas, normalmente, tienen un perfil muy desigual, con unospocos picos agudos. [..] También encontramos que menos del 4 por 100de un programa, generalmente, representa más de la mitad de su tiempode ejecución
Es una propiedad empíricaLa localidad puede ser de dos tipos:
Localidad espacialLocalidad temporal
Sistemas Operativos Avanzados Gestión de Memoria 10 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Localidad espacial
Una vez hecha una referencia a una posición de memoria, esmuy probable que las localidades cercanas sean tambiénreferenciadas.En apoyo a esta observación encontramos:
Ejecución secuencial del códigoTendencia de los programadores a colocar próximas entre sí lasvariables relacionadasAcceso a estructuras de datos de tipo matriz o pila
Sistemas Operativos Avanzados Gestión de Memoria 11 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Localidad temporal
Una vez hecha una referencia a una posición de memoria enun determinado instante t, es muy probable que esa mismaposición vuelva a ser accedida en un instante t + ∆tJustificada por:
Formación de ciclosSubrutinasPilas
Sistemas Operativos Avanzados Gestión de Memoria 12 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Fragmentación
FragmentaciónDesaprovechamiento de la memoria libre disponible debido al mecanismode gestión utilizado
Puede ser de dos tipos, interna y externaFragmentación interna
Se debe a la diferencia de tamaño entre la partición dememoria y el objeto residente dentro de ella
Fragmentación externaSe debe al desaprovechamiento de memoria entre particiones
Sistemas Operativos Avanzados Gestión de Memoria 13 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Reubicación
ReubicaciónProceso de asignar direcciones a las diferentes partes de un programa(código, datos, pila...)
En función de cuándo se conozca la ubicación definitiva, sepuede producir en la etapa de compilación, en la etapa decarga o en la etapa de ejecuciónReubicación estática
Se realiza antes o durante la carga del programaLos programas no pueden ser movidos una vez iniciados
Reubicación dinámicaEl paso de dirección virtual a dirección real, se realiza entiempo de ejecuciónNecesita hardware adicional (MMU)Los programas pueden moverse en tiempo de ejecución
Sistemas Operativos Avanzados Gestión de Memoria 14 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Protección y uso compartido
Necesario delimitar acceso a memoria:Sistema operativoProcesos de usuario
Metodos de protecciónRegistros límiteRegistros base y límiteBits de protección en memoriaDerechos de acceso en tablas de traducción¿Dónde se almacenan?
¿Cómo compartir memoria entre procesos?
Sistemas Operativos Avanzados Gestión de Memoria 15 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Registros límite
Sistemas Operativos Avanzados Gestión de Memoria 16 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Jerarquía de memoriaLocalidadFragmentaciónReubicaciónProtección y uso compartido
Registros base y límite
Sistemas Operativos Avanzados Gestión de Memoria 17 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Evolución histórica
Máquina desnudaEl sistema no proporciona ningún servicio
Monitor monolíticoAdemás del sistema operativo, hay un único proceso
Memoria particionada contiguaMultiprogramación con número fijo de tareas (MFT)
Particiones de tamaño fijoSe crean al arrancar el sistema
Multiprogramación con número variable de tareas (MVT)Particiones de tamaño variableSe crean cuando un proceso lo necesita
Memoria particionada no contigua
Sistemas Operativos Avanzados Gestión de Memoria 18 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Memoria particionada no contigua
El contenido de un proceso puede ser distribuído entrediferentes particiones separadas en memoriaLa memoria está organizada en particiones:
De tamaño variable ⇒ segmentosDe tamaño fijo ⇒ marcos
Tabla de descripción de particionesIndependiente por procesoSe construye en tiempo de cargadel proceso en memoria
Sistemas Operativos Avanzados Gestión de Memoria 19 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Segmentación
Inicialmente la memoria física está organizada como un únicobloque vacío donde se crean particiones de tamaño variable(segmentos) a medida que se van necesitandoEl espacio de direccionamiento virtual se organiza ensegmentosPosee mecanismo de protección y permite uso compartidoLas direcciones virtuales tienen dos componentes: número desegmento y desplazamientoTabla de particiones denominada Tabla de Segmentos (TDS)Si la TDS es muy grande, es necesario almacenarla enmemoria principal apuntada por un registro (RPBTS) ⇒necesarias dos referencias a memoria por acceso
Sistemas Operativos Avanzados Gestión de Memoria 20 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Segmentación: esquema lógico
Sistemas Operativos Avanzados Gestión de Memoria 21 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Segmentación: esquema físico
Sistemas Operativos Avanzados Gestión de Memoria 22 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Consideraciones segmentación
Ventajas:No produce fragmentación internaCrecimiento dinámico de los segmentos
Inconvenientes:Necesita compactación de memoriaPuede aparecer fragmentación externa
Sistemas Operativos Avanzados Gestión de Memoria 23 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Paginación
Inicialmente la memoria física está organizada en particionesde tamaño fijo (marcos)El espacio de direcciones virtuales de un proceso está divididoen bloques de tamaño fijo llamados páginasLas direcciones virtuales tienen dos componentes: número depágina virtual y desplazamientoPosee mecanismo de protección y permite uso compartidoTabla de particiones denominada Tabla de Mapa de Páginas(TMP)Si la TMP es muy grande, es necesario almacenarla enmemoria principal apuntada por un registro (RPBTP)
Sistemas Operativos Avanzados Gestión de Memoria 24 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Paginación: esquema lógico
Sistemas Operativos Avanzados Gestión de Memoria 25 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Paginación: esquema físico
Sistemas Operativos Avanzados Gestión de Memoria 26 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Consideraciones paginación
Ventajas:No produce fragmentación externa
Inconvenientes:Puede aparecer fragmentación interna
Con páginas grandes aumenta la fragmentación interna perodisminuye el tamaño de la TMP y viceversaSi el número de páginas es grande, la zona de memoriaocupada por la TMP puede ser excesiva, por lo que hay quepaginar la tabla de páginas
Sistemas Operativos Avanzados Gestión de Memoria 27 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Paginación paginada
Sistemas Operativos Avanzados Gestión de Memoria 28 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Combinación de mecanismos
Es posible combinar los esquemas de paginación ysegmentaciónSe obtienen las ventajas de ambos esquemas a costa decomplicar el hardwarePosibles combinaciones:
Segmentación paginadaPaginación segmentada (no se emplea en la práctica)
Sistemas Operativos Avanzados Gestión de Memoria 29 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Evolución históricaMemoria particionada no contiguaSegmentaciónPaginaciónSegmentación paginada
Segmentación paginada: esquema lógico
Sistemas Operativos Avanzados Gestión de Memoria 30 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Gestión de memoria del Pentium
MMU del Pentium
El Pentium soporta segmentación, paginación y segmentaciónpaginada (la más habitual)La dirección lógica está compuesta por un selector desegmento (13+1 bits) y un desplazamiento (32 bits)El selector de segmento es uno de los siguientes registros: CS,DS, ES, SS, FS, GS
Sistemas Operativos Avanzados Gestión de Memoria 31 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Gestión de memoria del Pentium
Formato del descriptor de segmento
LDT (Local Descriptor Table) ⇒ una por procesoGDT (Global Descriptor Table) ⇒ una por sistemaNúmero máximo de entradas en cada tabla ⇒ 213
Cada entrada en la tabla de segmentos se denomina descriptorTamaño del descriptor ⇒ 8 bytes
Descriptor de segmento- Dirección base (32 bits)- Límite (20 bits)- Atributos y privilegios (12 bits)
Sistemas Operativos Avanzados Gestión de Memoria 32 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Gestión de memoria del Pentium
Etapa de segmentación del Pentium
Sistemas Operativos Avanzados Gestión de Memoria 33 / 36
Introducción: de programas a procesosPrincipios de gestión de memoria
Mecanismos de gestión de memoriaCasos de estudio
Gestión de memoria del Pentium
Etapa de paginación del Pentium
Sistemas Operativos Avanzados Gestión de Memoria 34 / 36
Referencias bibliográficas I
[Sánchez, 2005] S. Sánchez Prieto.Sistemas Operativos.Servicio de Publicaciones de la UA, 2005.[Tanenbaum, 2009] A. Tanenbaum.Sistemas Operativos Modernos.Ed. Pearson Education, 2009.[Stallings, 1999] W. Stallings.Organización y arquitectura de Computadores.Ed. Prentice Hall, 1999.[Silberschatz, 2006] A. Silberschatz, P. B. Galván y G. GagneFundamentos de Sistemas Operativos.McGraw Hill. 2006
Sistemas Operativos Avanzados Gestión de Memoria 35 / 36