Процессор i486 обеспечивает аппаратную поддержку мультизадачности. Задачей называется программа, выполняемая в текущий момент, либо ожидающая выполнения во время работы другой программы. Задача запускается прерыванием, исключением, переходом или вызовом. Когда одна из этих форм передачи управления используется с назначением, заданным элементом одной из дескрипторных таблиц, этот дескриптор может иметь тип, вызывающий начало выполнение новой задачи после сохранения состояния текущей задачи.
Существует два типа задаче-ориентированных дескрипторов, которые могут находиться в таблице дескрипторов: дескрипторы сегмента состояния задачи и шлюзы задачи. Когда управление передается любому из таких дескрипторов, происходит переключение задачи.
Переключение задачи похоже на вызов процедуры, но оно выполняет сохранение большего количества информации о состоянии процессора. Вызов процедуры сохраняет только содержимое регистров общего назначение, а в некоторых случаях содержимое только одного регистра (EIP). При вызове процедуры содержимое сохраняемых регистров помещается в стек, чтобы процедура имела возможность вызвать сама себя. Когда процедура вызывает сама себя, она называется реентерабельной.
Переключение задачи передает выполнение в полностью иную среду, среду задачи. Для этого требуется сохранить содержимое практически всех регистров процессора, таких как регистр EFLAGS. В отличие от процедур, задачи не реентерабельны. Переключение задачи ничего не помещает в стек. Информация о состоянии процессора сохраняется в структуре данных в памяти, которая называется сегмент состояния задачи.
В число регистров и структур данных, поддерживающих мультизадачность, входят:
Сегмент состояния задачи.
Дескриптор сегмента состояния задачи.
Регистр задачи
Дескриптор шлюза задачи.
Используя эти структуры, процессор i486 может переключать выполнение с одной задачи на другую, сохраняя контекст текущей задачи, допуская тем самым рестарт другой задачи. Помимо простого переключения задач, процессор i486 предлагает еще два средства организации мультизадачности:
Переключение задачи может выполняться вследствие прерываний и исключений (если это требуется конструкции системы). Процессор не только выполняет переключение задачи для обработки прерывания или исключения, но и автоматическое переключение назад, на прерванную задачу, после возврата из прерывания или исключения. Прерывания могут происходить и во время задач обработки прерывания.
При каждом переключении на другую задачу процессор i486 может также выполнять переключение на другую LDT. Это может использоваться для того, чтобы дать каждой задаче собственное отображение логических адресов в физические. Тем самым обеспечивается дополнительное средство защиты, поскольку задачи могут быть таким образом изолированы, и их взаимное влияние друг на друга исключено. Регистр PDBR также перезагружается. Это позволяет использовать механизм подкачки страниц для обеспечения изолированности задач.
Использование механизма мультизадачности является необязательным. Для некоторых прикладных программ этот способ организации выполнения программ не является лучшим. При необходимости наибольшей скорости реакции на прерывания, время, которое потребуется на сохранение состояния процессора при переключении задачи может оказаться слишком большим. В этой ситуации возможный компромисс может состоять в том, чтобы использовать задаче-ориентированные структуры данных, но выполнять переключение задач программными, а не аппаратными средствами. Это позволяет сохранять меньшее количество информации о состоянии процессора. Этот метод может являться одним из методов оптимизации, используемых для улучшения характеристик быстродействия системы после реализации базовых функции системы.