Книга: Разработка ядра Linux
Передача процессорного времени
Передача процессорного времени
Операционная система Linux предоставляет системный вызов sched_yield()
как механизм, благодаря которому процесс может явно передать процессор под управление другим ожидающим процессам. Этот вызов работает путем удаления процесса из активного массива приоритетов (где он в данный момент находится, потому что процесс выполняется) с последующим помещением этого процесса в истекший массив. Получаемый аффект состоит не только в том, что процесс вытесняется и становится последним в списке заданий с соответствующим приоритетом, а также в том, что помещение процесса в истекший массив гарантирует, что этот процесс не будет выполняться некоторое время. Так как задачи реального времени никогда не могут быть помещены в истекший массив, они составляют специальный случай. Поэтому они только перемещаются в конец списка заданий с таким же значением приоритета (и не помещаются в истекший массив). В более ранних версиях ОС. Linux семантика вызова sched_yield()
была несколько иной. В лучшем случае задание только лишь перемещалось в конец списка заданий с данным приоритетом. Сегодня для пользовательских программ и даже для потоков пространства ядра должна быть полная уверенность в том, что действительно необходимо отказаться от использования процессора, перед тем как ввязывать функцию sched_yield()
.
В коде ядра, для удобства, можно вызывать функцию yield()
, которая проверяет, что состояние задачи равно TASK_RUNNING
, а после этого вызывает функцию sched_yield()
. Пользовательские программы должны использовать системный вызов sched_yield()
.
- Передача прав
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Ограничение времени ожидания для транзакций (Lock timeout)
- 7.12. Объективизация времени
- Квант времени
- Формула времени. Тайм-менеджмент на Outlook 2013
- 6.4.2. Передача номенклатурных позиций между ячейками склада
- Глава 11 Передача во временное пользование и заказы
- 12.6. Сигналы реального времени
- Время от времени оптическая мышь начинает мигать. Она сломалась?
- Глава 10 Передача файлов
- 5.3.8. Защищенная передача данных