Какую аппаратную функцию должен поддерживать ЦП для реализации ОС для "упреждающих" задач?
Например, чтобы реализовать операционную систему, подобную Unix или NT, которая поддерживает переключение различных задач в зависимости от временных интервалов, какой тип аппаратной поддержки должен иметь процессор?
Intel 80286 начинает поддерживать выполнение "упреждающих" задач с прерыванием синхронизации? Какие еще аппаратные функции необходимы для достижения этой цели?
Благодарю.
1 ответ
Чтобы операционная система эффективно реализовала многозадачность, аппаратное обеспечение должно поддерживать две функции:
Способ вернуть ОС под контроль после того, как она передала выполнение задачи.
Обычно это достигается с помощью прерывания по таймеру и во время системных вызовов.
После системного вызова ОС возвращается к управлению и может приостановить текущую задачу в пользу других (особенно для системных вызовов, связанных с вводом-выводом).
Таймер тоже нужен, иначе задача вращения бедра, которая не делает системный вызов, никогда бы не вернула управление ОС.Способ предотвращения отключения функции выше.
Если текущая задача не может быть помещена в "песочницу" достаточно для поддержания активного вытесняющего механизма, она может просто отключить его и работать вечно.
286 был первым процессором семейства x86, который поддерживал защищенный режим, режим, необходимый для реализации функции 2.
Функция 1 была доступна в IBM PC с самого начала (процессор был 8086) благодаря использованию PIT 8254.
Функция 1 - это функция аппаратного обеспечения платформы, а не процессора ( хотя она может быть включена в процессор).
Особенность 2 - особенность центрального процессора.
Обратите внимание, что есть и другие возможные способы достижения 1 и 2.
Например, система с двумя процессорами, один из которых может контролировать выполнение другого (но не наоборот), подходит для обеих функций.