26 Ocak 2018 Cuma

sched_setaffinity metodu

Giriş
Şu satırı dahil ederiz.
#include <sched.h>
Bu metod Linux'a mahsustur ve programın içinden hangi işlemciye bağlanmak istendiği belirtilir.

Metoda geçilen ilk parametre yani 0 değeri, kendi uygulamamızı belirtir. Başka bir uygulamayı bağlamak için, hedef uygulamanın PID değerini kullanmak gerekir.

Örnek
Şöyle yaparız.
#include <sched.h>

cpu_set_t  mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask);
CPU_SET(2, &mask);
result = sched_setaffinity(0, sizeof(mask), &mask);
Örnek
Şöyle yaparız.
#include <sched.h>
#include <stdlib.h>
#include <assert.h>

void pinThreadToCore(int id) {
  cpu_set_t cpuset;
  CPU_ZERO(&cpuset);
  CPU_SET(id, &cpuset);
  assert(sched_setaffinity(0, sizeof(cpuset), &cpuset) == 0);
}

int main(int argc, char** argv) {
  pinThreadToCore(atoi(argv[1]));
  while (1);
}

Hiç yorum yok:

Yorum Gönder