Какую аппаратную функцию должен поддерживать ЦП для реализации ОС для "упреждающих" задач?

Например, чтобы реализовать операционную систему, подобную Unix или NT, которая поддерживает переключение различных задач в зависимости от временных интервалов, какой тип аппаратной поддержки должен иметь процессор?

Intel 80286 начинает поддерживать выполнение "упреждающих" задач с прерыванием синхронизации? Какие еще аппаратные функции необходимы для достижения этой цели?

Благодарю.

1 ответ

Решение

Чтобы операционная система эффективно реализовала многозадачность, аппаратное обеспечение должно поддерживать две функции:

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

  2. Способ предотвращения отключения функции выше.
    Если текущая задача не может быть помещена в "песочницу" достаточно для поддержания активного вытесняющего механизма, она может просто отключить его и работать вечно.

286 был первым процессором семейства x86, который поддерживал защищенный режим, режим, необходимый для реализации функции 2.
Функция 1 была доступна в IBM PC с самого начала (процессор был 8086) благодаря использованию PIT 8254.

Функция 1 - это функция аппаратного обеспечения платформы, а не процессора ( хотя она может быть включена в процессор).
Особенность 2 - особенность центрального процессора.

Обратите внимание, что есть и другие возможные способы достижения 1 и 2.
Например, система с двумя процессорами, один из которых может контролировать выполнение другого (но не наоборот), подходит для обеих функций.

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