[<<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);