Está en la página 1de 6

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.

También podría gustarte