CONCURRENCIA

Principios Generales de concurrencia.

       Es aparente que las nociones de procesos y recursos están estrechamente vinculadas. Un proceso es una tarea, identificada como una secuencia de instrucciones ejecutándose, o una colección de instrucciones formando un programa. Un recurso, por otra parte, es un término incluido en el sistema operativo, como también impresoras, discos, cintas de discos, procesos y repartos de la capacidad de memoria. Sin embargo, los recursos no son tratados en forma igualitaria por el S.O. y dependiendo de su cinta, tratará los procesos en forma diferente.

       Los recursos no expropiables (No Preemption) son usados por los procesos que requieren una utilización de recursos ininterrumpidos. Los recursos expropiables (Preemption) requieren un control del S.O. para cambiar correctamente la utilización de los recursos.

       En un sistema multiprogramado (se llama multiprogramación a la gestión de varios procesos dentro de un sistema monoprocesador), los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea, aunque no se consigue un proceso paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del procesamiento y en la estructuración de los programas.

En un sistema con varios procesadores, no sólo es posible intercalar los procesos, sino también superponerlos. Ambas técnicas, la intercalación y la superposición, pueden contemplarse como ejemplos de proceso concurrente y ambas plantean los mismos problemas. En el caso de un sistema monoprocesador, los problemas creados por la multiprogramación parten del hecho de que la velocidad relativa de ejecución de los procesos no puede predecirse. Depende de la actividad de otros procesos, de la forma en que el sistema operativo trata las interrupciones y de las políticas de planificación.

       La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.

Labores del Sistema Operativo

Hay algunos elementos de gestión y diseño que surgen por causa de la concurrencia. Se pueden enumerar los siguientes:

  • El S.O. debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de los PCB.
  • El S.O. debe asignar y quitar los distintos recursos a cada proceso activo.
  • El S.O. debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos
  • Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución con respecto a otros procesos concurrentes.

 

Condiciones de concurrencia (Berstein)

       Debe darse un conjunto de condiciones para que se puedan ejecutar varios procesos a la vez.

       Un conjunto de lectura R(Si) de la sentencia Si es aquel formado por todas las variable que son referenciadas por la sentencia Si durante su ejecución sin sufrir cambios.

       Un conjunto de escritura W (Si) de la sentencia Si es aquel formado por todas las variable cuyos valores son modificados durante su ejecución.

       Dos sentencias Si y Sj pueden ejecutarse concurrentemente (produciendo igual resultado que la ejecución secuencial) si y solo si cumplen las siguientes condiciones:

R (Si) Ç W (Sj) = Æ

R (Sj) Ç W (Si) = Æ

W (Si) Ç W (Sj) = Æ

       Existen diversas notaciones para especificar actividades concurrentes. Entre ellas, las instrucciones fork-join (no estructurados) y cobegin-coend (estructurados).

       Un proceso es independiente si no puede afectar o ser afectado por otros procesos corriendo en el sistema. Un proceso es interactuante si puede afectar o ser afectado por otros procesos.

       Los procesos que se ejecutan, no lo hacen a la misma velocidad. Por ello, aparece una race condition (condición de carrera o de concurso), que es la situación en la cual el resultado de la ejecución de dos o más procesos interactuantes depende del orden de ejecución de los mismos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: