Diferencia entre hilo y prceso
Proceso
Un
‘proceso’ es una entidad de ejecución independiente, donde, el sistema
operativo, en el momento en que el proceso se lanza, proporciona un
espacio de direcciones de memoria en los que el proceso puede
ejecutarse. De esta manera, si el proceso intenta por algún motivo
intencionalmente o no acceder a alguna dirección de memoria de otro
proceso, el programa termina normalmente con un ‘Segmentation fault’. En
el momento en el que el proceso termina, el sistema operativo libera
toda la memoria y todos los recursos (‘handles de archivos’, ‘handles de
registros’, etc.) asignados al proceso.
Hilo
Los
hilos son entidades de ejecución independiente que viven dentro de los
procesos y, por tanto, viven dentro del mismo espacio de direcciones de
memoria que otros hilos, lo que permite acceder a cualquier dato dentro
del mismo proceso. También la comunicación entre hilos es bastante
sencilla pues basta con invocar a una función que se va a ejecutar en
otro hilo. Aunque si bien esto de la comunicación parece ser una
ventaja, en realidad es un arma de doble filo porque gracias a esas
libertades, podemos caer, si no tenemos el suficiente cuidado, en
problemas como condiciones de carrera o deadlocks.
¿Un hilo puede ser un proceso?
Si puede porque al
igual que los procesos, los hilos poseen un estado de ejecución y pueden
sincronizarse entre ellos para evitar problemas de compartimiento de recursos.
Generalmente, cada hilo tiene una tarea específica y determinada, como forma de
aumentar la eficiencia del uso del procesador.
¿Un proceso puede ser paralelo?
El proceso paralelo sólo es posible si disponemos de varias
unidades de proceso, generalmente núcleos o procesadores. Esto se debe a que
los procesadores son secuenciales, esto es, ejecutan las órdenes una por
una, y por tanto no pueden ejecutar dos a la vez.
¿Un hilo puede ser un proceso?
Los hilos son básicamente una tarea que puede ser
ejecutada en paralelo con otra tarea; teniendo en cuenta lo que es propio de
cada hilo es el contador de programa, la pila de ejecución y
el estado de la CPU (incluyendo el valor
de los registros).
Referencia: http://mizael123456789.blogspot.com/
Comentarios
Publicar un comentario