SlideShare ist ein Scribd-Unternehmen logo
1 von 43
La Gestión de Memoria es una
tarea realizada por el Sistema
Operativo de un computador que
consiste en cargar y descargar
procesos en memoria principal para
que sean ejecutados. Para ello el
S.O. gestiona lo que se conoce como
MMU o Unidad de Administración de
Memoria, el cual es un dispositivo
hardware      que    transforma  las
direcciones lógicas en físicas.
Ofrece a cada proceso un espacio lógico
                  propio.


Proporcionar protección entre los procesos


Permitir que los procesos compartan memoria


    Maximizar el rendimiento del sistema
En un sistema                    Es un sistema                        En ciertas




                                  Protección
Reubicación




                                                                   Compartición
              multiprogramad                          con                         ocasiones, bajo
              o la memoria se                  multiprogramaci                    la supervisión y
                 encuentra                     ón es necesario                      el control del
               compartida por                     proteger al                          sistema
              varios procesos,                      sistema                           operativo,
              por lo tanto, los                operativo y a los                     pueden ser
              procesos deben                    otros procesos                      provechosos
               ser cargados y                     de posibles                          que los
              descargados de                   accesos que se                         procesos
                  memoria.                     puedan realizar                         puedan
                                                a sus espacios                        compartir
                                               de direcciones.                        memoria.
Tanto la memoria                               Debe ser parte de la




                                                   Organización física
Organización lógica


                           principal como la                             gestión de memoria, la
                        secundaria presentan                              organización del flujo
                      una organización física                            de información entre la
                           similar, como un                              memoria principal y la
                      espacio de direcciones                              memoria secundaria.
                      lineal y unidimensional.
                       Debe existir una cierta
                       correspondencia entre
                        el S.O. y el hardware
                       al tratar los datos y los
                           programas de los
                       usuarios de acuerdo a
                      la estructura lógica que
                            ellos presenten.
1. Paginación

2. Segmentación

3. Asignación Estáticas / Dinámicas

4. Memoria Virtual

5. Direccionamiento de Memorias
Consiste que la memoria principal se divida en un conjunto de
marcos de igual tamaño. Cada proceso se divide en páginas de igual
tamaño que los marcos. Un proceso se carga situando todas sus
páginas en marcos libres pero no necesariamente contiguos.
- La memoria física se
  divide en bloques de
 amaño fijo que llamamos
         marcos.

     - La memoria virtual se
divide en bloques del mismo
 tamaño llamados páginas.

      - Los programas se
    dividen en páginas.

    - Al ejecutar un proceso
 se cargan sus páginas en
         los marcos.
Tablas de páginas

 -Son tablas que contienen (para cada proceso) el número marco que
 corresponde a cada página virtual del proceso .

 - Estructura de una entrada de la Tabla de Páginas:
Tablas de páginas

 -Tamaño de página viene definido por el Hardware y suele ser una potencia de 2
 que varía entre 512 y 16M .

 - Ej. simplificado: Direccionamiento de un espacio virtual de 64K, distribuido en
 16 páginas de 4K:
Cada entrada de la tabla de páginas, además del número de marco que
 corresponde con esa página, contiene información adicional como la siguiente:


    - Información de protección:
Es un conjunto de bits que especifican
       que tipo de accesos están
 permitidos. Típicamente, se controla
  el acceso de lectura, de ejecución
              y de escritura.

   - Indicación de página válida:
Es un bit que especifica si esa página
   es válida, en el caso de que no
  lo sea, la información del número
       de marco es irrelevante.
En la entrada de la tabla de páginas puede haber información adicional, tal como
                                   la siguiente:

                       - Indicación de página accedida.
 La MMU (Memory Management Unit o unidad de gestión de memoria) activa
este bit indicando cuando se accede a una dirección lógica que pertenece a esa
                                    página.

                    - Indicación de página modificada.
La MMU activa este bit indicando cuando se escribe en una dirección lógica que
                            pertenece a esa página.

                            - Desactivación de cache.
   Este bit indica que no debe usarse, la cache de la memoria principal para
               acelerar el acceso a las direcciones de esta página.
Ventaja / Desventaja




                            Hay una pequeña
No tiene fragmentación
                              cantidad de
        externa
                         fragmentación interna
Es un esquema de manejo de memoria mediante el cual
la estructura del programa refleja su división lógica;
llevándose a cabo una agrupación lógica de la información
en bloques de tamaño variable denominados segmentos.
- Los bloques de un proceso (código, datos, pila, DLLs, etc.) pueden estar
situados en áreas de memoria no contiguas.
   - Suministra reubicación dinámica.
   - Protección y uso compartido.
   - Cada segmento empieza en una dirección virtual fija (reubicación).
   - Las direcciones en estos sistemas tienen dos componentes: número de
segmento y offset.
   - Los segmentos pueden tener tamaños diferentes.En el 80x86: mov eax,
ds:esi.
   - Para localizar el dato: selector DS y desplazamiento SI
Enlace dinámico                 Modularidad de
            entre                       programas
         segmentos




                     Objetivos Alcanzados
                     con la segmentación




                                                Estructuras de
Compartición                                    datos de largo
                                                   variable

                          Protección
Una de las ventajas de la segmentación sobre la paginación es que se trata
más de un hecho lógico que físico.

   En un sistema de segmentación, una vez que un segmento ha sido declarado
como compartido, entonces las estructuras que lo integran pueden cambiar de
tamaño.

   Lo anterior no cambia el hecho lógico de que residen en un segmento
compartido.

   Dos procesos pueden compartir un segmento con solo tener entradas en sus
tablas generales que apunten al mismo segmento del almacenamiento primario.
- No necesitan ser de igual tamaño.

   - Los bloques separados no necesitan
ser adyacentes.

   -   Deben      estar   compuestos     de
posiciones contiguas de almacenamiento.



   Sin embargo se complica la protección
de bloques de memoria de un proceso de
usuario.

   Es más difícil limitar el rango de acceso
de cualquier programa.
Compila módulos
                         separados.

                                         Comparte los
                                          segmentos.
Conoce las unidades
     lógicas




 Modificación de los    Los segmentos     Define segmentos
cambios dentro de un        crecen        que aun no existan
      modulo            dinámicamente
- Hay un incremento en los costos de hardware y de software para llevar a
cabo la implantación, así como un mayor consumo de recursos: memoria, tiempo
de CPU, etc.
   - Debido a que los segmentos tienen un tamaño variable se pueden presentar
problemas de fragmentación externas, lo que puede ameritar un plan de
reubicación de segmentos en memoria principal.
   - Se complica el manejo de memoria virtual, ya que los discos almacenan la
información en bloques de tamaños fijos, mientras los segmentos son de tamaño
variable. Esto hace necesaria la existencia de mecanismos más costosos que los
existentes para paginación.
- Permite que los segmentos varíen de tamaño, puede ser necesarios
planes de reubicación a nivel de los discos, si los segmentos son devueltos a
dicho dispositivo; lo que conlleva a nuevos costos.
   - No se puede garantizar, que al salir un segmento de la memoria, este
pueda ser traído fácilmente de nuevo, ya que será necesario encontrar
nuevamente un área de memoria libre ajustada a su tamaño.
   - La compartición de segmentos permite ahorrar memoria, pero requiere de
mecanismos adicionales de hardware y software.


   Estas desventajas bien pueden ser minimizadas por la Segmentación-
Paginada, sin embargo esta también tiene desventajas y ventajas.
Se basa en una gran reserva de memoria donde se van asignando los
elementos del programa de forma contigua; a diferencia de la asignación
estática, se encuentra la asignación dinámica asigna una dirección base a
cada elemento a partir de la cual se va configurando la estructura de
datos. Y la tercera tenemos la asignación mixta la cual es una
combinación de las dos anteriores para aprovechar sus ventajas
realizando una asignación estática-dinámica.
Ejemplo de una partición estática en una memoria de 64 MB
Descripción         Ventajas        Desventajas
 • La memoria       • Sencilla de        • Empleo
    principal se     implementar,     ineficiente de la
    divide en un          poca        memoria debido
    conjunto de     sobrecarga del           a la
     particiones        sistema        fragmentación
      estáticas,       operativo.          interna.
     durante la                      • El número de
  generación del                          procesos
      sistema.                         activos es fijo.
• Un proceso se
 puede cargar en
 una partición de
   igual o mayor
       tamaño.
Es una asignación a una dirección base de cada elemento a partir
de la cual se va configurando la estructura de datos; a diferencia de la
asignación dinámica, se encuentra la asignación estática, la cual se
basa en una gran reserva de memoria donde se van asignando los
elementos del programa de forma contigua. Luego tenemos la
asignación mixta la cual es una combinación de las dos anteriores para
aprovechar sus ventajas realizando una asignación estática-dinámica.
Consiste en determinar en qué hueco ubicar un nuevo proceso. Para esto
existen tres algoritmos: mejor ajuste, primer ajuste o próximo ajuste.
   - Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que
más se ajuste a su tamaño.
   - Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible,
recorriendo desde el inicio de la memoria, cuyo tamaño sea suficiente para el
proceso.
   - Próximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea
suficientemente grande, a partir de la última asignación de memoria.
• Las particiones                 • No hay                      • Uso ineficiente




                                                                Desventajas
                                   Ventajas
Descripción




                    se crean                  fragmentación                     del procesador
                dinámicamente,                    interna.                        debido a la
                  de forma que                                                   compactación
               cada proceso se                • Uso más                               para
                  carga en una                eficiente de la                   contrarrestar la
                 partición de su                 memoria                        fragmentación
                mismo tamaño.                    principal.                         externa.
Es una técnica para proporcionar la simulación de un espacio de
memoria mucho mayor que la memoria física de una máquina. Esta
"ilusión" permite que los programas se hagan sin tener en cuenta el
tamaño exacto de la memoria física.


   El espacio de direcciones virtual, está mapeado de tal forma que
una pequeña parte de él, está en memoria real y el resto
almacenado en el disco.
- Se refiere a la capacidad de obtener acceso a direcciones
de un espacio de memoria mucho mayor que el que dispone la
memoria principal.


   - Los métodos más comunes para implementar la memoria
virtual son la paginación y la segmentación.


   - En un sistema de memoria virtual las direcciones generadas
por los programas en ejecución (direcciones virtuales) no son
necesariamente       las   disponibles   en   la   memoria   principal
(direcciones reales).
- Los procesos hacen referencia a direcciones virtuales, estos
se deben ejecutar en la memoria real.


   - Es preciso establecer una correspondencia entre las
direcciones virtuales y las reales durante la ejecución de un
proceso. Tal correspondencia se realiza mediante mecanismos de
traducción dinámica de direcciones.


   - Las direcciones contiguas en la memoria virtual de un
proceso, no son necesariamente contiguas en la memoria real.
Un espacio de direcciones virtuales es mayor que el espacio de
                    direcciones reales.




                      1 Byte = 8 bits

                     1 K = 1024 Bytes

                  1 Mega = 1024 Kbytes

                  1 Giga = 1024 MBytes

                   1 Tera = 1024 GBytes

                  1 Peta = 1024 TBytes
- Los mecanismos de traducción dinámica de direcciones deben
mantener mapas de correspondencias de traducción de direcciones.


   - Las correspondencias se establecen a nivel de bloques de igual
tamaño o de diferente tamaño.


   - Las direcciones son bidimensionales.


   - Cada proceso tiene su propia tabla de correspondencias de
bloques.
Posición de memoria: Unidad elemental de almacenamiento
de una memoria. En un microcomputador cada posición de
memoria almacena 8 bits (1 Byte), cuya combinación codifica el
dato que almacena (generalmente 1 carácter).


    Dirección de memoria: Nombre o referencia que tiene cada
Posición de memoria.
- Los programas se pueden ejecutar por partes, la memoria
lógica puede ser mayor que la real disponible.


   - Puesto que cada programa ocupa menos memoria real, se
puede elevar el índice de multiprogramación y, por tanto, la
eficiencia del sistema.


   - Al cargar menos cantidad de cada programa se necesitan
menos operaciones de entrada y salida para las operaciones de
carga e intercambio de los mismos.
- Permite gestionar más eficientemente la memoria física.
Cualquier espacio libre, incluso una única página, puede ser
aprovechado para cargar un nuevo programa y comenzar a
ejecutarlo. Por otra parte, si una página de un programa no hace
referencia durante la ejecución, no habrá que cargarla.


   - La independencia de los programas con respecto a la
máquina es completa. Además del direccionamiento virtual que
aporta la paginación, la cantidad de memoria física disponible
para ejecutar el programa sólo es relevante para la velocidad de
ejecución del programa.
Es un identificador único para una ubicación de
                              la memoria con las cuales un CPU u otros dispositivos
                              puede almacenar, modificar o recuperar datos de la
                              misma.
         Tanto la memoria física como la memoria virtual
emplean direccionamiento o direcciones de memoria para
acceder a sus datos. En la memoria física, la dirección accede a
la memoria RAM real (los chips RAM incorporados a la placa
madre), y la dirección de memoria virtual hace referencia a un
espacio del disco duro que simula memoria RAM (el archivo de
paginación).
Registro
Directo    Indirecto               Inmediato
                       Indirecto




Relativo   Indexado           Inherente
La instrucción contiene la dirección de
                                              la posición de memoria donde se
                                                   encuentra el operando
  La dirección contiene no la dirección
donde se encuentra el operando, sino la
dirección donde se encuentra la dirección
             del operando.
Es la parte dirección de la instrucción contiene el
                                número N. En memoria la dirección del operando se
                                encuentra sumando el numero N al número del
                                contador del programa.




   Es la parte dirección de la instrucción contiene un número N que puede ser positivo o
negativo. Sin embargo para utilizar el direccionamiento indexado, el computador debe estar
equipado con un registro especial empleado para permitir direccionamiento indexado, y
denominado naturalmente registro índice. La posición de memoria donde se localiza el
operando se encuentra mediante la suma I + N.
Este registro contiene la dirección de memoria del operando.
                     Una instrucción que invoque realmente direccionamiento de
                     registro indirecto, no tiene bits significativos en su parte dirección.
                     En lugar de ello, la instrucción completa se incluye en los bits
                     asignados a la parte de operación de la instrucción.




   Es la parte de dirección de la instrucción,
contiene no la dirección del operando sino el
mismo operando.
Es una dirección que es parte de una
instrucción se refiere a una posición de
memoria. Cuando una instrucción indica una
fuente o un destino de datos y no se direcciona
específicamente, ya no se hace referencia a la
posición de memoria, se dice que la instrucción
tiene una dirección inherente.

Weitere ähnliche Inhalte

Was ist angesagt?

MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUALandresinf
 
Arquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEArquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEYESENIA CETINA
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas OperativosG Hoyos A
 
Gestión de entrada salida
Gestión de entrada salida Gestión de entrada salida
Gestión de entrada salida eduardoed5
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAErika Rodríguez
 
Arquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsArquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsslipkdany21
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
Arquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaArquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaMiguel Rodríguez
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y ProcesadorMario Alberto Antonio Lopez
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
cuadro comparativo jerarquico vs democratico
cuadro comparativo jerarquico vs democraticocuadro comparativo jerarquico vs democratico
cuadro comparativo jerarquico vs democraticoitzelcamas
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 

Was ist angesagt? (20)

MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUAL
 
ADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIAADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIA
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Arquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHEArquitectura de memorias RAM, ROM Y CACHE
Arquitectura de memorias RAM, ROM Y CACHE
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
 
Gestión de entrada salida
Gestión de entrada salida Gestión de entrada salida
Gestión de entrada salida
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Arquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windowsArquitectura y caracteristicas de los sistemas operativos windows
Arquitectura y caracteristicas de los sistemas operativos windows
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
gestión de memoria, requisitos
gestión de memoria, requisitosgestión de memoria, requisitos
gestión de memoria, requisitos
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Arquitectura de Computadoras - Memoria
Arquitectura de Computadoras - MemoriaArquitectura de Computadoras - Memoria
Arquitectura de Computadoras - Memoria
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
cuadro comparativo jerarquico vs democratico
cuadro comparativo jerarquico vs democraticocuadro comparativo jerarquico vs democratico
cuadro comparativo jerarquico vs democratico
 
Arquitectura harvard
Arquitectura harvardArquitectura harvard
Arquitectura harvard
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 

Ähnlich wie Gestion de memoria

Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptLuis619096
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualZCHARRY
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualZCHARRY
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualZCHARRY
 
Sistemas Operativos - Memoria
Sistemas Operativos - MemoriaSistemas Operativos - Memoria
Sistemas Operativos - Memoriavdelgado3
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtualjolhaln
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtualjolhaln
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfipuracastillo
 
Administración de memoras
Administración de memorasAdministración de memoras
Administración de memorasJuan Bustamante
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtualosjavier
 

Ähnlich wie Gestion de memoria (20)

Memoria virtual josue
Memoria virtual josueMemoria virtual josue
Memoria virtual josue
 
Memoria en los SO
Memoria en los SOMemoria en los SO
Memoria en los SO
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.ppt
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual 1
Memoria virtual 1Memoria virtual 1
Memoria virtual 1
 
Sistemas Operativos - Memoria
Sistemas Operativos - MemoriaSistemas Operativos - Memoria
Sistemas Operativos - Memoria
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfi
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Administración de memoras
Administración de memorasAdministración de memoras
Administración de memoras
 
Memoria
MemoriaMemoria
Memoria
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtual
 

Gestion de memoria

  • 1.
  • 2. La Gestión de Memoria es una tarea realizada por el Sistema Operativo de un computador que consiste en cargar y descargar procesos en memoria principal para que sean ejecutados. Para ello el S.O. gestiona lo que se conoce como MMU o Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.
  • 3. Ofrece a cada proceso un espacio lógico propio. Proporcionar protección entre los procesos Permitir que los procesos compartan memoria Maximizar el rendimiento del sistema
  • 4. En un sistema Es un sistema En ciertas Protección Reubicación Compartición multiprogramad con ocasiones, bajo o la memoria se multiprogramaci la supervisión y encuentra ón es necesario el control del compartida por proteger al sistema varios procesos, sistema operativo, por lo tanto, los operativo y a los pueden ser procesos deben otros procesos provechosos ser cargados y de posibles que los descargados de accesos que se procesos memoria. puedan realizar puedan a sus espacios compartir de direcciones. memoria.
  • 5. Tanto la memoria Debe ser parte de la Organización física Organización lógica principal como la gestión de memoria, la secundaria presentan organización del flujo una organización física de información entre la similar, como un memoria principal y la espacio de direcciones memoria secundaria. lineal y unidimensional. Debe existir una cierta correspondencia entre el S.O. y el hardware al tratar los datos y los programas de los usuarios de acuerdo a la estructura lógica que ellos presenten.
  • 6. 1. Paginación 2. Segmentación 3. Asignación Estáticas / Dinámicas 4. Memoria Virtual 5. Direccionamiento de Memorias
  • 7. Consiste que la memoria principal se divida en un conjunto de marcos de igual tamaño. Cada proceso se divide en páginas de igual tamaño que los marcos. Un proceso se carga situando todas sus páginas en marcos libres pero no necesariamente contiguos.
  • 8. - La memoria física se divide en bloques de amaño fijo que llamamos marcos. - La memoria virtual se divide en bloques del mismo tamaño llamados páginas. - Los programas se dividen en páginas. - Al ejecutar un proceso se cargan sus páginas en los marcos.
  • 9. Tablas de páginas -Son tablas que contienen (para cada proceso) el número marco que corresponde a cada página virtual del proceso . - Estructura de una entrada de la Tabla de Páginas:
  • 10. Tablas de páginas -Tamaño de página viene definido por el Hardware y suele ser una potencia de 2 que varía entre 512 y 16M . - Ej. simplificado: Direccionamiento de un espacio virtual de 64K, distribuido en 16 páginas de 4K:
  • 11. Cada entrada de la tabla de páginas, además del número de marco que corresponde con esa página, contiene información adicional como la siguiente: - Información de protección: Es un conjunto de bits que especifican que tipo de accesos están permitidos. Típicamente, se controla el acceso de lectura, de ejecución y de escritura. - Indicación de página válida: Es un bit que especifica si esa página es válida, en el caso de que no lo sea, la información del número de marco es irrelevante.
  • 12. En la entrada de la tabla de páginas puede haber información adicional, tal como la siguiente: - Indicación de página accedida. La MMU (Memory Management Unit o unidad de gestión de memoria) activa este bit indicando cuando se accede a una dirección lógica que pertenece a esa página. - Indicación de página modificada. La MMU activa este bit indicando cuando se escribe en una dirección lógica que pertenece a esa página. - Desactivación de cache. Este bit indica que no debe usarse, la cache de la memoria principal para acelerar el acceso a las direcciones de esta página.
  • 13. Ventaja / Desventaja Hay una pequeña No tiene fragmentación cantidad de externa fragmentación interna
  • 14. Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos.
  • 15. - Los bloques de un proceso (código, datos, pila, DLLs, etc.) pueden estar situados en áreas de memoria no contiguas. - Suministra reubicación dinámica. - Protección y uso compartido. - Cada segmento empieza en una dirección virtual fija (reubicación). - Las direcciones en estos sistemas tienen dos componentes: número de segmento y offset. - Los segmentos pueden tener tamaños diferentes.En el 80x86: mov eax, ds:esi. - Para localizar el dato: selector DS y desplazamiento SI
  • 16. Enlace dinámico Modularidad de entre programas segmentos Objetivos Alcanzados con la segmentación Estructuras de Compartición datos de largo variable Protección
  • 17. Una de las ventajas de la segmentación sobre la paginación es que se trata más de un hecho lógico que físico. En un sistema de segmentación, una vez que un segmento ha sido declarado como compartido, entonces las estructuras que lo integran pueden cambiar de tamaño. Lo anterior no cambia el hecho lógico de que residen en un segmento compartido. Dos procesos pueden compartir un segmento con solo tener entradas en sus tablas generales que apunten al mismo segmento del almacenamiento primario.
  • 18. - No necesitan ser de igual tamaño. - Los bloques separados no necesitan ser adyacentes. - Deben estar compuestos de posiciones contiguas de almacenamiento. Sin embargo se complica la protección de bloques de memoria de un proceso de usuario. Es más difícil limitar el rango de acceso de cualquier programa.
  • 19. Compila módulos separados. Comparte los segmentos. Conoce las unidades lógicas Modificación de los Los segmentos Define segmentos cambios dentro de un crecen que aun no existan modulo dinámicamente
  • 20. - Hay un incremento en los costos de hardware y de software para llevar a cabo la implantación, así como un mayor consumo de recursos: memoria, tiempo de CPU, etc. - Debido a que los segmentos tienen un tamaño variable se pueden presentar problemas de fragmentación externas, lo que puede ameritar un plan de reubicación de segmentos en memoria principal. - Se complica el manejo de memoria virtual, ya que los discos almacenan la información en bloques de tamaños fijos, mientras los segmentos son de tamaño variable. Esto hace necesaria la existencia de mecanismos más costosos que los existentes para paginación.
  • 21. - Permite que los segmentos varíen de tamaño, puede ser necesarios planes de reubicación a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos. - No se puede garantizar, que al salir un segmento de la memoria, este pueda ser traído fácilmente de nuevo, ya que será necesario encontrar nuevamente un área de memoria libre ajustada a su tamaño. - La compartición de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales de hardware y software. Estas desventajas bien pueden ser minimizadas por la Segmentación- Paginada, sin embargo esta también tiene desventajas y ventajas.
  • 22. Se basa en una gran reserva de memoria donde se van asignando los elementos del programa de forma contigua; a diferencia de la asignación estática, se encuentra la asignación dinámica asigna una dirección base a cada elemento a partir de la cual se va configurando la estructura de datos. Y la tercera tenemos la asignación mixta la cual es una combinación de las dos anteriores para aprovechar sus ventajas realizando una asignación estática-dinámica.
  • 23. Ejemplo de una partición estática en una memoria de 64 MB
  • 24.
  • 25. Descripción Ventajas Desventajas • La memoria • Sencilla de • Empleo principal se implementar, ineficiente de la divide en un poca memoria debido conjunto de sobrecarga del a la particiones sistema fragmentación estáticas, operativo. interna. durante la • El número de generación del procesos sistema. activos es fijo. • Un proceso se puede cargar en una partición de igual o mayor tamaño.
  • 26. Es una asignación a una dirección base de cada elemento a partir de la cual se va configurando la estructura de datos; a diferencia de la asignación dinámica, se encuentra la asignación estática, la cual se basa en una gran reserva de memoria donde se van asignando los elementos del programa de forma contigua. Luego tenemos la asignación mixta la cual es una combinación de las dos anteriores para aprovechar sus ventajas realizando una asignación estática-dinámica.
  • 27.
  • 28. Consiste en determinar en qué hueco ubicar un nuevo proceso. Para esto existen tres algoritmos: mejor ajuste, primer ajuste o próximo ajuste. - Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que más se ajuste a su tamaño. - Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible, recorriendo desde el inicio de la memoria, cuyo tamaño sea suficiente para el proceso. - Próximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea suficientemente grande, a partir de la última asignación de memoria.
  • 29. • Las particiones • No hay • Uso ineficiente Desventajas Ventajas Descripción se crean fragmentación del procesador dinámicamente, interna. debido a la de forma que compactación cada proceso se • Uso más para carga en una eficiente de la contrarrestar la partición de su memoria fragmentación mismo tamaño. principal. externa.
  • 30. Es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física. El espacio de direcciones virtual, está mapeado de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco.
  • 31. - Se refiere a la capacidad de obtener acceso a direcciones de un espacio de memoria mucho mayor que el que dispone la memoria principal. - Los métodos más comunes para implementar la memoria virtual son la paginación y la segmentación. - En un sistema de memoria virtual las direcciones generadas por los programas en ejecución (direcciones virtuales) no son necesariamente las disponibles en la memoria principal (direcciones reales).
  • 32. - Los procesos hacen referencia a direcciones virtuales, estos se deben ejecutar en la memoria real. - Es preciso establecer una correspondencia entre las direcciones virtuales y las reales durante la ejecución de un proceso. Tal correspondencia se realiza mediante mecanismos de traducción dinámica de direcciones. - Las direcciones contiguas en la memoria virtual de un proceso, no son necesariamente contiguas en la memoria real.
  • 33. Un espacio de direcciones virtuales es mayor que el espacio de direcciones reales. 1 Byte = 8 bits 1 K = 1024 Bytes 1 Mega = 1024 Kbytes 1 Giga = 1024 MBytes 1 Tera = 1024 GBytes 1 Peta = 1024 TBytes
  • 34. - Los mecanismos de traducción dinámica de direcciones deben mantener mapas de correspondencias de traducción de direcciones. - Las correspondencias se establecen a nivel de bloques de igual tamaño o de diferente tamaño. - Las direcciones son bidimensionales. - Cada proceso tiene su propia tabla de correspondencias de bloques.
  • 35. Posición de memoria: Unidad elemental de almacenamiento de una memoria. En un microcomputador cada posición de memoria almacena 8 bits (1 Byte), cuya combinación codifica el dato que almacena (generalmente 1 carácter). Dirección de memoria: Nombre o referencia que tiene cada Posición de memoria.
  • 36. - Los programas se pueden ejecutar por partes, la memoria lógica puede ser mayor que la real disponible. - Puesto que cada programa ocupa menos memoria real, se puede elevar el índice de multiprogramación y, por tanto, la eficiencia del sistema. - Al cargar menos cantidad de cada programa se necesitan menos operaciones de entrada y salida para las operaciones de carga e intercambio de los mismos.
  • 37. - Permite gestionar más eficientemente la memoria física. Cualquier espacio libre, incluso una única página, puede ser aprovechado para cargar un nuevo programa y comenzar a ejecutarlo. Por otra parte, si una página de un programa no hace referencia durante la ejecución, no habrá que cargarla. - La independencia de los programas con respecto a la máquina es completa. Además del direccionamiento virtual que aporta la paginación, la cantidad de memoria física disponible para ejecutar el programa sólo es relevante para la velocidad de ejecución del programa.
  • 38. Es un identificador único para una ubicación de la memoria con las cuales un CPU u otros dispositivos puede almacenar, modificar o recuperar datos de la misma. Tanto la memoria física como la memoria virtual emplean direccionamiento o direcciones de memoria para acceder a sus datos. En la memoria física, la dirección accede a la memoria RAM real (los chips RAM incorporados a la placa madre), y la dirección de memoria virtual hace referencia a un espacio del disco duro que simula memoria RAM (el archivo de paginación).
  • 39. Registro Directo Indirecto Inmediato Indirecto Relativo Indexado Inherente
  • 40. La instrucción contiene la dirección de la posición de memoria donde se encuentra el operando La dirección contiene no la dirección donde se encuentra el operando, sino la dirección donde se encuentra la dirección del operando.
  • 41. Es la parte dirección de la instrucción contiene el número N. En memoria la dirección del operando se encuentra sumando el numero N al número del contador del programa. Es la parte dirección de la instrucción contiene un número N que puede ser positivo o negativo. Sin embargo para utilizar el direccionamiento indexado, el computador debe estar equipado con un registro especial empleado para permitir direccionamiento indexado, y denominado naturalmente registro índice. La posición de memoria donde se localiza el operando se encuentra mediante la suma I + N.
  • 42. Este registro contiene la dirección de memoria del operando. Una instrucción que invoque realmente direccionamiento de registro indirecto, no tiene bits significativos en su parte dirección. En lugar de ello, la instrucción completa se incluye en los bits asignados a la parte de operación de la instrucción. Es la parte de dirección de la instrucción, contiene no la dirección del operando sino el mismo operando.
  • 43. Es una dirección que es parte de una instrucción se refiere a una posición de memoria. Cuando una instrucción indica una fuente o un destino de datos y no se direcciona específicamente, ya no se hace referencia a la posición de memoria, se dice que la instrucción tiene una dirección inherente.