Provided by: manpages-es_1.55-10_all bug

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)