Está en la página 1de 7

SISTEMAS CONCURRENTES

Bernal_F, S.J stivofuertes@gmail.com


Montiel _N, O.S 100oscarmx@gmail.com
Téllez_M, J.B josue110114@gmail.com

CONCURRENCIA INTERACCIÓN ENTRE PROCESOS

Se define como la simultaneidad de hechos, se Se presenta la concurrencia cuando existe, la


dice que un programa es concurrente cuando multiprogramación de aplicaciones
ciertas unidades de ejecución internamente independientes, aplicaciones con varios
secuenciales, se ejecutan de manera paralela o procesos, uso de las estructuras de datos del
de forma simultánea. Este término indica Sistema Operativo, el computador dispone de
paralelismo potencial. varios procesadores.

Existen 3 formas de ejecutar los procesos


Es importante mencionar que la interacción
concurrentes, estos son:
entre procesos interactúa de 3 maneras, la
1. Multiplexa sus ejecuciones sobre un primera de ellas es la competencia por recursos
escasos, en esta parte los procesos no conocen
único procesador a esto se le llama
a los demás, en el segundo hay una cooperación
multiprogramación. En un sistema
por cada compartición, aquí se conoce
multiprogramado los procesos se
indirectamente a los demás procesos, y en el
intercalan.
2. Multiplexa sus ejecuciones sobre un último de los procesos hay una cooperación por
comunicación, lo cual hace referencia a que los
sistema de multiprocesador de
memoria compartida, a esto se le llama procesos ya conocen directamente a los otros.
multiproceso.
Siendo más específicos en cada uno, iniciamos
3. Multiplexa sus ejecuciones en varios
con el de la competencia por los recursos
procesadores que no comparten la
escasos, tomando como ejemplo el siguiente,
memoria, a esto se le llama proceso
distribuido. Con varios procesadores donde si hay dos procesos que están
compitiendo por un recurso, lo que el sistema
los procesos se superponen.
operativo realiza es asignarle un recurso a uno,
mientras que el otro tiene que esperar.
Presentará problemas como lo es un
interbloqueo, con esto quiere decir que hay un
estancamiento, también hay una inanición y una
exclusión mutua.

Un problema de la concurrencia es que en el


tema de la multiprogramación no es posible
predecir la velocidad relativa de los procesos,
cada actividad va a depender de las actividades
de los demás procesos y de la forma como el
Sistema Operativo trata las interrupciones. Para el caso de cooperación por compartición
se hace esto para evitar inconsistencias, así bloqueados los procesos esperan uno al otro y
mismo los recursos compartidos se tienen, para la inanición, los procesos siempre están
como ficheros, bases de datos y variables bloqueados y nunca acceden a los recursos que
compartidas. Hay dos soluciones para esta y en necesitan.
la primera hace referencia a la exclusión mutua,
donde la escritura debe ser mutuamente SECCIÓN CRÍTICA
excluyente, mientras que en la sección crítica la
lectura puede ser concurrente. Se denomina así en programación concurrente
a la porción de código de un programa de
ordenador en la que se accede a un recurso
compartido que no debe ser accedido por más
de un proceso o hilo de ejecución. No solo un
programa puede acceder a su sección crítica en
un momento dado, no se puede confiar
simplemente en el Sistema Operativo para
hacer cumplir esta restricción, un ejemplo de
ello es cuando solo un proceso en cada
momento estará enviando comandos a la
impresora y se muestra de la siguiente manera.
En la cooperación para la comunicación, no se
comparten recursos, no hay exclusión mutua.
Los problemas que va a presentar serán los
siguientes debido a que los procesos ya se
conocen, y estos son Interbloque donde cada
proceso espera un mensaje del otro proceso.
En la inanición se presenta cuando dos procesan
envían su mensaje mutuamente mientras que
esperan un mensaje del otro proceso.
Un ejemplo de interbloqueo es lo siguiente Hay una serie de requerimientos de exclusión
mutua. El primero sólo un proceso accede a la
vez a su SC. la segunda hace referencia a un
proceso suspendido en su SC no debe estorbar
a otros, en la tercera se hace referencia a la no
inanición, no interbloqueo. Si un proceso
solicita acceso a su SC no debe demorar su
atención. En la cuarta si ningún proceso está en
su SC, no se puede evitar que otro proceso entre
Hay una serie de problemas potenciales a a su SC. En la quinta se habla de no suponer la
resolver, donde el primero nos habla de la velocidad relativa de los procesos. y en la
exclusión mutua, está básicamente es un última se permanece en la SC por un tiempo
mecanismo empleado en el diseño de los finito.
sistemas operativos para evitar los problemas
de competencia por recursos, se basa en definir Un ejemplo que podemos ver de inanición, es
una zona o región crítica la cual está marcada el siguiente donde hay 3 procesos.
por las instrucciones que hacen uso del recurso
en competencia llamado recurso crítico.
También hay un interbloqueo donde al estar
Nonblocking reciba, ni la fiesta se requiere para
esperar.

DIRECCIONAMIENTO
Direccionamiento directo lo que se realiza es lo
que siguiente que envíe primitivo incluya un
identificador específico del proceso de destino,
reciba el primitivo pudo saber adelantado que
procese un mensaje es esperado, reciba el
primitivo pudo usar parámetro de fuente para
retornar un valor cuando la operación de
La desactivación de interrupciones, variables receive ha sido ejecutado
de cerradura y alternancia estricta, son métodos Direccionamiento indirecto, los mensajes son
que no cumplen las 4 condiciones de exclusión enviados a una estructura de datos dividida
mutua. consistiendo de las colas, las colas son llamados
los buzones, un proceso envía a un mensaje
Sin embargo, un método que si cumple con para el buzón y el otro proceso romper y
dicha condición es el algoritmo de Peterson que remover el mensaje del buzón
consiste en utilizar una variable global llamada
señal que indica el interés de los procesos por SEMÁFOROS
entrar a su SC y una variable llamada turno que La espera activa es insuficiente, es decir, los
resuelve los conflictos simultaneidad. procesos ocupan el procesador incluso aunque
no puedan avanzar.
INTERRUPCIONES El uso de variables compartidas genera
esquemas demasiados complejos, muy
Respecto a eso se dice que un proceso corre artificiales, inadecuados y propensos a errores.
hasta que invoca un servicio del sistema Los semáforos son señales simples que pueden
operativo o hasta que es interrumpido. También obligar a un proceso a detenerse en una
deshabilitar interrupciones garantiza la posición determinada. Con la estructura
exclusión mutua, pero también es limitado en adecuada podemos satisfacer requisitos de
su habilidad para intercalar programas. coordinación.
Estos son un tipo de TAD (tipo abstracto de
En multiproceso inhabilitar las interrupciones datos) formado por un valor numérico y una
puede no garantizar la exclusión mutua. cola de procesos bloqueados que fueron
Instrucciones especiales de máquina, ejecutó en inventados por Edsger Dijkstra en 1965 y se
un ciclo de instrucción sencillo, no sujeto a la utilizan para bloquear un proceso cuando este
interferencia de otras instrucciones, leyendo y no puede realizar la operación deseada, en lugar
escribiendo, leyendo y probando. de desperdiciar tiempo de CPU.

SINCRONIZACIÓN
Remitente y receptor no pueden estar
bloqueando (esperando para mensaje) El
entramado envía, bloqueando reciba.
El Nonblocking envía, bloqueando reciba – El
remitente continúa el proceso tales como La imagen anterior muestra la inicialización de
mensajes de transmisión tan pronto como sea un semáforo y para las operaciones sobre
posible. El receptor es bloqueado hasta que el semáforos, como la operación P (wait, acquire
mensaje pedido llegue. El Nonblocking envía, o lock) y la operación V (signal, release o post).
Además, se mencionan algunas otras requieren otros valores, como ejemplo el
operaciones que dependen de la número máximo de procesos, de impresoras, de
implementación concreta y se señala que la procesadores, etc. Estos se denominan
definición de un semáforo implica la exclusión multiplexes.
mutua en la ejecución de las operaciones por él
definidas. Está también el algoritmo de Bartz que sirve
para simular semáforos generales con
Los semáforos son una herramienta para semáforos binarios, como ejemplo el siguiente
resolver problemas de exclusión mutua (sólo código.
uno de los procesos debe estar en la sección
crítica en un instante dado) y en la exclusión
de sincronización (esperar la concurrencia de
un evento para que siga ejecutándose).

También, la condición de sincronización que se


asocia con un semáforo general a cada
condición, al igual que un proceso espera a que
Tenemos un ejemplo de exclusión mutua que el una condición se cumpla ejecutando desde un
proceso al entrar a la sección crítica decrementa principio una operación wait.
su valor y continuará. Si el proceso desea
entrar, value será 0 y se bloqueará hasta que se Dentro de los semáforos existen dos tipos que
ejecute signal. son los fuertes (la cola de procesos sigue una
política FIFO estricta) y los débiles (que es si
Los candados, mutexes o locks son semáforos los procesos se seleccionan aleatoriamente).
binarios optimizados para exclusión mutua.
Existen los semáforos para procesos como
USO DE CANDADOS System V. Estos se componen de:
- El valor del semáforo
- El identificador del último proceso que
lo manipuló
- El número de procesos que hay
esperando a que el valor del semáforo
se incremente
- El número de procesos que hay
Cada lenguaje de programación podemos esperando a que el semáforo tome
encontrar diferente el Mutex, en rust - el valor 0
disponemos de hilos y primitivas, pero no de
semáforos, para ello se necesita una biblioteca COMIDA DE FILÓSOFOS
externa.
- Cinco filósofos se dedican a pensar y a
comer en una mesa circular.
SINCRONIZACIÓN GENÉRICA
- En el centro de la mesa hay un cuenco
El valor del semáforo puede interpretarse como con arroz, y la mesa está puesta con
un indicador del número de recursos
disponibles. En mecanismos más complejos
cinco platos y cinco palillos, uno por que esta solución es ineficiente ya que podrían
cada filósofo. comer dos.
- Cuando un filósofo tiene hambre se
sienta en la mesa a comer en su sitio. La siguiente solución sería que el filósofo
- El filósofo sólo puede coger un palillo agarrara primero el palillo izquierdo y después
cada vez y no le puede quitar un palillo el derecho. Si alguno ya está cogido se queda
a un compañero que lo tenga en la esperando a que lo suelten, pero si todos
mano. quieren comer simultáneamente puede aparecer
- Cuando un filósofo tiene los dos un problema:
palillos come sin soltarlos hasta que
termine y vuelva a pensar.

INTERBLOQUES
- Ilustra los problemas básicos de
interbloqueo. Estos se producen cuando hay competencia por
- Representa los problemas relacionados recursos compartidos, estos se bloquean
con la coordinación de los recursos no esperando hasta que el otro libere el recurso y
compartibles de un sistema. no haya un progreso en la ejecución
- Es objeto habitual de estudio y
comparación entre los diferentes Para resolverlo hay que impedir alguna de las
mecanismos de sincronización. circunstancias, romper la espera circular o que
el filósofo que provoca el interbloqueo debe
Una primera solución para la comida de coger los palillos en otro orden (fíjate que el
filósofos es: filósofo 4 ha cambiado el orden), por eso
hacemos:
- Exclusión mutua a toda la mesa
- Sólo un filósofo puede comer a la vez.

Se resuelve el interbloqueo, pero no es óptimo.


La solución óptima sería:
- Cambio de enfoque: lo vemos como un
problema de sincronización.
- Un filósofo podrá estar en cualquiera SINCRONIZACIÓN DE PROCESOS
de estos estados: THINKING,
HUNGRY, EATING Existen dos tipos de procesos que son los
- Un filósofo podrá comer si ninguno de secuenciales y los concurrentes (es cuando dos
sus vecinos está comiendo, en otro caso procesos secuenciales se ejecutan en
espera a que le notifiquen que han paralelo, superponiéndose en el tiempo) estos
acabado. determinan sincronización y comunicación.
- No hay deadlocks, pero podría darse el
caso de que un filósofo no comiera
nunca…
- Disponemos de un array para
representar el estado de los filósofos y
un semáforo (mutex) controla la Algunos conceptos del proceso de concurrencia
exclusión mutua a este array. El array son:
sync de semáforos proporciona la
sincronización entre filósofos. - Comunicación entre procesos
- Destacar las líneas 28 y 29, en ellas se - Compartición y competencia por los
evita un deadlock. recursos
- Sincronización de la ejecución de
varios procesos
- Asignación del tiempo de procesador a
los procesos.

Aunque también tienen sus problemas, como


compartir recursos globales, gestionar la
asignación óptima de recursos y localizar un
error de programación.

Existe una competencia entre los procesos, que


el primero en mencionar es exclusión mutua,
donde sus secciones críticas son que solo un
programa puede acceder a su sección crítica en
un momento dado, como ejemplo, solo se
permite que un proceso envíe una orden a la
impresora en un momento dado.
Está también, el interbloqueo y la inanición.

Cooperación por compartimiento: En esta las


operaciones de escritura deben ser mutuamente
excluyentes y las secciones críticas garantizan
la integridad de los datos.

Cooperación por comunicación: Donde en el


paso de mensajes no es necesario el control de
la exclusión mutua.
También que puede producirse un interbloqueo
en cada proceso que puede estar esperando una
comunicación del otro o puede producirse EXCLUSIÓN MUTUA: ALGORITMO EN
inanición, donde dos procesos se están BLOQUE
mandando mensajes mientras que otro proceso
está esperando recibir un mensaje.

Entre los requisitos de la exclusión mutua está


que:

- Sólo un proceso debe tener permiso


para entrar en la sección crítica por un
recurso en un instante dado.
- Un proceso que se interrumpe en una
sección crítica debe hacerlo sin
interferir con los otros procesos.
- No puede permitirse el interbloqueo o BIBLIOGRAFIAS
la inanición.
- Cuando ningún proceso está en su (s.f.). Departamento de Lenguajes y Sistemas
sección crítica, cualquier proceso que Informáticos - Departamento de Lenguajes y
solicite entrar en la suya debe poder Sistemas Informáticos.
hacerlo sin dilación. https://www.dlsi.ua.es/asignaturas/pc/teoria/t0
- No se deben hacer suposiciones sobre 4.pdf?classId=cb836dd3-e027-43e7-a549-
la velocidad relativa de los procesos o e12b153c7676&assignmentId=421fe4a2-
el número de procesadores. 54bc-4de2-b152-
- Un proceso permanece en su sección 2baf112f59e5&submissionId=81dbb0ca-
crítica sólo por un tiempo finito. 10c2-949b-b099-9bd8e6752d1a

DIAGRAMA DE ESTRUCTURAS DE (s.f.). FCC - Facultad de Ciencias de la


CONTROL Computación BUAP.
https://www.cs.buap.mx/~hilario_sm/slide/pcp
2016/unidad%204%20pcp-
2017.pdf?classId=cb836dd3-e027-43e7-a549-
e12b153c7676&assignmentId=421fe4a2-
54bc-4de2-b152-
2baf112f59e5&submissionId=81dbb0ca-
10c2-949b-b099-9bd8e6752d1a

(s.f.).
http://repositorio.ub.edu.ar/bitstream/handle/1
23456789/5256/SOp502_U4_SincroProcesos_
2015.pdf?sequence=1&isAllowed=y

(s.f.). https://cs.uns.edu.ar/~gd/soyd/clases/04-
SincronizacionExtras.pdf?classId=cb836dd3-
e027-43e7-a549-
e12b153c7676&assignmentId=421fe4a2-
54bc-4de2-b152-
2baf112f59e5&submissionId=81dbb0ca-
10c2-949b-b099-9bd8e6752d1a

También podría gustarte