Este documento trata sobre concurrencia y exclusión mutua. Explica qué es la concurrencia y sus causas, como la multiprogramación. También describe elementos de gestión que surgen de la concurrencia, como el bloque de control de procesos. Luego define términos como interacción, competencia y cooperación. Por último, explica algoritmos para lograr exclusión mutua como los de Dekker y Peterson y el problema de productor-consumidor.
puntos a tratar en el texto
-Proceso de un S.O:
-Tipos de Procesos por un S.O
-Tipos de procesos
-Según su diseño:
-Según su propietario:
-Sistema de comunicaciones
-Los servicios básicos de comunicación son:
-La comunicación puede ser síncrona y asíncrona:
Tipos de Buses por su Tecnología:
• Bus de Datos
• Bus de Dirección:
• Bus de Control:
Significado de siglas de los Buses
-Qué es Sincronización de Procesos
-Tipos de sincronización del S.O
-Que es una Sección Crítica
-El problema de la sección crítica
-¿Qué es Interbloqueo?
-Condiciones para que se cumpla (Interbloqueo):
l Administrador de Procesos trabaja junto con el Microkernel para proporcionar los servicios esenciales el sistema operativo. El Administrador de Procesos es responsable de la creación de nuevos procesos en el sistema y de la administración de los recursos más fundamentales asociados con un proceso. Estos servicios se proporcionan mediante mensajes.
Si un proceso quiere crear un nuevo proceso, simplemente ha de enviar un mensaje que contenga los detalles del nuevo proceso a crear. Además se puede crear un proceso en otro nodo fácilmente, enviando un mensaje de creación de proceso al Administrador de Procesos de la máquina remota.
puntos a tratar en el texto
-Proceso de un S.O:
-Tipos de Procesos por un S.O
-Tipos de procesos
-Según su diseño:
-Según su propietario:
-Sistema de comunicaciones
-Los servicios básicos de comunicación son:
-La comunicación puede ser síncrona y asíncrona:
Tipos de Buses por su Tecnología:
• Bus de Datos
• Bus de Dirección:
• Bus de Control:
Significado de siglas de los Buses
-Qué es Sincronización de Procesos
-Tipos de sincronización del S.O
-Que es una Sección Crítica
-El problema de la sección crítica
-¿Qué es Interbloqueo?
-Condiciones para que se cumpla (Interbloqueo):
l Administrador de Procesos trabaja junto con el Microkernel para proporcionar los servicios esenciales el sistema operativo. El Administrador de Procesos es responsable de la creación de nuevos procesos en el sistema y de la administración de los recursos más fundamentales asociados con un proceso. Estos servicios se proporcionan mediante mensajes.
Si un proceso quiere crear un nuevo proceso, simplemente ha de enviar un mensaje que contenga los detalles del nuevo proceso a crear. Además se puede crear un proceso en otro nodo fácilmente, enviando un mensaje de creación de proceso al Administrador de Procesos de la máquina remota.
Cursos gratis de programación en Java.Excepciones. Orientado a Grado, DAM y DAW. Otros cursos disponibles para Android, Swift, Base de datos, javascript, servicios y procesos...
Cursos gratis de programación en Java.Excepciones. Orientado a Grado, DAM y DAW. Otros cursos disponibles para Android, Swift, Base de datos, javascript, servicios y procesos...
Un semáforo es una estructura diseñada para sincronizar dos o más procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
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.