sched_setaffinity

SCHED_SETAFFINITY(2)     Manual del Programador de Linux    SCHED_SETAFFINITY(2)



NOMBRE
       sched_setaffinity, sched_getaffinity - establece y obtiene la máscara de
       afinidad de CPU de un proceso

SINOPSIS
       #include <sched.h>

       int sched_setaffinity(pid_t pid, unsigned int len, unsigned long *mask);

       int sched_getaffinity(pid_t pid, unsigned int len, unsigned long *mask);


DESCRIPCIÓN
       sched_setaffinity establece la máscara de afinidad de CPU del proceso
       identificado por pid.  Si pid es cero, se asume el proceso en curso.

       La máscara de afinidad está representada por la máscara de bits
       almacenada en mask.  El bit menos significativo corresponde al número del
       primer procesador lógico en el sistema, mientras que el bit más
       significativo corresponde al número del último procesador lógico en el
       sistema. Un bit a 1 se corresponde con una CPU legítimamente planificable
       mientras que un bit a 0 se corresponde con una CPU que no es
       legítimamente planificable. En otras palabras, un proceso está ligado y
       sólo se ejecutará en aquellos procesadores cuyo bit esté activo.
       Normalmente todos los bits de la máscara están activos.

       El argumento len representa la longitud de los datos a los que apunta
       mask.  Normalmente este valor es el tamaño de una palabra en el sistema.
       Por razones de compatibilidad con futuras versiones del núcleo de Linux,
       puesto que este tamaño puede cambiar, la máscara de bits proporcionada
       debe ser al menos tan grande como la máscara de afinidad almacenada en el
       núcleo.

       La función sched_getaffinity escribe en el puntero proporcionado en mask,
       cuyo tamaño es len, la máscara de afinidad del proceso pid.  Si pid es
       cero, se devuelve la máscara del proceso en curso.


VALOR DEVUELTO
       En caso de éxito,, sched_setaffinity y sched_getaffinity devuelven 0.  En
       caso de error, se devuelve -1, y se modifica errno con el valor
       apropiado.


ERRORES
       EFAULT La dirección de memoria proporcionada no es válida.

       ESRCH  No se puede encontrar un proceso con identificador pid.

       EPERM  El proceso invocador no tiene los privilegios apropiados. El
              proceso que llama a sched_setaffinity necesita que el
              identificador de usuario efectivo sea igual al identificador de
              usuario real o efectivo del proceso identificado por pid, o poseer
              la capacidad CAP_SYS_NICE.

       EINVAL La máscara de afinidad mask no contiene procesadores que estén
              físicamente en el sistema o la longitud len es más pequeña que el
              tamaño de la máscara de afinidad usada por el núcleo.



Linux                           19 noviembre 2002           SCHED_SETAFFINITY(2)