7.4.6.3. Многозадачность
Многозадачность-это метод, с помощью которого управляют
компьютерной системой,
выполняющей несколько видов работ, таких как редактирование файла, компиляции программы или
выполнение внутрисистемных передач. Отдельные задачи выполняются так, как если бы они
выполнялись на специализированных процессорах с общей памятью. Другими словами, за
исключением пауз для взаимодействия
или синхронизации с другими задачами, каждая задача работает параллельно с
другими задачами. В МП 80386 имеются аппаратные средства для поддержания
эффективной многозадачности.
Для эффективного переключения с задачи на задачу МП
80386 использует специальные быстродействующие устройства, благодаря которым
для такого переключения требуется всего лишь единственная команда или
прерывание. При работе на тактовой
частоте 16 МГц процессор может сохранить состояние одной задачи (все регистры), загрузить состояние другой задачи
и возобновить исполнение всего лишь
за 16 мкс.
Для
управления многозадачностью МП 80386 не использует специальных команд. Вместо этого он по-другому интерпретирует
обычные команды передачи управления в
тех случаях, когда они ссылаются на специальные структуры данных. Регистрами и структурами данных, которые
поддерживают многозадачность, являются сегмент состояния задачи TSS,
дескриптор TSS, регистр задачи и дескриптор вентиля задачи.
В дополнение к простому переключению задач МП 80386
обеспечивает два других свойства управления задачами.
При
каждом переключении задачи процессор может переключиться на другую таблицу LDT и на другой каталог страниц. Таким образом, каждая
задача может иметь различные отображения
логического адреса в линейный и линейного адреса в физический. Благодаря этому свойству задачи могут быть
изолированы друг от друга и предотвращено их взаимное влияние.
Если по проекту системы необходимо, то прерывания или
исключения могут вызвать
переключение задачи. Процессор не только переключается на задачу, которая обслуживает это
прерывание или исключение, но и автоматически переключается обратно после того,
как данное прерывание или исключение было обработано.
В действительности многозадачность моделирует многие
процессоры, обеспечивая каждую задачу
виртуальным процессором. То есть в каждом конкретном случае операционная система назначает реальный процессор одному из
виртуальных процессоров, который затем выполняет задачу данного
виртуального процессора. Для того чтобы
сделать это, МП 80386 использует сегменты TSS и команды, которые переключают задачи.