Мобильное программирование приложений реального времени в стандарте POSIX



Опрос и изменение атрибутов потоков управления - часть 4


Для опроса и установки атрибутов планирования в атрибутных объектах служат функции pthread_attr_getschedparam() и pthread_attr_setschedparam() (см. листинг 1.6).

#include <pthread.h>

int pthread_attr_getschedparam ( const pthread_attr_t *restrict attr, struct sched_param *restrict param);

int pthread_attr_setschedparam ( pthread_attr_t *restrict attr, const struct sched_param *restrict param);

Листинг 1.6. Описание функций pthread_attr_getschedparam() и pthread_attr_setschedparam().

Атрибут "политика планирования", способный принимать значения SCHED_FIFO (планирование по очереди), SCHED_RR (циклическое планирование), SCHED_OTHER ("прочее" планирование) и, возможно, SCHED_SPORADIC (спорадическое планирование), можно опросить и установить посредством функций pthread_attr_getschedpolicy() и pthread_attr_setschedpolicy() (см. листинг 1.7).

#include <pthread.h>

int pthread_attr_getschedpolicy ( const pthread_attr_t *restrict attr, int *restrict policy);

int pthread_attr_setschedpolicy ( pthread_attr_t *attr, int policy);

Листинг 1.7. Описание функций pthread_attr_getschedpolicy() и pthread_attr_setschedpolicy().

Описанный выше атрибут "область планирования конкуренции", способный принимать значения PTHREAD_SCOPE_SYSTEM и PTHREAD_SCOPE_PROCESS, обслуживают функции pthread_attr_getscope() и pthread_attr_setscope() (см. листинг 1.8).

#include <pthread.h>

int pthread_attr_getscope ( const pthread_attr_t *restrict attr, int *restrict contentionscope);

int pthread_attr_setscope ( pthread_attr_t *attr, int contentionscope);

Листинг 1.8. Описание функций pthread_attr_getscope() и pthread_attr_setscope().

При создании потока управления все рассмотренные выше атрибуты планирования, в зависимости от значения PTHREAD_INHERIT_SCHED или PTHREAD_EXPLICIT_SCHED атрибута inheritsched, могут наследоваться у создающего потока или извлекаться из атрибутного объекта. Для опроса и изменения этого атрибута предназначены функции pthread_attr_getinheritsched() и pthread_attr_setinheritsched() (см.


Содержание  Назад  Вперед