Está en la página 1de 3

¿Cual es la diferencia entre proceso e hilo?

Un proceso de unix es cualquier programa en ejecución y es totalmente independiente de


otros procesos. El comando de unix ps nos lista los procesos en ejecución en nuestra
máquina. Un proceso tiene su propia zona de memoria y se ejecuta "simultáneamente" a
otros procesos. Es totalemente imposible en unix que un proceso se meta, a posta o por
equivocación, en la zona de memoria de otro proceso. Esta es una de las características que
hace de unix un sistema fiable. Un programa malintencionado no puede fastidiar otros
programas en ejecución ni mucho menos a los del sistema operativo. Si el programa
malintencionado se cae, se cae sólo él.
Dentro de un proceso puede haber varios hilos de ejecución. Eso quiere decir que un
proceso podría estar haciendo varias cosas "a la vez". Los hilos dentro de un proceso
comparten todos la misma memoria. Eso quiere decir que si un hilo toca una variable, todos
los demás hilos del mismo proceso verán el nuevo valor de la variable. Esto hace
imprescindible el uso de semaforos o mutex para evitar que dos threads accedan a la vez a
la misma estructura de datos. También hace que si un hilo "se equivoca" y corrompe una
zona de memoria, todos los demás hilos del mismo proceso vean la memoria corrompida. Un
fallo en un hilo puede hacer fallar a todos los demás hilos del mismo proceso.

Conceptos de Hilo
Un proceso típico de Unix puede ser visto como un único hilo de control: cada proceso hace
sólo una cosa a la vez. Con múltiples hilos de control podemos hace más de una cosa a la
vez cuando cada hilo de hace cargo de una tarea.
Beneficios de hilos:

• Se puede manejar eventos asíncronos asignando un hilo a cada tipo de evento.


• Los hilos de un proceso comparten el mismo espacio de direcciones y descriptores de
archivos.
• Procesos con múltiples tareas independientes pueden terminar antes si éstas tareas
se desarrollan traslapadamente en hilos separados.
• Programas interactivos pueden lograr mejor tiempo de respuesta usando hilos para
manejar la entrada y salida. Este es un ejemplo del punto previo.
• La creación de un hilo es mucho más rápida y toma menos recursos que la creación
de un proceso.
Multi hilos se aplica a máquinas con uno o múltiples procesadores.
Un hilo consiste de la información necesaria para representar un contexto de aplicación
dentro de un proceso. Ésta es:
• Stack pointer
• Registros
• Propiedades de itineración (como política y prioridad)
• Conjunto de señales pendientes y bloquedas.
• Datos específicos del hilo
Ilustración 1: Proceso UNIX
Ilustración 2 Proceso UNIX con hilos
Un paquete de manejo de hilos generalmente incluye funciones para: crear y destruir un hilo,
itineración, forzar exclusión mutua y espera condicionada.
Los hilos de un proceso comparten variables globales, descriptores de archivos abiertos, y
puede cooperar o interferir con otros hilos.
Todas las funciones de hilos del POSIX comienzan con pthread. Ellas son :

También podría gustarte