SlideShare una empresa de Scribd logo
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                  SISTEMAS OPERATIVOS
                            DECANATURA DE INGENIERÍA
                         Técnico Profesional en sistemas          DOCENTE
                            e Ingeniería de Sistemas              OSCAR W. MENDOZA M.
                   TALLER CONCURRENCIA Y EXCLUSION MUTUA




Ivonne Mayorga                    2011152161
Celly Andrea Bohórquez            2010152116

¿Qué es concurrencia?

Dos o más procesos decimos que son concurrentes, paralelos, o que se
ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir,
que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.


Determine las causas posibles de la concurrencia:

La concurrencia se puede presentar por causa como la Multiprogramación,
donde el tiempo del procesador es compartido dinámicamente entre varios
procesos activos. Aplicaciones Estructuradas: debido a los procesos de diseño
modular y programación estructurada y por ultimo por la estructura del sistema
operativo sistemas monoprocesadores, multiprocesadores y distribuidos.

¿Qué elementos de gestión y diseño surgen por causa de la concurrencia?

   • El sistema operativo debe ser capaz de seguir la pista de los distintos
     procesos activos. Esto lo hace por medio del Bloque de control de
     Procesos.
   • El sistema operativo debe asignar y quitar distintos recursos a cada
     proceso         activo.      Entre       estos     recursos        incluyen.
        * Tiempo de procesador: Es la función de la planificación.
         * Memoria: Se emplea esquemas de memoria virtual.
                                        *                                Archivos
      * Dispositivos de entrada y salida.
   • El S.O debe de 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.

Defina: Interacción, Competencia y cooperación
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                SISTEMAS OPERATIVOS
                            DECANATURA DE INGENIERÍA
                         Técnico Profesional en sistemas        DOCENTE
                            e Ingeniería de Sistemas            OSCAR W. MENDOZA M.
                   TALLER CONCURRENCIA Y EXCLUSION MUTUA




Interacción: Es cuando varios procesos se encuentran en la memoria y
dependiendo del conocimiento que tenga entre ellas, se dirá, si hay relaciones
entre ellas.

Competencia: Es la enfrentamiento entre los procesos por el uso de un recurso
en especifico y al igual que en cualquier competencia, gane el primero en
llegar al uso del recurso.

Cooperación: es el nexo entre dos o más procesos actual que entran a un
mismo recurso, esto por medio de algoritmos, dando una guía para que estos
accedan a otro recursos.


¿Qué es exclusión mutua?

Se refiere al problema de asegurar que no hay dos procesos o hilos (en
adelante referido únicamente como procesos) puede estar en su sección crítica
al mismo tiempo. Aquí, una sección crítica se refiere a un período de tiempo en
el proceso de acceso a un recurso compartido, como la memoria compartida.
El problema de la exclusión mutua fue identificado por primera vez y resueltos
por Edsger W. Dijkstra en su seminal artículo de 1965 titulado: Solución de un
problema en el control de la programación concurrente

Mediante ejemplos describa el Algoritmo de Dekker:

     El algoritmo de dekker se refiere principalmente a la programación
     concurrente donde se especifica en la ejecución de dos procesos o dos
     hilos, donde comparte el mismo recurso sin conflictos, fue uno de los
     primeros algoritmos con exclusión mutua, y se crearon cinco intentos de
     algoritmos donde los primeros cuatro provoca algo de conflictos aunque
     el quinto intento no provoco nada de conflictos.

     Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su
     desventaja es que acopla los procesos fuertemente, esto significa que los
     procesos lentos atrasan a los procesos rápidos.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                     SISTEMAS OPERATIVOS
                               DECANATURA DE INGENIERÍA
                            Técnico Profesional en sistemas          DOCENTE
                               e Ingeniería de Sistemas              OSCAR W. MENDOZA M.
                      TALLER CONCURRENCIA Y EXCLUSION MUTUA


      Versión 2: Problema interbloqueo. No existe la alternancia, aunque
      ambos procesos caen a un mismo estado y nunca salen de ahí.

       Versión 3: Colisión región crítica no garantiza la exclusión mutua. Este
       algoritmo no evita que dos procesos puedan acceder al mismo tiempo a
       la región crítica.
       Versión 4: Postergación indefinida. Aunque los procesos no están en
       interbloqueo, un proceso o varios se quedan esperando a que suceda un
       evento que tal vez nunca suceda.
       El último intento es la Combinación entre:
• Primer intento y cuarto intento
• Cuando P0 quiere entrar en su sección crítica pone Señal [0]=cierto; y
comprueba la señal de P1.
• Si está a falso, entra inmediatamente.
• Si está a cierto, consulta turno:
• Si turno==0; sigue verificando la señal de P1.
• Si turno==1; desactiva su señal y espera hasta que turno==0;

Proceso 0                                Proceso 1
…                                        …
señal[0] = cierto;                       señal[1]=cierto;
while (señal[1])                         while (señal[0])
if (turno==1){                                 if (turno==0){
señal[0]=falso;                          señal[1]=falso;
while (turno==1);                        while (turno==0);
/*esperar*/                              /*esperar*/
señal[0]=cierto;                         señal[1]=cierto;
}                                        }
/*sección crítica*/                            /*sección crítica*/
turno=1;                                 turno=0;
señal[0] = falso;                        señal[1] = falso;
...                                      …

Mediante ejemplos describa Algoritmo de Peterson:

Más simple que el de Dekker, garantiza la exclusión mutua:
• Cada proceso tiene un turno para entrar en la sección crítica.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                SISTEMAS OPERATIVOS
                            DECANATURA DE INGENIERÍA
                         Técnico Profesional en sistemas        DOCENTE
                            e Ingeniería de Sistemas            OSCAR W. MENDOZA M.
                   TALLER CONCURRENCIA Y EXCLUSION MUTUA


• Si un proceso desea entrar en la sección crítica, debe activar su señal y
puede que tenga que esperar a que llegue su turno.
„
Impide el interbloqueo ya que si un proceso se encuentra esperando en el
“while”, entonces la señal y el turno del otro proceso están activadas. El
proceso que está esperando entrará en su sección crítica cuando la señal o el
turno del otro se desactiven.

Proceso 0                         Proceso 1
...                               …
while(cierto){                    while(cierto){
señal[0] = cierto;                      señal[1]=cierto;
turno=1;                          turno=0;
while (señal[1]&&turno==1);       while (señal[0]&&turno==0);
/*esperar*/                        /*esperar*/
/*sección crítica*/                      /*sección crítica*/
señal[0]=falso;                   señal[1]=falso;
...                               ...
}                                 }

Describa el propósito de las soluciones al problema de concurrencia por
hardware:
En los monoprocesadores se debe asegurar que un proceso no sea
suspendido en un sector crítico de su código de ejecución, pues esto generaría
un error y estropearía cualquier acción realizada por este proceso.
En el caso de multiprocesador son utilizadas instrucciones de maquina, se
podría respaldar el ingreso a su sección critica, entre el código y una pequeña
parte de la posición de memoria. Durante la ejecución de la sección critica los
demás procesos están en espera activa, hasta que este termine para poder
acceder a esta posición de memoria.

¿Defina qué son los semáforos?

  • Mecanismo frente a problemas de concurrencia.
  • „ Funcionamiento basado en la cooperación entre procesos.
  • „ Uso de señales, podemos obligar a un proceso a detenerse hasta que
    reciba una señal.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                  SISTEMAS OPERATIVOS
                             DECANATURA DE INGENIERÍA
                          Técnico Profesional en sistemas         DOCENTE
                             e Ingeniería de Sistemas             OSCAR W. MENDOZA M.
                    TALLER CONCURRENCIA Y EXCLUSION MUTUA


Los semáforos se pueden considerar variables enteras sobre las que se
definen las siguientes operaciones:
• Un semáforo puede iniciarse con un valor no negativo.
• La operación wait() reduce el valor del semáforo. Si el valor se hace negativo,
el proceso que la ejecuta se bloquea.
• La operación signal() incrementa el valor del semáforo. Si el valor no es
positivo, se desbloquea un proceso.

Describa en sus palabras el problema del Productor/Consumidor y la solución
respectiva:
Permite el acceso por parte de los procesos productores y procesos


consumidores donde un recurso común es un buffer de elementos y los




productores intentan ingresar elementos en el buffer de uno en uno, y los


consumidores tratan de sacar elementos de uno en uno.


Su consistencia permite que la información almacenada en el buffer, muestre


un acceso

a los productores y consumidores pues estos deben hacer una exclusión


mutua. Además de esto el buffer tiene una capacidad limitada por lo que el
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                 SISTEMAS OPERATIVOS
                            DECANATURA DE INGENIERÍA
                         Técnico Profesional en sistemas         DOCENTE
                            e Ingeniería de Sistemas             OSCAR W. MENDOZA M.
                   TALLER CONCURRENCIA Y EXCLUSION MUTUA




acceso por parte de un productor para ingresar un elemento en el buffer lleno


debe causar la detención del proceso productor. A si mismo sucede para el


consumidor que intente sacar un elemento del buffer vacío.



Establezca las características más importantes de la solución al problema de la
concurrencia a través de la exclusión mutua utilizando Monitores:

Defina:
Paso de mensajes:
Proporcionan una solución al problema de la concurrencia de procesos que
integra la sincronización y la comunicación entre ellos y resulta adecuado tanto
para sistemas centralizados como para distribuidos.
 La comunicación mediante mensajes necesita siempre de un proceso emisor y
otro proceso receptor, y la información debe intercambiarse.
  Las operaciones básicas para una comunicación mediante mensajes que
proporciona todo sistema operativo son: enviar (mensaje) y recibir (mensaje).
 La comunicación por mensajes requiere que se establezca un enlace entre
emisor y receptor.




Direccionamiento:
Es la forma de hacer el envió de mensajes de un proceso a otro. Hay dos tipos
de direccionamiento
Directo: Es cuando el proceso receptor sabe el origen del mensaje.
Indirecto: cuando el proceso receptor tiene un buzón al cual llegan todos los
demás mensajes.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                SISTEMAS OPERATIVOS
                            DECANATURA DE INGENIERÍA
                         Técnico Profesional en sistemas        DOCENTE
                            e Ingeniería de Sistemas            OSCAR W. MENDOZA M.
                   TALLER CONCURRENCIA Y EXCLUSION MUTUA


Comente los aspectos más relevantes del problema de Lectores y Escritores:

Este problema consiste en tener varios lectores al mismo tiempo, cuando un
escritor se encuentra cambiando la información, no puede haber mas
escritores utilizándolo. Si no fuera de esta manera todos los escritores
saturarían el sistema. El tener muchos lectores es realmente que solo un
lector acceda a la información, pero en el momento en que el escritor ingresa,
los lectores se marchan y el escritor puede modificar la información.

Más contenido relacionado

La actualidad más candente

Java excepciones
Java excepcionesJava excepciones
Java excepcionesricardo_79
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...Oscar V
 
Clase 1
Clase 1Clase 1
Clase 1
Gugui Maguna
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepciones
Jyoc X
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
Renny Batista
 
Excepciones
ExcepcionesExcepciones
Excepciones
Ronny Parra
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
jbersosa
 
Excepciones
ExcepcionesExcepciones
Excepcionesrilara
 
Semana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuarioSemana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuariovictdiazm
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
www.mentoringit.com.mx
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
jbersosa
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
John Ortiz
 
Excepciones
ExcepcionesExcepciones
Excepciones
ale8819
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gioRobert Wolf
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesAndoni Eguíluz Morán
 
Java exceptions
Java exceptionsJava exceptions
Java exceptionssandropaul
 

La actualidad más candente (20)

Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
 
Clase 1
Clase 1Clase 1
Clase 1
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepciones
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Tema0397
Tema0397Tema0397
Tema0397
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Semana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuarioSemana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuario
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
Resumen
ResumenResumen
Resumen
 

Similar a Taller concurrencia y exclusión mutua.

Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
Lorena Ramos
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
puracastillo
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
Universidad Peruana del Oriente
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
Crisel777
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
Instituto Tecnológico de Tepic
 
Presentación1
Presentación1Presentación1
Presentación1
janet290
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
RicardoCarrillo399
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
nerexi
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
Llabajo Baez
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutuatatyseli
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
Selqit Mgw
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosAbimael hernandez
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
Uriel Martinez Cervantes
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
mastermind87
 
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
lupita zume
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforo
JHOVANI189612GAZGA
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo Vero Mateus
 
Sincronizacion de procesos
Sincronizacion de procesosSincronizacion de procesos
Sincronizacion de procesoskruskaya salazar
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
honeyjimenez
 

Similar a Taller concurrencia y exclusión mutua. (20)

Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 
Sincronizacion de Procesos
Sincronizacion de ProcesosSincronizacion de Procesos
Sincronizacion de Procesos
 
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica
 
Exclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforoExclusión mutua, sección critica y semáforo
Exclusión mutua, sección critica y semáforo
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo
 
Sincronizacion de procesos
Sincronizacion de procesosSincronizacion de procesos
Sincronizacion de procesos
 
Procesos
ProcesosProcesos
Procesos
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 

Taller concurrencia y exclusión mutua.

  • 1. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA Ivonne Mayorga 2011152161 Celly Andrea Bohórquez 2010152116 ¿Qué es concurrencia? Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro. Determine las causas posibles de la concurrencia: La concurrencia se puede presentar por causa como la Multiprogramación, donde el tiempo del procesador es compartido dinámicamente entre varios procesos activos. Aplicaciones Estructuradas: debido a los procesos de diseño modular y programación estructurada y por ultimo por la estructura del sistema operativo sistemas monoprocesadores, multiprocesadores y distribuidos. ¿Qué elementos de gestión y diseño surgen por causa de la concurrencia? • El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio del Bloque de control de Procesos. • El sistema operativo debe asignar y quitar distintos recursos a cada proceso activo. Entre estos recursos incluyen. * Tiempo de procesador: Es la función de la planificación. * Memoria: Se emplea esquemas de memoria virtual. * Archivos * Dispositivos de entrada y salida. • El S.O debe de 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. Defina: Interacción, Competencia y cooperación
  • 2. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA Interacción: Es cuando varios procesos se encuentran en la memoria y dependiendo del conocimiento que tenga entre ellas, se dirá, si hay relaciones entre ellas. Competencia: Es la enfrentamiento entre los procesos por el uso de un recurso en especifico y al igual que en cualquier competencia, gane el primero en llegar al uso del recurso. Cooperación: es el nexo entre dos o más procesos actual que entran a un mismo recurso, esto por medio de algoritmos, dando una guía para que estos accedan a otro recursos. ¿Qué es exclusión mutua? Se refiere al problema de asegurar que no hay dos procesos o hilos (en adelante referido únicamente como procesos) puede estar en su sección crítica al mismo tiempo. Aquí, una sección crítica se refiere a un período de tiempo en el proceso de acceso a un recurso compartido, como la memoria compartida. El problema de la exclusión mutua fue identificado por primera vez y resueltos por Edsger W. Dijkstra en su seminal artículo de 1965 titulado: Solución de un problema en el control de la programación concurrente Mediante ejemplos describa el Algoritmo de Dekker: El algoritmo de dekker se refiere principalmente a la programación concurrente donde se especifica en la ejecución de dos procesos o dos hilos, donde comparte el mismo recurso sin conflictos, fue uno de los primeros algoritmos con exclusión mutua, y se crearon cinco intentos de algoritmos donde los primeros cuatro provoca algo de conflictos aunque el quinto intento no provoco nada de conflictos. Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su desventaja es que acopla los procesos fuertemente, esto significa que los procesos lentos atrasan a los procesos rápidos.
  • 3. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA Versión 2: Problema interbloqueo. No existe la alternancia, aunque ambos procesos caen a un mismo estado y nunca salen de ahí. Versión 3: Colisión región crítica no garantiza la exclusión mutua. Este algoritmo no evita que dos procesos puedan acceder al mismo tiempo a la región crítica. Versión 4: Postergación indefinida. Aunque los procesos no están en interbloqueo, un proceso o varios se quedan esperando a que suceda un evento que tal vez nunca suceda. El último intento es la Combinación entre: • Primer intento y cuarto intento • Cuando P0 quiere entrar en su sección crítica pone Señal [0]=cierto; y comprueba la señal de P1. • Si está a falso, entra inmediatamente. • Si está a cierto, consulta turno: • Si turno==0; sigue verificando la señal de P1. • Si turno==1; desactiva su señal y espera hasta que turno==0; Proceso 0 Proceso 1 … … señal[0] = cierto; señal[1]=cierto; while (señal[1]) while (señal[0]) if (turno==1){ if (turno==0){ señal[0]=falso; señal[1]=falso; while (turno==1); while (turno==0); /*esperar*/ /*esperar*/ señal[0]=cierto; señal[1]=cierto; } } /*sección crítica*/ /*sección crítica*/ turno=1; turno=0; señal[0] = falso; señal[1] = falso; ... … Mediante ejemplos describa Algoritmo de Peterson: Más simple que el de Dekker, garantiza la exclusión mutua: • Cada proceso tiene un turno para entrar en la sección crítica.
  • 4. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA • Si un proceso desea entrar en la sección crítica, debe activar su señal y puede que tenga que esperar a que llegue su turno. „ Impide el interbloqueo ya que si un proceso se encuentra esperando en el “while”, entonces la señal y el turno del otro proceso están activadas. El proceso que está esperando entrará en su sección crítica cuando la señal o el turno del otro se desactiven. Proceso 0 Proceso 1 ... … while(cierto){ while(cierto){ señal[0] = cierto; señal[1]=cierto; turno=1; turno=0; while (señal[1]&&turno==1); while (señal[0]&&turno==0); /*esperar*/ /*esperar*/ /*sección crítica*/ /*sección crítica*/ señal[0]=falso; señal[1]=falso; ... ... } } Describa el propósito de las soluciones al problema de concurrencia por hardware: En los monoprocesadores se debe asegurar que un proceso no sea suspendido en un sector crítico de su código de ejecución, pues esto generaría un error y estropearía cualquier acción realizada por este proceso. En el caso de multiprocesador son utilizadas instrucciones de maquina, se podría respaldar el ingreso a su sección critica, entre el código y una pequeña parte de la posición de memoria. Durante la ejecución de la sección critica los demás procesos están en espera activa, hasta que este termine para poder acceder a esta posición de memoria. ¿Defina qué son los semáforos? • Mecanismo frente a problemas de concurrencia. • „ Funcionamiento basado en la cooperación entre procesos. • „ Uso de señales, podemos obligar a un proceso a detenerse hasta que reciba una señal.
  • 5. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA Los semáforos se pueden considerar variables enteras sobre las que se definen las siguientes operaciones: • Un semáforo puede iniciarse con un valor no negativo. • La operación wait() reduce el valor del semáforo. Si el valor se hace negativo, el proceso que la ejecuta se bloquea. • La operación signal() incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea un proceso. Describa en sus palabras el problema del Productor/Consumidor y la solución respectiva: Permite el acceso por parte de los procesos productores y procesos consumidores donde un recurso común es un buffer de elementos y los productores intentan ingresar elementos en el buffer de uno en uno, y los consumidores tratan de sacar elementos de uno en uno. Su consistencia permite que la información almacenada en el buffer, muestre un acceso a los productores y consumidores pues estos deben hacer una exclusión mutua. Además de esto el buffer tiene una capacidad limitada por lo que el
  • 6. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA acceso por parte de un productor para ingresar un elemento en el buffer lleno debe causar la detención del proceso productor. A si mismo sucede para el consumidor que intente sacar un elemento del buffer vacío. Establezca las características más importantes de la solución al problema de la concurrencia a través de la exclusión mutua utilizando Monitores: Defina: Paso de mensajes: Proporcionan una solución al problema de la concurrencia de procesos que integra la sincronización y la comunicación entre ellos y resulta adecuado tanto para sistemas centralizados como para distribuidos. La comunicación mediante mensajes necesita siempre de un proceso emisor y otro proceso receptor, y la información debe intercambiarse. Las operaciones básicas para una comunicación mediante mensajes que proporciona todo sistema operativo son: enviar (mensaje) y recibir (mensaje). La comunicación por mensajes requiere que se establezca un enlace entre emisor y receptor. Direccionamiento: Es la forma de hacer el envió de mensajes de un proceso a otro. Hay dos tipos de direccionamiento Directo: Es cuando el proceso receptor sabe el origen del mensaje. Indirecto: cuando el proceso receptor tiene un buzón al cual llegan todos los demás mensajes.
  • 7. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Técnico Profesional en sistemas DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER CONCURRENCIA Y EXCLUSION MUTUA Comente los aspectos más relevantes del problema de Lectores y Escritores: Este problema consiste en tener varios lectores al mismo tiempo, cuando un escritor se encuentra cambiando la información, no puede haber mas escritores utilizándolo. Si no fuera de esta manera todos los escritores saturarían el sistema. El tener muchos lectores es realmente que solo un lector acceda a la información, pero en el momento en que el escritor ingresa, los lectores se marchan y el escritor puede modificar la información.