SlideShare una empresa de Scribd logo
Sistemas Operativos




                                                                                         Organización de la Memoria



                                                                                          Memoria Real                                           Memoria Virtual
                                       Sistemas Operativos               Profesor:
        Your picture here                                                                Un solo         Multiprogramación
                                            Ciclo 2012-1            Diaz Muñante Jorge   proceso

                                                                                                                                                 Multiprogramación
                                                                                                                                Particiones
                                                                                                      Particiones fijas
                                                                                                                                 variables



                                                                                                                                                                              Segmentada
             Administración de la Memoria Virtual                                                   1 Colas
                                                                                                                    Varias
                                                                                                                    colas
                                                                                                                                                 Paginada        Segmentada   + Paginada




       Antecedentes                                                                      Actividad de los procesos



                 Particiones                         Particiones                              Manejo de errores
                    Fijas                             Variables
                                Fragmentación                      Fragmentación               ::   ::        ::      ::       ::                     ::    ::     ::    ::   ::
                                Interna                            Externa
                                                                                              E1 E2 E3 E4 E5                                         E1 E2 E3 E4 E5

                                Tamaño del                         Tamaño del
                                                                                              E6 E7 E8 E9 E10                                        E6 E7 E8 E9 E10
                                proceso limitado                   proceso limitado
                                por el tamaño de                   por el tamaño de          E11 E12 E13 ::                    ::                    E11 E12 E13 ::           ::
                                la partición                       la memoria real
                                                                                               ::   ::        ::      ::       ::                     ::    ::     ::    ::   ::


                                        Asignación de Memoria
                                                                                             En la practica rara vez se presentan todos los
                                        Tamaño total del proceso
                                                                                             errores en una misma ejecución.
                                                                                                                                                 4




       Actividad de los procesos                                                         Actividad de los procesos


            Manejo de tablas, vectores u otra estructura de datos
                                                                                         Software base: Editor de texto
            ::      ::     ::     ::   ::             ::    ::     ::   ::   ::
                                                                                                               ::         ::        ::   :: ::
            V1 V2 V3 V4 V5                           V1 V2 V3 V4 V5
                                                                                                                    Conversión de
            V6 V7 V8 V9 V10                          V6 V7 V8 V9 V10                                                Minusculas a
           V11 V12 V13 V14V15                       V11 V12 V13 V14V15                                              Mayusculas

            ::      ::     ::     ::   ::             ::    ::     ::   ::   ::
                                                                                                               ::         ::        ::   :: ::

           En la practica solo usamos pocos elementos de las
                                                                                         En la practica usamos rara vez esta opción
           estructuras de datos.
           Ejm: Vector (100x100) y usamos solo (10x10)
                                                      5                                                                                          6




Diaz Muñante Jorge                                                                                                                                                                         1
Sistemas Operativos




       Principio de localidad                                                                     Premisa

        Referencias repetidas                                                                      No se requiere que un proceso este almacenado en la memoria principal
              initializacion             Inicio del      Fin del                                   en forma completa
                                                                    Cod. 1       Cod. 2   datos
                  datos                   codigo         codigo                                    Ventajas
        Saltos esporadicos
                                                                                                   – No hay limite para el tamaño de los procesos
        working set: Fase inicial del                   Fase final del           Fase Principal
                        proceso                           proceso                 del proceso      – Aumenta el numero de procesos en memoria
                                                                                                   – Disminución de las Operaciones e/s
       Dening
       – Principio de localidad
       – Las referencias de los procesos tienden agruparse en
         zonas pequeñas del espacio direccionable. Estas
         zonas ademas tienden a cambiar en forma
         intermitente.
                                                                7                                                                                                      8




       Memoria Virtual                                                                            Jerarquía de Memoria


         Es la separación de la memoria lógica del usuario de la memoria física                       Memoria Cache:                           Memoria real                        Memoria Virtual
                                                                                                      Ilusion de una                           Costo razonable                     Ilusion de una memoria
                                                                                                      memoria muy                              pero velocidad                      de gran tamaño
                                                                                                      rapida                                   intermedia
            • Una gran memoria virtual cuando solo se dispone de una                                                                                                                       Virtual
                                                                                                                                                                                          memory
              memoria física mas pequeña
                                                                                                                                                      Main memory

                                                                                                                               Cache
                                                                                                        Registers



                                                                                                               Words
                                                                                                                                            Lines
                                                                                                             (transferred                                           Pages
                                                                                                               explicitly                 (transferred
                                                                                                            via load/store)              automatically            (transferred
                                                                                                                                       upon cache miss)          automatically
                                                                                                                                                                upon page fault)




                                                                9                                                                                                    10




       La memoria virtual                                                                         La paginación
       La ilusión de la memoria infinita


                                                                                                     - Consiste en dividir el espacio de direcciones virtual en unidades de
                                                                                                     tamaño invariante llamadas páginas.


                  ∞
                                   TLB




                                                                                                                              Proceso A                                    Proceso A


                                      Tabla
                                      Pagina
                                                      Memoria            Disco
               Memoria                                                   500GB                       - Los marcos de página son la correspondencia de una página en la
                                                       Fisica
               Virtual                                 1 GB                                          memoria física, es decir, el espacio en la RAM donde realmente esta
                4 GB                                                                                 la página, teniendo ambos el mismo tamaño. De esta forma, todas
                                                                                                     las unidades de transferencia de datos desde y hacia la RAM se
                                                                                                     hacen en el tamaño de una página.
                                   Paginada           Segmentada    Segmentada                                                                                                           Marco de
                                                                    + Paginada                                                                                                           Página
                                                                                                                         Proceso A                                                 RAM

                                                                                                                              Página




Diaz Muñante Jorge                                                                                                                                                                                          2
Sistemas Operativos




       Memoria Virtual con paginas                                             Configuracion de la memoria virtual

                                              Continuidad Artificial

                     Pag 0                              Marco 0
                     Pag 1                              Marco 1
                     Pag 2                              Marco 2      Memoria
      Memoria                                                        real
      Virtual        Pag 3                              Marco 3
                     Pag 4                              Marco 4
                     Pag 5                              Marco 5
                     Pag 6
                                                    Espacio de direcciones
                     Pag 7               4k         reales
        Espacio de direccionamiento
        lógico                                 13                                                                                                                        14




       Memoria Virtual Estatica / Dinamica                                     Tabla de Paginas
                                                                                      Memoria Secundaria
                                                                                     Principal (Disco Duro)                                     Memoria
                                                                                                                                               Virtual de   Sistema Operativo
                                                                                                                                               Proceso P
                                                                                                                                                                   Tabla de
                                                                                                                                               Página 0          Páginas de P                                               Memoria Física
                                                                                                                                               Página 1       Página 0       Marco 2                                        Principal (RAM)
                                                                                0         1        2          3
                                                                                                                                               Página 2       Página 1       Marco 0
                                                                                                                                               Página 3       Página 2                                                           Sistema
                                                                                                                                                                             No está
                                                                                                                                                                                                                                Operativo
                                                                                4         5        6          7                                    …          Página 3       No está
                                                                                         P0        P1         P2                                              Página 4       Marco 6                                  Marco 0    Página 1

                                                                                                                       (direcciones lógicas)
                                                                                8         9        10         11                                                 …             No                                     Marco 1     Libre
                                                                                                                                                                              están                                   Marco 2    Página 0
                                                                                P3       P4        P5         P6




                                                                                                                                                                                              (direcciones Físicas)
                                                                                                                                                                                                                      Marco 3     Libre
                                                                                                                                                             Página n- Marco 5
                                                                                               .                                                                 1                                                    Marco 4    Página n
                                                                                               .
                                                                                                                                                              Página n       Marco 4                                  Marco 5   Página n-1
                                                                                               .
                                                                                                                                                                  Lista de                                            Marco 6    Página 4
                                                                                32       33        34         35                                                Marcos Libres
                                                                                                                                                                                                                        …         Libres
                                                                               Pn-1      Pn                                                                          Marco 1
                                                                                               .                                                                     Marco 3
                                                                                                                                                                                                                      Marco m     Libre
                                                                                               .
                                                                                                                                                                     Marco 7
                                                                                               .
                                                                                …         …        D-1        D                                Página n                  …
                                                                                                                                                                     Marco m




                                               15                                                                                                                        16




       Fallo o falta de pagina                                                 Falla o falta de Pagina
                                                                                                                                                                                           La pagina esta en
        El proceso trata de usar una pagina que no esta en memoria real.                                                                             Sistema                          3    memoria auxiliar
        Pasos:                                                                                                                                      operativo
        – 1. Referencia a una pagina, verifica su bit de
                                                                                                                                                                      2 Trampa
          validez (esta invalida = i)
                                                                                     Cargar                        1
                                                                                                                                               Referencia                             Memoria
        – 2. Ocurre una trampa                                                         M
                                                                                                                                                                                       Física
        – 3. SO busca un marco libre
                                                                                                                                                                  i
        – 4. Lleva la pagina del disco a la memoria
                                                                                6 Reinicia la                                                                                             libre
        – 5. Actualiza la tabla de paginas                                        instrucción                                                          Tabla de
                                                                                                                                                       paginas                                                                  4 Carga la
        – 6. Reinicia la operación                                                                                                                                                                                                 pagina
                                                                                                                                                     5 Restablece
                                               17                                                                                                     tabla de pag.
                                                                                                                                                             18




Diaz Muñante Jorge                                                                                                                                                                                                                            3
Sistemas Operativos




       Estructura tabla de páginas                                                  Compartiendo paginas

                                                                                     Direcion Virtual # Pag                 Offset
           r w x v re m s c su pid           g        gd   other
                                                           otros     Marco #           (Proceso A):

                                                                                          PageTablePtrA                      pag #0        V,R
               r     Read (lectura)          s         Shared-compartida
                                                                                                                             pag #1        V,R
               w     Write (escritura)       c         caching
                                                                                                                            page #2
                                                                                                                             pag          V,R,W
               x     Execute                 su        super-pagina                                                          pag #3       V,R,W
                                                                                                                                                                Pagina
                     (ejecucion)
               v     valida                  pid       process id                                                            pag #4        N
                                                                                                                                                              compartida
               re    referenciada            g         (extended) guard                                                      pag #5       V,R,W

               m     modificada              gd        guard data                         PageTablePtrB                      pag #0        V,R

                                                                                                                             pag #1        N

           caching:         páginas asociadas a registros de dispositivos                                                    pag #2       V,R,W           Esta pagina fisica
           referenciada:           1 cuando se hace una referencia a una página                                              pag #3        N              aparece en los 2
                                                                                                                                                              procesos
                            para leer o escribir                                                                            page #4
                                                                                                                            pag            V,R
                                                                                                                                           V,R

           modificada:             recuperación marco, si página no ha sido                                                  pag #5       V,R,W

                            modificada no se escribe a disco
           Valida o :       1 entrada valida y puede ser utilizada                   Direccion Virtual: # Pag               Offset
                                                                                         Process B
           presente/ausente 0 página no cargada en memoria                                                                                  20




       Traduccion de Direcciones                                                    Traduccion de direcciones


                                                                   Memoria Real
         Pagina #                                                                     Memoria Real
                                                                                      0           1       2             3             4               5       6         7

                               Desplazamiento
                                     “d”                                                   2k                                                         d
                                                            DR instruccion                                                                Direccion Real = (5,10)
        Instruccion DV                                                                Memoria Virtual
                                         ¿?                                           0           1       2             3             4               5       6         7



                                                                                                                        d
                                                                                                              Direccion Virtual = (3,10)
        Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d)
                                                 21                                                                                         22




       Traduccion de direcciones                                                    Traduccion de direcciones


            Registro base
              Tab.Pag               Dirección virtual
           a                   Pagina p Desplazamiento                             Dirección virtual
                                                 d                                   Page #           d                       marco #                 d


                                                                                                                   a
           +                a                                                                                        a
                           p                                                                                      + p                                               d       marco
               a+p                                         +             b+d
                                         b                                                                                                        b
                                                                       Dirección
                                 Tabla de                                 real                                                  Tabla de
                                 paginas                                             Programa                                   paginas                                 Memoria
                                                                                                                                                                         física
                                                 23                                                                    paginación
                                                                                                                                24




Diaz Muñante Jorge                                                                                                                                                                  4
Sistemas Operativos




       Tablas de 02 Niveles                                                        Tabla de 2 niveles
                                                                                                                          Direccion Marco
                                                                                            10 bits 10 bits     12 bits    fisica: Page #   Offset
                                                                                  Direccion P1 index P2 index   Offset
                                                                                   virtual:
                                          Dirección virtual
                                                                                                                                                 4KB
                                   p1          p2        d
                                                                                    PageTablePtr


                                                                     Dirección
                                                                        real
                                                                                                            4 bytes
                                                                          m   d
                                                                                    Arbol de tablas
                                                                                    Tablas tam. fijo (1024
                                                                                    entradas)
                                                       m

          Tabla de 1er nivel                 Tablas de 2do nivel                                                                 4 bytes
                                                 25                                                                         26




       Memoria asociativa                                                          Traduccion de direcciones

        Memoria especial - TLB
        – (Translation Look-aside Buffers)
                                                                                          Dirección lógica
        – acceso rápido: . 10-20% del tiempo de acceso a memoria
                                                                                          p   d
        – pequeño tamaño: 64-1024 entradas
                                                                                                      pagina marco
        – solo contiene parte de la Tabla de Páginas                                                                      acierto

                                                                                                                                            m    d
        Memoria de acceso por contenido
        – Se compara con todas las páginas disponibles a la vez                                                                                 Dirección
                                                                                                         TLB                                       real
        – Si la página buscada no está hay que buscarla en la Tabla de Páginas
          en memoria principal                                                                          falla
                                                                                                                                 m
        – Después del fallo se refresca la memoria asociativa
        – El método es válido en función del porcentaje de éxito
          • se basa en que casi siempre los programas acceden a direcciones                                                Tabla de
            consecutivas                          27                                                                        paginas
                                                                                                                           28




       Estrategias de Administración                                               Estrategias de Administración


        Estrategia de Obtencion: Determinan cuándo se debe cargar una página      Estrategia de Colocacion:
        en memoria

                                                                                  Determinan en donde se debe cargar una página en memoria
        – Paginación por demanda
          • Se trae una página sólo cuando se hace referencia a ella
          • El principio de cercanía reduce los fallos.
        – Paginación previa
          • Se traen a memoria varias páginas contiguas
          • Mayor eficiencia de carga desde dispositivo secundario


                                                  29                                                                        30




Diaz Muñante Jorge                                                                                                                                          5
Sistemas Operativos




       Estrategias de Administración                                               Reemplazo de Pagina

       Estrategia de Reemplazo:


       ¿ Qué página se reemplaza en memoria principal cuando                        marco b.validz                      M.Real            Sacar la pagina
                                                                                                                                             victima
       se debe cargar otra y no hay espacio para ella?                                                   Cambiar a
                                                                                                          invalido
                                                                                                     2                                 1
                                                                                      m0
                                                                                      /      vi
                                                                                             /
                                                                                                                    m
                                                                                      m       v                         victima
                                                                                                                         nueva
                                                                                                     4
                                                                                                   Cambiar la tabla                   3
                                                                                     Tabla de       para la nueva
                                                                                     paginas           pagina
                                                                                                                                    Introducir la
                                                                                                                                   pagina deseada

                                                31                                                                       32




       Algoritmo Optimo                                                            Algoritmo optimo



             Cada página se va a etiquetar con:
                  Número de instrucciones antes de hacer la
             1a. referencia a dicha página                                                         p3              p1                            p2
             Principio algoritmo:
                  eliminar página con la máxima etiqueta.                                   5 inst
                                                                                                          10 inst.
                                                                                                                                      30 inst.
            Página 1                   Página 2                      Página 3


            Etiqueta: 10               Etiqueta: 30                  Etiqueta: 5   Ejecución
                                                                                   reemplazo

                                                                                                                         34




       Algoritmo Optimo                                                            Algoritmo pésimo


                                                                                    ¿cuál pagina involucra la peor decisión de reemplazo?
              7   0   1   2   0    3    0   4   2    3   0   3   2     1   2   0



              7   7   7   2
                          7   2   2     2   2   2    2   2   2   2    2    2   2
                  0   0   0   0   0     0   4
                                            0   4    4   0
                                                         4   0   0    0    0   0
                                  Marcos de página
                      1   1   1   3
                                  1     3   3   3    3   3   3   3    3
                                                                      1    1   1

                          7       1         0            4            3
                                   8 fallos de página




                                                35                                                                       36




Diaz Muñante Jorge                                                                                                                                          6
Sistemas Operativos




       Algoritmo FIFO                                                          Algoritmo FIFO


                                                                                Principio: Los primeros en entrar, son los primeros en salir.


                                                                                S.O. tiene una lista de todas las páginas en memoria, siendo
          p3 p4                                                  p1 p2          la primera página la más antigua y la última la más reciente.


            FIFO                                                Optimo          En un fallo de página se elimina la primera página y se
      Pasado mas lejano                                    Futuro mas lejano    añade la nueva al final de la lista.


                                                                                FIFO es muy pocas veces usada en su forma más pura.
                                Ejecución
                                reemplazo

                                                37




       Algoritmo FIFO                                                          Algoritmo FIFO



                                                                                     7   0   1   2   0    3   0   4   2        3   0   3   2   1   2   0


       primera        P1         P2        P3             P4    P5
                                                                P6
                                                                                    7    7   7   2
                                                                                                 7   2   2    2   4
                                                                                                                  2   4        4   0
                                                                                                                                   4   0   0   0   0   0
        última
                                                     P3                                  0   0   0   0   3
                                                                                                         0    3   3   2
                                                                                                                      3        2   2   2   2   1
                                                                                                                                               2   1   1
                                                                                                         Marcos de página
                                                     P4                                      1   1   1   1    0
                                                                                                              1   0   0        3
                                                                                                                               0   3   3   3   3   2
                                                                                                                                                   3   2
                            siguiente                P5
                                                     P6
                                                     P1                                          7       0    1   2   3        0   4           2   3
                                                     P2
                                                                                                         12 fallos de página


                                                                                                                          40




       Algoritmo FIFO                                                          No paginado


        Por que podría ser bueno?
        – Quizás la página que entró a memoria primero ahora no
          se necesita
        Por que podría ser malo?
        – Quizás página esta en uso
          • Las primeras paginas en llegar son del sistema operativo
          • Los programas asignan los valores al inicio.
        – Podría exponer anomalía de Belady




                                                                                                                          42




Diaz Muñante Jorge                                                                                                                                         7
Sistemas Operativos




                                                                                                                                      Algoritmo de la Segunda Oportunidad




           FIFO/3                 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3                                                                  Modificación simple de FIFO
           Marcos                      0
                                       1                                                                                                         evita deshacerse de una página de uso frecuente
                                       2
                                                                                                                                                 inspeccionando el bit R de la página más antigua.

           FIFO/4                 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3                                                                          si (R = 0) =>                       página antigua y no utilizada
           marcos                      0                                                                                                                                             se reemplaza en forma inmediata
                                       1
                                       2                                                                                                         si (R=1)                  =>        el bit se limpia
                                       3                                                                                                                                             la página se coloca al final de la
                                                                                                                                                                                     lista, su tiempo de carga se
                                                                                                                                                                                     actualiza
                                                                           43




       Algoritmo de la Segunda Oportunidad                                                                                            Algoritmo de Reemplazo de Reloj

                       En FIFO la
                                                                                                                                         Mantener páginas en una lista circular con forma de reloj.
                   Página 1 saldría                                                                                                      Una manecilla apunta hacia la página más antigua.
                                                                                                      Orden de entrada a la memoria

                                                   0                                                                                                                    A
                              Pág 1        1           Pág 2    1      Pág 3    0         Pág 4       0        Pág 5       0                                               L                                     B
        Se mira la primera página (la más vieja).
        Tiene su bit de uso en 1, por lo tanto se le da                                                                                                    K                                                                     C
        otra oportunidad. Se setea en cero R, y se
        pasa a la cola                             0
                              Pág 2        1           Pág 3    0      Pág 4    0         Pág 5       0        Pág 1       0                      J                                                                                      D
         Idem al caso anterior
                                                                                                                                                           I                                                                     E

                              Pág 3            0       Pág 4    0      Pág 5    0         Pág 1       0        Pág 2       0
                                                                                                                                                                           H                                     F
                                                                                                                                                                                                G
         Al encontrarse una página con el bit en cero,
         se escoge para desalojo.
                                                                                                                                        Al ocurrir un fallo de página se inspecciona la página a la que apunta la
                                                                                                                                        manecilla.
         En el caso de que todas las páginas hayan
         tenido el bit de uso en cero, este algoritmo
                                                                                                                                        Si bit R = 0   => página se retira de memoria, se inserta nueva página en
         degrada en FIFO.                                                                                                                              su lugar en el reloj manecilla avanza una posición
                                                                                                                                        Esto continua hasta encontar una página con R = 0.
                                                                                                                                        Ejemplo de uso: Solaris




       Ejemplo: Algoritmo de Reemplazo de Reloj                                                                                       Ejemplo: Algoritmo de Reemplazo de Reloj

         Estado del buffer justo antes                   n                      0                                                      Estado del buffer justo antes           n                       0
         de un reemplazo                                                                                                               de un reemplazo
                                                             Pag 9        Pag 19                  1                                                                                Pag 9            Pag 19               1
                                                             uso = 1      uso = 1                                                                                                  uso = 1          uso = 1

                                                                                        Pag 1                                                                                                                  Pag 1
                                                   .                                    uso = 0                                                                        .                                       uso = 0

                                           .                                                                 2                                                     .                                                             2
                                                                    Puntero al              Pag 45                                                                                           Puntero al              Pag 45
                                                                    marco siguiente         uso = 1                                                                                          marco siguiente         uso = 0
                                       .                                                                                                                       .
                                                                                                                        Pag                                                                                                              Pag
                                 Pag 222                                                    Pag 191                     727                             Pag 222                                                      Pag 191             727
                                 uso = 0                                                    uso = 1              3                                      uso = 0                                                      uso = 1         3
                      8                                                                                                                          8

                                           Pag 33                                       Pag 556                                                                    Pag 33                                      Pag 556
                                           uso = 1                                      uso = 0                                                                    uso = 1                                     uso = 0

                                                             Pag 67      Pag 13                       4                                                                            Pag 67        Pag 13                      4
                                   7                                                                                                                      7
                                                             uso = 1     uso = 0                                                                                                   uso = 1       uso = 0

                                                         6                          5                                                                                          6                           5




Diaz Muñante Jorge                                                                                                                                                                                                                             8
Sistemas Operativos




       Ejemplo: Algoritmo de Reemplazo de Reloj                                                                                      Ejemplo: Algoritmo de Reemplazo de Reloj
             Estado del buffer justo antes            n                            0                                                  Estado del buffer                       n                          0
             de un reemplazo                                                                                                          después del reemplazo
                                                          Pag 9              Pag 19                      1                                                                        Pag 9          Pag 19                    1
                                                          uso = 1            uso = 1                                                                                              uso = 1        uso= 1

                                                                                           Pag 1                                                                                                                 Pag 1
                                              .                                            uso = 0                                                                    .                                          uso = 0

                                          .                                                                          2                                            .                                                                2
                                                                      Puntero al                     Pag 45                                                                                 Puntero al                Pag 45
                                                                      marco siguiente                uso = 0                                                                                marco siguiente           uso = 0
                                      .                                                                                                                       .
                                                                                                                             Pag
                                 Pag 222                                                             Pag 191                 727                         Pag 222                                                      Pag 191
                                 uso = 0                                                             uso = 0             3                               uso = 0                                                      uso = 0          3
                       8                                                                                                                         8

                                          Pag 33                                               Pag 556                                                            Pag 33                                         Pag 727
                                          uso = 1                                              uso = 0                                                            uso = 1                                        uso = 1

                                                          Pag 67             Pag 13                          4                                                                     Pag 67       Pag 13                         4
                                  7                                                                                                                       7
                                                          uso = 1            uso = 0                                                                                               uso = 1      uso = 0

                                                      6                                5                                                                                      6                              5




       Algoritmo del Reloj                                                                                                           Algoritmo del reloj



                        7     0       1           2       0       3     0 4            2        3      0         3       2   1   2            Ejemplo:                                   Cadena de referencia
                        0                                                                                                                    7       0   1        2       0   3      0      4   2        3       0    3    2       1       2   0

                        7    7     7          2
                                              7       2       2   2      4     4           4     4      3        3       3   3   0
                                                                                                                                             7       7   7        2
                                                                                                                                                                  7       2    2     2      4    4       4        4   3        3   3       3       0
                             0     0          0       0
                                                          Marcos de página 2
                                                           0 0 0 2 2 2                                           2       1   1   1
                                                                                                                                                     0   0        0       0    0     0      0    2       2        2   2        2   1       1       1
                                   1          1       1       3
                                                              1   3      3     3           3     0      0        0       0   2   2                                            Marcos de página
                                                                                                                                                         1        1       1    1
                                                                                                                                                                               3     3      3    3       3        0   0        0   0       2       2
                                              7               1          2     0                 3     4                 2   0   3
                                                                                                                                                                  7            1            2    0               3    4            2       0       3
                              R                 R               R                R                     R
                            7 1               7 0             7 0              7 0                   2 1                                                                                                                                             R
                                                                                                                                                                                                                                                   0 1
                            0 1               0 1             0 0              0 0                   0 0                                                                           12 fallos de página
                                                                                                                                                                                                                                                   1 1
                            1 1               1 1             1 1              1 0                   1 0
                                                                                                                                                                                                                                                   2 1

                                                                              51                                                                                                                    52




       Algoritmo según el uso no tan reciente                                                                                        NRU - Ejemplo

       - En este método cada página contiene 2 bits que permite decidir cual página desalojar:
         -    R (bit solicitado): Se enciende cuando se realiza un acceso a esta página
         -    M (bit modificado): Se enciende cuando se escribe en la página.

       - Se establecen así 4 clases de acuerdo al valor de los bits:                                                                 (0,0) (1,0) (0,1) (1,0)                                    Clase 0 = {a7,d5,a8,b4,d8}
         -    Clase 0: No solicitado, No Modificado                                                                                   a7     c2   d2    b3
         -    Clase 1: No solicitado, Modificado                                                                                                                                                Clase 1 = {d2,a3,c6}
         -    Clase 2: Solicitado, No Modificado                                                                                     (1,1) (0,0) (1,0) (1,1)
         -    Clase 3: Solicitado, Modificado                                                                                         b1    d5    a2     c4                                     Clase 2 = {c2,b3,a2,d7}
       - El algoritmo escoge una página partiendo desde las con clase menor.                                                         (0,0) (0,1) (0,0) (1,1)                                    Clase 3 = {b1,c4,d9,a5}
                                                                                                                                      a8    a3    b4    d7
       - El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales
         páginas son accedidas constantemente durante el quantum.
                                                                                                                                     (1,1) (1,0) (0,1) (0,0)
                                                                                                                                      a5    d9     c6   d8


                                                                                                                                                                                                    54




Diaz Muñante Jorge                                                                                                                                                                                                                                       9
Sistemas Operativos




       Ejemplo NRU                                                                                                     Algoritmo LRU

                 Pag      Bit R      Bit M                                         Pag        Bit R      Bit M
                  0         0          0                                            0           1          1
                                                          Quantum
                  1         0          0                                            1           1          0
                  2         0          0                                            2           0          0
                  3         0          0          Durante el quantum se             3           1          1
                                                  acceden las páginas 0, 1       Estado de la tabla de páginas en t1    p3 p4                                      p3 p4                                             p1 p2
            Estado de la tabla de páginas en t0   y 3; y se escribe en las 0
                                                  y3                                      El SO apaga todos los
                                                                                          bits R para poder
                                                                                          determinar cuales de las
       Será desalojada                                                                    páginas han sido                 FIFO                        LRU                                                         Optimo
                                                                                          ocupadas
                                                         Quantum
                                                                                                                       Pasado mas                  Pasado mas                                                    Futuro mas
                 Pag      Bit R      Bit M                                         Pag         Bit R     Bit M
                  0         1          1                                             0           0         1
                                                                                                                          lejano                     reciente                                                      lejano
                  1         1          0                                             1           0         0
                  2         0          0          Durante el siguiente cuantum       2           0         0                                                               Ejecución
                  3         0          1          se hacen accesos a las             3           0         1
                                                  páginas 0 y 1, luego se pide                                                                                             reemplazo
         Estado de la tabla de páginas en t3      la página 4 que no esta        Estado de la tabla de páginas en t2
                                                  presente y se provoca un
                                                  Page Fault.
                                                                                                                                                                                                56




       Algoritmo de la menor uso reciente (LRU)                                                                        Algoritmo LRU

        Páginas uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las
        siguientes.
        Es probable que las páginas que no hayan sido utilizadas durante mucho tiempo                                                                          Cadena de referencia
        permanezcan sin uso por bastante tiempo.
        Esto induce al siguiente algoritmo:                                                                                 7    0        1        2           0           3        0       4        2   3   0   3    2   1
        al ocurrir un fallo de página se elimina la página que no haya                   sido utilizada durante             2    0
        el tiempo más grande.
        LRU: realizable en teoría, no es barato.                                                                            7   7     7        2
                                                                                                                                               7           2           2       2        4
                                                                                                                                                                                        2   4        4   4
                                                                                                                                                                                                         0   0   0   1
                                                                                                                                                                                                                     0    1   1
                                                                                                                                0     0        0           0           0       0        0   0        3
                                                                                                                                                                                                     0   3   3   3   3    3   3
                                                                                                                                                                                                                              0
        Implementación: necesario mantener una lista de todas las páginas en memoria, en donde                                                                     Marcos de página
        la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final.                             1        1           1           3
                                                                                                                                                                       1       3        3   2
                                                                                                                                                                                            3        2   2   2   2   2    2   2
        Dificultad:
                 la lista debe actualizarse en cada referencia a
                                                                                                                                               7                       1                2   3        0   4           0        3
                 la memoria.
        Busqueda de la página en la lista, su eliminación y posterior traslado al frente de la misma
        NO puede ser una operación muy lenta.                                                                                                                          11 fallos de página
                                                                                                                                                                                                58




       1a. Solución: caso más sencillo                                                                                 Ejemplo solución
               Requiere de un contador de 64 bits, C, en hardware.                                                        Valor inicial cont = 0;
                      se incrementa en forma automática después                               de cada
               instrucción.
                                                                                                                                     P0        P1              P2              P3               cont = 1;
                                                                                                                                     1         0            0              0
               Cada entrada en tabla de páginas debe contener espacio
               necesario para almacenar el contador.                                                                                 P0            P1              P2              P3            cont = 2;
                                                                                                                                      1        2               0               0
               Después de cada referencia el valor actual de C se almacena en la
               entrada de la tabla de páginas correspondiente a la página a la                                                        P0           P1              P2              P3                cont = 3;
               que se hizo referencia.
                                                                                                                                          1        2               0           3

               Fallo de página:                                                                                                           P0           P1              P2           P3           cont = 4;
                      => S.O. examina todos los contadores de la tabla                                                                    1            4           0           3
                          de páginas y elige el mínimo, (i.e. página de uso más
                             reciente).                                                                                    Página más recientemente usada: P1, (cont = 4)
                                                                                                                           Página menos usada: P2 , (cont = 0)




Diaz Muñante Jorge                                                                                                                                                                                                                10
Sistemas Operativos




       2a. Solución: caso más sencillo                                                                                                Ejemplo de LRU con uso de una matriz


                                                                                                             Máquina con cuatro márcos, con referencias a las páginas en el orden:
        Máquina con n márcos para página,                                                                                0, 1, 2, 3, 2, 1, 0, 3, 2, 3
             hardware LRU puede matriz de n x n,                                                             Después hacer referencia a la página 0 tenemos la situación siguiente:
             matriz inicializada en cero.                                                                        0   1    2    3              0   1    2    3             0   1   2 3            0   1   2 3
                                                                                                             0   0   1    1    1          0   0   0    1    1        0    0   0   0 1        0   0   0   0 0
        Referencia al marco k                                                                                1   0   0    0    0          1   1   0    1    1        1    1   0   0 1        1   1   0   0 0
                                                                                                             2   0   0    0    0          2   0   0    0    0        2    1   1   0 1        2   1   1   0 0
              hardware primero activa todos los bits del renglón k                                           3   0   0   (a)
                                                                                                                          0    0          3   0   0   (b)
                                                                                                                                                       0    0        3    0   0   (d)
                                                                                                                                                                                  0 0        3   1   1   1 (d)
                                                                                                                                                                                                            0
              desactiva después todos los bits de la columna k.
                                                                                                                 0   1    2    3              0   1   2 3                 0   1   2 3            0   1   2 3
                                                                                                             0   0   0    0    0          0   0   0   0 0            0    0   1   1 1        0   0   1   1 0
        En cualquier instante:                                                                               1   1   0    0    0          1   1   0   1 1            1    0   0   1 1        1   0   0   1 0
              renglón con valor binario mínimo es de uso menos                                               2   1   1    0    1          2   1   0   0 1            2    0   0   0 1        2   0   0   0 0
               frecuente, renglón con el siguiente valor más pequeño                                         3   1   1    0
                                                                                                                         (d)   0          3   1   0   0 0
                                                                                                                                                       (f)           3    0   0   0 0
                                                                                                                                                                                  (g)        3   1   1   1 (h)
                                                                                                                                                                                                            0
               es el segundo de uso menos reciente, etc.
                                                                                                                 0   1   2 3                  0   1   2 3
                                                                                                             0   0   1   0 0              0   0   1   0 0
                                                                                                             1   0   0   0 0              1   0   0   0 0
                                                                                                             2   1   1   0 1              2   1   1   0 0
                                                                                                             3   1   1   0 0
                                                                                                                         (i)              3   1   1   1 0
                                                                                                                                                       (j)




       Bancos libres en memoria                                                                             Modelo del conjunto de trabajo

                                                                                                             •       Se basa en la localidad
        Banco (pool) de marcos libres para poder leer
        inmediatamente las paginas fallidas, antes de haber escrito a                                        •       Formado por las páginas recientemente accedidas
        disco la victima.                                                                                    •       Las páginas en uso se encuentran en el CdT
        Sustitución y mantenimiento de páginas limpias                                                       •       El conjunto de trabajo varía con el tiempo

        – Cuando el disco está inactivo                                                                                                       Número de páginas del
                                                                                                                                                 almacenamiento
        Se sustituyen las páginas limpias que no hay que escribir en                                                                          primario asignadas al proceso
        disco.
        – Periódicamente se buscan páginas para limpiar
        Utilizado en VAX-VMS como complemento al método FIFO.
        Linux desaloja paginas victimas antes de que se llene la                                                                                                                        Tiempo
        memoria real.
                                                                            63                                                                                       64




       Modelo de conjunto de trabajo                                                                        ¿Cómo determinar el CdT?
                                              Evolución del conjunto de trabajo
                                                                 Inicio nueva fase Inicio nueva fase             • El verdadero CdT lo forman las páginas que
                                                      Estabilización         Estabilización                        deben estar en el almacenamiento primario para
          nº de páginas en conjunto trabajo




                                                 Arranque en frío                                                  la ejecución eficaz del proceso
                                                                                       Estabilización

                                                                                                                                                                 w                           Tiempo de ejecución
                                                                                                                                          t-w                                              t de un proceso

                                                                                                                                          Las páginas referenciadas por el proceso
                                                                                                                                                             durante
                                                                                                                                           este intervalo constituye el conjunto de
                                                                                                                                                             trabajos
                                                                                                                                                     W(t,w), del proceso
                                                                                                        t
                                                                                                                 • W = tamaño de la ventana del CdT
                                                    Olvido de páginas de
                                                                         Olvido de páginas de                    • ¿Cómo afecta el tamaño de W?
                                                        fase anterior
                                                                             fase anterior                                                                           66




Diaz Muñante Jorge                                                                                                                                                                                                 11
Sistemas Operativos




       Ejemplo                                                                  Asignación global vs local


        Ventana de 10 referencias                                                Reemplazo global

        – Tamaño de conjunto de trabajo = 4
                                                                                 – el marco a reemplazar se selecciona entre todo el
                                                                                   conjunto de marcos
                                                                                 Reemplazo local

                 215777775162937                     WS(t1,10) = {1, 2, 5, 7}    – el marco a reemplazar se selecciona solo de su
                                                                                   propio conjunto del proceso.




                                                67                                                             68




       Desventajas global vs local                                              Asignación de marcos


        Reemplazo global
                                                                                 ¿cómo asignamos una cantidad fija de
        – un proceso no puede controlar su propia tasa de                        marcos a los distintos procesos?
          fallos de paginas.
                                                                                 Se dispone de 93 marcos y llegan 02
        – No depende solo del comportamiento del proceso
          sino de todos.                                                         procesos
        Reemplazo local                                                          –¿cuántos marcos obtiene cada proceso?
        – impide a un proceso tener acceso a otras paginas
          no usadas.
        Por lo general el global brinda una mayor productividad.



                                                69                                                             70




       Algoritmos de asignación de marcos                                       Algoritmos de asignación de marcos … cont


        Asignación equitativa                                                    Asignación proporcional

        – 93 marcos libres y llegan 05 procesos                                  – px = tamaño del proceso x
        – cada proceso recibira 18 marcos. Los 03                                – S = ∑ px
          sobrantes son deposito de libres.                                      – ml = numero de marcos libres
                                                                                 – formula mpx=px / S * ml


                                                                                 – 62 marcos libres, p1 = 10k y p2 = 127k
                                                                                 – mp1 = 10 / 137 * 62 = 4 aprox.
                                                                                 – Mp2 = 127 / 137 * 62 = 57 aprox.
                                                71                                                             72




Diaz Muñante Jorge                                                                                                                     12
Sistemas Operativos




       Algoritmos por prioridades                                                     Algoritmos de asignación de marcos

        En un esquema de asignacion proporcional por “tamaño” nos podríamos            Consideraciones
        basar en la “prioridad”.
                                                                                       – en ambas técnicas puede variar dependiendo del
        Permitir que un proceso de alta prioridad reemplace paginas de otro
        proceso de baja prioridad.                                                       nivel de multiprogramacion
        – El numero de marcos de un proceso de alta                                    – Si aumenta el nivel, cada proceso perdera algunos
          prioridad aumentaría en perjuicio de otro de baja                              marcos para proporcionar a los nuevos.
          prioridad.                                                                   – Si disminuye el nivel, los marcos liberados se
                                                                                         distribuye entre los restantes.




                                                      73                                                                           74




                                                                                                 Procesador            Tamaño             Niveles          Espacio
       Paginas Pequeñas
                                                                                                                     de página          de paginación     de usuario

                                                                Ej: Proceso de 25kb                Alpha                8 kb                 3              4 Tb
                                                                                                 ARM 26 bit         16 ó 32 Kb               2           Hasta 26 MB
        Tabla de Paginas          Pagina = 2kb             Pagina = 1kb
          Pagina = 4kb                                                                           ARM 32 bit             4 Kb                 2              3 GB
                                                                                                   IA64           4, 8, 16 ó 64Kb            3             10Exab
                                                                                                  M68000                4 Kb                 3             224MB
                                                                                                M68000 SUN3             8 Kb                 2            3,75 Mb
                                                                                                   MIPS                 4 Kb                 2              2 Gb
                                                                                                  MIPS64                4 Kb                 3             1 Petab
         T. Pag = 7 entradas     T. Pag = 13 entradas      T. Pag = 25 entradas
                                                                                      Linux       PARISC                4 Kb               2 ó 3            3 Gb

        Fragmentación interna                                                                     PowerPC               4 Kb                 2              2 Gb
                                                                                                   S390                 4 Kb                 2              2 Gb
                                  13 Páginas de 2Kb        25 Páginas de 1Kb
          7 Páginas de 4Kb
                                                                                                    SH                  4 Kb                 2            1,984 Mb
                                                                                                   Sparc                4 Kb                 3            3,75 Mb
                                                                                                 Sparc SUN4             8 kb                 3            3,75 Mb
                                                                                                  Sparc 64              8 kb                 3          16 Exab-16Gb
                                                                                                    X86                 4 Kb               2 ó 3            3 Gb
           Desperdicio: 3kb       Desperdicio: 1kb         Desperdicio: 0kb
                                                                                                                                   76




       Hiperpaginacion                                                                Hiperpaginación


        La tasa de fallos de página es tan alta que el proceso pierde más tiempo
        cargando páginas que ejecutando.
        Si se produce vapuleo en todos los procesos el sistema queda parado.                                  M.Real             Sacar la pagina
        Solución                                                                                                                    victima

        – no superar cierto grado de multiprogramación.                                                                        1
        – proporcionar a cada proceso las páginas que                                                m
          necesita en cada momento.                                                                          victima
                                                                                                              nueva
                                                                                                                                                        Es muy
                                                                                                                           2                            intensa

                                                                                                                        Introducir la
                                                                                                                       pagina deseada

                                                      77                                                                           78




Diaz Muñante Jorge                                                                                                                                                     13
Sistemas Operativos




       Hiperpaginacion
                  %Utilización de CPU o Productividad (reqs/segs)                                                                         La segmentación

                                                                                                                                         - Paginación = espacio direcciones unidimensional, (0..max)

                                                                                                                                         - Dotar máquina de varios espacios independientes de
                                                                                                                    Qué ocurre             direcciones, desde 0 hasta cierto máximo.
                                                                                                                      aquí?
                                                                                                                                         - Los distintos segmentos pueden tener longitudes distintas.

                                                                                                                                         - La longitud de cada segmento puede ser distinta

                                                                                                                                         - La longitud de un segmento puede variar durante su ejecución

                                                                                                                                         - Acceso se hace en dos partes: número de segmento y una
                                                                                                                                           dirección dentro de este

                                                                                                                                         - Un segmento puede tener la protección adecuada para el
                                                                              Numero de procesos activos                                   tipo de objeto almacenado
                                                                               Nivel de multiprogramación
                                                                                                79




       Espacio de direcciones virtuales                                                                                                   Proceso

                                                                                      Tabla de                          La t.simbolos
                                                                                      simbolos                         choco contra la             Seg0               Seg1          Seg2              Seg3                 Seg4
                                                                                                                         texto fuente        0k                 0k             0k               0k                  0k
                                                                                      Texto fuente                                                                                Cons-
                                                                                                                                             4k                 4k             4k tan-          4k                  4k
                                                                                                                                                                                   tes
                                                                                      Tabla de constantes                                                            Txt
                                                                                                                                             8k                 8k                               8k                 8k     pila
                                                                                                                                                                   fuente                           Arbol
                                                                                        árbol léxico                                         12k Tab.           12K                             12K lexic.         12K
                                                                                                                                                 Simb
                                                                                                                                             16k                16k                             16k                16k
                                                                                     Llamadas a la pila
                                                                                                                                             20k                                                20k

        En un espacio unidimensional de direcciones con tablas crecientes, una tabla                                                         24k
                                                                                                                                                                     Una mem. Segmentada permite a cada tabla
        puede encimarse con otra                                                                                                                                       crecer o encogerse con independencia
                                                                                                       81                                                                                  82




       Ejemplo de segmentacion                                                                                                            Compartiendo Segmentos

                                                                                      Direccion virtual                 Fragmentacio            Editor            Tabla Segmentos P1
                                                                                   Segment #     Offset                       n                                      limite base
            Seg 1                                                                                                                            segmento 0           0 25286 43062                  43062
            (cod.)                                                                                                         Externa                                1 4425 68348
                                                                     Seg 2                                                     Memoria         datos 1
                                                                    (datos)                                                                   segmento 1
             Seg 3                                                                                                             Fisica                                                                             editor
                                                                                                           Como pagina:
             (pila)                                                                                                                       Espacio direcciones                                    68348
                                                                                                              valida,           Seg 3       virtuales de P1
           Memoria virtual                                                                                   modific.,          (pila)                                                                           datos 1
                                                                                                                                                                                                 72773
                                                                                                            proteccion,
                 MMU                                                                                        Tab etc.
                                                                                                                 de             Seg 1           Editor
                                                                                                        Bas Limi Otros
                                                                                                           Segmento             (cod.)                                Tabla Segmentos P2
                                                                      offset <                                                                                                                   90003
                                                                                                         e     t                              segmento 0
                      no                                              limite ?      STBR                                                                                 limite base
                                                                                                                                                datos 2                                                         datos 2
                                                                                    STLR                                                                              0 25286 43062
                                                                          Si                                                  Seg 2           segmento 1                                        98553
         Fallo acceso                                                                                                                                                 1 8550 90003
          A la mem                                                                                                           (datos)
                                                                                 Segmento Base + Offset                                  Espacio direcciones
                                                                                     Dirección física                                    virtuales de P2
                                                                                                                         0x00                                                                                Memoria Virtual




Diaz Muñante Jorge                                                                                                                                                                                                                14
Sistemas Operativos




                                                                                    Proceso


                                                    Segmentada +                      0k
                                                                                           Seg0
                                                                                                        0k
                                                                                                               Seg1
                                                                                                                           0k
                                                                                                                                Seg2
                                                                                                                                               0k
                                                                                                                                                    Seg3
                                                                                                                                                               0k
                                                                                                                                                                     Seg4

                                                        Paginada                      4k                4k                 4k                  4k              4k

                                                                                      8k                8k                                     8k              8k

                                                                                     12k              12K                                  12K                12K

                                                                                     16k               16k                                 16k                16k

                                                                                     20k                                                   20k

                                                                                     24k
                                                                                                                      Segmentada + Paginada
                                                                                                                                      86




                                                                                    Caso de estudio: Linux

                                                                                      Niveles de tablas en Linux


                                                                                                  Nivel 1         Nivel2          Nivel3            Desplazamiento
                                                            p0 p1
                                    Segmento 0
                                                                                                                                                                Página
                                       40k                                                                                 Tabla de             Tabla de         física
                                                                                                      Tabla de
                                                                                                      páginas              páginas              páginas

           Proceso                  Segmento 1             p0 p1

            120k                       10k                                                           #Página                                   #Página
                                                                                                                       #Página
                                                           p0 p1

                                    Segmento 2
                                       70k                                                              PGD


                                               87                                                                                     88




       Caso de estudio: Linux                                                       Caso de estudio: Linux

          task_struct                vm_area_struct                   Memoria                                                                              Memoria
                                                                                           mem_map_t           mem_map_t          free_are
                                         vm_end                           virtual                                                                            física
                                                                                                                                       a                    Marco Libre
                                         vm_start                    del proceso              count                count              4    map
                                        vm_flags                                                                                                                0
                                                                                                                                                            Marco
             mm                         vm_inode                                               age                  age               3                         1
                                                                                                                                                            Marco
                                         vm_ops
                                                                        Datos                                                              2                    2
                                                                                                                                                            Marco
                                                                                           map_nr= 70            map_nr= 4
                        mm_struct        vm_next         open ( )                                                                                               3
                                                                                                                                                            Marco
                                                         close ( )
                                                                                                                                           1                        Libre
                          count                                                                                mem_map_t                                        4
                                                                                                                                                            Marco
                           pgd       vm_area_struct
                                                                                                                   count                   0                    5   Libre
                                                                                                                                                            Marco
                                         vm_end
                                         vm_start
                                                        swapout ()
                                                        swapin ( )
                                                                                                                    age                                     Marco Libre
                                                                                                                                                                6
                         mmap           vm_flags
                                        vm_inode                                                                                                            Marco Libre
                                                                                                                                                                7
                                                      Operaciones de    Código
                                         vm_ops       memoria virtual                                            map_nr= 0                                      8

                                         vm_next


                                               89                                                                                     90




Diaz Muñante Jorge                                                                                                                                                          15
Sistemas Operativos




       Caso de estudio: Linux                                                               Caso de estudio: Linux


                           Apertura y proyección del programa sobre
                                                                                             Gestión del área de intercambio:
                            las áreas de memoria virtual del proceso                         – Un demonio de intercambio (kswapd) se encarga de
                                                                                               mantener suficientes marcos libres
                                             Fallo de página
                                                                                             – kswapd se ejecuta como un hilo del núcleo activándose en
              Paginación                                              No                       el arranque del sistema
                                          ¿Dirección legal?
                 bajo                                                      Acceso ilegal.
               demanda                                                     Enviar señal
                                                                                             – kswapd cada segundo comprueba si el número de marcos
                                                                      No   SIGSEV al           libres es demasiado bajo. Si es así, busca marcos que
                                          ¿Acceso legal?
                                                                           proceso             puedan ser descartados o sustituidos
                                         Sí
                                        Fallo de página legal                                – Algoritmo implementado en el demonio: algoritmo de
            Traer página                                                  Traer página         aproximación al LRU con envejecimiento
            desde el                                                      desde el
            área de         No                                         Sí archivo en
                                    ¿Entrada vacía en la TP?
            intercambio                                                   disco


                                                      91                                                                                  92




       Caso de estudio: Linux                                                               Caso de estudio: Linux


        Técnica de envejecimiento de páginas:                                                – Si una página modificada se lleva a disco:
        – Al asignar un marco de página se le asocia por defecto                                 su entrada en la tabla de páginas se marca como inválida
          edad 3                                                                                 se incluye la información para su recuperación posterior y
                                                                                                 se libera, añadiéndola en la free_area
        – Las páginas rejuvenecen al acceder a ellas (edad+3 hasta
          un máximo de 20)                                                                   – Las páginas no modificadas no se sustituyen:
                                                                                                 se descarta su contenido
        – Cada vez que se ejecuta kswapd envejece las páginas en
          1 si no se usan                                                                        se marcan como libres, añadiéndolas en la free_area

        – Las páginas víctimas para los intercambios se eligen de                            – Si se recuperan suficientes páginas del proceso
                                                                                               seleccionado, el demonio dormirá de nuevo
          entre las páginas viejas (edad 0) y modificadas
        – En función de la operación vm_ops->swapout de la región                            – Si no se liberan suficientes páginas del proceso actual, se
                                                                                               continúa con el siguiente proceso
          de memoria (vm_area_struct), la página víctima se lleva a
          disco.                                                                             – El demonio empezará en la página siguiente en una nueva
                                                                                               activación
                                                      93                                                                                  94




       Caso de estudio: Linux                                                               Caso de estudio: Linux


                                                                                                ֠    kswapd                                    Edad de los marcos de página
                                                                                                                 Tabla de páginas A             0    1 2      3 4
             Proceso A Tabla de páginas A                                                          Proceso A
                             BV BR BM                                                                              BV BR BM                     7    9    0   3        0
             Página 0                                                                              Página 0
                              1    0     1            Memoria física                                                1    0    1           Memoria física
             Página 1                                                                              Página 1                                                       free_area
                              1    1     2                             Marco 0                                      0    1    x
             Página 2                                      Página 3                                Página 2                                    Página 3            2
                              0    0                                                                                0    0
             Página 3                                      Página 0    Marco 1                     Página 3                                    Página 0            1
                              1    0     0                             Marco 2                                      1    0    0                                    0          2   4
                                                           Página 1                                                                            Página 1
                                                                       Marco 3
             Proceso B     Tabla de páginas B              Página 1                                Proceso B    Tabla de páginas B             Página 1
                             BV BR BM                                  Marco 4                                     BV BR BM
             Página 0                                                                              Página 0
                              0    0                       Página 2    Marco 5                                      0    0                                             swap
             Página 1                                                                              Página 1
                              1    0     3                                                                          1    0    3                                        1
             Página 2                                                                              Página 2                                                            x
                              1    0     4                                                                          0    0


                                                      95                                                                                  96




Diaz Muñante Jorge                                                                                                                                                                    16
Sistemas Operativos




       Caso de estudio: W2K / XP                                                   Caso de estudio: W2K / XP

        El gestor de memoria virtual de W2k utiliza un algoritmo de reemplazo de    Al crearse un proceso se le asigna un tamaño mínimo del
        páginas local tipo FIFO y paginación por demanda                            WS
        La política de reemplazo sustituye la página más antigua del conjunto de    El gestor varía el tamaño de los WS de los procesos según
        páginas del proceso que causó el fallo                                      los requirimientos de memoria:
         Conjunto de trabajo (WS): número de páginas que el proceso tiene
        garantizadas en memoria mientras se está ejecutando
                                                                                    – Incrementa la memoria libre del sistema (recorte
                                                                                      automático del WS) de un proceso si su tamaño es mayor
                                                                                      que el mínimo
                                                                                    – Incrementa el tamaño del WS hasta un máximo si el
                                                                                      proceso genera fallos de página y la memoria no está
                                                                                      demasiado llena
                        Páginas nuevas              Páginas antiguas
                                                                   Conjunto         – Si el proceso requiere más páginas, se eliminan páginas de
                                                                                      su WS empleando el algoritmo FIFO
                                                                  de
                                                                  trabajo
                                               97                                                                                98




       Caso de estudio: W2K / XP                                                   Caso de estudio: W2K / XP

                                                                                         Fallo de
        Las páginas eliminadas del WS pueden volver a él                                 página              Lectura de página del disco o núcleo
        rápidamente sin realizar lectura del disco                                        cero
                                                                                                              Lista de
                                                                                                              marcos
        Permanecen en memoria en uno de estos estados:                                                        Standby
        – Standby: el proceso utiliza el marco de página pero ha sido
                                                                                                      Fallos
          eliminado del WS                                                                   WS          de
                                                                                                               Escritor              Lista        Hilo
                                                                                                                                                             Lista
                                                                                                              de marcos               de       de marco
                                                                                                      página                                                  de
        – Modificado: = Standby pero el proceso ha escrito en la                              de       “soft”
                                                                                                               modific.            marcos        Cero
                                                                                                                                                            marcos
          página sin actualización de disco                                                                                         libres                   Cero
                                                                                          proceso             Lista de
                                                                                              s               marcos
                                                                                                              Modific.
                                                                lista de páginas               Sustitución
                                                                  en standby o                  en el WS                                        Lista de marcos
                                                                   modificadas                                                                      erróneos
                                                                                                      Finaliza el proceso

                             Conjunto de trabajo
                                               99                                                                               100




Diaz Muñante Jorge                                                                                                                                                   17

Más contenido relacionado

PDF
2012 01 catalogo-pc-box-es
PPT
Paginación, Segmentación y Fragmentación
PPTX
PAGINACION Y SEGMENTACION DE MEMORIA
PDF
PDF
S.O Una Visión Aplicada - Capitulo IV
PDF
PDF
C6 adm mermoria_real_ssoo_mododecompatibilidad_
PDF
Sistemas De Archivos
2012 01 catalogo-pc-box-es
Paginación, Segmentación y Fragmentación
PAGINACION Y SEGMENTACION DE MEMORIA
S.O Una Visión Aplicada - Capitulo IV
C6 adm mermoria_real_ssoo_mododecompatibilidad_
Sistemas De Archivos

Similar a C7 memoria virtual_ssoo_mododecompatibilidad_ (20)

PPTX
ARQUITECTURA von Neumann
PPTX
ARQUITECTURA DE COMPUTADORAS
PPTX
Presentacion sistemas
PPTX
Presentacion sistemas
PPTX
Presentacion sistemas
PDF
Manual c18
PPT
Gestión de memoria
PPTX
RC_Juan_Molina
PDF
Manual - C++ Basico
PDF
PDF
Cppbasico
PDF
Manual basico-de-c
PDF
PDF
Sistema de archivos
PDF
Aprenda lenguaje ansi c como si estuviera en primero pre
PPTX
Presentacion c++
PPTX
Presentacion c++
PPTX
Unida ii 8a
DOCX
Cartel del alcances y contenidos de la especialidad de informatica
ARQUITECTURA von Neumann
ARQUITECTURA DE COMPUTADORAS
Presentacion sistemas
Presentacion sistemas
Presentacion sistemas
Manual c18
Gestión de memoria
RC_Juan_Molina
Manual - C++ Basico
Cppbasico
Manual basico-de-c
Sistema de archivos
Aprenda lenguaje ansi c como si estuviera en primero pre
Presentacion c++
Presentacion c++
Unida ii 8a
Cartel del alcances y contenidos de la especialidad de informatica
Publicidad

Más de Julio Pari (20)

PPTX
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
PDF
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
DOCX
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
DOCX
Indice General Tesis Sistemas UPC
PPTX
Arquitectura Web FISI UNMSM
PDF
Jelastic Enterprise
DOCX
Marketing Examen Parcial Profesor Osorio
DOCX
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
PDF
Documento de Arquitectura
DOCX
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
DOCX
Práctica de Inventarios - Investigación Operativa II
PDF
Armas silenciosas para guerras tranquilas
PDF
UML Java
DOCX
Formato de presentación de Proyecto UNMSM FISI
DOCX
Cuento para nuestro hijo y nuestra hija
DOCX
Ingeniería de Software Examen Parcial
DOCX
Sistemas Distribuidos Examen Parcial
PDF
Php07 consultas bd
PDF
Php06 instalacion my_sql
PDF
Php05 funciones usuario
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Indice General Tesis Sistemas UPC
Arquitectura Web FISI UNMSM
Jelastic Enterprise
Marketing Examen Parcial Profesor Osorio
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Documento de Arquitectura
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Práctica de Inventarios - Investigación Operativa II
Armas silenciosas para guerras tranquilas
UML Java
Formato de presentación de Proyecto UNMSM FISI
Cuento para nuestro hijo y nuestra hija
Ingeniería de Software Examen Parcial
Sistemas Distribuidos Examen Parcial
Php07 consultas bd
Php06 instalacion my_sql
Php05 funciones usuario
Publicidad

C7 memoria virtual_ssoo_mododecompatibilidad_

  • 1. Sistemas Operativos Organización de la Memoria Memoria Real Memoria Virtual Sistemas Operativos Profesor: Your picture here Un solo Multiprogramación Ciclo 2012-1 Diaz Muñante Jorge proceso Multiprogramación Particiones Particiones fijas variables Segmentada Administración de la Memoria Virtual 1 Colas Varias colas Paginada Segmentada + Paginada Antecedentes Actividad de los procesos Particiones Particiones Manejo de errores Fijas Variables Fragmentación Fragmentación :: :: :: :: :: :: :: :: :: :: Interna Externa E1 E2 E3 E4 E5 E1 E2 E3 E4 E5 Tamaño del Tamaño del E6 E7 E8 E9 E10 E6 E7 E8 E9 E10 proceso limitado proceso limitado por el tamaño de por el tamaño de E11 E12 E13 :: :: E11 E12 E13 :: :: la partición la memoria real :: :: :: :: :: :: :: :: :: :: Asignación de Memoria En la practica rara vez se presentan todos los Tamaño total del proceso errores en una misma ejecución. 4 Actividad de los procesos Actividad de los procesos Manejo de tablas, vectores u otra estructura de datos Software base: Editor de texto :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: V1 V2 V3 V4 V5 V1 V2 V3 V4 V5 Conversión de V6 V7 V8 V9 V10 V6 V7 V8 V9 V10 Minusculas a V11 V12 V13 V14V15 V11 V12 V13 V14V15 Mayusculas :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: En la practica solo usamos pocos elementos de las En la practica usamos rara vez esta opción estructuras de datos. Ejm: Vector (100x100) y usamos solo (10x10) 5 6 Diaz Muñante Jorge 1
  • 2. Sistemas Operativos Principio de localidad Premisa Referencias repetidas No se requiere que un proceso este almacenado en la memoria principal initializacion Inicio del Fin del en forma completa Cod. 1 Cod. 2 datos datos codigo codigo Ventajas Saltos esporadicos – No hay limite para el tamaño de los procesos working set: Fase inicial del Fase final del Fase Principal proceso proceso del proceso – Aumenta el numero de procesos en memoria – Disminución de las Operaciones e/s Dening – Principio de localidad – Las referencias de los procesos tienden agruparse en zonas pequeñas del espacio direccionable. Estas zonas ademas tienden a cambiar en forma intermitente. 7 8 Memoria Virtual Jerarquía de Memoria Es la separación de la memoria lógica del usuario de la memoria física Memoria Cache: Memoria real Memoria Virtual Ilusion de una Costo razonable Ilusion de una memoria memoria muy pero velocidad de gran tamaño rapida intermedia • Una gran memoria virtual cuando solo se dispone de una Virtual memory memoria física mas pequeña Main memory Cache Registers Words Lines (transferred Pages explicitly (transferred via load/store) automatically (transferred upon cache miss) automatically upon page fault) 9 10 La memoria virtual La paginación La ilusión de la memoria infinita - Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas. ∞ TLB Proceso A Proceso A Tabla Pagina Memoria Disco Memoria 500GB - Los marcos de página son la correspondencia de una página en la Fisica Virtual 1 GB memoria física, es decir, el espacio en la RAM donde realmente esta 4 GB la página, teniendo ambos el mismo tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la RAM se hacen en el tamaño de una página. Paginada Segmentada Segmentada Marco de + Paginada Página Proceso A RAM Página Diaz Muñante Jorge 2
  • 3. Sistemas Operativos Memoria Virtual con paginas Configuracion de la memoria virtual Continuidad Artificial Pag 0 Marco 0 Pag 1 Marco 1 Pag 2 Marco 2 Memoria Memoria real Virtual Pag 3 Marco 3 Pag 4 Marco 4 Pag 5 Marco 5 Pag 6 Espacio de direcciones Pag 7 4k reales Espacio de direccionamiento lógico 13 14 Memoria Virtual Estatica / Dinamica Tabla de Paginas Memoria Secundaria Principal (Disco Duro) Memoria Virtual de Sistema Operativo Proceso P Tabla de Página 0 Páginas de P Memoria Física Página 1 Página 0 Marco 2 Principal (RAM) 0 1 2 3 Página 2 Página 1 Marco 0 Página 3 Página 2 Sistema No está Operativo 4 5 6 7 … Página 3 No está P0 P1 P2 Página 4 Marco 6 Marco 0 Página 1 (direcciones lógicas) 8 9 10 11 … No Marco 1 Libre están Marco 2 Página 0 P3 P4 P5 P6 (direcciones Físicas) Marco 3 Libre Página n- Marco 5 . 1 Marco 4 Página n . Página n Marco 4 Marco 5 Página n-1 . Lista de Marco 6 Página 4 32 33 34 35 Marcos Libres … Libres Pn-1 Pn Marco 1 . Marco 3 Marco m Libre . Marco 7 . … … D-1 D Página n … Marco m 15 16 Fallo o falta de pagina Falla o falta de Pagina La pagina esta en El proceso trata de usar una pagina que no esta en memoria real. Sistema 3 memoria auxiliar Pasos: operativo – 1. Referencia a una pagina, verifica su bit de 2 Trampa validez (esta invalida = i) Cargar 1 Referencia Memoria – 2. Ocurre una trampa M Física – 3. SO busca un marco libre i – 4. Lleva la pagina del disco a la memoria 6 Reinicia la libre – 5. Actualiza la tabla de paginas instrucción Tabla de paginas 4 Carga la – 6. Reinicia la operación pagina 5 Restablece 17 tabla de pag. 18 Diaz Muñante Jorge 3
  • 4. Sistemas Operativos Estructura tabla de páginas Compartiendo paginas Direcion Virtual # Pag Offset r w x v re m s c su pid g gd other otros Marco # (Proceso A): PageTablePtrA pag #0 V,R r Read (lectura) s Shared-compartida pag #1 V,R w Write (escritura) c caching page #2 pag V,R,W x Execute su super-pagina pag #3 V,R,W Pagina (ejecucion) v valida pid process id pag #4 N compartida re referenciada g (extended) guard pag #5 V,R,W m modificada gd guard data PageTablePtrB pag #0 V,R pag #1 N caching: páginas asociadas a registros de dispositivos pag #2 V,R,W Esta pagina fisica referenciada: 1 cuando se hace una referencia a una página pag #3 N aparece en los 2 procesos para leer o escribir page #4 pag V,R V,R modificada: recuperación marco, si página no ha sido pag #5 V,R,W modificada no se escribe a disco Valida o : 1 entrada valida y puede ser utilizada Direccion Virtual: # Pag Offset Process B presente/ausente 0 página no cargada en memoria 20 Traduccion de Direcciones Traduccion de direcciones Memoria Real Pagina # Memoria Real 0 1 2 3 4 5 6 7 Desplazamiento “d” 2k d DR instruccion Direccion Real = (5,10) Instruccion DV Memoria Virtual ¿? 0 1 2 3 4 5 6 7 d Direccion Virtual = (3,10) Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d) 21 22 Traduccion de direcciones Traduccion de direcciones Registro base Tab.Pag Dirección virtual a Pagina p Desplazamiento Dirección virtual d Page # d marco # d a + a a p + p d marco a+p + b+d b b Dirección Tabla de real Tabla de paginas Programa paginas Memoria física 23 paginación 24 Diaz Muñante Jorge 4
  • 5. Sistemas Operativos Tablas de 02 Niveles Tabla de 2 niveles Direccion Marco 10 bits 10 bits 12 bits fisica: Page # Offset Direccion P1 index P2 index Offset virtual: Dirección virtual 4KB p1 p2 d PageTablePtr Dirección real 4 bytes m d Arbol de tablas Tablas tam. fijo (1024 entradas) m Tabla de 1er nivel Tablas de 2do nivel 4 bytes 25 26 Memoria asociativa Traduccion de direcciones Memoria especial - TLB – (Translation Look-aside Buffers) Dirección lógica – acceso rápido: . 10-20% del tiempo de acceso a memoria p d – pequeño tamaño: 64-1024 entradas pagina marco – solo contiene parte de la Tabla de Páginas acierto m d Memoria de acceso por contenido – Se compara con todas las páginas disponibles a la vez Dirección TLB real – Si la página buscada no está hay que buscarla en la Tabla de Páginas en memoria principal falla m – Después del fallo se refresca la memoria asociativa – El método es válido en función del porcentaje de éxito • se basa en que casi siempre los programas acceden a direcciones Tabla de consecutivas 27 paginas 28 Estrategias de Administración Estrategias de Administración Estrategia de Obtencion: Determinan cuándo se debe cargar una página Estrategia de Colocacion: en memoria Determinan en donde se debe cargar una página en memoria – Paginación por demanda • Se trae una página sólo cuando se hace referencia a ella • El principio de cercanía reduce los fallos. – Paginación previa • Se traen a memoria varias páginas contiguas • Mayor eficiencia de carga desde dispositivo secundario 29 30 Diaz Muñante Jorge 5
  • 6. Sistemas Operativos Estrategias de Administración Reemplazo de Pagina Estrategia de Reemplazo: ¿ Qué página se reemplaza en memoria principal cuando marco b.validz M.Real Sacar la pagina victima se debe cargar otra y no hay espacio para ella? Cambiar a invalido 2 1 m0 / vi / m m v victima nueva 4 Cambiar la tabla 3 Tabla de para la nueva paginas pagina Introducir la pagina deseada 31 32 Algoritmo Optimo Algoritmo optimo Cada página se va a etiquetar con: Número de instrucciones antes de hacer la 1a. referencia a dicha página p3 p1 p2 Principio algoritmo: eliminar página con la máxima etiqueta. 5 inst 10 inst. 30 inst. Página 1 Página 2 Página 3 Etiqueta: 10 Etiqueta: 30 Etiqueta: 5 Ejecución reemplazo 34 Algoritmo Optimo Algoritmo pésimo ¿cuál pagina involucra la peor decisión de reemplazo? 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 7 7 7 2 7 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 4 0 4 4 0 4 0 0 0 0 0 Marcos de página 1 1 1 3 1 3 3 3 3 3 3 3 3 1 1 1 7 1 0 4 3 8 fallos de página 35 36 Diaz Muñante Jorge 6
  • 7. Sistemas Operativos Algoritmo FIFO Algoritmo FIFO Principio: Los primeros en entrar, son los primeros en salir. S.O. tiene una lista de todas las páginas en memoria, siendo p3 p4 p1 p2 la primera página la más antigua y la última la más reciente. FIFO Optimo En un fallo de página se elimina la primera página y se Pasado mas lejano Futuro mas lejano añade la nueva al final de la lista. FIFO es muy pocas veces usada en su forma más pura. Ejecución reemplazo 37 Algoritmo FIFO Algoritmo FIFO 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 primera P1 P2 P3 P4 P5 P6 7 7 7 2 7 2 2 2 4 2 4 4 0 4 0 0 0 0 0 última P3 0 0 0 0 3 0 3 3 2 3 2 2 2 2 1 2 1 1 Marcos de página P4 1 1 1 1 0 1 0 0 3 0 3 3 3 3 2 3 2 siguiente P5 P6 P1 7 0 1 2 3 0 4 2 3 P2 12 fallos de página 40 Algoritmo FIFO No paginado Por que podría ser bueno? – Quizás la página que entró a memoria primero ahora no se necesita Por que podría ser malo? – Quizás página esta en uso • Las primeras paginas en llegar son del sistema operativo • Los programas asignan los valores al inicio. – Podría exponer anomalía de Belady 42 Diaz Muñante Jorge 7
  • 8. Sistemas Operativos Algoritmo de la Segunda Oportunidad FIFO/3 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 Modificación simple de FIFO Marcos 0 1 evita deshacerse de una página de uso frecuente 2 inspeccionando el bit R de la página más antigua. FIFO/4 Marco 0 1 2 3 0 1 4 0 1 2 3 4 0 1 2 3 si (R = 0) => página antigua y no utilizada marcos 0 se reemplaza en forma inmediata 1 2 si (R=1) => el bit se limpia 3 la página se coloca al final de la lista, su tiempo de carga se actualiza 43 Algoritmo de la Segunda Oportunidad Algoritmo de Reemplazo de Reloj En FIFO la Mantener páginas en una lista circular con forma de reloj. Página 1 saldría Una manecilla apunta hacia la página más antigua. Orden de entrada a la memoria 0 A Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 L B Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da K C otra oportunidad. Se setea en cero R, y se pasa a la cola 0 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 J D Idem al caso anterior I E Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0 Pág 2 0 H F G Al encontrarse una página con el bit en cero, se escoge para desalojo. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla. En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo Si bit R = 0 => página se retira de memoria, se inserta nueva página en degrada en FIFO. su lugar en el reloj manecilla avanza una posición Esto continua hasta encontar una página con R = 0. Ejemplo de uso: Solaris Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj Estado del buffer justo antes n 0 Estado del buffer justo antes n 0 de un reemplazo de un reemplazo Pag 9 Pag 19 1 Pag 9 Pag 19 1 uso = 1 uso = 1 uso = 1 uso = 1 Pag 1 Pag 1 . uso = 0 . uso = 0 . 2 . 2 Puntero al Pag 45 Puntero al Pag 45 marco siguiente uso = 1 marco siguiente uso = 0 . . Pag Pag Pag 222 Pag 191 727 Pag 222 Pag 191 727 uso = 0 uso = 1 3 uso = 0 uso = 1 3 8 8 Pag 33 Pag 556 Pag 33 Pag 556 uso = 1 uso = 0 uso = 1 uso = 0 Pag 67 Pag 13 4 Pag 67 Pag 13 4 7 7 uso = 1 uso = 0 uso = 1 uso = 0 6 5 6 5 Diaz Muñante Jorge 8
  • 9. Sistemas Operativos Ejemplo: Algoritmo de Reemplazo de Reloj Ejemplo: Algoritmo de Reemplazo de Reloj Estado del buffer justo antes n 0 Estado del buffer n 0 de un reemplazo después del reemplazo Pag 9 Pag 19 1 Pag 9 Pag 19 1 uso = 1 uso = 1 uso = 1 uso= 1 Pag 1 Pag 1 . uso = 0 . uso = 0 . 2 . 2 Puntero al Pag 45 Puntero al Pag 45 marco siguiente uso = 0 marco siguiente uso = 0 . . Pag Pag 222 Pag 191 727 Pag 222 Pag 191 uso = 0 uso = 0 3 uso = 0 uso = 0 3 8 8 Pag 33 Pag 556 Pag 33 Pag 727 uso = 1 uso = 0 uso = 1 uso = 1 Pag 67 Pag 13 4 Pag 67 Pag 13 4 7 7 uso = 1 uso = 0 uso = 1 uso = 0 6 5 6 5 Algoritmo del Reloj Algoritmo del reloj 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 Ejemplo: Cadena de referencia 0 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 7 7 7 2 7 2 2 2 4 4 4 4 3 3 3 3 0 7 7 7 2 7 2 2 2 4 4 4 4 3 3 3 3 0 0 0 0 0 Marcos de página 2 0 0 0 2 2 2 2 1 1 1 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 3 1 3 3 3 3 0 0 0 0 2 2 Marcos de página 1 1 1 1 3 3 3 3 3 0 0 0 0 2 2 7 1 2 0 3 4 2 0 3 7 1 2 0 3 4 2 0 3 R R R R R 7 1 7 0 7 0 7 0 2 1 R 0 1 0 1 0 1 0 0 0 0 0 0 12 fallos de página 1 1 1 1 1 1 1 1 1 0 1 0 2 1 51 52 Algoritmo según el uso no tan reciente NRU - Ejemplo - En este método cada página contiene 2 bits que permite decidir cual página desalojar: - R (bit solicitado): Se enciende cuando se realiza un acceso a esta página - M (bit modificado): Se enciende cuando se escribe en la página. - Se establecen así 4 clases de acuerdo al valor de los bits: (0,0) (1,0) (0,1) (1,0) Clase 0 = {a7,d5,a8,b4,d8} - Clase 0: No solicitado, No Modificado a7 c2 d2 b3 - Clase 1: No solicitado, Modificado Clase 1 = {d2,a3,c6} - Clase 2: Solicitado, No Modificado (1,1) (0,0) (1,0) (1,1) - Clase 3: Solicitado, Modificado b1 d5 a2 c4 Clase 2 = {c2,b3,a2,d7} - El algoritmo escoge una página partiendo desde las con clase menor. (0,0) (0,1) (0,0) (1,1) Clase 3 = {b1,c4,d9,a5} a8 a3 b4 d7 - El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales páginas son accedidas constantemente durante el quantum. (1,1) (1,0) (0,1) (0,0) a5 d9 c6 d8 54 Diaz Muñante Jorge 9
  • 10. Sistemas Operativos Ejemplo NRU Algoritmo LRU Pag Bit R Bit M Pag Bit R Bit M 0 0 0 0 1 1 Quantum 1 0 0 1 1 0 2 0 0 2 0 0 3 0 0 Durante el quantum se 3 1 1 acceden las páginas 0, 1 Estado de la tabla de páginas en t1 p3 p4 p3 p4 p1 p2 Estado de la tabla de páginas en t0 y 3; y se escribe en las 0 y3 El SO apaga todos los bits R para poder determinar cuales de las Será desalojada páginas han sido FIFO LRU Optimo ocupadas Quantum Pasado mas Pasado mas Futuro mas Pag Bit R Bit M Pag Bit R Bit M 0 1 1 0 0 1 lejano reciente lejano 1 1 0 1 0 0 2 0 0 Durante el siguiente cuantum 2 0 0 Ejecución 3 0 1 se hacen accesos a las 3 0 1 páginas 0 y 1, luego se pide reemplazo Estado de la tabla de páginas en t3 la página 4 que no esta Estado de la tabla de páginas en t2 presente y se provoca un Page Fault. 56 Algoritmo de la menor uso reciente (LRU) Algoritmo LRU Páginas uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes. Es probable que las páginas que no hayan sido utilizadas durante mucho tiempo Cadena de referencia permanezcan sin uso por bastante tiempo. Esto induce al siguiente algoritmo: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 al ocurrir un fallo de página se elimina la página que no haya sido utilizada durante 2 0 el tiempo más grande. LRU: realizable en teoría, no es barato. 7 7 7 2 7 2 2 2 4 2 4 4 4 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 3 0 3 3 3 3 3 3 0 Implementación: necesario mantener una lista de todas las páginas en memoria, en donde Marcos de página la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final. 1 1 1 3 1 3 3 2 3 2 2 2 2 2 2 2 Dificultad: la lista debe actualizarse en cada referencia a 7 1 2 3 0 4 0 3 la memoria. Busqueda de la página en la lista, su eliminación y posterior traslado al frente de la misma NO puede ser una operación muy lenta. 11 fallos de página 58 1a. Solución: caso más sencillo Ejemplo solución Requiere de un contador de 64 bits, C, en hardware. Valor inicial cont = 0; se incrementa en forma automática después de cada instrucción. P0 P1 P2 P3 cont = 1; 1 0 0 0 Cada entrada en tabla de páginas debe contener espacio necesario para almacenar el contador. P0 P1 P2 P3 cont = 2; 1 2 0 0 Después de cada referencia el valor actual de C se almacena en la entrada de la tabla de páginas correspondiente a la página a la P0 P1 P2 P3 cont = 3; que se hizo referencia. 1 2 0 3 Fallo de página: P0 P1 P2 P3 cont = 4; => S.O. examina todos los contadores de la tabla 1 4 0 3 de páginas y elige el mínimo, (i.e. página de uso más reciente). Página más recientemente usada: P1, (cont = 4) Página menos usada: P2 , (cont = 0) Diaz Muñante Jorge 10
  • 11. Sistemas Operativos 2a. Solución: caso más sencillo Ejemplo de LRU con uso de una matriz Máquina con cuatro márcos, con referencias a las páginas en el orden: Máquina con n márcos para página, 0, 1, 2, 3, 2, 1, 0, 3, 2, 3 hardware LRU puede matriz de n x n, Después hacer referencia a la página 0 tenemos la situación siguiente: matriz inicializada en cero. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 Referencia al marco k 1 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 2 0 0 0 0 2 0 0 0 0 2 1 1 0 1 2 1 1 0 0 hardware primero activa todos los bits del renglón k 3 0 0 (a) 0 0 3 0 0 (b) 0 0 3 0 0 (d) 0 0 3 1 1 1 (d) 0 desactiva después todos los bits de la columna k. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 En cualquier instante: 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 renglón con valor binario mínimo es de uso menos 2 1 1 0 1 2 1 0 0 1 2 0 0 0 1 2 0 0 0 0 frecuente, renglón con el siguiente valor más pequeño 3 1 1 0 (d) 0 3 1 0 0 0 (f) 3 0 0 0 0 (g) 3 1 1 1 (h) 0 es el segundo de uso menos reciente, etc. 0 1 2 3 0 1 2 3 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 2 1 1 0 1 2 1 1 0 0 3 1 1 0 0 (i) 3 1 1 1 0 (j) Bancos libres en memoria Modelo del conjunto de trabajo • Se basa en la localidad Banco (pool) de marcos libres para poder leer inmediatamente las paginas fallidas, antes de haber escrito a • Formado por las páginas recientemente accedidas disco la victima. • Las páginas en uso se encuentran en el CdT Sustitución y mantenimiento de páginas limpias • El conjunto de trabajo varía con el tiempo – Cuando el disco está inactivo Número de páginas del almacenamiento Se sustituyen las páginas limpias que no hay que escribir en primario asignadas al proceso disco. – Periódicamente se buscan páginas para limpiar Utilizado en VAX-VMS como complemento al método FIFO. Linux desaloja paginas victimas antes de que se llene la Tiempo memoria real. 63 64 Modelo de conjunto de trabajo ¿Cómo determinar el CdT? Evolución del conjunto de trabajo Inicio nueva fase Inicio nueva fase • El verdadero CdT lo forman las páginas que Estabilización Estabilización deben estar en el almacenamiento primario para nº de páginas en conjunto trabajo Arranque en frío la ejecución eficaz del proceso Estabilización w Tiempo de ejecución t-w t de un proceso Las páginas referenciadas por el proceso durante este intervalo constituye el conjunto de trabajos W(t,w), del proceso t • W = tamaño de la ventana del CdT Olvido de páginas de Olvido de páginas de • ¿Cómo afecta el tamaño de W? fase anterior fase anterior 66 Diaz Muñante Jorge 11
  • 12. Sistemas Operativos Ejemplo Asignación global vs local Ventana de 10 referencias Reemplazo global – Tamaño de conjunto de trabajo = 4 – el marco a reemplazar se selecciona entre todo el conjunto de marcos Reemplazo local 215777775162937 WS(t1,10) = {1, 2, 5, 7} – el marco a reemplazar se selecciona solo de su propio conjunto del proceso. 67 68 Desventajas global vs local Asignación de marcos Reemplazo global ¿cómo asignamos una cantidad fija de – un proceso no puede controlar su propia tasa de marcos a los distintos procesos? fallos de paginas. Se dispone de 93 marcos y llegan 02 – No depende solo del comportamiento del proceso sino de todos. procesos Reemplazo local –¿cuántos marcos obtiene cada proceso? – impide a un proceso tener acceso a otras paginas no usadas. Por lo general el global brinda una mayor productividad. 69 70 Algoritmos de asignación de marcos Algoritmos de asignación de marcos … cont Asignación equitativa Asignación proporcional – 93 marcos libres y llegan 05 procesos – px = tamaño del proceso x – cada proceso recibira 18 marcos. Los 03 – S = ∑ px sobrantes son deposito de libres. – ml = numero de marcos libres – formula mpx=px / S * ml – 62 marcos libres, p1 = 10k y p2 = 127k – mp1 = 10 / 137 * 62 = 4 aprox. – Mp2 = 127 / 137 * 62 = 57 aprox. 71 72 Diaz Muñante Jorge 12
  • 13. Sistemas Operativos Algoritmos por prioridades Algoritmos de asignación de marcos En un esquema de asignacion proporcional por “tamaño” nos podríamos Consideraciones basar en la “prioridad”. – en ambas técnicas puede variar dependiendo del Permitir que un proceso de alta prioridad reemplace paginas de otro proceso de baja prioridad. nivel de multiprogramacion – El numero de marcos de un proceso de alta – Si aumenta el nivel, cada proceso perdera algunos prioridad aumentaría en perjuicio de otro de baja marcos para proporcionar a los nuevos. prioridad. – Si disminuye el nivel, los marcos liberados se distribuye entre los restantes. 73 74 Procesador Tamaño Niveles Espacio Paginas Pequeñas de página de paginación de usuario Ej: Proceso de 25kb Alpha 8 kb 3 4 Tb ARM 26 bit 16 ó 32 Kb 2 Hasta 26 MB Tabla de Paginas Pagina = 2kb Pagina = 1kb Pagina = 4kb ARM 32 bit 4 Kb 2 3 GB IA64 4, 8, 16 ó 64Kb 3 10Exab M68000 4 Kb 3 224MB M68000 SUN3 8 Kb 2 3,75 Mb MIPS 4 Kb 2 2 Gb MIPS64 4 Kb 3 1 Petab T. Pag = 7 entradas T. Pag = 13 entradas T. Pag = 25 entradas Linux PARISC 4 Kb 2 ó 3 3 Gb Fragmentación interna PowerPC 4 Kb 2 2 Gb S390 4 Kb 2 2 Gb 13 Páginas de 2Kb 25 Páginas de 1Kb 7 Páginas de 4Kb SH 4 Kb 2 1,984 Mb Sparc 4 Kb 3 3,75 Mb Sparc SUN4 8 kb 3 3,75 Mb Sparc 64 8 kb 3 16 Exab-16Gb X86 4 Kb 2 ó 3 3 Gb Desperdicio: 3kb Desperdicio: 1kb Desperdicio: 0kb 76 Hiperpaginacion Hiperpaginación La tasa de fallos de página es tan alta que el proceso pierde más tiempo cargando páginas que ejecutando. Si se produce vapuleo en todos los procesos el sistema queda parado. M.Real Sacar la pagina Solución victima – no superar cierto grado de multiprogramación. 1 – proporcionar a cada proceso las páginas que m necesita en cada momento. victima nueva Es muy 2 intensa Introducir la pagina deseada 77 78 Diaz Muñante Jorge 13
  • 14. Sistemas Operativos Hiperpaginacion %Utilización de CPU o Productividad (reqs/segs) La segmentación - Paginación = espacio direcciones unidimensional, (0..max) - Dotar máquina de varios espacios independientes de Qué ocurre direcciones, desde 0 hasta cierto máximo. aquí? - Los distintos segmentos pueden tener longitudes distintas. - La longitud de cada segmento puede ser distinta - La longitud de un segmento puede variar durante su ejecución - Acceso se hace en dos partes: número de segmento y una dirección dentro de este - Un segmento puede tener la protección adecuada para el Numero de procesos activos tipo de objeto almacenado Nivel de multiprogramación 79 Espacio de direcciones virtuales Proceso Tabla de La t.simbolos simbolos choco contra la Seg0 Seg1 Seg2 Seg3 Seg4 texto fuente 0k 0k 0k 0k 0k Texto fuente Cons- 4k 4k 4k tan- 4k 4k tes Tabla de constantes Txt 8k 8k 8k 8k pila fuente Arbol árbol léxico 12k Tab. 12K 12K lexic. 12K Simb 16k 16k 16k 16k Llamadas a la pila 20k 20k En un espacio unidimensional de direcciones con tablas crecientes, una tabla 24k Una mem. Segmentada permite a cada tabla puede encimarse con otra crecer o encogerse con independencia 81 82 Ejemplo de segmentacion Compartiendo Segmentos Direccion virtual Fragmentacio Editor Tabla Segmentos P1 Segment # Offset n limite base Seg 1 segmento 0 0 25286 43062 43062 (cod.) Externa 1 4425 68348 Seg 2 Memoria datos 1 (datos) segmento 1 Seg 3 Fisica editor Como pagina: (pila) Espacio direcciones 68348 valida, Seg 3 virtuales de P1 Memoria virtual modific., (pila) datos 1 72773 proteccion, MMU Tab etc. de Seg 1 Editor Bas Limi Otros Segmento (cod.) Tabla Segmentos P2 offset < 90003 e t segmento 0 no limite ? STBR limite base datos 2 datos 2 STLR 0 25286 43062 Si Seg 2 segmento 1 98553 Fallo acceso 1 8550 90003 A la mem (datos) Segmento Base + Offset Espacio direcciones Dirección física virtuales de P2 0x00 Memoria Virtual Diaz Muñante Jorge 14
  • 15. Sistemas Operativos Proceso Segmentada + 0k Seg0 0k Seg1 0k Seg2 0k Seg3 0k Seg4 Paginada 4k 4k 4k 4k 4k 8k 8k 8k 8k 12k 12K 12K 12K 16k 16k 16k 16k 20k 20k 24k Segmentada + Paginada 86 Caso de estudio: Linux Niveles de tablas en Linux Nivel 1 Nivel2 Nivel3 Desplazamiento p0 p1 Segmento 0 Página 40k Tabla de Tabla de física Tabla de páginas páginas páginas Proceso Segmento 1 p0 p1 120k 10k #Página #Página #Página p0 p1 Segmento 2 70k PGD 87 88 Caso de estudio: Linux Caso de estudio: Linux task_struct vm_area_struct Memoria Memoria mem_map_t mem_map_t free_are vm_end virtual física a Marco Libre vm_start del proceso count count 4 map vm_flags 0 Marco mm vm_inode age age 3 1 Marco vm_ops Datos 2 2 Marco map_nr= 70 map_nr= 4 mm_struct vm_next open ( ) 3 Marco close ( ) 1 Libre count mem_map_t 4 Marco pgd vm_area_struct count 0 5 Libre Marco vm_end vm_start swapout () swapin ( ) age Marco Libre 6 mmap vm_flags vm_inode Marco Libre 7 Operaciones de Código vm_ops memoria virtual map_nr= 0 8 vm_next 89 90 Diaz Muñante Jorge 15
  • 16. Sistemas Operativos Caso de estudio: Linux Caso de estudio: Linux Apertura y proyección del programa sobre Gestión del área de intercambio: las áreas de memoria virtual del proceso – Un demonio de intercambio (kswapd) se encarga de mantener suficientes marcos libres Fallo de página – kswapd se ejecuta como un hilo del núcleo activándose en Paginación No el arranque del sistema ¿Dirección legal? bajo Acceso ilegal. demanda Enviar señal – kswapd cada segundo comprueba si el número de marcos No SIGSEV al libres es demasiado bajo. Si es así, busca marcos que ¿Acceso legal? proceso puedan ser descartados o sustituidos Sí Fallo de página legal – Algoritmo implementado en el demonio: algoritmo de Traer página Traer página aproximación al LRU con envejecimiento desde el desde el área de No Sí archivo en ¿Entrada vacía en la TP? intercambio disco 91 92 Caso de estudio: Linux Caso de estudio: Linux Técnica de envejecimiento de páginas: – Si una página modificada se lleva a disco: – Al asignar un marco de página se le asocia por defecto su entrada en la tabla de páginas se marca como inválida edad 3 se incluye la información para su recuperación posterior y se libera, añadiéndola en la free_area – Las páginas rejuvenecen al acceder a ellas (edad+3 hasta un máximo de 20) – Las páginas no modificadas no se sustituyen: se descarta su contenido – Cada vez que se ejecuta kswapd envejece las páginas en 1 si no se usan se marcan como libres, añadiéndolas en la free_area – Las páginas víctimas para los intercambios se eligen de – Si se recuperan suficientes páginas del proceso seleccionado, el demonio dormirá de nuevo entre las páginas viejas (edad 0) y modificadas – En función de la operación vm_ops->swapout de la región – Si no se liberan suficientes páginas del proceso actual, se continúa con el siguiente proceso de memoria (vm_area_struct), la página víctima se lleva a disco. – El demonio empezará en la página siguiente en una nueva activación 93 94 Caso de estudio: Linux Caso de estudio: Linux ֠ kswapd Edad de los marcos de página Tabla de páginas A 0 1 2 3 4 Proceso A Tabla de páginas A Proceso A BV BR BM BV BR BM 7 9 0 3 0 Página 0 Página 0 1 0 1 Memoria física 1 0 1 Memoria física Página 1 Página 1 free_area 1 1 2 Marco 0 0 1 x Página 2 Página 3 Página 2 Página 3 2 0 0 0 0 Página 3 Página 0 Marco 1 Página 3 Página 0 1 1 0 0 Marco 2 1 0 0 0 2 4 Página 1 Página 1 Marco 3 Proceso B Tabla de páginas B Página 1 Proceso B Tabla de páginas B Página 1 BV BR BM Marco 4 BV BR BM Página 0 Página 0 0 0 Página 2 Marco 5 0 0 swap Página 1 Página 1 1 0 3 1 0 3 1 Página 2 Página 2 x 1 0 4 0 0 95 96 Diaz Muñante Jorge 16
  • 17. Sistemas Operativos Caso de estudio: W2K / XP Caso de estudio: W2K / XP El gestor de memoria virtual de W2k utiliza un algoritmo de reemplazo de Al crearse un proceso se le asigna un tamaño mínimo del páginas local tipo FIFO y paginación por demanda WS La política de reemplazo sustituye la página más antigua del conjunto de El gestor varía el tamaño de los WS de los procesos según páginas del proceso que causó el fallo los requirimientos de memoria: Conjunto de trabajo (WS): número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando – Incrementa la memoria libre del sistema (recorte automático del WS) de un proceso si su tamaño es mayor que el mínimo – Incrementa el tamaño del WS hasta un máximo si el proceso genera fallos de página y la memoria no está demasiado llena Páginas nuevas Páginas antiguas Conjunto – Si el proceso requiere más páginas, se eliminan páginas de su WS empleando el algoritmo FIFO de trabajo 97 98 Caso de estudio: W2K / XP Caso de estudio: W2K / XP Fallo de Las páginas eliminadas del WS pueden volver a él página Lectura de página del disco o núcleo rápidamente sin realizar lectura del disco cero Lista de marcos Permanecen en memoria en uno de estos estados: Standby – Standby: el proceso utiliza el marco de página pero ha sido Fallos eliminado del WS WS de Escritor Lista Hilo Lista de marcos de de marco página de – Modificado: = Standby pero el proceso ha escrito en la de “soft” modific. marcos Cero marcos página sin actualización de disco libres Cero proceso Lista de s marcos Modific. lista de páginas Sustitución en standby o en el WS Lista de marcos modificadas erróneos Finaliza el proceso Conjunto de trabajo 99 100 Diaz Muñante Jorge 17