Copncurrencias 2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

lOMoARcPSD|13890897

2.4 Concurrencia y Secuenciabilidad

Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan


sincronizarse para actuar conjuntamente. Se trata, en este caso, de un concepto
lógico, ya que sólo hace referencia a las actividades, sin importar el número de
procesadores presentes.

Para que dos actividades, sean concurrentes, es necesario que tengan relación
entre sí, como puede ser la cooperación en un trabajo determinado o el uso de
información compartida.

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 si ya sea para utilizar
información en común o para cualquier otra cosa.

Existen tres formas modelos de computadora en los que se puede pueden ejecutar
procesos concurrentes:

Multiprogramación con un único procesador.

En este modelo todos los procesos concurrentes ejecutan sobre un único


procesador. El sistema operativo se encarga de ir repartiendo el tiempo del
procesador entre los distintos procesos, intercalando la ejecución de los mismos
para dar así una apariencia de ejecución simultánea.

Multiprocesador.

Un multiprocesador es una maquina formada por un conjunto de procesadores que


comparten memoria principal. En este tipo de arquitecturas, los procesos
concurrentes no solo pueden intercalar su ejecución sino también superponerla. En
este caso si existe una verdadera ejecución simultanea de procesos, al coincidir las
fases de procesamiento de distintos procesos. En un instante dado se pueden
ejecutar de forma simultanea tantos procesos como procesadores haya.
lOMoARcPSD|13890897

Multicomputadora.

Una multicomputadora es una máquina de memoria distribuida, en contraposición


con el multiprocesador que es de memoria compartida. Está formada por una serie
de computadoras completas con su UCP, memoria principal y, en su caso, periferia.
Cada uno de estos procesadores completo se denomina nodo. Los nodos se
encuentran conectados y se comunican entre sí a través de una red de
interconexión, empleando el método de paso de mensajes. En este tipo de
arquitecturas también es posible la ejecución simultanea de los procesos sobre los
distintos procesadores.

En general la concurrencia será aparente siempre que el número de procesos sea


mayor que el de procesadores disponibles, es decir, cuando haya más de un
proceso por procesador. La concurrencia será real cuando haya un proceso por
procesador

Los procesos del sistema pueden ejecutarse concurrentemente, puede haber


múltiples tareas en el CPU con varios procesos.

Existen varias razones para permitir la ejecución concurrente:

 Compartir recursos físicos: Ya que los recursos del hardware de la


computadora son limitados, nos podemos ver obligados a compartirlos en un
entorno multiusuario.
 Compartir recursos lógicos: Puesto que varios usuarios pueden interesarse
en el mismo elemento de información (por ejemplo, un archivo compartido),
debemos proporcionar un entorno que permita el acceso concurrente a estos
tipos de recursos.
 Acelerar los cálculos: Si queremos que una tarea se ejecute con mayor
rapidez, debemos dividirla en subtareas, cada una de las cuales se ejecutara,
en paralelo con las demás.
 Modularidad: Podremos construir el sistema en forma modular, dividiendo las
funciones del sistema en procesos separados.
 Comodidad: Un usuario puede tener que ejecutar varias tareas a la vez, por
ejemplo, puede editar, imprimir y compilar en paralelo.

La ejecución concurrente que requiere la cooperación entre procesos necesita un


mecanismo para la sincronización y comunicación de procesos, exclusión mutua y
sincronización.
lOMoARcPSD|13890897

Problemas de concurrencia

En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos,


tareas, trabajos que reparten el uso de CPU entre estos) se presentan muchos
problemas debido a que los procesos compiten por los recursos del sistema.
Imagine que un proceso está escribiendo en la unidad de cinta y se le termina su
turno de ejecución e inmediatamente después el proceso elegido para ejecutarse
comienza a escribir sobre la misma cinta. El resultado es una cinta cuyo contenido
es un desastre de datos mezclados. Así como la cinta, existen una multitud de
recursos cuyo acceso debe der controlado para evitar los problemas de la
concurrencia.

El sistema operativo debe ofrecer mecanismos para sincronizar la ejecución de


procesos: semáforos, envío de mensajes, 'pipes', etc. Los semáforos son rutinas de
software (que en su nivel más interno se auxilian del hardware) para lograr exclusión
mutua en el uso de recursos. Para entender este y otros mecanismos es importante
entender los problemas generales de concurrencia, los cuales se describen
enseguida.

 Condiciones de Carrera o Competencia: La condición de carrera (race


condition) ocurre cuando dos o más procesos accesan un recurso compartido
sin control, de manera que el resultado combinado de este acceso depende
del orden de llegada. Suponga, por ejemplo, que dos clientes de un banco
realizan cada uno una operación en cajeros diferentes al mismo tiempo.
 Postergación o Aplazamiento Indefinido(a): Esto se mencionó en el
apartado anterior y consiste en el hecho de que uno o varios procesos nunca
reciban el suficiente tiempo de ejecución para terminar su tarea. Por ejemplo,
que un proceso ocupe un recurso y lo marque como 'ocupado' y que termine
sin marcarlo como 'desocupado'. Si algún otro proceso pide ese recurso, lo
verá 'ocupado' y esperará indefinidamente a que se 'desocupe'.
 Condición de Espera Circular: Esto ocurre cuando dos o más procesos
forman una cadena de espera que los involucra a todos. Por ejemplo,
suponga que el proceso A tiene asignado el recurso 'cinta' y el proceso B
tiene asignado el recurso 'disco'. En ese momento al proceso A se le ocurre
pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahi se forma una
espera circular entre esos dos procesos que se puede evitar quitándole a la
fuerza un recurso a cualquiera de los dos procesos.
 Condición de No Apropiación: Esta condición no resulta precisamente de
la concurrencia, pero juega un papel importante en este ambiente. Esta
condición especifica que, si un proceso tiene asignado un recurso, dicho
recurso no puede arrebatársele por ningún motivo, y estará disponible hasta
que el proceso lo 'suelte' por su voluntad.
 Condición de Espera Ocupada: Esta condición consiste en que un proceso
pide un recurso que ya está asignado a otro proceso y la condición de no
apropiación se debe cumplir. Entonces el proceso estará gastando el resto
de su time slice checando si el recurso fue liberado. Es decir, desperdicia su
lOMoARcPSD|13890897

tiempo de ejecución en esperar. La solución más común a este problema


consiste en que el sistema operativo se dé cuenta de esta situación y mande
a una cola de espera al proceso, otorgándole inmediatamente el turno de
ejecución a otro proceso.
 Condición de Exclusión Mutua: Cuando un proceso usa un recurso del
sistema realiza una serie de operaciones sobre el recurso y después lo deja
de usar. A la sección de código que usa ese recurso se le llama 'región
crítica'. La condición de exclusión mutua establece que solamente se permite
a un proceso estar dentro de la misma región crítica. Esto es, que en
cualquier momento solamente un proceso puede usar un recurso a la vez.
Para lograr la exclusión mutua se ideo también el concepto de 'región crítica'.
Para logar la exclusión mutua generalmente se usan algunas técnicas para
lograr entrar a la región crítica: semáforos, monitores, el algoritmo de Dekker
y Peterson, los 'candados'. Para ver una descripción de estos algoritmos
consulte.
 Condición de Ocupar y Esperar un Recurso: Consiste en que un proceso
pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro
proceso ya tiene asignado.
lOMoARcPSD|13890897

Referencias

Castaño, F. J. (2 de Septiembre de 2014). Obtenido de


https://sites.google.com/site/materiasisoperativo/unidad-2-administrador-del-proceso-y-
del-procesador/2-1-concepto-de-proceso

Morales, J. G. (22 de Septiembre de 2017). Obtenido de


http://joelgomezmorales.blogspot.com/2017/09/24-concurrencia-y-secuenciabilidad.html

También podría gustarte