.\" man2/sched_setaffinity.2 - sched_setaffinity and sched_getaffinity man page .\" .\" Copyright (C) 2002 Robert Love .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. .\" .\" 19 Nov 2002 Robert Love .\" initial version .\" .\" Traducido por Miguel Pérez Ibars el 5-julio-2004 .\" .TH SCHED_SETAFFINITY 2 "19 noviembre 2002" "Linux" "Manual del Programador de Linux" .SH NOMBRE sched_setaffinity, sched_getaffinity \- establece y obtiene la máscara de afinidad de CPU de un proceso .SH SINOPSIS .B #include .sp \fBint sched_setaffinity(pid_t \fIpid\fB, unsigned int \fIlen\fB, unsigned long *\fImask\fB); .sp \fBint sched_getaffinity(pid_t \fIpid\fB, unsigned int \fIlen\fB, unsigned long *\fImask\fB); .SH DESCRIPCIÓN .B sched_setaffinity establece la máscara de afinidad de CPU del proceso identificado por .IR pid . Si .I pid es cero, se asume el proceso en curso. .sp La máscara de afinidad está representada por la máscara de bits almacenada en .IR 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. .sp El argumento .I len representa la longitud de los datos a los que apunta .IR 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. .sp La función .B sched_getaffinity escribe en el puntero proporcionado en .IR mask , cuyo tamaño es .IR len , la máscara de afinidad del proceso .IR pid . Si .I pid es cero, se devuelve la máscara del proceso en curso. .SH "VALOR DEVUELTO" En caso de éxito,, .BR sched_setaffinity y .BR sched_getaffinity devuelven 0. En caso de error, se devuelve \-1, y se modifica .I errno con el valor apropiado. .SH ERRORES .TP .B EFAULT La dirección de memoria proporcionada no es válida. .TP .B ESRCH No se puede encontrar un proceso con identificador \fIpid\fR. .TP .B EPERM El proceso invocador no tiene los privilegios apropiados. El proceso que llama a .BR sched_setaffinity necesita que el identificador de usuario efectivo sea igual al identificador de usuario real o efectivo del proceso identificado por .IR pid , o poseer la capacidad .IR CAP_SYS_NICE. .TP .B EINVAL La máscara de afinidad .I mask no contiene procesadores que estén físicamente en el sistema o la longitud .I len es más pequeña que el tamaño de la máscara de afinidad usada por el núcleo.