Время переключения контекста
Требуется ли переключение контекста между процессами одинаковое время для всего процесса (постоянное время) или время переключения контекста зависит от различных локальных факторов, которые варьируются от процесса к процессу (например, размер процесса, размер стека и т. Д.)?
РЕДАКТИРОВАТЬ: Предположим, ОС и аппаратное обеспечение исправлены, значит, время будет одинаковым в данной ОС и hwd. среда?
1 ответ
Это зависит от оборудования, а также от ОС / процесса:(Для запуска потока из другого процесса необходимо поменять контекст управления памятью, контекст с плавающей запятой и т. Д. Это проще / быстрее на одном оборудовании, чем на другом.
Драйверы сильно различаются по времени, которое они берут на себя, чтобы обращаться со своим оборудованием и сигнализировать ОС, что поток должен быть запущен - это еще одно осложнение.
В некоторых случаях такой обмен может потребовать вытеснения потока, работающего на другом ядре, отличном от того, который получил аппаратное / программное прерывание, которое инициировало обмен. Это занимает намного больше времени, чем замена контекста на одном процессоре.
Трудно придумать какую-либо среднюю цифру по этому вопросу. Откуда бы вы его отсчитали - прерывание драйвера, которое инициировало обмен потоков между процессами, или от записи в планировщик от драйвера?
Итак, в целом, мы можем, вероятно, согласиться с тем, что это занимает некоторое время и может варьироваться.