Tema 5: Gestin de Memoria - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Tema 5: Gestin de Memoria

Description:

Dependencia total del Hardware. Seg n sea este, ser el tipo de gesti n de memoria ... Necesita un hardware especial que realiza la traducci n ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 28
Provided by: Lol56
Category:

less

Transcript and Presenter's Notes

Title: Tema 5: Gestin de Memoria


1
Tema 5 Gestión de Memoria
  • 1.- Introducción
  • 2.- Requisitos de la Gestión de Memoria
  • 3.- Direccionamiento
  • 3.1.- Correspondencia estática en tiempo de
    compilación
  • 3.2.- Correspondencia estática en tiempo de carga
  • 3.3.- Correspondencia estática en tiempo de
    ejecución
  • 3.4.- Espacio de direcciones lógicas versus
    físicas
  • 4.- Gestión de la memoria
  • 4.1 Asignación contigua
  • 4.1.1 Monitor de un solo proceso
  • 4.1.2 Múltiples particiones
  • 4.2 Asignación no contigua
  • 4.2.1 Paginación
  • 4.2.2 Segmentación
  • 4.2.3 Segmentación paginación

2
1. Introducción
  • Memoria Principal
  • Área de almacenamiento dividido en unidades a las
    que se puede referenciar a través de una
    dirección.
  • Recurso básico Para que un programa se ejecute
    debe encontrarse en memoria principal, al menos,
    una parte
  • Gestor de Memoria
  • Parte del Sistema Operativo que se encarga de las
    tareas relacionadas con la administración de la
    Memoria Principal.
  • Dependencia total del Hardware
  • Según sea este, será el tipo de gestión de
    memoria
  • Tareas del Gestor de Memoria
  • Asignación de Memoria Principal a los procesos
    que la solicitan
  • Localización de espacios libres, y ocupados
  • Aprovechamiento máximo de dicha memoria
  • Relación con otras partes del sistema operativo
  • Planificadores

3
2. Requisitos de un Sistema de Gestión de Memoria
  • Reubicación o Correspondencia
  • El programador debe trabajar al margen de la
    localización de su código en memoria
  • El gestor de memoria (HWSW) debe establecer la
    correspondencia de direcciones lógicas y físicas
  • Protección
  • El gestor de memoria debe proteger las zonas
    asignadas a cada proceso de accesos por parte de
    terceros.
  • Compartición
  • El gestor de memoria debe permitir compartición
    de memoria entre varios procesos.
  • Organización lógica
  • El gestor de memoria debe comprender la
    organización lógica formada por módulos que
    tienen los programas (texto, datos,
    procedimientos, pila...)
  • Organización física
  • Debe encargarse de la localización de espacios
    libres en memoria principal donde cargar los
    programas.
  • Debe poder proporcionar un mecanismo para poder
    ejecutar programas cuyo tamaño supere el de la
    propia memoria principal (Memoria Virtual)

4
3. Direccionamiento3.1. Correspondencia estática
en tiempo de compilación
Programa Fuente
Compilación y Enlazado
Ejecutable
Direcciones reales
Módulo de Carga
Proceso en Memoria
Direcciones reales
5
3.2 Correspondencia estática en tiempo de carga
Programa Fuente
Compilación y Enlazado
Direcciones relativas al comienzo del programa
Ejecutable
Módulo de Carga
Direcciones relativas al comienzo del programa
Proceso en Memoria
6
3.3 Correspondencia estática en tiempo de
ejecución
Programa Fuente
Compilación y Enlazado
Direcciones relativas al comienzo del programa.
Ejecutable
Módulo de Carga
Direcciones relativas al comienzo del programa.
Proceso en Memoria
Mueve proceso a otra zona de memoria
Reubicador
7
3.4. Espacio de direcciones lógicas versus físicas
  • Dirección lógica
  • Referencia a posición de memoria independiente de
    la asignación actual de datos
  • Generada por la CPU
  • Espacio de direcciones lógicas
  • Conjunto de direcciones generadas por un programa
  • Dirección física
  • Designa posición real de la memoria principal
  • Aquella cargada en el registro de direcciones de
    la memoria
  • Espacio de direcciones físicas
  • Conjunto de posiciones de memoria
    correspondientes a las direcciones lógicas

8
4. Gestión de la memoria
  • Evolución histórica de métodos de organización
    hasta llegar a la Memoria Virtual
  • Esquemas de asignación
  • Memoria Real
  • Asignación contigua
  • Sistemas de un solo proceso
  • Sistemas de multiprogramación
  • Con particiones fijas
  • Código absoluto
  • Código reubicable
  • Con particiones variables
  • Asignación no contigua
  • Paginación simple
  • Segmentación simple
  • Segmentación paginación simple
  • Memoria virtual
  • Paginación por demanda
  • Segmentación por demanda

9
4.1. Asignación contigua de memoria
  • 4.1.1. Monitor de un solo proceso
  • Dos áreas contiguas
  • Sistema Operativo (parte residente) (monitor)
  • Situado habitualmente en la parte inferior
  • Donde residen los vectores de interrupción
  • Área de procesos transitorios
  • Se coloca un único proceso de usuario
  • Se elimina cuando finaliza y antes de cargar otro
  • Protección
  • Sistema operativo - Procesos del usuario
  • Posibles accesos accidentales o malintencionados
    a datos del S.O.
  • Un modo de protección
  • Registro límite y registro de relocalización
  • Se comprueba cada dirección generada por la CPU

10
4.1.2. Múltiples Particiones
  • Multiprogramación ? Necesidad de varios procesos
    en memoria simultáneamente
  • Dos modos de asignación Particiones fijas y
    Variables
  • Particiones fijas
  • División de la memoria en varios trozos
    (particiones)
  • Tamaño diferente de las particiones
  • Tamaño fijo de las particiones (inamovible)
  • Único proceso por partición con tamaño ?
    partición
  • Estructuras de datos para la gestión de
    particiones fijas
  • Tabla de descripción de particiones
  • Estado (libre/asignada)
  • Base de la partición
  • Tamaño de la partición
  • Estrategia de asignación
  • Primer ajuste, Mejor ajuste, Peor ajuste
  • Qué hacer si no hay particiones libres
  • Esperar a la finalización de algún proceso
  • Intercambio
  • Protección entre procesos

11
  • Grado de multiprogramación.
  • Limitado al número de particiones
  • Fragmentación Interna
  • Dentro de cada partición queda una zona de
    memoria no aprovechable
  • El proceso es más pequeño que la partición
  • No se puede asignar a ningún otro proceso
  • Es posible que procesos esperando entrar en
    memoria no tengan partición a pesar de haber
    espacio libre para ellos
  • Ejemplo
  • OS/MFT (Multiprogramación con nº fijo de tareas)

12
Particiones variables
  • Las particiones son variables en número y
    longitud
  • Inicialmente la memoria sólo contiene el sistema
    operativo
  • A cada proceso se le asigna la memoria que
    necesita exactamente
  • Estructuras de datos para gestionar la memoria
  • Mapa de bits
  • División de memoria en pequeñas unidades libres u
    ocupadas
  • Lista de procesos y huecos
  • Lista única
  • Lista de procesos y lista de huecos
  • Sistema de los asociados (Knuth 1973)
  • División de memoria en bloques potencia de 2
  • Se compactan 2 bloques adyacentes del mismo
    tamaño
  • Agiliza la fusión de huecos
  • Algoritmos de asignación de particiones
  • Primer ajuste, Mejor ajuste y Peor ajuste
  • Qué hacer si no hay particiones libres
  • Esperar a la finalización de algún proceso
  • Intercambio

13
-
  • Condensación de huecos
  • Unión de huecos adyacentes al liberar un proceso
  • Compactación
  • Movimiento de procesos en la memoria para unir
    huecos dispersos y crear huecos de mayor tamaño

14
4.2. Asignación no contigua de memoria
  • El espacio de direcciones lógico de un proceso se
    reparte entre diferentes zonas de la memoria
    principal
  • Métodos de organización
  • Paginación simple
  • Segmentación simple
  • Segmentación paginación simple
  • 4.2.1. Paginación simple
  • División de la memoria principal en bloques de
    igual tamaño denominados marcos
  • División del espacio de direcciones de un proceso
    en bloques de igual tamaño denominados páginas.
  • Marcos y páginas tienen el mismo tamaño
  • Carga de un proceso en memoria
  • Se van asignando marcos libres a páginas del
    proceso
  • No tienen por qué ser consecutivos.
  • La paginación no es visible al programador
  • Se elimina la fragmentación externa
  • La fragmentación interna sólo se produce en la
    última página
  • Páginas pequeñas
  • Reducen la fragmentación interna
  • Aumentan tamaño de tabla de páginas

15
4.2.1. Paginación Simple
  • Estructuras de datos
  • Tabla de Páginas ? Una por cada proceso
  • Entrada tabla páginas ? Una por cada página del
    proceso
  • Guarda el número de marco donde se guarda la
    página cuyo número coincide con el índice
  • Posibilidad de campo para página válida/inválida
  • otros posibles campos
  • Bit de modificación
  • Bits de protección (lectura, escritura)
  • Bits de Página referida
  • Tabla de marcos ? Una entrada por cada marco de
    memoria física
  • Empleada por el S.O. para la gestión de memoria
  • Indica si el marco está libre o asignado y a qué
    página de qué proceso

16
  • Direccionamiento
  • Dirección lógica Nº Página Desplazamiento
  • Tamaño de página potencia de 2
  • Direccionamiento más sencillo
  • Fácil Traducción
  • Dirección lógica y relativa (respecto al inicio )
    coinciden
  • Traducción de direcciones lógicas a físicas
  • MMU realiza traducción
  • Accede a tabla de páginas del proceso actual
  • Proceso de traducción ( Ver figura página 23)
  • Obtener nº página de los n bits más
    significativos de la dirección y desplazamiento
    de los m menos significativos

17
  • Soporte Hardware de tabla de páginas
  • Registros dedicados
  • Gran velocidad para traducción de direcciones
  • Muy caro, útil solamente cuando las tablas son
    pequeñas
  • Memoria principal
  • La tabla de páginas se almacena en memoria
  • RBTP Registro Base de la Tabla de Páginas
    almacena un puntero a la tabla de páginas del
    proceso en ejecución
  • Para acceder a una dirección necesita 2 accesos a
    memoria
  • Acceso a entrada en tabla de páginas
  • Acceso a dirección deseada
  • Mucho más lento el proceso de traducción
  • Registros asociativos (TLB)
  • Memoria cache especial de alta velocidad
  • Registro clave - valor (nº página - nº marco)
  • Se comparan todas las claves simultáneamente
  • Búsqueda rápida, hardware caro Nº entradas de 8
    a 2048
  • Solución
  • TLB contiene unas pocas entradas de tabla de
    páginas
  • Si el marco está en la TLB, se coge

18
Traducción de direcciones lógicas a físicas
mediante tabla de páginas
Búsqueda directa y asociativa en entradas en la
tabla de páginas
19
  • Tablas de páginas multinivel
  • Utilizadas por la mayoría de los sistemas de
    paginación.
  • Las tablas de páginas pueden ser muy grandes ?
    Las tablas están sujetas también a paginación.
  • Esquema de dos niveles
  • Nivel 1 Tabla de páginas para acceso a la tabla
    de páginas del proceso
  • Nivel 2 Tabla de páginas del proceso
  • Traducción de direcciones
  • Dirección lógica (32 bits) número de página (20
    bits) desplazamiento (12 bits)
  • Nº página (20 bits) p1 (10 bits) p2 (10 bits)
  • p1 - índice a tabla de páginas exterior
  • p2 - desplamiento en tabla de páginas exterior

20
Tabla de páginas de dos niveles
21
  • Tabla de páginas invertida
  • Sólo una tabla de páginas en el sistema con
    tantas entradas como marcos haya
  • Entrada dirección virtual de página (nº de
    página) y pid del proceso
  • El índice nos devuelve nº de marco donde está la
    página
  • Compartición de páginas
  • Es necesario a veces compartir datos entre
    procesos
  • Página como unidad de compartición

22
4.2.2. Segmentación
  • Paginación
  • Espacio de direcciones unidimensional 0 ? Máxima
  • Segmentación
  • Espacio de direcciones bidimensional
  • Proceso dividido en Segmentos
  • Cada segmento 0 ? Máxima
  • Cada segmento utiliza zonas de memoria contigua
  • No necesitan estar juntos en memoria
  • Visión de la memoria igual que el usuario
  • Programa conjunto de segmentos
  • Se produce fragmentación externa

23
  • Estructuras de Datos
  • Tabla de segmentos
  • Una tabla por proceso
  • Una entrada por cada segmento
  • Dirección base y límite (o longitud) del segmento
  • Bit de modificación desde su carga en memoria
  • Otros bit de protección (R/W, ...) o de
    compartición
  • Lista de bloques libres
  • Zonas libres existentes en memoria
  • Direccionamiento
  • Dirección lógica Nº Segmento desplazamiento
  • Traducción de direcciones
  • Se realiza dinámicamente en cada referencia a
    memoria
  • Necesita un hardware especial que realiza la
    traducción
  • Nº segmento dirección lógica ? índice tabla
    segmentos
  • Dirección física Dirección base de la entrada
    desplazamiento de la dirección lógica

24
  • Soporte hardware de la tabla de segmentos
  • Registros
  • Muy rápida
  • Muy cara
  • Memoria principal
  • Registro base de la tabla de segmentos
  • Registro longitud de la tabla de segmentos
  • Dos referencias a memoria por cada dirección
    lógica
  • A la entrada en la tabla de segmentos
  • A la dirección deseada

25
  • Facilita la compartición
  • Se comparten unidades lógicas, segmentos,
    permitiendo compartir datos, programas,
    subrutinas, etc.
  • Facilita la protección
  • Se puede asociar a cada segmento uno o varios
    bits de protección
  • Facilita la ampliación de memoria.
  • Si esta estructura se encuentra en un segmento
    específico para ella, basta con ampliar el tamaño
    del segmento

26
4.2.3. Segmentación con paginación
  • Paginación
  • Elimina fragmentación externa
  • Aprovecha eficientemente la memoria
  • Segmentación
  • Visible al programador
  • Soporte para compartición y protección
  • Segmentación con paginación
  • Combina las ventajas de ambas
  • Método básico
  • División del espacio de direcciones del usuario
    en segmentos
  • División de cada segmento en páginas
  • Dirección lógica
  • Desde el punto de vista del usuario
  • Número de segmento desplazamiento
  • Desde el punto de vista de la máquina
  • Nº segmento nº página desplazamiento
  • Estructuras de datos utilizadas
  • Cada proceso
  • Una tabla de segmentos

27
  • Traducción de direcciones
Write a Comment
User Comments (0)
About PowerShow.com