You are on page 1of 15

UNIVERSIDAD ESTATAL DE MILAGRO

FACULTAD CIENCIAS DE LA INGENIERÍA


INGENIERÍA EN SISTEMAS

TEMA:
“PROCESOS CONCURRENTES.”

INTEGRANTES:
CARDENAS JOSE
REMACHE JORGE
TORRES ANGEL
VARELA MICHAEL

DOCENTE:
ING. JAVIER BERMEO
Procesos Concurrentes

 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
 En sistemas multiprocesador, esta ejecución simultánea podría
conseguirse completamente, puesto que podremos asignarle, por
ejemplo, un proceso A al procesador A y un proceso B al procesador B y
cada procesador realizaran la ejecución de su proceso.
Tipos de concurrencia

 Concurrencia aparente: Hay más  Concurrencia real: Cada proceso se


procesos que procesadores. ejecuta en un procesador.
 Los procesos se multiplexan en  Se produce una ejecución en
el tiempo. paralelos.
 Pseudoparalelismo  Paralelismo real.
Tipos de procesos concurrentes
 Independientes
Procesos que se ejecutan concurrentemente, pero sin ninguna relación.
 No necesitan comunicarse.
 No necesitan sincronizarse.
 Ejemplo: Dos intérpretes de mandatos de dos usuarios ejecutados en distintos
terminales
 Cooperantes
Procesos que se ejecutan concurrentemente con alguna interacción entre
ellos.
 Pueden comunicarse entre sí.
 Pueden sincronizarse.
 Ejemplo: Servidor de transacciones organizado en proceso receptor y procesos de
tratamiento de peticiones
Interacciones entre procesos
 Acceso a recursos compartidos.
 Procesos que comparten un recurso.
 Procesos que compiten por un recurso.
 Ejemplo: Servidor de peticiones en la que distintos procesos escriben en un registro
de actividad (log).
 Comunicación.
 Procesos que intercambian información.
 Ejemplo: Receptor de peticiones debe pasar información a proceso de tratamiento de
petición.
 Sincronización.
 Un proceso debe esperar a un evento en otro proceso.
 Ejemplo: Un proceso de presentación debe esperar a que todos los procesos de
cálculo terminen.
Procesamiento Paralelo

 Las arquitecturas paralelas tienen un notable


incremento en la velocidad de procesamiento. 
 En computación, el procesamiento paralelo es la
ejecución de diferentes procesos en dos o más
procesadores al mismo tiempo, donde estos
procesos juntos resuelven un problema
completamente. 
 Un proceso debe entenderse como un fragmento de
código en ejecución que convive con otros
fragmentos
 El procesamiento paralelo ofrece una gran ventaja
en cuanto a costos. Sin embargo, su principal
beneficio, la escalabilidad (crecer hacia arquitecturas
de mayor capacidad), puede ser difícil de alcanzar
aún. Esto se debe a que conforme se añaden
procesadores, las disputas por los recursos
compartidos se intensifican. 
SISTEMAS DE MULTIPROCESAMIENTO
 Un sistema de multiprocesamiento consiste en una computadora que tiene
más de un procesador (o bien en una serie de computadoras con CPU’s o
procesadores independientes). La mayoría de computadoras supervisoras
se diseñan específicamente para dar soporte a múltiples procesadores.
Incluyen un bus de altas prestaciones, decenas de MB para memoria con
corrección de errores, sistemas de disco redundantes, arquitecturas
avanzadas de sistemas que reducen los cuellos de botella utilidades
redundantes, como múltiples fuentes de alimentación.
Multiproceso Simétrico SMP (del inglés Symmetric Multi-Processing,
en español "multiproceso simétrico") es un
tipo de arquitectura de computadores en la
que dos o más unidades de procesamiento
comparten una única memoria central.
Una de las soluciones posibles para aumentar
el rendimiento de los servidores, y en general
de cualquier PC, es dotar a la máquina de
más de un procesador.
Determinadas aplicaciones necesitan una
potencia de CPU que nunca es
suficientemente elevada como, por ejemplo,
los programas de animación y render en tres
dimensiones o, en otro terreno, los equipos
encargados de trabajar como servidores de
entornos de red con muchas máquinas
cliente.
Multiprocesador Asimétrico

En el asimétrico hay un procesador (maestro) en


el cual se ejecuta el sistema operativo y los
demás (esclavos) donde se ejecutan las demás
tareas. La ventaja de éste es que al aumentar más
procesadores se tiene que hacer un cambio
mínimo y fácil para el manejo de éstos y en
general se eliminan muchos problemas de
integridad de datos. La gran desventaja es que al
haber sólo una copia del sistema operativo en un
sólo procesador (maestro) cuando este procesador
falla todo el sistema falla porque todos los
recursos que son manejados por el sistema
operativo no pueden ser accesados.
Cooperación entre procesos
 Los procesos concurrentes se pueden ejecutar en un entorno aislado o,
eventualmente, podrán interactuar cooperando en pos de un objetivo
común compartiendo objetos comunes.
 Es necesario que el sistema operativo brinde unas herramientas
específicas para la comunicación y sincronización entre los procesos
 IPC es una herramienta que permite a los procesos comunicarse y
sincronizarse sin compartir el espacio de direccionamiento en memoria.
Threads
 Un Thread (Hilo) es una unidad básica de utilización de la CPU
consistente en un juego de registros y un espacio de pila. Es también
conocido como proceso ligero.
 Una tarea (o proceso pesado) está formado ahora por uno o varios
threads. Un thread puede pertenecer a una sola tarea.
 Todos los recursos, sección de código y datos son compartidos por los
distintos threads de un mismo proceso.
Ventajas del uso de threads
 Compartir recursos: Los threads de un proceso comparten la memoria
y los recursos que utilizan. A diferencia de IPC, no es necesario acceder
al kernel para comunicar o sincronizar los hilos de ejecución
 Economía: Es más fácil un cambio de contexto entre threads ya que no
es necesario cambiar el espacio de direccionamiento. A su vez, es más
“liviano” para el sistema operativo crear un thread que crear un proceso
nuevo.
 Utilización de arquitecturas con multiprocesadores: Disponer de
una arquitectura con más de un procesador permite que los threads de
un mismo proceso ejecuten en forma paralela.
 Respuesta: Desarrollar una aplicación con varios hilos de control
(threads) permite tener un mejor tiempo de respuesta.
Desventaja del uso de threads
 Dificulta la programación: Al compartir todo el espacio de
direccionamiento un thread mal programado puede romper el
funcionamiento del resto de los threads.

You might also like