Unidad 2.4 sistemas operativos
Ingeniería en sistemas computacionales
sistemas operativos
Docente : Ing. Aliluz angeles matias
Alumno: Alejandro bautista de la cruz
Documento: tema 4.2
2.4 Concurrencia y Secuenciabilidad
Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independienteunos 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ónpara 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 lasactividades 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 delprocesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultanea.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 unaverdadera ejecución simultanea de procesos, al coincidir las fases de procesamiento de distintos procesos. En un instante dado se pueden ejecutar de forma simultánea tantos procesos como procesadores haya.Multicomputadora.Una multicomputadora es una maquina de memoria distribuida, en contraposición con el multiprocesador que es de memoria compartida. Está formada por una serie de computadorascompletas 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 laconcurrencia será aparente siempre que el numero 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 |
2.4.1 Exclusión Mutua de Sección Critica
|
|
El método mas sencillo de comunicación entre los procesos de un programa concurrente es el uso común de unas variables dedatos. Esta forma tan sencilla de comunicación puede llevar, no obstante, a errores en el programa ya que el acceso concurrente puede hacer que la acción de un proceso interfiera en las acciones de otro de una forma no adecuada. Aunque nos vamos a fijar en variables de datos, todo lo que sigue seria valido con cualquier otro recurso del sistema que solo pueda ser utilizado por un proceso a lavez.
Por ejemplo una variable x compartida entre dos procesos A y B que pueden incrementar o decremento la variable dependiendo de un determinado suceso. Este situación se plantea, por ejemplo, en un problema típico de la programación concurrente conocido como el Problema de los Jardines. En este problema se supone que se desea controlar el número de visitantes a unos jardines. La entrada y la...
Regístrate para leer el documento completo.