Procesos e Hilos
Procesos
Se puede decir que es un espíritu animado de un programa.Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados.
La unidad mínima de expedición y de asignación de recursos es el proceso.
Si el proceso intenta por algún motivo intencionalmente o no acceder a alguna dirección de memoria de otro proceso, el programa termina anormalmente con un ‘Segmentation fault’. En el momento en el que el proceso termina, el sistema operativo libera toda la memoria y todos los recursos asignados al proceso
Un proceso es cualquier programa en ejecución. este necesita
ciertos recursos para realizar satisfactoriamente su tarea:
- Tiempo de CPU.
-Memoria.
-Archivos.
- Dispositivos de
E/S.
Las obligaciones del SO como gestor de procesos son:
- Creación y
eliminación de procesos.
- Planificación de
procesos (procurando la ejecución de múltiples procesos maximizando la utilización del procesador).
- Establecimiento de
mecanismos para la sincronización y comunicación de procesos.
- Manejo de bloqueos
mutuos.
Hilos
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.
¿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 paralelo?
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).
Referencias:
http://systope.blogspot.com/2012/05/procesos-e-hilos.html
https://es.quora.com/Cu%C3%A1l-es-la-diferencia-entre-un-proceso-y-un-hilo
https://webprogramacion.com/1/sistemas-operativos/procesos-e-hilos.aspx
Comentarios
Publicar un comentario