Problema del Gestor de Memoria - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

Problema del Gestor de Memoria

Description:

Poco eficiente: tras devolver, se reeval a la guarda, es decir, la CPRE completa. ... Tras Devolver(i, n), se eval a la condici n de desbloqueo simplificada para el ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 11
Provided by: lmlLs
Category:

less

Transcript and Presenter's Notes

Title: Problema del Gestor de Memoria


1
Problema del Gestor de Memoria
  • Existen tareas clientes que utilizan páginas de
    memoria. Para ello
  • Solicitan memoria
  • Cuando una tarea necesita memoria (número de
    páginas), se la pide a un gestor de memoria.
  • El gestor devuelve el id. de la primera de una
    secuencia de páginas concedidas.
  • Liberan memoria
  • Cuando una tarea no va a utilizar por más tiempo
    cierta secuencia de páginas, se lo indica al
    gestor.
  • Propiedades de seguridad
  • Exclusión mutua entre las operaciones
  • Sólo se concederán n páginas si hay n páginas
    consecutivas libres.

2
C-TADSOL Gestor de memoria
CPRE Hay n páginas consecutivas de memoria
libre CPRE ?k, 1 ? k ? Max-n1 ? (?j, k ? j lt
kn ??m(j)) Solicitar (m, n, i) POST A partir de
i había n páginas de memoria libres que están
ahora señaladas como ocupadas POST msalment \
?k, 1 ? k ? Max - n 1 ? (?j, k ? j lt k n ?
(?ment(j) ? msal(j)) ? isal k) PRE Hay n
páginas de memoria ocupadas a partir de la
i-ésima PRE ?k, i ? k lt n i ? m(k) CPRE
cierto Devolver (m, n, i) POST Se marcan como
libres las n páginas de memoria a partir de la
i-ésima POST msalment \ ?k, i ? k lt ni ?
?msal(i)
  • C-TADSOL Gestor de memoria
  • OPERACIONES
  • ACCIÓN Solicitar TipoGMes xTipoTamañoex
    TipoDireccións
  • ACCIÓN Devolver TipoGMes xTipoTamañoex
    TipoDireccióne
  • SEMÁNTICA
  • DOMINIO
  • TIPO TipoGM Secuencia(B)
  • TipoTamaño 1..Max
  • TipoDirección 1..Max
  • INVARIANTE ?m?TipoGM?Longitud(m) Max
  • DONDE Max ...
  • INICIAL(m) ?i, 1 ? i ? Max ? ?m(i)

3
Desarrollo de la abstracción de datos (gestor
memoria)
-- Procedimientos y funciones privadas
function Hay_Memoria_Disponible (Num in
Tipo_Num_Pags) return Natural -- indica
si hay Num páginas -- consecutivas libres end
GestorMem
  • subtype Tipo_Num_Pags is Natural range
    1..Num_paginas
  • type Tipo_Indice is new Tipo_Num_Pags
  • type Tipo_Memoria is
  • array (Tipo_Indice range ltgt) of Boolean
  • protected type GestorMem is
  • entry Solicitar (Num in
    Tipo_Num_Pags
  • Ind out Tipo_Indice)
  • entry Liberar (Num in Tipo_Num_Pags
  • Ind in Tipo_Indice)
  • private
  • -- Estado de la memoria todas las paginas
    estan disponibles inicialmente
  • Memoria Tipo_Memoria(Tipo_Indice)
    (others gt True)
  • Operación Solicitar
  • Ind Tipo_Indice(Hay_Memoria_Disponible(Cant))
    Memoria(Ind..IndTipo_Indice(Num)-1)
    (others gt False)
  • Operación Liberar
  • Memoria(Ind..IndTipo_Indice(Num)-1) (others
    gt True)

4
Diseño de la s. de seguridad (gestor memoria)
  • Tabla de bloqueos (desglose de la CPRE
    atendiendo al parámetro Num)

5
Implementación de la s. de seguridad (gestor
memoria)
  • Se utiliza una familia de entradas para la
    operación Solicitar (Num_pags entradas).
  • fichero gestormem_fament.adb
  • Solución poco eficiente familias de entries con
    posiblemente muchas entradas.

6
Otro desarrollo de la s. de seguridad (gestor de
memoria)
  • Se define una familia de entries atendiendo a un
    tipo Tipo_PID_Solicitar (1..Max_Solicitudes).
  • Para cada llamada a Solicitar
  • Se genera un identificador Pid (Tipo_PID_Solicitar
    ) de solicitud de memoria.
  • Se reencola a la entrada Pid.
  • En cada entrada de la familia como máximo vamos a
    tener un solicitud pendiente.

7
Diseño de la s. de vivacidad (gestor memoria)
  • Análisis de la vivacidad similar al del problema
    de la Cuenta bancaria.
  • Situación no determinista con las solicitudes
    pendientes (familia de entries).
  • Los Solicitar de muchas páginas sufrirán
    inanición frente a los solicitar de pocas
    paginas.

8
Diseño de la s. de vivacidad (ii)
  • Para eliminar la inanición
  • Política FIFO (como en c. bancaria y
    multibuffer).
  • Política basada en turnos para Solicitar (como en
    multibuffer).

9
Implementación de la s. de vivacidad (gestor
memoria)
  • Implementa una política FIFO
  • Fichero gestormem_requeue.adb
  • Poco eficiente tras devolver, se reevalúa la
    guarda, es decir, la CPRE completa.

10
Optimización de la Implementación con vivacidad
  • Posible optimización
  • Tras Devolver(i, n), se evalúa la condición de
    desbloqueo simplificada para el primer
    Solicitar(Num) pendiente
  • n ? Num ? ?a,b?1..MAX? (a? i ? b ? in
    -1??x?a..i-1? m0(x) ? ?y?in..b? m0(y) ?
    b-a1? Num
  • Si se cumple, se fuerza el desbloqueo del primer
    Solicitar (desbloqueo explícito).
  • Fichero gestormem_desb_expl.adb
Write a Comment
User Comments (0)
About PowerShow.com