2.2 Planeación de Trabajos en Sistemas Multiprogramados y No Multiprogramados

 

Es muy importante destacar que existen sistemas los cuales son considerados monotareas o monoprocesos y los multiprocesos o multitareas.

Los primeros se caracterizan por el hecho de que solo pueden ejecutar o realizar alguna acción, procesos, actividad en un mismo tiempo, siendo los sistemas multitareas o llamados multics la contraparte de estos dado que estos están orientados a atender varias tareas al mismo tiempo satisfaciendo las necesidades del usuario.

Para ser un poco mas claro un sistema monoproceso lo encontramos cuando utilizamos el sistema operativo de windows, en el cual nosotros damos una instruccion y esperamos a que no devuelva el resultado, una vez terminado el proceso vuelve a espera de que el usuario le indique alguna otra instruccion. 

 

 

       Un procesador puede no usarse en forma muy eficiente aún con el uso de las interrupciones. Por ejemplo, si el tiempo requerido para completar una operación de E/S es mucho más grande que el código del usuario entre llamadas de E/S, entonces el procesador estará desocupado la mayor parte del tiempo. Una solución factible es permitir a varios programas de usuario estar activos al mismo tiempo.

        Es decir, el programa tiene dos programas a ejecutar. Uno es solo un programa para leer datos de memoria y enviarlos a un dispositivo externo; el otro es cierta aplicación que involucra muchos cálculos. El procesador puede empezar el programa de salida, enviar un comando al dispositivo externo y después continuar para empezar la ejecución de la otra aplicación.

Cuando el procesador trata con varios programas, la secuencia en que se ejecutan los programas dependerán de sus prioridades relativas y de si esperan para una E/S. Cuando un programa ha sido interrumpido y el control se transfiere a un manejador de interrupción, una vez que se completa la rutina del manejador de interrupción, el control puede no regresar de inmediato al programa del usuario que se ejecutaba en ese momento. En lugar de esto, el control puede pasar a algún otro programa pendiente con prioridad más alta. También es posible que se reanude el programa del usuario que se interrumpió cuando sea el de mas alta prioridad.

Para explicar un sistema multitarea ponemos como ejemplo a windows, sistema operativo en el cual trabajamos con una aplicacion como un procesador de textos, al mismo tiempo que escuchamos musica y navegamos en internet, todo ello a la vez.

 

Hasta hace unos pocos años, se podía decir que el tema central de los sistemas operativos modernos era la multiprogramación. Hoy es mas preciso decir que los sistemas operativos modernos tienen dos temas centrales:

ü            Multiprogramación: la administración de múltiples procesos dentro de un sistema computacional único. 

ü            Procesamiento distribuido: la administración de múltiples procesos que se ejecutan en múltiples sistemas computacionales distribuidos.

 PRINCIPIOS DE CONCURRENCIA

        En un sistema de multiprogramación de un solo procesador, los procesos son intercalados en el tiempo a fin de dar la apariencia de ejecución simultánea, como se puede observar en la siguiente figura:

 

        Aún cuando el procesamiento paralelo real no se logra y aún cuando existe cierta sobrecarga involucrada en los cambios de los procesos, la ejecución intercalada proporciona importantes beneficios en la eficiencia del procesamiento y en la estructuración de programas. En un sistema de múltiples procesadores, es posible no sólo intercalar procesos sino también traslaparlos, la siguiente figura muestra este proceso:

 

        Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación.

 

Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes , es necesario que tengan alguna relación entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información o recursos compartidos, por ejemplo: en un sistema de un procesador , la multiprogramación es una condición necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.

Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades necesiten actuar entre sí ya sea para utilizar información en común o para cualquier otra cosa.

   

BENEFICIOS DE LA CONCURRENCIA

               ·        Trata de evitar los tiempos muertos de la UCP

·        Comparte y optimiza el uso de recursos

·        Permite la modularidad en las diferentes etapas del proceso

·        Acelera los cálculos

·        Da mayor comodidad

 DESVENTAJAS DE LA CONCURRENCIA

    Inanición e interrupción de procesos              Ocurrencia de bloqueos    Que dos o más procesos requieran el mismo recurso (No apropiativo)

 

De hecho uno de los principales problemas de la concurrencia  se presenta cuando dos procesos acceden simultáneamente a los mismos recursos,  ya que pueden provocar cambios en las variables modificables de la memoria sin que uno se lo informe al otro, de tal modo que éste puede tomar un valor atrasado con respecto a la actualización efectuada sobre la variable por el otro proceso.

 MOTIVACIÓN PARA LA CONCURRENCIA

      En un ambiente de multiprogramación, la concurrencia puede aparecer en tres contextos diferentes: 

Ø      Múltiples aplicaciones: La multiprogramación se inventó para permitir que el tiempo de procesamiento de la computadora se intercambie en forma dinámica entre varios trabajos o aplicaciones activas.  

Ø      Aplicación estructurada: Como una extensión de los principios de diseño modular y programación estructurada, algunas aplicaciones pueden implementarse, en forma efectiva, como un conjunto de procesos concurrentes.  

Ø      Estructura del sistema operativo: Las mismas ventajas de estructuración se aplican al programador de sistemas y de la misma forma, algunos sistemas operativos se implementan como un conjunto de procesos.  

 

La secuenciabilidad es todo lo contrario a la concurrencia. Esta consiste en la ejecución separada y con una secuencia de orden de diferentes procesos. Por lo tanto, los procesos se ejecutan uno por uno, es decir, uno detrás del otro, no simultáneamente como en  la concurrencia.  

        Por ello aunque no es muy eficiente la elección de la secuenciabilidad, al momento de  optimización del uso de la CPU, se ha preferido en ocasiones en lugar de la concurrencia, ya que evita menos problemas de inanición  o bloqueos.

 ASPECTOS DE DISEÑO Y ADMINISTRACIÓN SURGIDOS POR LA EXISTENCIA DE LA CONCURRENCIA

 1.    El sistema operativo debe ser capaz de mantener un seguimiento de los diversos procesos activos. Esto se realiza usando bloques de control del proceso.

2. El sistema operativo debe asignar y retirar varios recursos para cada proceso activo. Estos recursos incluyen:

   

3.    El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra  interferencias no intencionadas de otros procesos. Esto involucra técnicas relacionadas con la memoria, los archivos y los dispositivos de E/S .  

4.    Los resultados de un proceso deben ser independientes de la velocidad a la que se realiza la ejecución en relación con la velocidad de otros procesos concurrentes.

       

Hosted by www.Geocities.ws

1