Параллельное и распределенное программирование на С++
Шрифт:
Описание
Функции pthread_attr_getschedparam и pthread_attr_setschedparam используются для считывания и установки соответственно атрибутов параметров планирования в объекте, заданном параметром attr. Содержимое структуры param определено в заголовке <sched.h>. Для установки стратегий планирования SCHED_FIFO и SCHED_RR единственным обязательным членом структуры param является sched_priority.
TSP Для установки стратегии планирования SCHED_SPORADIC
Возвращаемые значения
При успешном завершении функции pthread_attr_getschedparam и pthread_attr_setschedparam возвращают нулевое значение; в противном случае — код ошибки, обозначающий ее характер.
Ошибки
Функция pthread_attr_setschedparam м ожет завершиться неудачно, если:
[EINVAL] значение, заданное пара м етро м param, недействительно;
[ ENOTSUP ] была сделана попытка установить атрибут равны м значению, которое не под д ерживается реализацией.
Эти функции не возвращают код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
После установки этих атрибутов поток м ожно создать путе м вызова функции pthread_create с использование м объекта атрибутов. Применение этих функций не оказывает влияния на поток, выполняемый в данный момент.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_attr_destroy, pthread_attr_getscope, pthread_attr_getinheritsched, pthread_attr_getschedpolicy, pthread_create , то м Base Definitions стандарта IEEE Std 1003.1-2001, <pthread.h>, <sched.h>.
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.
Отмечены как часть группы Realtime Threads Feature Group.
Issue 6
Функции pthread_attr_getschedparam и pthread_attr_setschedparam отмечены как часть опции Threads.
В целях согласования
со стандарто м IEEE Std 1003.1d-1999 была добавлена стратегия планирования SCHED_SPORADIC.В целях согласования со стандарто м ISO/IEC 9899: 1999 в прототипы функций pthread_attr_getschedparam и pthread_attr_setschedparam было добавлено ключевое слово restrict.
pthread_attr_getschedpolicy, pthread_attr_setschedpolicy
Имя
pthread_attr_getschedpolicy, pthread_attr_setschedpolicy — функции считывания и установки атрибута schedpolicy (REALTIME THREADS).
Синопсис
THR, TPS
#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) ;
Описание
Функции pthread_attr_getschedpolicy и pthread_attr_setschedpolicy используются для считывания и установки соответственно атрибута schedpolicy в объекте атрибутов, адресуемом параметром аttr.
Для обозначения стратегии планирования поддерживаются значения SCHED_FIF0, SCHED_RR и SCHED_OTHER, которые определены в заголовке <sched. h>.
TSP Когда потоки, выполняющиеся с использованием стратегий планирования SCHED_FIFO, SCHED_RR или SCHED_SPORADIC, ожидают освобождения мьютекса, то его получение (после разблокировки) происходит согласно приоритета м.
Возвращаемые значения
При успешном завершении функции pthread_attr_getschedpolicy и pthread_attr_setschedpolicy возвращают нулевое значение; в противно м случае — код ошибки, обозначающий ее характер.
Ошибки
Функция pthread_attr_setschedpolicy м ожет завершиться неудачно, если:
[EINVAL] значение, заданное пара м етро м policy, недействительно;
[ENOTSUP] была сделана попытка установить атрибут равным значению, которое не поддерживается реализацией.
Эти функции не возвращают код ошибки [EINTR].
Примеры
Отсутствуют.
Замечания по использованию
После установки этих атрибутов поток можно создать путем вызова функции pthread_create с использованием объекта атрибутов. Применение этих функций не оказывает влияния на поток, выполняемый в данный момент.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_attr_destroy, pthread_attr_getscope, pthread_attr_getinheritsched , pthread_attr_getschedparam, pthread_create , том Base Definidons стан д арта IEEE Std 1003.1-2001, <pthread.h>, <sched.h>.