Hilos Posix
Hilos Posix
MILAGRO
FACULTAD DE CIENCIAS DE LA
INGENIERÍA
CARRERA: INGENIERÍA EN
SOFTWARE
ASIGNATURA:
SISTEMAS OPERATIVOS
Hilo. - Flujo de instrucciones que se puede programar para que sea ejecutado por el
sistema operativo.
Overhead. - Se define como tiempo indirecto el cual es necesario para que se lleve
a cabo una ejecución.
En algunas veces nos puede presentar un valor de retorno de cero si es que existió
y de no ser así se presentara con un valor negativo. (“pthread_attr_init/destroy”)
# include <pthread.h>
int pthread_create (pthread_t * restrict tidp: salida, puntero a id del hilo
tidp, attr: entrada, para definir atributos del hilo, null para
const pthread_attr_t * restrict attr, default
void * (* start_routine) (void *), start_routine: entrada, función con que corre el hilo
void * restrict arg); arg: entrada, argumento de la función del hilo.
la función debe retornar un * void, el cual es
interpretado
como el estatus de término por pthread_join
ATRIBUTOS DE HILOS POSIX.
Detachstate: examina si otro hilo lograra esperar por la terminación de este hilo en el
cual se encarga pthread_joing.
PTHREAD_CREATE_JOINABLE (defecto).
PTHREAD_CREATE_DETACHED.
IDENTIFICACION DE HILOS.
Así como un proceso tiene un PID (Process Identification), cada hilo tiene un
identificador de hilo. Mientras los PID son enteros no negativos, el ID de un hilo es
dependiente del SO y puede ser una estructura. Por esto para su comparación se
TÉRMINO DE UN HILO.
#include <pthread.h>
void pthread_exit (void *status);
DETACHING Y JOINING EN HILOS (DESASOCIACION Y REUNIÓN).
Todo hilo ocupa recursos del SO para su operación. Entre ellos se encuentra el
estatus de término el cual es retenido hasta el llamado a pthread_join; sin embargo,
los recursos ocupados por un hilo pueden ser retornados inmediatamente después
que éste termina si llamamos a pthread_detach. En este caso un llamado a
pthread_join fallará y retornará EINVAL.
Esta función suspende la ejecución del hilo que la invoca hasta que el hilo
pthread_exit o por estar cancelado. Si status no es NULL, el valor devuelto por el hilo
(el argumento de la función
(joinable state). Cuando un hilo en este estado termina, no se liberan sus propios
recursos (descriptor del hilo y pila) hasta que otro hilo espere por él.
La espera por la terminación de un hilo para el cual ya hay otro hilo esperando,
genera un error.
#include <pthread.h>
int pthread_join (pthread_t tid, void **status);
Cuando un hilo acepta una petición de cancelación, el hilo actúa como si se hubiese
#include <pthread.h>
int pthread_cancel (pthread_t tid);
EJERCICIO DE APLICACION.
void do_nothing () {
int i;
i= 0;
}
main () {
int pid, j, status;
main () {
int rc, i, j, detachstate;
pthread_t tid;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_JOINABLE);
}
CONCLUSION.
https://es.acervolima.com/diferencia-entre-hilos-primordiales-y-no-primordiales/
https://www.infor.uva.es/~fdiaz/so/2005_06/doc/SO_PR06_20041130.pdf
https://www.infor.uva.es/~fdiaz/aso/2005_06/doc/ASO_PR01_20060228.pdf
https://www.infor.uva.es/~fdiaz/so/2004_05/doc/SO_PR05_20041026.pdf
https://bibliotecavirtualda.com/wp-content/uploads/2021/08/2Taller-de-programacion-
concurrente.pdf