miércoles, 19 de diciembre de 2012

Multi programacion



4.    Multiprogramación

Es la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al “mismo tiempo” en la unidad central de proceso o CPU.

Aporta las siguientes ventajas:
·         Varios procesos en ejecución.
·         Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.
·         Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S.
·         Aumenta el uso de la CPU.
·         Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.


4.1.                   Partición de tamaño fijo
Si tenemos un sistema operativo mono usuario  la CPU aprovecharía  este aprovecharía mínimamente el rendimiento ya que al ser un único proceso por vez, si el sistema tiene  una entrada o salida, el tiempo de espera del sistema aumentaría considerablemente.  En el grafico de continuación se verá  una comparativa entre un sistema trabajando con un computo intensivo y un sistema ralentizado por entradas y salidas
Lo que se mejoro mediante “multiprogramación” es que esos tiempos de espera fuera utilizado por otros usuarios del sistema, por ejemplo ese tiempo que el sistema está esperando puede ser utilizado para procesos de otro usuario, lo cual conlleva que en memoria principal deba haber varios programas de forma simultánea.
La programación de tamaño fijo consiste  en crear una ilusión de simultaneidad  dividiendo la memoria principal en bloques de tamaño fijo el cual crea una ilusión de simultaneidad
Para saber  en qué parte de la memoria se encontraba cada programa se encargaban cada  partición relacionarla con un programa y dividirlo en sus procesos 
Para el SO. Resulta sencillo ya que todas las instrucciones de un mismo programan van a estar en la misma ubicación.


4.1.1.                       Carga absoluta y carga con reubicación
La reubicación de una partición de tamaño fijo se utiliza por ejemplo cuando la partición que se está utilizando se ha quedado pequeña y el programa necesita una partición de tamaño mas grande ya que al ser las particiones de tamaño fijo no se pueden ampliar .
Este procedimiento es más complejo ya que hay que tener en cuenta el tamaño de todas las particiones del sistema (en memoria principal) y de cuales están libres en cada ciclo, pero también tiene una gran ventaja que le da al sistema una mayor flexibilidad para distintos tipos de procesos.
4.1.2.                       Sistema de protección

Cuando se usa la asignación contigua de memoria la protección suele implementarse con varios registros de limites.

Los extremos de una partición pueden ir delineados con 2 registros o, también, indicados por el limite inferior o superior y el tamaño de la partición.

En el caso de que vayan delineados por 2 registros:
En el caso de que vayan indicados:


4.1.3.                       Inconveniente de la fragmentación

La fragmentación en el almacenamiento es algo que ocurre en cualquier sistema de independientemente de cómo se organice la memoria.

Normalmente este inconveniente 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.


4.2.                   Partición de tamaño variable

Cuando se usa una partición de tamaño variable los procesos ocupan tanto espacio como necesitan, pero sin superar el espacio disponible en la memoria.

En particiones variables, no hay limites fijos de memoria, luego la partición de un trabajo es un propio tamaño.

Se consideran “esquemas de asignación contigua”, ya que un programa debe ocupar las posiciones adyacentes de almacenamiento.

Una vez que los procesos terminan dejan disponibles espacios de memoria principal entre los cuales hay otros procesos, estos se pueden denominar “agujeros”.

Estos agujeros pueden ser usados por otros procesos o trabajos y que cuantos estos terminan dejan otros agujeros más pequeños. Esto de forma sucesiva provoca que los agujeros sean cada vez más numerosos provocando un mayor desperdicio de memoria.

Estos agujeros se pueden combinar o fusionar, de forma que cuando un proceso termina y el almacenamiento que libera tiene limites con otros agujeros, combina o fusiona con todos los agujeros adyacentes formando uno solo.

No hay comentarios:

Publicar un comentario