Publicado el 12 de Enero del 2019
526 visualizaciones desde el 12 de Enero del 2019
1,7 MB
36 paginas
Creado hace 13a (28/09/2011)
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
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Índice
1
Introducción: de programas a procesos
Formato de un archivo ejecutable
Mapa de memoria de un proceso
Ejemplo de programa y proceso
Abstracciones de direccionamiento
2 Principios de gestión de memoria
Jerarquía de memoria en un computador
Principio de Localidad
Fragmentación
Reubicación
Protección y uso compartido
3 Mecanismos de gestión de memoria
Evolución histórica
Memoria particionada no contigua
Segmentación
Paginación
Segmentación paginada
4 Casos de estudio
Gestión de memoria del Pentium
Sistemas Operativos Avanzados
Gestión de Memoria
2 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Archivo ejecutable
Proceso
Código de ejemplo
Abstracciones de direccionamiento
Formato de archivo ejecutable
Sistemas Operativos Avanzados
Gestión de Memoria
3 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Archivo ejecutable
Proceso
Código de ejemplo
Abstracciones de direccionamiento
Mapa de memoria de un proceso
Sistemas Operativos Avanzados
Gestión de Memoria
4 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Archivo ejecutable
Proceso
Código de ejemplo
Abstracciones de direccionamiento
Programa y proceso
. . .
char ∗ nomprog ,
void Func ( i n t x )
{
i n t cont = 1 ;
r e s u l t a d o = 0 ;
i n t
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 ∗ argv [ ] )
{
i ;
i n t
char ∗ nomprog ;
Func ( cont ) ;
nomprog = ( char ∗) malloc (1 + s t r l e n ( argv [ 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 procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Archivo ejecutable
Proceso
Código de ejemplo
Abstracciones de direccionamiento
Abstracciones de direccionamiento
Espacio de direccionamiento
Conjunto de direcciones referenciables
Espacio de direccionamiento virtual ⇒ independiente para
cada proceso
Espacio de direccionamiento físico ⇒ repartido entre todos los
procesos
Los procesos sólo referencian direcciones virtuales
Tiene que haber una traducción de dirección virtual a física
transparente al proceso
Sistemas Operativos Avanzados
Gestión de Memoria
6 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Archivo ejecutable
Proceso
Código de ejemplo
Abstracciones de direccionamiento
Abstracciones de direccionamiento
Sistemas Operativos Avanzados
Gestión de Memoria
7 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Jerarquía de memoria en un computador
La jerarquización de la memoria es un intento de aumentar el
rendimiento de los computadores
Para ello se aprovechan los avances tecnológicos en el diseño
de memorias y la localidad de los programas
Memorias rápidas: tienen un coste elevado y una capacidad
pequeña
Memorias lentas: son baratas y tienen una capacidad alta
Sistemas Operativos Avanzados
Gestión de Memoria
8 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Esquema de jerarquía de memoria
Sistemas Operativos Avanzados
Gestión de Memoria
9 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Principio de localidad
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Los procesos tienden a concentrar sus referencias en un
intervalo de tiempo en un subconjunto de su espacio de
direcciones
Donald Knuth [1971]:
Los programas, normalmente, tienen un perfil muy desigual, con unos
pocos picos agudos. [..] También encontramos que menos del 4 por 100
de un programa, generalmente, representa más de la mitad de su tiempo
de ejecución
Es una propiedad empírica
La localidad puede ser de dos tipos:
Localidad espacial
Localidad temporal
Sistemas Operativos Avanzados
Gestión de Memoria
10 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Localidad espacial
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Una vez hecha una referencia a una posición de memoria, es
muy probable que las localidades cercanas sean también
referenciadas.
En apoyo a esta observación encontramos:
Ejecución secuencial del código
Tendencia de los programadores a colocar próximas entre sí las
variables relacionadas
Acceso a estructuras de datos de tipo matriz o pila
Sistemas Operativos Avanzados
Gestión de Memoria
11 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Localidad temporal
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Una vez hecha una referencia a una posición de memoria en
un determinado instante t, es muy probable que esa misma
posición vuelva a ser accedida en un instante t + ∆t
Justificada por:
Formación de ciclos
Subrutinas
Pilas
Sistemas Operativos Avanzados
Gestión de Memoria
12 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Fragmentación
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Fragmentación
Desaprovechamiento de la memoria libre disponible debido al mecanismo
de gestión utilizado
Puede ser de dos tipos, interna y externa
Fragmentación interna
Se debe a la diferencia de tamaño entre la partición de
memoria y el objeto residente dentro de ella
Fragmentación externa
Se debe al desaprovechamiento de memoria entre particiones
Sistemas Operativos Avanzados
Gestión de Memoria
13 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Reubicación
Reubicación
Proceso 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, se
puede producir en la etapa de compilación, en la etapa de
carga o en la etapa de ejecución
Reubicación estática
Se realiza antes o durante la carga del programa
Los programas no pueden ser movidos una vez iniciados
Reubicación dinámica
El paso de dirección virtual a dirección real, se realiza en
tiempo de ejecución
Necesita 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 procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Protección y uso compartido
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Necesario delimitar acceso a memoria:
Sistema operativo
Procesos de usuario
Metodos de protección
Registros límite
Registros base y límite
Bits de protección en memoria
Derechos 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 procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Registros límite
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Sistemas Operativos Avanzados
Gestión de Memoria
16 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Registros base y límite
Jerarquía de memoria
Localidad
Fragmentación
Reubicación
Protección y uso compartido
Sistemas Operativos Avanzados
Gestión de Memoria
17 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Evolución histórica
Evolución histórica
Memoria particionada no contigua
Segmentación
Paginación
Segmentación paginada
Máquina desnuda
Monitor monolítico
El sistema no proporciona ningún servicio
Además del sistema operativo, hay un único proceso
Memoria particionada contigua
Multiprogramación con número fijo de tareas (MFT)
Particiones de tamaño fijo
Se crean al arrancar el sistema
Multiprogramación con número variable de tareas (MVT)
Particiones de tamaño variable
Se crean cuando un proceso lo necesita
Memoria particionada no contigua
Sistemas Operativos Avanzados
Gestión de Memoria
18 / 36
Introducción: de programas a procesos
Principios de gestión de memoria
Mecanismos de gestión de memoria
Casos de estudio
Evolución histórica
Memoria particionada no contigua
Segmentación
Paginación
Segmentación paginada
Memoria particionada no contigua
El contenido de un proceso puede ser distribuído entre
diferentes particiones separadas en memoria
La memoria está organizada en particiones:
De tamaño variable ⇒ segmentos
De tamaño fijo ⇒ marcos
Tabla de descripción de particiones
Independiente por proceso
Se construye en tiempo de carga
del proceso en memoria
Comentarios de: Gestión de Memoria (0)
No hay comentarios