Главная » 2017 » Ноябрь » 21 » man 2 sched_yield
01:43
man 2 sched_yield

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


sched_yield - освободить процессор



ОБЗОР


#include <sched.h>

int sched_yield(void);



ОПИСАНИЕ


Вызов sched_yield() заставляет вызывающую нить освободить процессор. Нить
перемещается в конец очереди согласно её статическому приоритету, и управление
передаётся другой нити.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении sched_yield() возвращается 0. При ошибке возвращается -1,
а значение errno устанавливается соответствующим образом.



ОШИБКИ


В Linux-реализации sched_yield() всегда завершается успешно.



СООТВЕТСТВИЕ СТАНДАРТАМ


POSIX.1-2001, POSIX.1-2008.



ЗАМЕЧАНИЯ


Если вызывающая нить единственная в списке с самым высоким приоритетом, то она
продолжит выполняться после вызова sched_yield().

В системах POSIX, в которых доступен вызов sched_yield(), определён
_POSIX_PRIORITY_SCHEDULING в <unistd.h>.

Оперативные вызовы sched_yield() могут улучшить производительность, давая другим
нитям или процессам шанс поработать, когда (сильно) оспариваемые ресурсы
(например, мьютексы) освобождаются вызывающим. Избегайте частых или
нецелесообразных вызовов sched_yield() (например, когда ресурсы, необходимые
других планируемым нитям, по-прежнему удерживаются вызывающим), так как это
приводит к чрезмерному переключению контекстов, что ухудшит производительность
системы.

Системный вызов sched_yield() предназначен для использования с алгоритмами
планирования реального времени (т. е., SCHED_FIFO или SCHED_RR). Использование
sched_yield() с недерминированными алгоритмами планирования, такими как
SCHED_OTHER, не определено и указывает на, вероятно, неправильно разработанное
приложение.



СМОТРИТЕ ТАКЖЕ


sched(7)



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 434 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar