Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Threads POSIX
n Un SO que soporte threads debe contener un paquete que
proporcione un sistema en tiempo real para manejo de threads
n Dos bibliotecas principales de gestión de threads: Sun Solaris 2 y
threads POSIX (pthreads)
n Ambos contemplan la creación y destrucción dinámica de threads
n Sun Solaris 2
¡ Establecen explícitamente las propiedades de los threads
¡ Ofrecen mayor control entre threads y recursos de procesadores
¡ Normalmente sólo funcionan en Sun
n Pthreads
¡ Se valen de objetos atributo para representar propiedades de los threads
¡ Varios threads pueden estar asociados a un mismo objeto
¡ Ofrecen un método más robusto de cancelación y terminación
n Parámetros
¡ tid: apunta al thread que se crea
¡ attr: atributos del thread creado (tipo pthread_attr_t)
¡ start_routine: puntero a la función que debe ejecutar el
thread
¡ arg: puntero a los argumentos que se pasan a la función
Crear threads:
:compilar con librerías: –lposix4 -lpthread
Threads: pthread_join
:compilar con librerías: –lposix4 -lpthread
thmain = pthread_self();
pthread_attr_init (&attr);
void pthread_testcancel();
SCTR: Funciones POSIX (2): Threads 18
EJEMPLO:
Cancelación de un thread
:compilar con librerías: –lposix4 -lpthread
sleep(2);
if (pthread_cancel(thread1)!=0)
perror("Error cancelando thread");
else
printf("Soy main [TID: %d] he cancelado el thread [TID: %d] y termino\n",
thmain, thread1);
pthread_exit (NULL);
}
Inicialización pthread_attr_init
pthread_attr_destroy
Tamaño de la pila pthread_attr_setstacksize
pthread_attr_getstacksize
Dirección de la pila pthread_attr_setstackaddr
pthread_attr_getstackaddr
Estado de desconexión pthread_attr_setdetachstate
pthread_attr_getdetachstate
Alcance pthread_attr_setscope
pthread_attr_getscope
Herencia pthread_attr_setinheritsched
pthread_attr_getinheritsched
Política de planificación pthread_attr_setschedpolicy
pthread_attr_getschedpolicy
Parámetros de planificación pthread_attr_setschedparam
pthread_attr_getschedparam
SCTR: Funciones POSIX (2): Threads 23
Atributos de los Pthreads (III)
n Excepto pthread_attr_init y pthread_attr_destroy
todas las funciones para obtener o establecer
atributos tienen dos parámetros
#include <pthread.h>
#include <sched.h>
int pthread_attr_setstacksize(pthread_attr_t *attr,
size_t stacksize);
Threads POSIX
Threads POSIX
Gestión
Gestión Atributos
Básica Atributos
Básica
Estado de
pthread _exit Estado de
pthread _ exit desconexión
desconexión
Política de
pthread _join Política de
pthread _ join planificación
planificación
Parámetros de
Parámetros de
Planificación
Planificación
27
SCTR: Funciones POSIX (2): Threads