0% encontró este documento útil (0 votos)
12 vistas2 páginas

Procesos e Hilos SO

El documento explica los conceptos de hilos y procesos, donde un proceso es la instancia de un programa ejecutándose, controlada por el sistema operativo, mientras que un hilo es una unidad más pequeña de ejecución dentro de un proceso. Los procesos son independientes y no comparten información, mientras que los hilos pueden hacerlo, lo que puede generar problemas como la condición de carrera. Ambos conceptos son fundamentales para implementar programación concurrente y paralela.

Cargado por

SandboxOffice123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas2 páginas

Procesos e Hilos SO

El documento explica los conceptos de hilos y procesos, donde un proceso es la instancia de un programa ejecutándose, controlada por el sistema operativo, mientras que un hilo es una unidad más pequeña de ejecución dentro de un proceso. Los procesos son independientes y no comparten información, mientras que los hilos pueden hacerlo, lo que puede generar problemas como la condición de carrera. Ambos conceptos son fundamentales para implementar programación concurrente y paralela.

Cargado por

SandboxOffice123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema: Hilos y Procesos

Para comprender mejor el tema es necesario conocer y dominar dos conceptos claves, me refiero a
hilos y procesos, conceptos que en primera instancias puede ser algo complejos de comprender por ello
en esta ocación. En esta ocasión me gustaría que habláramos sobre ellos, explicando qué son, en que
son similares y por supuesto, en que son diferentes.

Procesos
Comencemos con lo más sencillo, bueno, más o menos. ¿Qué es un Proceso?
En términos simples un proceso no es más que la instancia de un programa. Verás, cuando tú abres
cualquier programa en tu dispositivo, por ejemplo, tu navegador web, quizás Google Chrome,
internamente estás creando un nuevo proceso.
Un proceso no será más que la ejecución del programa mismo. Y ojo, no hay que confundir un proceso
con un programa ya que son entidades completamente diferentes. Podemos ver a un programa como un
conjunto de instrucciones y de datos, por otro lado, podemos ver a un proceso como la ejecución de
esas instrucciones junto con esos datos. Una muy buena analogía es ver a un programa como la receta
para preparar un platillo, ya que en una receta se establecen todos los ingredientes a utilizar junto con
los pasos a seguir; en cambio, un proceso podemos verlo como la ejecución de esa receta, algo que se
está realizando.
Puede quedarnos más en claro si consideramos que un mismo programa puede ser ejecutado múltiples
veces por nuestro sistema operativo. Siguiendo con la analogía, una misma receta puede ser
implementada por varios chefs.

Ejemplo de tres procesos diferentes del mismo programa.

Dentro de un proceso encontraremos todo lo necesario para que el programa se ejecute de forma
correcta, me refiero a código fuente, ficheros, variables, tareas, sub-procesos etc...
El sistema operativo será quien cree, ejecute y controle todos los procesos.
Una de las tareas del sistema operativo es aislar a cada uno de los procesos entre sí, de tal forma que los
procesos sean completamente independientes unos de otros; esto con la finalidad prevenir que
compartan información entre ellos, lo cual pueda dar pie a errores. Es por ello que en esencia, lo
programas no pueden acceder a la información y datos de otros programa en ejecución.
Cuando un proceso finaliza, ya sea de forma natural o no, quizás por algún error, será el sistema
operativo el encargado de liberar el espacio en memoria.
Podemos ver al sistema operativo como un maestro de ceremonias, quien está al pendiente de todos los
procesos, desde su creación, ejecución y finalización.
Con los procesos es posible implementar el paralelismo, ejecutando diferentes procesos en diferentes
procesadores, claro, tambíen depende de cuantos procesadores posea el equipo de computo.
Para que un proceso pueda ser ejecutado este necesita poseer por lo menos un hilo, a este hilo lo vamos
a conocer como el hilo principal, o, el hilo principal.

Hilos
Ahora hablaremos de los hilos tambíen conocidos como sub-procesos, este podemos definirlos como
una secuencia de instrucciones las cuales el sistema operativo puede programar para su ejecución. A
diferencia de un proceso, los hilos son entidades mucho más pequeñas, lo cual los hace fáciles de
gestionar, tanto es así que un hilo es la unidad más pequeña a la cual un procesador puede asignar
tiempo.
A diferencias de los procesos, los cuales viven dentro del sistema operativo, los hilos viven dentro de
los procesos. Un hilo se crean, ejecutan y finalizan dentro de un proceso, dicho en otras palabras: Un
hilo le pertenece a un proceso, y, a su vez, un proceso puede poseer múltiples hilos. Si lo vemos en
términos de base de datos pudiésemos decir que esta es una relación uno a muchos.
Algo interesante a mencionar es que debido a que los hilos existen dentro de los procesos, estos pueden
compartir información entre ellos; Algo a lo cual sin duda le podemos sacar mucho provecho, pero que
también puede llegar hacer complicado de manejar. Uno de los problemas más comunes al momento de
trabajar con hilos tiene por nombre Race condition, y es en esencia un problema que surge cuando más
de un hilo intenta acceder y modificar un espacio en memoria compartido, ocasionando que el
programa se comporte de forma inadecuada.
Visto de otra forma, un hilo no es más que un proceso, pero en pequeño, al igual de un proceso un hilo
se ejecuta dentro de un contexto y posee instrucciones a realizar.

En conclusión, un proceso no es más que la instancia de un programa, el cual es creado y controlado


por el sistema operativo. Los procesos son entidades independientes y no pueden compartir
información entre ellos. Para que un proceso pueda ser ejecutado es necesario que este posea por lo
menos un hilo.
Por otro lado, un hilo es la unidad más pequeña a la cual un procesador puede asignar tiempo. Los hilos
poseerán la secuencia más pequeña de instrucciones a ejecutar. Los hilos se crean, ejecutan y mueren
dentro de los procesos, siendo capaces de compartir información entre ellos.
Con los hilos y los procesos seremos capaces de implementar la programación concurrente, y,
dependiendo de la cantidad de procesadores la programación en paralelo.

También podría gustarte