Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Hilos Posix

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

UNIVERSIDAD ESTATAL DE MILAGRO

CARRERAS EN LÍNEA

FACULTAD DE INGENIERIA
TECNOLOGÍAS DE LA INFORMACIÓN

ASIGNATURA
SISTEMAS OPERATIVOS

NOMBRE DEL DOCENTE


BERMEO PAUCAR JAVIER RICARDO

TEMA
HILOS POSIX (PTHREADS)

FECHA DE ENTREGA
09 JULIO 2021

NOMBRE DEL ESTUDIANTE


CÉSAR ANDRÉS GÓMEZ CABRERA

CURSO
C1

NIVEL ACADÉMICO
CUARTO NIVEL

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Contenido

Introducción .......................................................................................................................................4
Hilos POSIX: Creación .........................................................................................................................5
Hilos POSIX (pthreads) .......................................................................................................................5
Hilos POSIX (pthreads): Atributos .......................................................................................................6
Hilos POSIX (pthreads): Terminación de un hilo .................................................................................6
Hilos POSIX (pthreads): Espera por terminación ................................................................................7
Hilos POSIX (pthreads): Cancelación de un hilo ..................................................................................8
Conclusiones ......................................................................................................................................8
Bibliografía .........................................................................................................................................9
Anexos..............................................................................................................................................11
Ejercicio práctico sobre Hilos POSIX .................................................................................................11
Diagrama de Procesos Hilo POSIX ....................................................................................................12

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Tabla de Ilustraciones
Ilustración 1 - Hilos POSIX - Creación .................................................................................................5
Ilustración 2 - Hilos POSIX - Atributos ................................................................................................6
Ilustración 3 - Hilos POSIX - Terminación de un hilo ...........................................................................7
Ilustración 4 - Hilos POSIX - Espera por terminación ..........................................................................7
Ilustración 5 - Hilos POSIX - Cancelación de un hilo ...........................................................................8
Ilustración 6 – Ejercicio ....................................................................................................................11

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Introducción

Un hilo es una línea de ejecución de un proceso la palabra POSIX significa y viene


del acrónimo interfaz estándar del sistema operativo.

Es decir, sí vemos la secuencia de instrucciones de un programa que se está


ejecutando se podría trazar una línea por todos los procesos que seguirán
ejecutando en dicho programa, por lo tanto, todo proceso parte inicialmente con un
único hilo principal. Pero el sistema operativo ofrece llamadas al sistema que
permiten al programador crear y destruir hilos.

De esta manera pues un proceso está compuesto por uno o más hilos. Un hilo es
básicamente una tarea que puede ser ejecutada en paralelo con otra tarea saber
manejar correctamente los cielos es una parte cotidiana de cualquier programador
los hilos son similares a procesos a los hilos como a los procesos se les asigna
porciones de tiempo por el núcleo, en sistema con un solo procesador el núcleo
divide el tiempo asignado a cada hilo para simular la ejecución simultánea de los
hilos de forma muy similar a como los divide para los procesos.

En sistemas con más de un procesador los hilos pueden ejecutarse


simultáneamente del mismo modo de 2 o más procesos pueden ejecutarse
simultáneamente también. Los hilos comparten la misma ubicación en memoria y
los independientes pueden acceder a las mismas variables en memoria. Así pues,
todos los hilos del programa pueden leer y escribir a todos los enteros declarados
globalmente.

Con una pequeña sincronización todos los hilos podrán leer y modificar las
estructuras de datos de nuestros programas. No tenemos que bombardear los datos
a través de un descriptor de ficheros o compactarlos en un pequeño espacio de
memoria compartida.

Por esta razón debemos asegurarnos qué proceso deberíamos utilizar bien sea, el
proceso único mono - hilos o el proceso único multi - hilos.

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Hilos POSIX: Creación

Descripción

Un hilo en programación es una característica que permite a una aplicación realizar


varias tareas simultáneamente. Cuando ejecutamos uno o varios programas en
nuestro computador, estos pueden pasar por diferentes estados mientras se van
ejecutando, pero dentro de los hilos también veremos la terminología proceso que
prácticamente es una instancia de un programa en ejecución requiriendo para
aquello recursos del sistema operativo o de hardware.

Hilos POSIX (pthreads)

Un hilo se crea realizando la siguiente sintaxis, utilizando el parámetro


pthread_create e incluyendo la librería <pthread.h>.

Ilustración 1 - Hilos POSIX - Creación

A continuación, se crea el hilo en estado preparado.

Attr: Es el atributo que contiene las características del hilo creado

Start_routine: es la función que ejecutará el hilo

Arg: Es un puntero a los parámetros iniciales del hilo

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Hilos POSIX (pthreads): Atributos

Los hilos POSIX constan de los siguientes atributos para la creación de hilos:

Ilustración 2 - Hilos POSIX - Atributos

Donde, attr Es el atributo a ser creado / destruido.

Mediante estás llamadas:

Se crea/destruye un atributo de creación de hilos, la función init inicializa attr con


los valores por defecto, estos valores se pueden modificar con funciones
específicas, además se pueden crear múltiples hilos con la misma variable attr.

Hilos POSIX (pthreads): Terminación de un hilo

pthread_exit finaliza la ejecución del hilo que le invoca, la finalización de un hilo


también se hace cuando finaliza la ejecución de las instrucciones de su función.

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Ilustración 3 - Hilos POSIX - Terminación de un hilo

Hilos POSIX (pthreads): Espera por terminación

Esta función suspende la ejecución del hilo que le invoca identificado por el valor
tid finaliza, ya sea por la invocación a la función pthread_exit, o por estar
cancelado.

Ilustración 4 - Hilos POSIX - Espera por terminación

En POSIX, sí un hilo finaliza voluntariamente su ejecución cuando finaliza la


ejecución de las instrucciones de su función o bien invoca pthread_exit. O también
la finalización se puede dar cuando el último hilo de un proceso finaliza el proceso.

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Hilos POSIX (pthreads): Cancelación de un hilo

La cancelación es el mecanismo por el cual hilo puede solicitar la terminación de la


ejecución de otro hilo.

Esto depende de la configuración del hilo al que se solicita su cancelación, este


puede aceptar peticiones de cancelación por (pthread_cancel_enable, estado por
defecto) o ser rechazadas por (pthread_cancel_disable).

Ilustración 5 - Hilos POSIX - Cancelación de un hilo

Conclusiones

Los hilos, también denominados procesos ligeros (o en ingles threads), pueden


considerarse como las unidades básicas de ejecución de un proceso, es decir, la
representación del segmento de código que está siendo o que será procesado en
un momento dado.

El uso de hilos en un proceso hace posible ejecutar segmentos de código (que


pueden o no ser los mismos) en forma concurrente permitiendo disminuir el tiempo
requerido para realizar lo requerido y sin la necesidad de crear las estructuras de
datos que se necesitan al momento de la creación de un proceso, ya que los hilos
comparten ciertos elementos.
www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

También podemos decir que los hilos aumentan la eficiencia para la comunicación
entre programas en ejecución, también durante la investigación entendimos que
existe programación multi - hilos que se pueden ejecutar de forma concurrente o
simultánea tenga el sistema.

Además, algunos lenguajes de programación tienen características de diseño


expresamente creadas que permiten a los programadores lidiar con hilos de
ejecución como por ejemplo en Java o en Delphi.

También podemos decir que los hilos pasan por diferentes estados como por
ejemplo nuevo, preparado, en ejecución, bloqueado, dormido, esperando,
finalizado.

Algunos beneficios que podemos obtener de la programación con hilos es que se


puede manejar varios eventos asíncronos asignando un hilo a cada tipo de evento.
Los hilos de un proceso comparten el mismo espacio de direcciones y descriptores
de archivos.

La creación de un hilo es mucho más rápida y toma menos recursos que la creación
de un proceso. Así como un proceso tiene un PID (Process Identification), cada hilo
tiene un identificador de hilo.

Bibliografía

Pulido, N. P., de la Rábida, E. P. S., Melero, J. F., & de Ingenieros, E. S. Taller de


Programación Concurrente: Diseño de software para robots basado en hilos POSIX.

Ryckeboer, H. E., Casas, N., De Luca, G., Cortina, M., Puyo, G., & Valiente, W.
(2010). Conflictos de hilos de Kernel en un sistema operativo didáctico. In XVI
Congreso Argentino de Ciencias de la Computación.

Cámara Nebreda, J. M. (2016). Programación de arquitecturas paralelas: v. 2.0.

Richter, J. (1997). Programación avanzada en Windows. McGraw-Hill.

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Mejía, C., Ríos, A., León, L., & Hidrobo, F. (2010). Una plataforma tiempo real para
ejecutar algoritmos de control. Ciencia e Ingeniería, 31(2), 91-100.

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Anexos

Ejercicio práctico sobre Hilos POSIX

Ilustración 6 – Ejercicio

www.unemi.edu.ec
UNIVERSIDAD ESTATAL DE MILAGRO
CARRERAS EN LÍNEA

Diagrama de Procesos Hilo POSIX

BLOQUE DE
STACK DEL
CONTROL DEL
USUARIO
PROCESO

ESPACIO DE STACK DEL


DIRECCIONES KERNEL
DEL USUARIO

www.unemi.edu.ec

También podría gustarte