domingo, 8 de enero de 2017

Gestion principal


República Bolivariana de Venezuela
Ministerio del poder popular para la educación
E.T.R. "Francisco Fajardo"
6º  Informática "A"
Área: Sistemas Operativos y Telemática


CompetenciaGestión de Memorias.
Actividad: Blog.
Valor: 15% (3pts).




Docente:
Omar Medina

Integrantes:
Martín Montenegro #36
Jaara Cardenas #29
Jeferson dun #32

Caracas, 27/01/2017

Volver al Indice


Gestión de la Memoria Principal

Organización de la memoria:

  • Organización de almacenamiento:

    Por organización del almacenamiento se entiende la manera de considerar este almacenamiento:
    • ¿Se coloca un solo programa de usuario o varios ?.
    • Si se encuentran varios programas de usuario:
      • ¿Se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o particiones de diferente tamaño ?.
      • ¿Se utilizará un esquema rígido de número y tamaño de particiones o un esquema dinámico y adaptable ?.
      • ¿Se requerirá que los trabajos de los usuarios sean diseñados para funcionar en una partición específica o se permitirá que se ejecuten en cualquiera donde quepan ?.
      • ¿Se requerirá o no que cada trabajo sea colocado en un bloque contiguo de memoria ?.
  • Administración:

    Independientemente del esquema de organización hay que decidir las estrategias que se utilizarán para optimizar el rendimiento.
    Las estrategias de administración deben considerar:
    • ¿Cuándo se consigue un nuevo programa para colocar en la memoria ?:
      • ¿Cuando el sistema lo pide específicamente o se intenta anticiparse a las peticiones ?.
    • ¿Dónde se colocará el programa que se ejecutará a continuación ?:
      • ¿Se prioriza el tiempo de carga o la optimización en el uso del almacenamiento ?.
    • ¿Con qué criterio se desplazarán programas ?.

  • Jerarquía:

    Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados.
    Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.
    El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.
    Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
    Un nivel adicional es el cache memoria de alta velocidad, que posee las siguientes características:
    • Es más rápida y costosa que la memoria principal.
    • Impone al sistema un nivel más de traspaso:
      • Los programas son traspasados de la memoria principal al caché antes de su ejecución.
    • Los programas en la memoria caché ejecutan mucho más rápido que en la memoria principal.
    • Al utilizar memoria caché se espera que:
      • La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecución mucho más rápida en la caché.
  • Particiones:

    Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que:
    • Cuando ocurre una petición de E/S la CPU normalmente no puede continuar el proceso hasta que concluya la operación de E/S requerida.
    • Los periféricos de E/S frenan la ejecución de los procesos ya que comparativamente la CPU es varios órdenes de magnitud más rápida que los dispositivos de E/S.
    Los sistemas de multiprogramacion permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema:
    • Un trabajo en espera de E/S cederá la CPU a otro trabajo que esté listo para efectuar cómputos.
    • Existe paralelismo entre el procesamiento y la E/S.
    • Se incrementa la utilización de la CPU y la capacidad global de ejecución del sistema.
    • Es necesario que varios trabajos residan a la vez en la memoria principal.
  • Fragmentacion:

    La fragmentacion de almacenamiento ocurre en todos los sistemas independientemente de su organización de memoria.
    En los S.O. de multiprogramación de partición fija la fragmentación se produce cuando:
    • Los trabajos del usuario no llenan completamente sus particiones designadas.
    • Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo que está en espera.

  • Condensación:

    Esta técnica consiste en fusionar dos huecos de memoria libre adyacentes en uno sólo que tendrá como capacidad la suma de los dos originales. Cuando un trabajo termina, el sistema operativo trata de unir todos los espacios libres en uno solo, para tener un espacio suficiente para que pueda entrar otro programa en memoria. Mediante la condensación de huecos se pueden recuperar los bloques contiguos de almacenamiento más grande que sea posible. Gracias a esto, la velocidad de acceso es mayor. Por ejemplo, necesitamos 4K de nuestra memoria, pero tenemos dos huecos, cada uno de 2K. Unimos los dos huecos y tenemos uno de 4K que nos sirve para almacenar este proceso
  • Compactacion:

    Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria:
    • Podría ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria.
    • Podría no ser suficiente ningún área libre individual.

    La técnica de compactacion de la memoria implica pasar todas las áreas ocupadas del almacenamiento a uno de los extremos de la memoria principal:
    • Deja un solo agujero grande de memoria libre contigua.
    • Esta técnica se denomina recogida de residuos.
  • Estrategias de colocación:
    Se utilizan para determinar el lugar de la memoria donde serán colocados los programas y datos que van llegando y se las clasifica de la siguiente manera: 
    • Estrategia de mejor ajuste:
      • Un trabajo nuevo es colocado en el agujero en el cual quepa de forma más ajustada:
        • Debe dejarse el menor espacio sin usar.
    • Estrategia de primer ajuste:
      • Un trabajo nuevo es colocado en el primer agujero disponible con tamaño suficiente para alojarlo.
    • Estrategia de peor ajuste:
      • Consiste en colocar un programa en el agujero en el que quepa de la peor manera, es decir en el más grande posible:
        • El agujero restante es también grande para poder alojar a un nuevo programa relativamente grande

Administración de memoria virtual

  • Espacio de las direcciones logias vs fisicas:
    Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos:
    • Direcciones físicas: son aquellas que referencian alguna posicion en la memoria fisica.
    • Direcciones lógicas : son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones , realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas.

  • Paginacion:

    Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página.
    Las páginas sirven como unidad de almacenamiento de información y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la dirección de marco, que esta en la posición física de la primera palabra en el marco de página.
    Las páginas de un programa necesitan estar contiguamente en memoria, aunque el programador lo observe de esta forma. Los mecanismos de paginacion permiten la correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las direcciones reales de la memoria que se reverencien.
  • Segmentación:

    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. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa.
  • Paginacion por demanda:

    Es un sistema de paginacion con el cual, además de las ventajas de la paginación convencional, se busca disminuir los tiempos de respuesta y aumentar la cantidad de programas en memoria. Para lograr estos objetivos se hace uso de un intercambiador perezoso (llamado paginador) el cual carga a memoria solo las páginas que serán utilizadas por el programa en ejecución, de esta manera se logra un menor tiempo de carga y un ahorro en cuanto a espacio utilizado por dicho programa, ya que, por un lado, no necesitamos que todo el programa este en memoria para comenzar su ejecución mientras que, por otra parte, al no estar el programa completo en memoria, disminuimos considerablemente el espacio que éste ocupa.
  • Fallos de pagina:

    Como hemos visto anteriormente, cuando un proceso requiere una página que no está en memoria se genera un fallo de página. La gran mayoría de las dificultades de la paginación por demanda se deben a cómo los fallos de página son tratados.
    En primer lugar, para que los fallos de página puedan ser tratados correctamente necesitamos un sistema que sea capaz de reiniciar una instrucción, de esta manera pasará lo siguiente:
    • Una instrucción necesita una página que no está en memoria.
    • Se genera fallo de página (No se puede satisfacer la instrucción).
    • Se carga a memoria la página requerida.
    • Se reinicia la instrucción.

  • Segmentación paginada:
    Paginación y segmentación son técnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente.
    Para la segmentación se necesita que estén cargadas en memoria, áreas de tamaños variables. A nivel de paginación, si quiere referencia en forma cíclicas X paginas, estas deberán ser cargadas una a una generándose varias interrupciones por fallas de paginas; bajo segmentación, esta pagina podría conformar un solo segmento, ocurriendo una sola interrupción, por falla de segmento. Puede hacerse una combinación de segmentación y paginación para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de páginas.