SlideShare une entreprise Scribd logo
1  sur  57
SISTEMAS OPERATIVOS I
                     Unidad 3

Administración de Memoria
Lista de Jerarquía
   Registros
   Caché de nivel 1 (L1)
   Caché de nivel 2 (L2)
   Memoria Principal
   Caché de disco
   Disco
   Óptico
   Cinta
Lista de Jerarquía
Lista de Jerarquía
Lista de Jerarquía
                                 Bits / US$




                 $/


                      0.01 US$




                                 US$ / Gbyte
Rendimiento
 Tiempo de Acceso
     El tiempo transcurrido entre presentar la dirección y
      obtener el dato

 Tiempo del ciclo de memoria
     El tiempo puede ser requerido por la memoria para
      “recuperar” antes del siguiente acceso
     El tiempo del ciclo es acceso + recuperación

 Tasa de transferencia
     Velocidad a la cual los datos pueden ser movidos
Administración de Memoria
  Al igual que con el CPU, los procesos también
  compiten por el uso de la memoria principal (RAM);
  ello conlleva que la memoria se comparta de forma
  eficiente
  Existen muchas estrategias de administración de
  memoria, cada una con sus pros y contras, pero lo
  que más determina cuál esquema utilizar es el
  diseño del hardware existente
  La memoria es un inmenso arreglo de bytes o
  palabras, que contiene tanto instrucciones como
  datos, y cada una tiene su propia dirección
Espacio de Direcciones
Lógico y Físico
  Las direcciones que se utilizan dentro de un
  programa y que son relativas al inicio del mismo se
  conocen como Direcciones Lógicas ó Virtuales,
  mientras que a cada una de las posiciones de la
  memoria RAM se les denomina Direcciones Físicas
  La sección encargada de convertir las direcciones
  lógicas en físicas se llama Unidad de Manejo de
  Memoria (MMU), que es un disp. de hardware
  Los procesos nunca ven las direcciones físicas y la
  memoria nunca ve las direcciones lógicas
Intercambio
  Cuando un proceso requiere ser transferido
  temporalmente al disco durante su ejecución por
  cuestiones de espacio o alguna otra razón, se debe
  realizar un Intercambio (Swap)
  El intercambio debe ser lo más rápido posible para
  que no afecte demasiado el desempeño, ya sea
  utilizando discos veloces o apartando secciones del
  disco de acceso rápido
  Si el enlazado fue al momento de la carga, los
  procesos deben recolocarse en la misma posición
  donde estaban originalmente para que no fallen
Asignación Contigua
  Normalmente se divide la memoria en dos grandes
  particiones, colocando al sistema operativo en una y
  a los procesos del usuario en la otra
  Puesto que el vector de interrupciones debe estar en
  memoria baja, normalmente el sistema operativo
  también se coloca ahí
  Existen varios factores a tomar en cuenta:
     Asignación con una sola partición
     Asignación con múltiples particiones
     Fragmentación externa e interna
ASIGNACIÓN DE MEMORIA
             CLÁSICA
Los programas reciben del SO un espacio de memoria para su ejecución
   Monoprogramación
   Multiprogramación

Memoria                             Memoria      Programa A
principal                           principal

              Programa A                          Programa B


                                                 Programa C

               Sistema                             Sistema
              operativo                           operativo
Asignación con una Sola
Partición
  En este esquema se asume que hay una sola
  partición para los procesos del usuario
  Para cada procesos, se utiliza un Registro de
  Reubicación y un Registro Límite
  El registro de reubicación contiene la dirección física
  en donde se colocó el proceso y el registro límite
  contiene el tamaño del intervalo asignado
  Las direcciones lógicas de un proceso no deberán
  ser mayor al límite; si lo llegan a ser, se levanta una
  trampa del sistema operativo
  Las direcciones físicas se obtienen: DF=DL+RR
Asignación con una Sola
Partición
Asignación con Múltiples
Particiones
  En este método se manejan varias particiones, una
  para cada proceso existente
  En la forma más sencilla, cada partición es de
  tamaño fijo y la cantidad de procesos posible
  dependerá del número de particiones disponible
  Otra forma más general es utilizar particiones
  variable; para esto, el s.o. lleva un control de las
  regiones libres y ocupadas de la memoria
  Las regiones libres o disponibles se les llama
  también como huecos; de entrada, toda la memoria
  es un solo hueco
Asignación con Múltiples
Particiones
  Conforme van llegando los procesos, se busca un
  hueco adecuado y se coloca ahí el proceso,
  actualizando las tablas correspondientes
  Hay tres métodos normales para asignar huecos a
  nuevos procesos:
     Primer ajuste: se asigna el primer hueco que se encuentre y
      que tenga el tamaño mínimo necesario
     Mejor ajuste: se asigna aquél hueco que tenga al menos el
      tamaño mínimo necesario, y que además sea el más
      pequeño de los encontrados
     Peor ajuste: se asigna el hueco más grande de todos,
      siempre y cuando tenga el tamaño suficiente
Asignación con Múltiples
Particiones – Ejemplo

   SO          SO          SO           SO

 proceso 5   proceso 5   proceso 5   proceso 5
                         proceso 9   proceso 9

 proceso 8                           proceso 10


 proceso 2   proceso 2   proceso 2   proceso 2
Fragmentación Externa e
Interna
  La fragmentación externa se da cuando se van
  asignando porciones de memoria a los procesos y
  entre ellas quedan pequeñas secciones sin ocupar
  En ocasiones, un proceso no se puede almacenar
  por falta de un segmento contiguo suficiente, pero si
  se sumaran todos los fragmentos dispersos sí se
  podría
  La fragmentación interna se presenta cuando se
  asignan particiones de tamaños mayores a los de los
  procesos y queda espacio sin ocupar
Fragmentación Externa e
Interna
  Una forma de evitar la fragmentación externa es la
  Compactación; en esta técnica, se relocalizan los
  procesos de tal manera que queden contiguos y
  resulte en un solo hueco grande al final
  La compactación sólo es posible si se utiliza
  enlazado dinamico (al momento de ejecución)
  Es importante evaluar el impacto de la compactación
  y analizar los algoritmos que se vayan a utilizar para
  ello; la compactación suele ser muy ineficiente y
  díficil de lograr adecuadamente
SISTEMAS OPERATIVOS
Memoria Virtual
Antecedentes
  Los programas normalmente no ocupan al
  mismo tiempo toda la memoria que solicitan;
  esto porque el código está dividido en partes o
  por estructuras de datos parcialmente utilizadas
  Si se aprovecha esta característica, se pueden
  poner más procesos en memoria al mismo
  tiempo lo que ofrece varias ventajas:
     Se elimina el límite de la memoria física
     Se pueden ejecutar más programas a la vez
     Se requiere menos E/S que si se intercambian en total
  Estas ventajas son propias de la Memoria Virtual
Antecedentes – Esquema de
la Memoria Virtual
Mecanismos de Asignación de
      Memoria Virtual
Existen tres estrategias de administración de
la memoria virtual:
    OBTENCIÓN
    COLOCACIÓN
    REMPLAZO

Las estrategias de colocación del
almacenamiento sirven para determinar en
que lugar del almacenamiento primario se
deben colocar los programas y datos
entrantes.
    MEJOR AJUSTE
    PRIMER AJUSTE
    PEOR AJUSTE
Paginación
  Otra posible solución al problema de la
  fragmentación externa es permitir que el espacio de
  direcciones de los procesos no sea contiguo
  La Paginación (Paging) es una implementación de
  dicha solución
  La paginación evita el difícil problema de asignar
  porciones variables a los procesos o de utilizar
  intercambio constante y su consecuente
  fragmentación en disco
  Debido a estas ventajas y a su relativa facilidad de
  implementación, es de las técnicas más usadas
Método Básico de Paginación
  La memoria física se divide en bloques de tamaño
  fijo llamados Marcos (Frames) y la memoria lógica se
  divide en bloques del mismo tamaño llamados
  Páginas (Pages)
  Cuando se va a ejecutar un proceso, se carga de
  disco a los marcos de memoria disponible; el disco
  también se divide en bloques del mismo tamaño que
  los marcos
  Cada dirección lógica se convierte en una
  combinación de no. de página y desplazamiento en
  la página; la MMU la convierte en dir. física
Método Básico de Paginación
       v=(p,d)   r=(f,d)
Método Básico de Paginación
  El número de página se utiliza como un índice dentro
  de una Tabla de Páginas, la cual contiene la
  dirección base de cada uno de los marcos de la
  memoria física
  El tamaño de la página lo define el hardware
  Si se utiliza un esquema de paginación, no existe
  fragmentación externa, cualquier marco disponible se
  puede utilizar; lo que sí puede llegar a haber es algo
  de fragmentación interna
  Los marcos disponibles se administran por el sistema
  operativo mediante una Tabla de Marcos
Soporte en Hardware para la
Tabla de Páginas
  Por lo general, se requiere una tabla de páginas para
  cada proceso, por lo que se requiere que se
  almacene un apuntador a ésta en el PCB
  Se podrían utilizar registros dedicados para
  almacenar la tabla, sin embargo, esto sólo funciona
  si son pocas entradas
  Otra posibilidad es la utilización de un registro
  especial de alta velocidad que guarda la posición en
  memoria donde se encuentra la tabla de cada
  proceso, y su valor cambia de un proceso a otro
Páginas Compartidas
  Una ventaja adicional de la paginación es la
  capacidad de poder compartir páginas comunes
  entre varios procesos
  Esto se logra simplemente haciendo que las tablas
  de páginas de los procesos referencien a los mismos
  marcos
  Esto se puede utilizar para compartir código común
  (por ejemplo, varios usuarios utilizando un mismo
  programa) o para implementar un esquema de
  memoria compartida
Segmentación
 La segmentación es un esquema de memoria en el
 que se hacen divisiones lógicas de un programa (por
 funciones, módulos o segmentos de datos), y en el
 que cada segmento puede tener una longitud
 variable
 Los segmentos se numeran de forma creciente y las
 instrucciones o datos se referencian en base al inicio
 del segmento
 Las direcciones lógicas de los procesos se forman
 entonces de unir el número de segmento con el
 desplazamiento dentro del segmento
Segmentación
                                   1

                                   4
          1

                    2


      3                            2
                   4

                                   3




  espacio del usuario   espacio de memoria física
Soporte en Hardware para
Segmentación
  La segmentación se implementa mediante una Tabla
  de Segmentos
  Esta tabla contiene en cada entrada una base de
  segmento y un límite de segmento
  La base es la posición en memoria física en la que
  se encuentra el segmento y el límite es el tamaño de
  segmento
  Cuando se busca una dirección lógica, en base al
  número de segmento se ubica la entrada y se
  obtiene la base; si el desplazamiento es mayor al
  límite se rechaza, si no se suma a la base
Soporte en Hardware para
Segmentación




    v=(s,d)
Segmentación – Ejemplo
   Asignación de memoria virtual
    Un solo segmento

    Varios segmentos


Memoria    Programa A         Memoria    Segmento 0
 virtual                       virtual

                                         Segmento 1   Programa A

                                         Segmento 2

            Sistema                       Sistema
           operativo                     operativo
Protección y Compartimento
de los Segmentos
  Al igual que con la paginación, se pueden agregar
  bits a las entradas de la tabla de segmentos para
  controlar la validez o el tipo de acceso permitido a
  cada uno
  Además, el hecho de que los segmentos tienen un
  significado lógico permite realizar verificaciones
  adicionales
  También se pueden compartir los segmentos,
  simplemente haciendo referencia en la tabla a la
  misma dirección física; si lo compartido es código, se
  debe cuidar que sea código reentrante
Fragmentación de los
Segmentos
  De la misma forma que con el esquema de
  particiones variables, hay que encontrar huecos de
  memoria libres y de tamaño adecuado para poderlos
  asignar a nuevos segmentos
  Para ello se utiliza ya sea el método de primer ajuste
  o el de mejor ajuste
  También se puede presentar fragmentación externa
  entre segmentos
  En general, si el tamaño promedio de los segmentos
  es pequeño, la fragmentación también
Segmentación con Paginación
 Una solución más compleja pero que resuelve el
 problema de la fragmentación externa en la
 segmentación, es la segmentación con paginación
 Hay varias formas de implementarlo, aunque en
 general se realiza una paginación dentro de los
 segmentos

 Al asignar los segmentos como páginas completas,
 se elimina la fragmentación externa a cambio de un
 poco de fragmentación interna
 Se requiere un fuerte apoyo del hardware
 Formato v= (s, p, d)
Paginación por Demanda
 Éste es el método tradicional con el que se
 implementa la memoria virtual
 En él, se suben a memoria sólo aquellas páginas que
 se determinan que se van a utilizar y conforme se
 van requiriendo
 Se requiere algún tipo de soporte de hardware para
 saber si una página está en memoria o en disco;
 normalmente se usa el bit de validez
 Si se intenta accesar a una página que no está en
 memoria, se genera una trampa y el s.o. toma el
 control
Paginación por Demanda
Desempeño de la Paginación
por Demanda
  El desempeño de la paginación por demanda se
  puede medir por medio del Tiempo de Acceso
  Efectivo
  Se calcula utilizando el tiempo de acceso a la
  memoria (tam) y el tiempo de procesar un fallo de
  página (tfp)
  Si p es la probabilidad de que se dé un fallo de
  página, al fórmula es:
                 Tae=(1-p)(tam)+(p)(tfp)
  El tam normalmente está dado en nanosegundos,
  pero el tfp está dado en milisegundos (variable)
Reemplazo de Páginas
 Si la cantidad de procesos en memoria es grande,
 eventualmente se da el caso de que ya no hay
 marcos libres para asignarse a páginas nuevas
 Lo que hay que hacer entonces es quitar una de las
 páginas en memoria y subir otra; a esto se le llama
 Reemplazo de Páginas
 Cuando se necesita un marco libre se checa si hay y
 si no, se busca un marco víctima para liberarlo
 Para acelerar este proceso se puede utilizar un Bit
 de Modificación, que indica cambio en el marco; si no
 se ha cambiado, no se requiere grabarlo
Reemplazo de Páginas
Algoritmos de Reemplazo de
Páginas
  Existen varios algoritmos que tienen la tarea de
  indicar cuál página se selecciona como víctima
  La meta de estos algoritmos es conseguir una
  Frecuencia de Fallos de Página baja
  Para evaluar los algoritmos se utiliza una secuencia
  de referencias a páginas en memoria, y a la que se
  le llama Serie de Referencias
  Otro factor que se considera es el número de marcos
  libres; entre más marcos haya libres, menos fallos de
  página se darán
  Cadena de referencia a utilizar para pruebas:
  7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
Algoritmo FIFO
  En este algoritmo se saca la página que tenga más
  tiempo en la memoria
  Se puede grabar el instante en el que se subió, pero
  lo más fácil es manejar una cola (FIFO) para indicar
  cuál es la más vieja
  Este algoritmo es fácil de entender y de implementar,
  pero su desempeño es pobre
  Este algoritmo presenta un fenómeno llamado
  Anomalía de Belady, y se presenta cuando aún
  teniendo más marcos libres se dan más fallos
Algoritmo FIFO – Ejemplo
Algoritmo Óptimo
  Un algoritmo óptimo es aquél que tenga la frecuencia
  de fallos más baja posible
  El criterio que se utiliza en este algoritmo es el
  siguiente: “reemplazar aquella página que vaya a
  durar más tiempo sin usarse”
  Siguiendo esta regla se garantiza la frecuencia más
  baja
  Sin embargo, es difícil de implementar pues se
  necesitaría saber de antemano qué páginas se van a
  solicitar, y eso no es posible
  Por eso se usa sólo para hacer comparaciones
Algoritmo Óptimo – Ejemplo
Algoritmo LRU
  El algoritmo LRU es un punto medio de los
  anteriores, y busca aquella página que se haya
  usado con mayor anterioridad (Least Recently Used,
  LRU), es decir, la que tenga más tiempo sin usarse
  Es una muy buena aproximación al óptimo y por ello
  es muy utilizada, aunque la dificultad estriba en cómo
  implementarla
  Se pueden utilizar dos esquemas (contadores o
  pilas), sin embargo requieren apoyo de hardware el
  cual normalmente no existe
Algoritmo LRU – Ejemplo
Algoritmos de Aproximación a
LRU
  Puesto que casi nunca hay hardware para
  implementar correctamente el LRU, hay que usar
  algún tipo de aproximación aprovechando el
  hardware que sí esté disponible
  Algunos de ellos utilizan un Bit de Referencia, (que
  indica si se utilizó el marco) y/o el Bit de Modificación
  (que ya se vió)
  Los algoritmos de aproximación son:
     Algoritmo con Bits de Referencia Adicionales
     Algoritmo de Segunda Oportunidad
     Algoritmo de Segunda Oportunidad Mejorado
Algoritmo con Bits de
Referencia Adicionales
  En este algoritmo se almacena un byte por cada
  página con un registro de los valores que ha tenido el
  bit de referencia durante un tiempo
  Lo que se hace es que utiliza un timer que cada
  cierto tiempo le da el control al s.o. y éste almacena
  el valor del bit de referencia de todas las páginas en
  un byte, usando un Shift Derecho
  Con este esquema, la página que tenga el número
  binario más chica es la LRU y ésa se escoge
  Si hay más de una con el mismo valor, se pueden
  bajar todas o se escoge la más vieja (FIFO)
Algoritmo de Segunda
Oportunidad
  Este algoritmo es una modificación del Algoritmo
  FIFO, pero una vez que ya se seleccionó la víctima
  se checa si se ha usado y en dado caso se le da una
  segunda oportunidad y se escoge otra
  Cuando se selecciona una páginas se verifica si su
  bit de referencia está en 1 y si es así se escoge la
  siguiente en la cola; a la que se le dio la segunda
  oportunidad se le pone el bit en 0 y se reasigna su
  tiempo de llegada a la hora actual
  Usualmente se implementa con una cola circular
Algoritmo de Segunda
Oportunidad – Ejemplo
Algoritmo de Segunda
Oportunidad Mejorado
  En este algoritmo se maneja no sólo el bit de
  referencia sino también el bit de modificación,
  concatenándolos en ese orden con lo que se crean
  cuatro clases (en orden de mejor a peor):
     Valor 00: no se ha usado ni se ha modificado
     Valor 01: no se ha usado pero se modificó
     Valor 10: se usó pero no se ha modificado
     Valor 11: se usó y se modificó
  Se hace lo mismo que en el otro pero se recorre la
  cola hasta que se encuentra la página con el valor
  más pequeño; es posible que se den varias vueltas
Algoritmo de Colocación de
Páginas en Búfers
  Además de utilizar un algoritmo para seleccionar la
  víctima se pueden agregar otros procedimientos que
  mejoran el desempeño del reemplazo de páginas
  Este algortimo mantiene un conjunto de Marcos de
  Reserva que se utilizan al momento de asignar un
  marco
  Cuando ya se escogió un marco víctima se toma un
  marco de la reserva y se le asigna a la página nueva
  mientras que el víctima se libera; de esta forma el
  otro proceso entra más rápido
Asignación de Marcos
  El asignar un marco libre a un proceso no siempre es
  una tarea trivial
  Normalmente la estrategia utilizada es asignar
  cualquier marco libre a los procesos del usuario
  Sin embargo, hay que considerar varios aspectos:
     El número mínimo de marcos por proceso
     Si se usa asignación equitativa o proporcional
     Si se maneja asiganción global o local
  Estos aspectos son muy importantes cuando se
  mantienen muchos procesos en memoria
Número Mínimo de Marcos
 Entre más pocos marcos tenga asignados un
 proceso más tiempo tardará en fallos de página
 Pero además de este efecto, hay que considerar cuál
 es la cantidad mínima que debe tener un proceso
 para que no vaya a causar algún error durante su
 ejecución por falta de marcos libres
 Este número lo determina el hardware y el conjunto y
 tipo de instrucciones de bajo nivel, y tiene que ver
 con la cantidad máxima de páginas que se pueden
 llegar a ocupar al mismo tiempo por una sola
 instrucción
Preguntas ???

Contenu connexe

Tendances

Planificación de Procesos-NéstorTraña
Planificación de Procesos-NéstorTrañaPlanificación de Procesos-NéstorTraña
Planificación de Procesos-NéstorTrañaNestor Traña
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windowsisack_500
 
Procesos y Planificación de la CPU
Procesos y Planificación de la CPUProcesos y Planificación de la CPU
Procesos y Planificación de la CPUGabriel Arellano
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesadorManuel Ceron
 
Planificación de un_proceso
Planificación de un_procesoPlanificación de un_proceso
Planificación de un_procesosiamu_evap
 
Inf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresInf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresRomelestevez
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridadGarNav
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]guest5db8b1
 
Planificaión de La CPU
Planificaión de La CPUPlanificaión de La CPU
Planificaión de La CPUEdgar Pauta
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)Videoconferencias UTPL
 
Planificaion De Procesos
Planificaion De ProcesosPlanificaion De Procesos
Planificaion De Procesoslaunica
 

Tendances (17)

Planificación de Procesos-NéstorTraña
Planificación de Procesos-NéstorTrañaPlanificación de Procesos-NéstorTraña
Planificación de Procesos-NéstorTraña
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windows
 
Procesos y Planificación de la CPU
Procesos y Planificación de la CPUProcesos y Planificación de la CPU
Procesos y Planificación de la CPU
 
So 2da unidad
So 2da unidadSo 2da unidad
So 2da unidad
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesador
 
Planificación de un_proceso
Planificación de un_procesoPlanificación de un_proceso
Planificación de un_proceso
 
Planificacion cpu
Planificacion cpuPlanificacion cpu
Planificacion cpu
 
Trabajo de sisope
Trabajo de sisopeTrabajo de sisope
Trabajo de sisope
 
Inf 324 01 03 Planificadores
Inf 324 01 03 PlanificadoresInf 324 01 03 Planificadores
Inf 324 01 03 Planificadores
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridad
 
Sistemas Operativos[1]
Sistemas Operativos[1]Sistemas Operativos[1]
Sistemas Operativos[1]
 
Planificaión de La CPU
Planificaión de La CPUPlanificaión de La CPU
Planificaión de La CPU
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
SISTEMAS OPERATIVOS (I Bimestre Abril Agosto 2011)
 
6 so-teo-planificacion
6 so-teo-planificacion6 so-teo-planificacion
6 so-teo-planificacion
 
PLANIFICACION DE PROCESOS
PLANIFICACION DE PROCESOSPLANIFICACION DE PROCESOS
PLANIFICACION DE PROCESOS
 
Planificaion De Procesos
Planificaion De ProcesosPlanificaion De Procesos
Planificaion De Procesos
 

Similaire à Unidad3

Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Unidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaUnidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaNubieshita Chase
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptLuis619096
 
Coordinacion Y Sincronizacion De Procesos
Coordinacion  Y  Sincronizacion  De  ProcesosCoordinacion  Y  Sincronizacion  De  Procesos
Coordinacion Y Sincronizacion De ProcesosJessica Suarez
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJammil Ramos
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoriaIchinose 11
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
 
Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)JaderValdivia
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principaljbersosa
 

Similaire à Unidad3 (20)

Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Unidad A Aministración de la Memoria
Unidad A Aministración de la MemoriaUnidad A Aministración de la Memoria
Unidad A Aministración de la Memoria
 
4679923.ppt
4679923.ppt4679923.ppt
4679923.ppt
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.ppt
 
Coordinacion Y Sincronizacion De Procesos
Coordinacion  Y  Sincronizacion  De  ProcesosCoordinacion  Y  Sincronizacion  De  Procesos
Coordinacion Y Sincronizacion De Procesos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Capitulo3
Capitulo3Capitulo3
Capitulo3
 
Gerarquia de memoria
Gerarquia de memoriaGerarquia de memoria
Gerarquia de memoria
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoria
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 
Memoria en los SO
Memoria en los SOMemoria en los SO
Memoria en los SO
 
J ruiz 05
J ruiz 05J ruiz 05
J ruiz 05
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
So tarea 5
So tarea 5So tarea 5
So tarea 5
 
Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)Memorias (Sistemas Operativos)
Memorias (Sistemas Operativos)
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 

Plus de Universidad Autónoma de Nayarit

Plus de Universidad Autónoma de Nayarit (20)

Programa admo. de redes de computadoras
Programa   admo. de redes de computadorasPrograma   admo. de redes de computadoras
Programa admo. de redes de computadoras
 
Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8
 
Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7
 
Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6
 
Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5
 
Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4
 
Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3
 
Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2
 
Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1
 
Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9
 
Programa fundamento de redes de datos
Programa   fundamento de redes de datosPrograma   fundamento de redes de datos
Programa fundamento de redes de datos
 
Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2 Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2
 
Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1
 
Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9
 
Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8
 
Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7 Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7
 
Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6
 
Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5 Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5
 
Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4
 
Ejemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNAEjemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNA
 

Unidad3

  • 1. SISTEMAS OPERATIVOS I Unidad 3 Administración de Memoria
  • 2. Lista de Jerarquía Registros Caché de nivel 1 (L1) Caché de nivel 2 (L2) Memoria Principal Caché de disco Disco Óptico Cinta
  • 5. Lista de Jerarquía Bits / US$ $/ 0.01 US$ US$ / Gbyte
  • 6. Rendimiento Tiempo de Acceso  El tiempo transcurrido entre presentar la dirección y obtener el dato Tiempo del ciclo de memoria  El tiempo puede ser requerido por la memoria para “recuperar” antes del siguiente acceso  El tiempo del ciclo es acceso + recuperación Tasa de transferencia  Velocidad a la cual los datos pueden ser movidos
  • 7. Administración de Memoria Al igual que con el CPU, los procesos también compiten por el uso de la memoria principal (RAM); ello conlleva que la memoria se comparta de forma eficiente Existen muchas estrategias de administración de memoria, cada una con sus pros y contras, pero lo que más determina cuál esquema utilizar es el diseño del hardware existente La memoria es un inmenso arreglo de bytes o palabras, que contiene tanto instrucciones como datos, y cada una tiene su propia dirección
  • 8. Espacio de Direcciones Lógico y Físico Las direcciones que se utilizan dentro de un programa y que son relativas al inicio del mismo se conocen como Direcciones Lógicas ó Virtuales, mientras que a cada una de las posiciones de la memoria RAM se les denomina Direcciones Físicas La sección encargada de convertir las direcciones lógicas en físicas se llama Unidad de Manejo de Memoria (MMU), que es un disp. de hardware Los procesos nunca ven las direcciones físicas y la memoria nunca ve las direcciones lógicas
  • 9. Intercambio Cuando un proceso requiere ser transferido temporalmente al disco durante su ejecución por cuestiones de espacio o alguna otra razón, se debe realizar un Intercambio (Swap) El intercambio debe ser lo más rápido posible para que no afecte demasiado el desempeño, ya sea utilizando discos veloces o apartando secciones del disco de acceso rápido Si el enlazado fue al momento de la carga, los procesos deben recolocarse en la misma posición donde estaban originalmente para que no fallen
  • 10. Asignación Contigua Normalmente se divide la memoria en dos grandes particiones, colocando al sistema operativo en una y a los procesos del usuario en la otra Puesto que el vector de interrupciones debe estar en memoria baja, normalmente el sistema operativo también se coloca ahí Existen varios factores a tomar en cuenta:  Asignación con una sola partición  Asignación con múltiples particiones  Fragmentación externa e interna
  • 11. ASIGNACIÓN DE MEMORIA CLÁSICA Los programas reciben del SO un espacio de memoria para su ejecución  Monoprogramación  Multiprogramación Memoria Memoria Programa A principal principal Programa A Programa B Programa C Sistema Sistema operativo operativo
  • 12. Asignación con una Sola Partición En este esquema se asume que hay una sola partición para los procesos del usuario Para cada procesos, se utiliza un Registro de Reubicación y un Registro Límite El registro de reubicación contiene la dirección física en donde se colocó el proceso y el registro límite contiene el tamaño del intervalo asignado Las direcciones lógicas de un proceso no deberán ser mayor al límite; si lo llegan a ser, se levanta una trampa del sistema operativo Las direcciones físicas se obtienen: DF=DL+RR
  • 13. Asignación con una Sola Partición
  • 14. Asignación con Múltiples Particiones En este método se manejan varias particiones, una para cada proceso existente En la forma más sencilla, cada partición es de tamaño fijo y la cantidad de procesos posible dependerá del número de particiones disponible Otra forma más general es utilizar particiones variable; para esto, el s.o. lleva un control de las regiones libres y ocupadas de la memoria Las regiones libres o disponibles se les llama también como huecos; de entrada, toda la memoria es un solo hueco
  • 15. Asignación con Múltiples Particiones Conforme van llegando los procesos, se busca un hueco adecuado y se coloca ahí el proceso, actualizando las tablas correspondientes Hay tres métodos normales para asignar huecos a nuevos procesos:  Primer ajuste: se asigna el primer hueco que se encuentre y que tenga el tamaño mínimo necesario  Mejor ajuste: se asigna aquél hueco que tenga al menos el tamaño mínimo necesario, y que además sea el más pequeño de los encontrados  Peor ajuste: se asigna el hueco más grande de todos, siempre y cuando tenga el tamaño suficiente
  • 16. Asignación con Múltiples Particiones – Ejemplo SO SO SO SO proceso 5 proceso 5 proceso 5 proceso 5 proceso 9 proceso 9 proceso 8 proceso 10 proceso 2 proceso 2 proceso 2 proceso 2
  • 17. Fragmentación Externa e Interna La fragmentación externa se da cuando se van asignando porciones de memoria a los procesos y entre ellas quedan pequeñas secciones sin ocupar En ocasiones, un proceso no se puede almacenar por falta de un segmento contiguo suficiente, pero si se sumaran todos los fragmentos dispersos sí se podría La fragmentación interna se presenta cuando se asignan particiones de tamaños mayores a los de los procesos y queda espacio sin ocupar
  • 18. Fragmentación Externa e Interna Una forma de evitar la fragmentación externa es la Compactación; en esta técnica, se relocalizan los procesos de tal manera que queden contiguos y resulte en un solo hueco grande al final La compactación sólo es posible si se utiliza enlazado dinamico (al momento de ejecución) Es importante evaluar el impacto de la compactación y analizar los algoritmos que se vayan a utilizar para ello; la compactación suele ser muy ineficiente y díficil de lograr adecuadamente
  • 20. Antecedentes Los programas normalmente no ocupan al mismo tiempo toda la memoria que solicitan; esto porque el código está dividido en partes o por estructuras de datos parcialmente utilizadas Si se aprovecha esta característica, se pueden poner más procesos en memoria al mismo tiempo lo que ofrece varias ventajas:  Se elimina el límite de la memoria física  Se pueden ejecutar más programas a la vez  Se requiere menos E/S que si se intercambian en total Estas ventajas son propias de la Memoria Virtual
  • 21. Antecedentes – Esquema de la Memoria Virtual
  • 22. Mecanismos de Asignación de Memoria Virtual Existen tres estrategias de administración de la memoria virtual:  OBTENCIÓN  COLOCACIÓN  REMPLAZO Las estrategias de colocación del almacenamiento sirven para determinar en que lugar del almacenamiento primario se deben colocar los programas y datos entrantes.  MEJOR AJUSTE  PRIMER AJUSTE  PEOR AJUSTE
  • 23. Paginación Otra posible solución al problema de la fragmentación externa es permitir que el espacio de direcciones de los procesos no sea contiguo La Paginación (Paging) es una implementación de dicha solución La paginación evita el difícil problema de asignar porciones variables a los procesos o de utilizar intercambio constante y su consecuente fragmentación en disco Debido a estas ventajas y a su relativa facilidad de implementación, es de las técnicas más usadas
  • 24. Método Básico de Paginación La memoria física se divide en bloques de tamaño fijo llamados Marcos (Frames) y la memoria lógica se divide en bloques del mismo tamaño llamados Páginas (Pages) Cuando se va a ejecutar un proceso, se carga de disco a los marcos de memoria disponible; el disco también se divide en bloques del mismo tamaño que los marcos Cada dirección lógica se convierte en una combinación de no. de página y desplazamiento en la página; la MMU la convierte en dir. física
  • 25. Método Básico de Paginación v=(p,d) r=(f,d)
  • 26. Método Básico de Paginación El número de página se utiliza como un índice dentro de una Tabla de Páginas, la cual contiene la dirección base de cada uno de los marcos de la memoria física El tamaño de la página lo define el hardware Si se utiliza un esquema de paginación, no existe fragmentación externa, cualquier marco disponible se puede utilizar; lo que sí puede llegar a haber es algo de fragmentación interna Los marcos disponibles se administran por el sistema operativo mediante una Tabla de Marcos
  • 27. Soporte en Hardware para la Tabla de Páginas Por lo general, se requiere una tabla de páginas para cada proceso, por lo que se requiere que se almacene un apuntador a ésta en el PCB Se podrían utilizar registros dedicados para almacenar la tabla, sin embargo, esto sólo funciona si son pocas entradas Otra posibilidad es la utilización de un registro especial de alta velocidad que guarda la posición en memoria donde se encuentra la tabla de cada proceso, y su valor cambia de un proceso a otro
  • 28. Páginas Compartidas Una ventaja adicional de la paginación es la capacidad de poder compartir páginas comunes entre varios procesos Esto se logra simplemente haciendo que las tablas de páginas de los procesos referencien a los mismos marcos Esto se puede utilizar para compartir código común (por ejemplo, varios usuarios utilizando un mismo programa) o para implementar un esquema de memoria compartida
  • 29. Segmentación La segmentación es un esquema de memoria en el que se hacen divisiones lógicas de un programa (por funciones, módulos o segmentos de datos), y en el que cada segmento puede tener una longitud variable Los segmentos se numeran de forma creciente y las instrucciones o datos se referencian en base al inicio del segmento Las direcciones lógicas de los procesos se forman entonces de unir el número de segmento con el desplazamiento dentro del segmento
  • 30. Segmentación 1 4 1 2 3 2 4 3 espacio del usuario espacio de memoria física
  • 31. Soporte en Hardware para Segmentación La segmentación se implementa mediante una Tabla de Segmentos Esta tabla contiene en cada entrada una base de segmento y un límite de segmento La base es la posición en memoria física en la que se encuentra el segmento y el límite es el tamaño de segmento Cuando se busca una dirección lógica, en base al número de segmento se ubica la entrada y se obtiene la base; si el desplazamiento es mayor al límite se rechaza, si no se suma a la base
  • 32. Soporte en Hardware para Segmentación v=(s,d)
  • 33. Segmentación – Ejemplo Asignación de memoria virtual Un solo segmento Varios segmentos Memoria Programa A Memoria Segmento 0 virtual virtual Segmento 1 Programa A Segmento 2 Sistema Sistema operativo operativo
  • 34. Protección y Compartimento de los Segmentos Al igual que con la paginación, se pueden agregar bits a las entradas de la tabla de segmentos para controlar la validez o el tipo de acceso permitido a cada uno Además, el hecho de que los segmentos tienen un significado lógico permite realizar verificaciones adicionales También se pueden compartir los segmentos, simplemente haciendo referencia en la tabla a la misma dirección física; si lo compartido es código, se debe cuidar que sea código reentrante
  • 35. Fragmentación de los Segmentos De la misma forma que con el esquema de particiones variables, hay que encontrar huecos de memoria libres y de tamaño adecuado para poderlos asignar a nuevos segmentos Para ello se utiliza ya sea el método de primer ajuste o el de mejor ajuste También se puede presentar fragmentación externa entre segmentos En general, si el tamaño promedio de los segmentos es pequeño, la fragmentación también
  • 36. Segmentación con Paginación Una solución más compleja pero que resuelve el problema de la fragmentación externa en la segmentación, es la segmentación con paginación Hay varias formas de implementarlo, aunque en general se realiza una paginación dentro de los segmentos Al asignar los segmentos como páginas completas, se elimina la fragmentación externa a cambio de un poco de fragmentación interna Se requiere un fuerte apoyo del hardware Formato v= (s, p, d)
  • 37. Paginación por Demanda Éste es el método tradicional con el que se implementa la memoria virtual En él, se suben a memoria sólo aquellas páginas que se determinan que se van a utilizar y conforme se van requiriendo Se requiere algún tipo de soporte de hardware para saber si una página está en memoria o en disco; normalmente se usa el bit de validez Si se intenta accesar a una página que no está en memoria, se genera una trampa y el s.o. toma el control
  • 39. Desempeño de la Paginación por Demanda El desempeño de la paginación por demanda se puede medir por medio del Tiempo de Acceso Efectivo Se calcula utilizando el tiempo de acceso a la memoria (tam) y el tiempo de procesar un fallo de página (tfp) Si p es la probabilidad de que se dé un fallo de página, al fórmula es: Tae=(1-p)(tam)+(p)(tfp) El tam normalmente está dado en nanosegundos, pero el tfp está dado en milisegundos (variable)
  • 40. Reemplazo de Páginas Si la cantidad de procesos en memoria es grande, eventualmente se da el caso de que ya no hay marcos libres para asignarse a páginas nuevas Lo que hay que hacer entonces es quitar una de las páginas en memoria y subir otra; a esto se le llama Reemplazo de Páginas Cuando se necesita un marco libre se checa si hay y si no, se busca un marco víctima para liberarlo Para acelerar este proceso se puede utilizar un Bit de Modificación, que indica cambio en el marco; si no se ha cambiado, no se requiere grabarlo
  • 42. Algoritmos de Reemplazo de Páginas Existen varios algoritmos que tienen la tarea de indicar cuál página se selecciona como víctima La meta de estos algoritmos es conseguir una Frecuencia de Fallos de Página baja Para evaluar los algoritmos se utiliza una secuencia de referencias a páginas en memoria, y a la que se le llama Serie de Referencias Otro factor que se considera es el número de marcos libres; entre más marcos haya libres, menos fallos de página se darán Cadena de referencia a utilizar para pruebas: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
  • 43. Algoritmo FIFO En este algoritmo se saca la página que tenga más tiempo en la memoria Se puede grabar el instante en el que se subió, pero lo más fácil es manejar una cola (FIFO) para indicar cuál es la más vieja Este algoritmo es fácil de entender y de implementar, pero su desempeño es pobre Este algoritmo presenta un fenómeno llamado Anomalía de Belady, y se presenta cuando aún teniendo más marcos libres se dan más fallos
  • 45. Algoritmo Óptimo Un algoritmo óptimo es aquél que tenga la frecuencia de fallos más baja posible El criterio que se utiliza en este algoritmo es el siguiente: “reemplazar aquella página que vaya a durar más tiempo sin usarse” Siguiendo esta regla se garantiza la frecuencia más baja Sin embargo, es difícil de implementar pues se necesitaría saber de antemano qué páginas se van a solicitar, y eso no es posible Por eso se usa sólo para hacer comparaciones
  • 47. Algoritmo LRU El algoritmo LRU es un punto medio de los anteriores, y busca aquella página que se haya usado con mayor anterioridad (Least Recently Used, LRU), es decir, la que tenga más tiempo sin usarse Es una muy buena aproximación al óptimo y por ello es muy utilizada, aunque la dificultad estriba en cómo implementarla Se pueden utilizar dos esquemas (contadores o pilas), sin embargo requieren apoyo de hardware el cual normalmente no existe
  • 48. Algoritmo LRU – Ejemplo
  • 49. Algoritmos de Aproximación a LRU Puesto que casi nunca hay hardware para implementar correctamente el LRU, hay que usar algún tipo de aproximación aprovechando el hardware que sí esté disponible Algunos de ellos utilizan un Bit de Referencia, (que indica si se utilizó el marco) y/o el Bit de Modificación (que ya se vió) Los algoritmos de aproximación son:  Algoritmo con Bits de Referencia Adicionales  Algoritmo de Segunda Oportunidad  Algoritmo de Segunda Oportunidad Mejorado
  • 50. Algoritmo con Bits de Referencia Adicionales En este algoritmo se almacena un byte por cada página con un registro de los valores que ha tenido el bit de referencia durante un tiempo Lo que se hace es que utiliza un timer que cada cierto tiempo le da el control al s.o. y éste almacena el valor del bit de referencia de todas las páginas en un byte, usando un Shift Derecho Con este esquema, la página que tenga el número binario más chica es la LRU y ésa se escoge Si hay más de una con el mismo valor, se pueden bajar todas o se escoge la más vieja (FIFO)
  • 51. Algoritmo de Segunda Oportunidad Este algoritmo es una modificación del Algoritmo FIFO, pero una vez que ya se seleccionó la víctima se checa si se ha usado y en dado caso se le da una segunda oportunidad y se escoge otra Cuando se selecciona una páginas se verifica si su bit de referencia está en 1 y si es así se escoge la siguiente en la cola; a la que se le dio la segunda oportunidad se le pone el bit en 0 y se reasigna su tiempo de llegada a la hora actual Usualmente se implementa con una cola circular
  • 53. Algoritmo de Segunda Oportunidad Mejorado En este algoritmo se maneja no sólo el bit de referencia sino también el bit de modificación, concatenándolos en ese orden con lo que se crean cuatro clases (en orden de mejor a peor):  Valor 00: no se ha usado ni se ha modificado  Valor 01: no se ha usado pero se modificó  Valor 10: se usó pero no se ha modificado  Valor 11: se usó y se modificó Se hace lo mismo que en el otro pero se recorre la cola hasta que se encuentra la página con el valor más pequeño; es posible que se den varias vueltas
  • 54. Algoritmo de Colocación de Páginas en Búfers Además de utilizar un algoritmo para seleccionar la víctima se pueden agregar otros procedimientos que mejoran el desempeño del reemplazo de páginas Este algortimo mantiene un conjunto de Marcos de Reserva que se utilizan al momento de asignar un marco Cuando ya se escogió un marco víctima se toma un marco de la reserva y se le asigna a la página nueva mientras que el víctima se libera; de esta forma el otro proceso entra más rápido
  • 55. Asignación de Marcos El asignar un marco libre a un proceso no siempre es una tarea trivial Normalmente la estrategia utilizada es asignar cualquier marco libre a los procesos del usuario Sin embargo, hay que considerar varios aspectos:  El número mínimo de marcos por proceso  Si se usa asignación equitativa o proporcional  Si se maneja asiganción global o local Estos aspectos son muy importantes cuando se mantienen muchos procesos en memoria
  • 56. Número Mínimo de Marcos Entre más pocos marcos tenga asignados un proceso más tiempo tardará en fallos de página Pero además de este efecto, hay que considerar cuál es la cantidad mínima que debe tener un proceso para que no vaya a causar algún error durante su ejecución por falta de marcos libres Este número lo determina el hardware y el conjunto y tipo de instrucciones de bajo nivel, y tiene que ver con la cantidad máxima de páginas que se pueden llegar a ocupar al mismo tiempo por una sola instrucción