Размещение контекста процесса в структуре его потока дает ядру возможность переключать контекст путем простого изменения представления текущей структуры потока и (при необходимости) структуры процесса и восстановления контекста, описываемого ТСВ, в структуре потока (включая отображение виртуального адресного пространства). Каждый раз, когда требуется переключение контекста, вызов процедуры miswitch() заставляет запустить поток с наивысшим приоритетом. Процедура mi_switch() сначала выбирает из очередей планирования соответствующий поток, а затем возобновляет выбранный поток, загрузив контекст его процесса из его ТСВ. Когда mi_switch() загрузила состояние выполнения нового потока, она должна также проверить состояние нового потока на предмет наличия запроса нелокального возврата (такого, как при первом после fork начале выполнения процессом.
- 22/09/2010 20:46 - Планирование потоков
- 20/09/2010 00:36 - Другие виды синхронизации
- 16/09/2010 17:09 - Блокировки менеджера блокировок
- 14/09/2010 12:02 - Синхронизация с помощью мьютекса
- 13/09/2010 12:25 - Синхронизация
- 01/09/2010 07:22 - Состояние потока
- 28/08/2010 04:32 - Структура потока
- 27/08/2010 20:18 - Структура процесса
- 17/08/2010 04:52 - Планирование
- 17/08/2010 04:44 - Многозадачное программирование