Время переключения контекста

Требуется ли переключение контекста между процессами одинаковое время для всего процесса (постоянное время) или время переключения контекста зависит от различных локальных факторов, которые варьируются от процесса к процессу (например, размер процесса, размер стека и т. Д.)?

РЕДАКТИРОВАТЬ: Предположим, ОС и аппаратное обеспечение исправлены, значит, время будет одинаковым в данной ОС и hwd. среда?

1 ответ

Это зависит от оборудования, а также от ОС / процесса:(Для запуска потока из другого процесса необходимо поменять контекст управления памятью, контекст с плавающей запятой и т. Д. Это проще / быстрее на одном оборудовании, чем на другом.

Драйверы сильно различаются по времени, которое они берут на себя, чтобы обращаться со своим оборудованием и сигнализировать ОС, что поток должен быть запущен - это еще одно осложнение.

В некоторых случаях такой обмен может потребовать вытеснения потока, работающего на другом ядре, отличном от того, который получил аппаратное / программное прерывание, которое инициировало обмен. Это занимает намного больше времени, чем замена контекста на одном процессоре.

Трудно придумать какую-либо среднюю цифру по этому вопросу. Откуда бы вы его отсчитали - прерывание драйвера, которое инициировало обмен потоков между процессами, или от записи в планировщик от драйвера?

Итак, в целом, мы можем, вероятно, согласиться с тем, что это занимает некоторое время и может варьироваться.

Другие вопросы по тегам