Está en la página 1de 5

Actividad 5

Justificación:
Este trabajo tiene como objetivo definir qué son los hilos, y cómo es que se usan en la
programación paralela.

Desarrollo:
De la misma manera que un Sistema Operativo puede ejecutar varios procesos al
mismo tiempo bien sea por concurrencia o paralelismo, dentro de un proceso puede
haber varios hilos de ejecución. Por tanto, un hilo puede definirse como cada secuencia
de control dentro de un proceso que ejecuta sus instrucciones de forma independiente.
Un hilo es una unidad básica de utilización de CPU, la cual contiene un id de hilo, su
propio program counter, un conjunto de registros, y una pila; que se representa a nivel
del sistema operativo con una estructura llamada TCB (thread control block). Los hilos
comparten con otros hilos que pertenecen al mismo proceso la sección de código, la
sección de datos, entre otras cosas. Si un proceso tiene múltiples hilos, puede realizar
más de una tarea a la vez (esto es real cuando se posee más de un CPU).

Los procesos son entidades pesadas. La estructura del proceso está en la parte del
núcleo y, cada vez que el proceso quiere acceder a ella, tiene que hacer algún tipo de
llamada al sistema, consumiendo tiempo extra de procesador. Por otra parte, los
cambios de contexto entre procesos son costosos en cuanto a tiempo de computación

This study source was downloaded by 100000793136187 from CourseHero.com on 10-12-2022 21:33:24 GMT -05:00

https://www.coursehero.com/file/109486226/Lab-Sis-Dis-y-Par-Act-5docx/
se refiere. Por el contrario, la estructura de los hilos reside en el espacio de usuario,
con lo que un hilo es una entidad ligera. Los hilos comparten la información del
proceso (código, datos, etc). Si un hilo modifica una variable del proceso, el resto de
hilos verán esa modificación cuando accedan a esa variable. Los cambios de contexto
entre hilos consumen poco tiempo de procesador, de ahí su éxito.

Los programas en paralelo necesitan la coordinación de procesos e hilos, para que


haya una ejecución correcta. Los métodos de coordinación y sincronización en la
programación paralela están fuertemente asociados a la manera en que los procesos o
hilos intercambian información, y esto depende de cómo está organizada la memoria
en el hardware.

Ventajas usar hilos:


● 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 de múltiples CPUs: permite que hilos de un mismo proceso ejecuten


en diferentes CPUs a la vez. En un proceso monohilo, un proceso ejecuta en
una única CPU, independientemente de cuántas tenga disponibles.

Un proceso puede tener múltiples hilos. Ejecutan el mismo código que el proceso
padre. Lo ideal es que corren en paralelo, pero no necesariamente. La razón por qué
procesos no son suficientes es porque las aplicaciones deben ser sensibles y escuchar
las acciones del usuario mientras que actualizar la pantalla y guardar un archivo.

This study source was downloaded by 100000793136187 from CourseHero.com on 10-12-2022 21:33:24 GMT -05:00

https://www.coursehero.com/file/109486226/Lab-Sis-Dis-y-Par-Act-5docx/
Procesos Hilos

● Procesos no comparten memoria ● Hilos comparten memoria


● Procesos de desove/la ● Desove/conmutación de hilos es
conmutación es cara menos costosa
● Los procesos requieren más ● Hilos requieren menos recursos
recursos (a veces se llaman procesos
● No necesita sincronización de la ligeros)
memoria ● Es necesario utilizar mecanismos
de sincronización para
asegurarse de que los datos son
manipulados correctamente

Ejemplo de uso de hilos:

This study source was downloaded by 100000793136187 from CourseHero.com on 10-12-2022 21:33:24 GMT -05:00

https://www.coursehero.com/file/109486226/Lab-Sis-Dis-y-Par-Act-5docx/
Conclusión:

This study source was downloaded by 100000793136187 from CourseHero.com on 10-12-2022 21:33:24 GMT -05:00

https://www.coursehero.com/file/109486226/Lab-Sis-Dis-y-Par-Act-5docx/
Los hilos son muy importantes para la programación de sistemas paralelos, ya que
estos mismos de cierta forma ayudan a que estos funcionen y hacen que los procesos
pueden ejecutarse en distintas CPU’s, que las tareas también puedan dividirse y
ejecutarse de forma independiente en el mismo momento, así como resolver problemas
que no se podrían realizar en una sola CPU, gracias a lo mencionado anteriormente
hace que se logren reducir los tiempos de ejecución de los programas. Todo esto tiene
muchas aplicaciones en la mayoría de los programas que se realizan y es muy
importante aprender el uso de estos.

Referencias:
● https://facturapp.weebly.com/hilos.html
● https://www.fing.edu.uy/tecnoinf/mvd/cursos/so/material/teo/so05-hilos.pdf
● https://code.tutsplus.com/es/articles/introduction-to-parallel-and-concurrent-
programming-in-python--cms-28612

This study source was downloaded by 100000793136187 from CourseHero.com on 10-12-2022 21:33:24 GMT -05:00

https://www.coursehero.com/file/109486226/Lab-Sis-Dis-y-Par-Act-5docx/
Powered by TCPDF (www.tcpdf.org)

También podría gustarte