Professional Documents
Culture Documents
A lo largo de la vida de un proceso, este va pasando por diferentes etapas, las cuales son:
Nuevo: Se solicitó al sistema la creación de un proceso, y sus recursos y estructuras
están siendo creadas
Listo: Está listo para ser asignado para su ejecución
En ejecución: El proceso está siendo ejecutado
Bloqueado: En espera de algún evento para poder continuar ejecutándose
Terminado: El proceso terminó de ejecutarse; sus estructuras están a la espera de
ser borradas por el sistema
En la siguiente imagen podemos ver de manera gráficas, el ciclo de vida de los procesos
El cambio de estados que permiten los procesos nos permite la concurrencia entre los
mismos; es decir, la ejecución de los mismos parece simultánea, pero en realidad el CPU
está saltando entre un proceso y otro. Mientras un proceso se está ejecutando el otro se
encuentra en espera (bloqueado). Cuando el equipo cuenta con más de un CPU se pueden
ejecutar varios procesos en forma paralela, pero cada CPU solamente ejecuta un proceso
a la vez. El tiempo que el sistema operativo destina al cambio de estado de cada uno de
los procesos se conoce como overhead, este tiempo que podríamos creer despreciable,
puede ahorrarse si las condiciones de la concurrencia de procesos lo permitieran, por
ejemplo, si los procesos comparten información entre ellos.
Los hilos heredan los estados de Listo, Ejecución y bloqueado del proceso, pero resaltan
por las ventajas que su utilización conlleva.
Respuesta: el tiempo de respuesta mejora, ya que el programa puede continuar
ejecutándose, aunque parte de él esté bloqueado.
• Compartir recursos: los hilos comparten la memoria y los recursos del proceso al que
pertenecen, por lo que se puede tener varios hilos de ejecución dentro del mismo espacio
de direcciones.
• Economía: Es más fácil la creación, cambio de contexto y gestión de hilos que de
procesos.
• Utilización múltiples CPU: permite que hilos de un mismo proceso ejecuten en diferentes
CPU a la vez. En un proceso mono-hilo, un proceso ejecuta en una única CPU,
independientemente de cuantas tenga disponibles.
HILOS
PROCESOS
Creación Costosa Ligera
Recursos y memoria Independiente Compartida
Comunicación Compleja Sencilla
Cambio por SO Muy lento Rápido
Complejidad en programación Reducida Alta
Aunque los hilos comparten muchas características con los procesos, no podemos concluir que
son lo mismo; entre las principales diferencias que tienen encontramos: