HILOS Y
MULTIHILOS
RICHARD MONTERO
2022-2146
DEFINICION
En informática, un proceso es la instancia de un
programa informático que está siendo ejecutado por
uno o varios subprocesos. Hay muchos modelos de
procesos diferentes, algunos de los cuales son
livianos, pero casi todos los procesos (incluso las
máquinas virtuales completas) están arraigados en un
proceso del sistema operativo (SO) que comprende el
código del programa, los recursos del sistema PROCESO
asignados, los permisos de acceso físico y lógico, y
estructuras de datos para iniciar, controlar y coordinar
la actividad de ejecución. Según el sistema operativo,
un proceso puede estar compuesto por varios
subprocesos de ejecución que ejecutan instrucciones
al mismo tiempo.
Los procesos son la unidad elemental que tiene el
sistema operativo para la programación y asignación
de recursos. Un proceso en ejecución, indica la
existencia de un programa que se encuentra
interactuando con el ordenador. Al levantar un
proceso, el sistema operativo asigna memoria y
recursos para su ejecución. Al terminar un proceso, el
PROYECTO FIN DE GRADO - 04
sistema operativo libera esos recursos
HILOS Y MULTIHILOS
Un hilo, o también llamado Multihilo o también conocido como
subproceso, es básicamente un flujo multithreading, se refiere a la
de ejecución o una secuencia de capacidad de un sistema o programa
instrucciones manejada de forma de ejecutar múltiples hilos de forma
independiente. Un hilo vive dentro del concurrente dentro de un proceso.
contexto de un proceso y este utiliza
todos sus recursos; como por
ejemplo, la memoria o los
registradores.
PROGRAMACION
MULTIHILO
- Concurrencia: La concurrencia se refiere a la
capacidad de ejecutar múltiples hilos
simultáneamente. Los hilos pueden ejecutarse de
forma intercalada o en paralelo, dependiendo
del soporte del hardware y del sistema operativo.
CONCEPTOS
- Sincronización: La sincronización es esencial en la
programación multihilo para garantizar la
FUNDAMENTALES
consistencia y la integridad de los datos compartidos.
Se utilizan mecanismos de sincronización,
como semáforos, mutexes y variables de condición,
para coordinar el acceso a recursos
compartidos y evitar condiciones de carrera y
problemas de concurrencia.
- Comunicación entre hilos: Los hilos pueden
comunicarse entre sí mediante el intercambio de
datos o mediante la sincronización de eventos. La
comunicación puede ser necesaria para
compartir información, coordinar tareas o notificar
eventos importantes. PROYECTO FIN DE GRADO - 04
VENTAJAS
Mayor rendimiento: Al realizar tareas en paralelo, se puede lograr un mayor rendimiento y una
respuesta más rápida en comparación con la ejecución secuencial. Esto es especialmente
beneficioso en sistemas con múltiples núcleos de CPU.
Mayor capacidad de respuesta: La programación multihilos permite mantener la capacidad de
respuesta de una aplicación al realizar tareas en segundo plano mientras se atienden otras
solicitudes.
Mejora de la utilización de recursos: Los hilos pueden aprovechar de manera eficiente los
recursos disponibles en el sistema, como la CPU y los dispositivos de entrada y salida, al
mantenerse ocupados mientras otros hilos están esperando o realizando operaciones
bloqueantes
DESVENTAJAS
Complejidad: La programación multihilos introduce nuevos desafíos, como condiciones de
carrera y problemas de sincronización, que pueden ser difíciles de detectar y solucionar. La
concurrencia puede aumentar la complejidad del código y hacer que sea más propenso a errores.
Problemas de sincronización: La sincronización incorrecta entre hilos puede llevar a condiciones
de carrera, bloqueos o inanición (cuando un hilo se ve privado de los recursos necesarios para
continuar su ejecución).
Depuración y pruebas: Depurar y probar programas multihilo puede ser más complicado debido
a la naturaleza no determinista de la ejecución concurrente.