странный финт в примерах

29 views
Skip to first unread message

Александр Литягин

unread,
Sep 15, 2015, 12:05:39 PM9/15/15
to uOS embedded
в примерах, в нитках консолей встречаются вот такие ходы:
        task_set_priority (console_task, 1);
        debug_printf ("rcv rate: %lu (bytes/sec), errors: %u\n", (unsigned) (bytes * 1000 / elapsed), errors);
        task_set_priority (console_task, 100);
при этом, судя по коду, операция смены приоритетов жоркая, потому как хочет делать эскалацию приоритета. зачем такой финт нужен?
что он даст в нитке консоли УДП или ТСП сервера?

Serge V.

unread,
Sep 15, 2015, 4:40:05 PM9/15/15
to uOS embedded
Изначально было задумано, что консольная нитка имеет низший приоритет (1), чтобы не мешать работе сетевых задач. Но когда по сетевому интерфейсу идет большой поток пакетов, например в случае flood ping, вычисление времени в консольной задаче начинает существенно подвирать, так как слишком часто прерывается драйвером Ethernet и задачей IP. Для этого и повышение приоритета (до 100). А на время сравнительно медленного вывода на консоль приоритет понижается обратно (до 1).

вторник, 15 сентября 2015 г., 9:05:39 UTC-7 пользователь Александр Литягин написал:
Reply all
Reply to author
Forward
0 new messages