E.Campo M.Knoblauch Ó.López J.ClementeUniversidad de Alcalá Sistemas Operativos Avanzados...

36
Introducción: de programas a procesos Principios de gestión de memoria Mecanismos de gestión de memoria Casos de estudio Gestión de Memoria E. Campo M. Knoblauch Ó. López J. Clemente Departamento de Automática Universidad de Alcalá Sistemas Operativos Avanzados Gestión de Memoria 1 / 36

Transcript of E.Campo M.Knoblauch Ó.López J.ClementeUniversidad de Alcalá Sistemas Operativos Avanzados...

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

Ángel
Nota adhesiva
El bloque de Mapa de memoria se refiere a la memoria virtual de cara al usuario. Por otra parte hay un pequeño bloque de memoria virtual sólo a disposición de la task struct (Bloque de Control de Procesos), que es la memoria virtual del núcleo en la que se almacena el PID, PPID, estado del proceso...

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

Ángel
Nota adhesiva
Concepto de memoria virtual: -Conjunto de direcciones referenciables desde un proceso por el procesador -Espacio de memoria virtual, es independiente en cada proceso -Espacio de memoria principal, compartido para todos los procesos
Ángel
Nota adhesiva
Cada espacio de memoria virtual es independiente para cada proceso, y es el microprocesador el que genera direcciones de memoria virtual. MMU-Unidad de gestión de memoria (Hardware) que se encarga de la traducción de direcciones virtuales a direcciones de memoria principal.
Ángel
Nota adhesiva
Los procesos se encuentran en memoria virtual, mientras que los programas están en memoria física

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Nota adhesiva
Memoria usada en la actualidad. Se necesita MMU. Permite: re-ubicación dinámica y re-ubicación de usos compartidos.

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Nota adhesiva
Se suma el número del segmento y el desplazamiento que vienen de la posición en memoria virtual, y el resultado indica la posición en memoria principal
Ángel
Nota adhesiva
Registro Puntero-Base Tabla de Segmentos
Ángel
Nota adhesiva
Registro Límite de la Tabla de Segmentos

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

Ángel
Nota adhesiva
*Permite re-ubicación dinámica *Posee mecanismos de protección y de uso compartido
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Nota adhesiva
P = Página D = Desplazamiento
Ángel
Nota adhesiva
M = Marco
Ángel
Nota adhesiva
Las tablas de páginas se ubican en memoria principal

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

Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado
Ángel
Resaltado

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

Ángel
Resaltado
Ángel
Resaltado

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

Referencias bibliográficas II

D.E. Knuth.An Empirical Study of FORTRAN ProgramsSoftware—Practice and Experience, vol. 1, 105–133, 1971.

Sistemas Operativos Avanzados Gestión de Memoria 36 / 36