Вы находитесь на странице: 1из 2

UP

E R IO R P
E

I N S T IT
U TO
S

IC O
G G
D A

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PEDR
DE
LLO C

PROGRAMACIN CONCURRENTE
El concepto fundamental de la programacin concurrente es la nocin de proceso. El termino proceso fue
utilizado por primera vez por los diseadores del sistema Multics en los aos 60s. Desde entonces, el
termino proceso, utilizado a veces como sinnimo de tarea, ha tenido muchas definiciones. A continuacin
se presentan algunas:
Un programa en ejecucin.
Una actividad asncrona
El espritu animado de un procedimiento
El centro de control de un procedimiento en ejecucin
Lo que se manifiesta por la existencia de un bloque de control del proceso en el sistema operativo
La entidad a la que se asignan los procesadores
La unidad despachable
Un proceso pasa por una serie de datos discretos. Se dice que un proceso se est ejecutando (estado de
ejecucin), si tiene asignada la CPU. Se dice que un proceso est listo (estado listo) si pudiera utilizar la
CPU en caso de haber una disponible. Un proceso est bloqueado (estado bloqueado) si se est
esperando que suceda algn evento antes de poder seguir la ejecucin.

EN
EJECUCION
BLOQUEADO
DESPACHAR

EXPIRACION
DE TIEMPO
DESPERTAR

BLOQUEAR

LISTO

Los procesos secuenciales se han usado tradicionalmente para estudiar la concurrencia. ADA, es un
lenguaje que maneja procesos secuenciales.
Tantos sistemas paralelos como distribuidos son concurrentes; pero un sistema concurrente puede ser no
paralelo ni distribuido, como acontece, por ejemplo, con los sistemas operativos monoprocesadores y
multitarea, que son concurrentes pero no son paralelos ni distribuidos.
Como ya se mencion los procesos son concurrentes si existen simultneamente. La concurrencia es el
punto clave de la Multiprogramacin, el Multiproceso y el Proceso distribuido y fundamental para el diseo
de sistemas operativos. La concurrencia comprende un gran nmero de cuestiones diseo, incluyendo la
comunicacin entre procesos, comparticin y competencia por lo recursos, sincronizacin de la ejecucin
de varios procesos y asignacin del tiempo de procesador a los procesos.
La concurrencia puede presentarse en tres contextos diferentes:
Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la
maquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas.
Aplicaciones estructuradas: Como aplicacin de los principios del diseo modular y la programacin
estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos
concurrentes.
Profesor: Roni Ronald Aguilar Huaccha

-1-

San Pedro de Lloc

UP

E R IO R P
E

I N S T IT
U TO
S

IC O
G G
D A

INSTITUTO DE EDUCACIN SUPERIOR PBLICO


DAVID SNCHEZ INFANTE

Computacin e Informtica
Unidad Didctica: Programacin Concurrente

AN
O
PEDR
DE
LLO C

Estructura del Sistema Operativo: Las mismas ventajas de estructuracin son aplicables a los
programadores de sistema y se han comprobado que algunos sistemas operativos estn implementados
con un conjunto de procesos.
Principios Generales de la concurrencia
1) En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo para
dar la apariencia de ejecucin simultnea.
2) En un sistema con varios procesadores, no solo es posible intercalar los procesos, sino tambin
superponerlos. La intercalacin y la superposicin representan formas de ejecucin muy diferentes.
Ambas tcnicas 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
multiprogramacin parten del hecho de que la velocidad relativa de ejecucin de los procesos no puede
predecirse.
3) Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o
pueden ser asncronos, lo cual significa que en ocasiones requieren cierta sincronizacin o
cooperacin.
4) Cuando dos o ms 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 ms procesos sean
concurrentes, es necesario que tengan alguna relacin entre ellos como puede ser la cooperacin para
un determinado trabajo o el uso de informacin o recursos compartidos, por ejemplo: en un sistema de
un procesador, la multiprogramacin es una condicin necesaria pero no suficiente para que exista
concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.
Las interacciones entre procesos tienen dos formas:
1) Primero comunicacin.- Si tenemos varios procesos ejecutando y queremos que interacten entre
ellos para solucionar un determinado problema, y por tanto, necesitan intercambiar informacin, es decir
necesitan comunicarse. Esto implica el intercambio de datos entre procesos, ya sea por medio de un
mensaje implcito o a travs de variables compartidas. Una variable es compartida entre procesos si es
visible al cdigo de esos procesos.
Mediante la comunicacin se consigue que la ejecucin de un proceso influya en la ejecucin de otro.
2) Segundo sincronizacin.- La sincronizacin (sinnimo de espera) es habitualmente necesaria cuando
dos procesos se comunican puesto que la velocidad a la que se ejecutan no es predecible. Para que un
proceso se comunique con otro, aquel deber realizar acciones que sea capaz de detectar y esto solo
funciona si realizar y detectar ocurren en este orden. Relaciona el seguimiento de un proceso con el
seguimiento de otro. En otras palabras, la sincronizacin implica intercambio de informacin de control
entre procesos.
La necesidad de contar con comunicacin y sincronizacin puede verse en trminos de competencia y
cooperacin entre procesos. La competencia ocurre cuando el proceso requiere el uso exclusivo de un
recurso, como cuando dos procesos compiten por usar la misma impresora, o para reservar un asiento en
un vuelo. Aqu la sincronizacin es necesaria para garantizar a un proceso el uso exclusivo de un recurso.
La cooperacin ocurre cuando dos procesos trabajan en distintas partes del mismo problema y por lo
general incluyen a la comunicacin y a la sincronizacin.

Profesor: Roni Ronald Aguilar Huaccha

-2-

San Pedro de Lloc