Encontré una respuesta a la pregunta here. Pero no entiendo algunas ideas en la respuesta. Por ejemplo, se dice que el proceso liviano comparte su espacio de direcciones lógicas con otros procesos. Qué significa eso? Puedo entender la misma situación con 2 hilos: ambos comparten un espacio de direcciones, por lo que ambos pueden leer cualquier variable del segmento bss (por ejemplo). Pero tenemos muchos procesos diferentes con diferentes secciones de bss y no sé cómo compartirlos.¿Cuál es la diferencia entre el proceso ligero y el hilo?
Respuesta
De MSDN, Threads and Processes: existen
procesos en el sistema operativo y se corresponden con lo que los usuarios ven como programas o aplicaciones. Un hilo, por otro lado, existe dentro de un proceso. Por esta razón, los hilos a veces se refieren a como procesos livianos. Cada proceso consta de uno o más hilos .
Un proceso contiene uno o más subprocesos y un subproceso puede hacer cualquier cosa que un proceso puede hacer. También los hilos dentro de un proceso comparten el mismo espacio de direcciones debido a que el costo de comunicación entre hilos es bajo ya que está utilizando la misma sección de códigos, sección de datos y recursos del SO, por lo que todas estas características del hilo lo convierten en un "proceso liviano".
No estoy seguro de que las respuestas sean correctas aquí, así que déjame publicar mi versión.
Existe una diferencia entre el proceso: LWP (proceso liviano) y el hilo del usuario. Dejaré la definición del proceso a un lado ya que eso es más o menos conocido y me concentraré en LWP vs user threads
. LWP es lo que esencialmente se llaman hilos de hoy. Originalmente, el hilo del usuario significaba un hilo que es administrado por la propia aplicación y el kernel no sabe nada al respecto. LWP, por otro lado, es una unidad de programación y ejecución por parte del kernel.
Ejemplo: Supongamos que el sistema tiene otros 3 procesos en ejecución y que la programación es round-robin sin prioridades. Y tienes 1 procesador/núcleo.
Opción 1. Tienes 2 hilos de usuario usando un LWP. Eso significa que, desde la perspectiva del sistema operativo, tiene UNA unidad de programación. Totalmente hay 4 LWP en ejecución (3 otros + 1 tuyo). Su LWP obtiene 1/4 del tiempo total de CPU y como tiene 2 subprocesos de usuario, cada uno de ellos obtiene 1/8 del tiempo total de CPU (depende de su implementación)
Opción2. Tienes 2 LWP. Desde la perspectiva del sistema operativo, tiene DOS unidades de programación. Totalmente hay 5 LWP en ejecución. Su LWP obtiene 1/5 del tiempo total de CPU CADA uno y su aplicación obtiene 2/5 de CPU.
Otra diferencia aproximada: LWP tiene pid (id. De proceso), los hilos de usuario no.
Por alguna razón, nombrar no tiene problemas y nos referimos a LWP como hilos.
Definitivamente hay más diferencias, pero consulte las diapositivas. http://www.cosc.brocku.ca/Offerings/4P13/slides/threads.ppt
EDIT:
Después de publicar, me encontré con un buen artículo que explica todo en más detalles y está en Inglés mejor de lo que escribo. http://www.thegeekstuff.com/2013/11/linux-process-and-threads/
- 1. ¿Cuál es la diferencia entre el mango y el hilo?
- 2. ¿Cuál es la diferencia entre el tenedor y el hilo?
- 3. ¿Cuál es la diferencia entre un hilo y una fibra?
- 4. Diferencia entre el hilo # ejecutar y el hilo # despertar?
- 5. ¿Cuál es la diferencia entre el colado y la coerción?
- 6. ¿Cuál es la diferencia entre el NSImage y el UIImage?
- 7. ¿cuál es la diferencia entre el objetivo y el proyecto?
- 8. Backbone.Js - ¿Cuál es la diferencia entre el y $ el?
- 9. ¿Cuál es la diferencia entre el JSP y el JSTL?
- 10. Hilo pesado y ligero
- 11. ¿Cuál es la diferencia entre el
- 12. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 13. ¿Cuál es la diferencia entre el casting y la conversión?
- 14. ¿cuál es la diferencia entre el material y la textura?
- 15. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 16. ¿Cuál es la diferencia entre la tubería y el zócalo?
- 17. ¿Cuál es la diferencia entre Tarea e hilo?
- 18. ¿Cuál es la diferencia entre un hilo de trabajo CLR y un hilo de trabajo?
- 19. ¿Cuál es la diferencia entre el cifrado SHA y AES?
- 20. ¿Cuál es la diferencia entre el nuevo operador y Class.newInstance()?
- 21. ¿Cuál es la diferencia entre el formato OMF y COFF?
- 22. ¿Cuál es la diferencia entre el enlace primero y reciente?
- 23. ¿cuál es la diferencia entre los navegadores y el nodo?
- 24. ¿cuál es la diferencia entre voltearse y pasar el mouse?
- 25. ¿cuál es la diferencia entre net.tcp y el protocolo TCP?
- 26. ¿Cuál es la diferencia entre el operador "=" y "==" en Bash?
- 27. ¿Cuál es la diferencia entre .sqlite y el archivo .db?
- 28. ¿Cuál es la diferencia entre setattr() y el objeto .__ setattr __()?
- 29. ¿Cuál es la diferencia entre VBScript's y el operador &?
- 30. ¿Cuál es la diferencia entre el cifrado GET y POST?
DUP Posible de http://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread – Gray
Usted parece ser muy confundido acerca de algunos conceptos. Sugiero que primero investigue la definición de hilo y proceso. – Tudor
@Gray, Entiendo la diferencia entre procesos e hilos muy claramente. El problema es entender los procesos ligeros. – Allok