Вопросы по переключению контекста: Какая часть ОС участвует в управлении переключением контекста?

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

  1. Сколько печатных плат существует в системе в определенное время?
  2. Какие две ситуации могут вызвать переключение контекста? (Я думаю, что они прерывают и завершают процесс, но я не уверен)
  3. Аппаратная поддержка может изменить время, необходимое для переключения. Каковы два разных подхода?
  4. Какая часть ОС участвует в управлении переключателем контекста?

3 ответа

  1. В данный момент в системе может быть любое количество печатных плат. Каждая печатная плата связана с процессом.
  2. Таймер прерывает в вытесняющих ядрах или отказывается от управления процессором в кооперативных ядрах. И, конечно же, завершение и блокировка процесса при операциях ввода-вывода.
  3. Я не знаю ответа здесь, но вижу ответ Марко
  4. Один из планировщиков из ядра.

введите описание изображения здесь

3: целый ряд возможных аппаратных оптимизаций

  • Небольшие наборы регистров (поэтому меньше для сохранения и восстановления при переключении контекста)
  • "Грязные" флаги для набора регистров процессора с плавающей запятой / вектора - позволяет ядру избежать сохранения контекста, если с ним ничего не произошло с момента его включения. Контексты FP/VP обычно очень велики, и многие потоки их никогда не используют. Некоторые RTOS предоставляют API, чтобы сообщить ядру, что поток вообще не использует FP/VP, исключая даже большее восстановление контекста, а некоторые - особенно, когда поток, обрабатывающий ISR, опережает другой, а затем быстро завершается с немедленным перепланированием ядра. оригинальная нить.
  • Банки теневых регистров: для небольших встроенных процессоров с встроенным SRAM. Регистры ЦП защищены памятью. В результате переключение банка является просто случаем переключения базового адреса регистров. Обычно это достигается несколькими инструкциями и очень дешево. Обычно количество контекста в этих системах сильно ограничено.
  • Регистры прерываний теней: банки регистров теней для использования в ISR. Пример - все процессоры ARM, у которых теневой банк около 6 или 7 регистров для быстрого обработчика прерываний и немного меньше теневого для обычного. Несмотря на то, что не только увеличение производительности для переключения контекста, это может помочь в стоимости переключения контекста на задней панели ISR.
  • Физически, а не виртуально отображенные кэши. При смене MMU необходимо сбросить виртуально отображенный кеш при переключении контекста, что будет в любой многопроцессорной среде с защитой памяти. Однако физически сопоставленный кэш означает, что преобразование виртуальных физических адресов является критически важной операцией при операциях загрузки и хранения, и много ресурсов затрачивается на кэширование для повышения производительности. Поэтому виртуально отображенные кэши были идеальным выбором для некоторых процессоров, предназначенных для встраиваемых систем.

Планировщик является частью операционных систем, которые управляют переключением контекста, он выполняет переключение контекста в одном из следующих условий:
1.Multitasking

2. Обработка прерываний

3. Переключение режима пользователя и ядра

и каждый процесс имеет свою собственную печатную плату

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