[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Примеры исполнения в режиме реального времени

На следующей странице приведены примеры исполнения в режиме реального
времени:
.    Пример 1 - получить параметры планирования
   priocntl(2) вызывается,  чтобы получить  параметры планирования для
   вызывающего  процесса.   Поле   pc_cid   равно   PC_CLNULL.   Когда
   priocntl(2) завершится,  поле pc_cid  будет содержать идентификатор
   класса заданного процесса.

.    Пример 2 - установить параметры планирования
   Используется  идентификатор   класса,  возвращенный  в  примере  1.
   Предполагается, что  класс  с  этим  идентификатором  -  это  класс
   реального времени.  Полю pc_clparms  присваиваются другие  значения
   параметров планирования.  Полю  rt_pri  присваивается  максимальный
   приоритет реального  времени, полученный в примере 2 на странице 7-
   29.  Устанавливается   неограниченный  временной  квант.  Параметры
   планирования с помощью priocntl(2) и команды PC_SETPARMS изменяются
   для всех процессов реального времени в группе вызывающего процесса.
            ПРИМЕРЫ ИСПОЛНЕНИЯ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ
.    Объявления
    #include <sys/types.h>
    #include <sys/priocntl.h>
    #include <sys/rtpriocntl.h>
    #define ANY 0
    pcparms_t parms;
    short max;

.    Получение параметров планирования
    parms.pc_cid = PC_CLNULL;
    priocntl(P_PID, P_MYID, PC_GETPARMS, &parms);

.    Установка параметров планирования реального времени
    ((rtparms_t *)parms.pc_clparms)->rt_pri = max;
    ((rtparms_t *)parms.pc_clparms)->rt_tqsecs = ANY;
    ((rtparms_t *)parms.pc_clparms)->rt_tqnsecs=RT_TQINF;
    priocntl(P_PGID, P_MYID, PC_SETPARMS, &parms);