pthread_attr_setaffinity_np(3) - wariua/manpages-ko GitHub Wiki
pthread_attr_setaffinity_np, pthread_attr_getaffinity_np - μ€λ λ μμ± κ°μ²΄μ CPU μΉνμ± μμ± μ€μ νκΈ°/μ»κΈ°
#define _GNU_SOURCE /* feature_test_macros(7) μ°Έκ³ */
#include <pthread.h>
int pthread_attr_setaffinity_np(pthread_attr_t *attr,
size_t cpusetsize, const cpu_set_t *cpuset);
int pthread_attr_getaffinity_np(const pthread_attr_t *attr,
size_t cpusetsize, cpu_set_t *cpuset);
-pthread
λ‘ μ»΄νμΌ λ° λ§ν¬.
pthread_attr_setaffinity_np()
ν¨μλ attr
μ΄ κ°λ¦¬ν€λ μ€λ λ μμ± κ°μ²΄μ CPU μΉνμ± λ§μ€ν¬ μμ±μ cpuset
μ μ§μ ν κ°μΌλ‘ μ€μ νλ€. μ΄ μμ±μ μ€λ λ μμ± κ°μ²΄ attr
μ μ΄μ©ν΄ μμ±νλ μ€λ λμ CPU μΉνμ± λ§μ€ν¬λ₯Ό κ²°μ νλ€.
pthread_attr_getaffinity_np()
ν¨μλ attr
μ΄ κ°λ¦¬ν€λ μ€λ λ μμ± κ°μ²΄μ CPU μΉνμ± λ§μ€ν¬λ₯Ό cpuset
μ΄ κ°λ¦¬ν€λ λ²νΌλ‘ λ°ννλ€.
cpusetsize
μΈμλ cpuset
μ΄ κ°λ¦¬ν€λ λ²νΌμ (λ°μ΄νΈ λ¨μ) κΈΈμ΄μ΄λ€. 보ν΅μ μ΄ μΈμλ₯Ό sizeof(cpu_set_t)
λ‘ μ§μ ν κ²μ΄λ€.
CPU μΉνμ± λ§μ€ν¬μ λν λ μμΈν λ΄μ©μ sched_setaffinity(2)λ₯Ό 보λΌ. CPU μΈνΈ μ‘°μκ³Ό κ²μ¬μ μ¬μ©ν μ μλ λ§€ν¬λ‘λ€μ λν μ€λͺ μ CPU_SET(3)μ 보λΌ.
μ±κ³΅ μ μ΄ ν¨μλ€μ 0μ λ°ννλ€. μ€λ₯ μ 0 μλ μ€λ₯ λ²νΈλ₯Ό λ°ννλ€.
EINVAL
- (
pthread_attr_setaffinity_np()
)cpuset
μΌλ‘ 컀λμμ μ§μνλ μ§ν©μ λ²μ΄λλ CPUλ₯Ό μ§μ νλ€. (컀λ κ΅¬μ± μ΅μ CONFIG_NR_CPUS
κ° CPU μ§ν© ννμ μ°λ 컀λ λ°μ΄ν° νμ μ΄ μ§μνλ μ§ν©μ λ²μλ₯Ό κ·μ νλ€.) EINVAL
- (
pthread_attr_getaffinity_np()
)attr
μ΄ κ°λ¦¬ν€λ μ€λ λ μμ± κ°μ²΄μ μΉνμ± λ§μ€ν¬μμ μ΄λ CPUκ°cpusetsize
λ‘ μ§μ ν λ²μ λ°μ μλ€. (μ¦,cpuset
μ΄/cpusetsize
κ° λ무 μλ€.) ENOMEM
- (
pthread_attr_setaffinity_np()
) λ©λͺ¨λ¦¬λ₯Ό ν λΉνμ§ λͺ»νλ€.
glibc λ²μ 2.3.4λΆν° μ΄ ν¨μλ€μ μ 곡νλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
pthread_attr_setaffinity_np() ,pthread_attr_getaffinity_np()
|
μ€λ λ μμ μ± | MT-Safe |
μ΄ ν¨μλ€μ λΉνμ€ GNU νμ₯μ΄λ€. κ·Έλμ μ΄λ¦ λ€μ "_np"(nonportable: μ΄μμ± μμ)κ° λΆμ΄ μλ€.
glibc 2.3.3μ νν΄ μ 곡λλ λ²μ μ cpusetsize
μΈμκ° μμλ€. κΈ°λ° μμ€ν
νΈμΆμκ² μ£Όλ CPU μΈνΈ ν¬κΈ°κ° νμ sizeof(cpu_set_t)
μλ€.
sched_setaffinity(2), pthread_attr_init(3), pthread_setaffinity_np(3), cpuset(3), pthreads(7)
2017-09-15