Как наблюдать за расой в Ксеномае?Linux

Ответить
Anonymous
 Как наблюдать за расой в Ксеномае?

Сообщение Anonymous »

У меня была довольно забавная задача для моего университета. Кто -нибудь сейчас, как просто наблюдать за расой? Я попробовал много тем и дополнительного петли для некоторой утечки, но без успеха. Вот мой простой код: < /p>

Код: Выделить всё

#include 
//#include 
#include 
#include 

RT_TASK t1, t2, t3, t4, t5, t6, t7, t8, t9;
volatile int counter = 0;

void increment(void *arg) {
for (int i = 0; i < 100000; i++) {
for (volatile int j = 0; j < 10000; j++);  // Burn CPU
int local = counter;
local++;
counter = local;

for (volatile int k = 0; k < 100; k++);  // More interleaving potential
}
printf("%s done\n", (char *)arg);
}

int main() {

rt_task_create(&t1, "t1", 0, 50, 0);
rt_task_create(&t2, "t2", 0, 50, 0);
rt_task_create(&t3, "t3", 0, 50, 0);
rt_task_create(&t4, "t4", 0, 50, 0);
rt_task_create(&t5, "t5", 0, 50, 0);
rt_task_create(&t6, "t6", 0, 50, 0);
rt_task_create(&t7, "t7", 0, 50, 0);
rt_task_create(&t8, "t8", 0, 50, 0);
rt_task_create(&t9, "t9", 0, 50, 0);

rt_task_start(&t1, &increment, "t1");
rt_task_start(&t2, &increment, "t2");
rt_task_start(&t3, &increment, "t3");
rt_task_start(&t4, &increment, "t4");
rt_task_start(&t5, &increment, "t5");
rt_task_start(&t6, &increment, "t6");
rt_task_start(&t7, &increment, "t7");
rt_task_start(&t8, &increment, "t8");
rt_task_start(&t9, &increment, "t9");

sleep(1);

printf("Final counter: %d (expected 900000)\n", counter);
return 0;
}
< /code>
и я составляю его с помощью:
gcc -O0 -o task2test1 task2test.c $(xeno-config --cflags --ldflags --alchemy)



Подробнее здесь: https://stackoverflow.com/questions/796 ... in-xenomai
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»