русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Глава 7. Мультизадачность


Дата добавления: 2015-06-12; просмотров: 599; Нарушение авторских прав


Процессор i486 обеспечивает аппаратную поддержку мультизадачности. Задачей называется программа, выполняемая в текущий момент, либо ожидающая выполнения во время работы другой программы. Задача запускается прерыванием, исключением, переходом или вызовом. Когда одна из этих форм передачи управления используется с назначением, заданным элементом одной из дескрипторных таблиц, этот дескриптор может иметь тип, вызывающий начало выполнение новой задачи после сохранения состояния текущей задачи.

Существует два типа задаче-ориентированных дескрипторов, которые могут находиться в таблице дескрипторов: дескрипторы сегмента состояния задачи и шлюзы задачи. Когда управление передается любому из таких дескрипторов, происходит переключение задачи.

Переключение задачи похоже на вызов процедуры, но оно выполняет сохранение большего количества информации о состоянии процессора. Вызов процедуры сохраняет только содержимое регистров общего назначение, а в некоторых случаях содержимое только одного регистра (EIP). При вызове процедуры содержимое сохраняемых регистров помещается в стек, чтобы процедура имела возможность вызвать сама себя. Когда процедура вызывает сама себя, она называется реентерабельной.

Переключение задачи передает выполнение в полностью иную среду, среду задачи. Для этого требуется сохранить содержимое практически всех регистров процессора, таких как регистр EFLAGS. В отличие от процедур, задачи не реентерабельны. Переключение задачи ничего не помещает в стек. Информация о состоянии процессора сохраняется в структуре данных в памяти, которая называется сегмент состояния задачи.

В число регистров и структур данных, поддерживающих мультизадачность, входят:

  • Сегмент состояния задачи.
  • Дескриптор сегмента состояния задачи.
  • Регистр задачи
  • Дескриптор шлюза задачи.

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



  1. Переключение задачи может выполняться вследствие прерываний и исключений (если это требуется конструкции системы). Процессор не только выполняет переключение задачи для обработки прерывания или исключения, но и автоматическое переключение назад, на прерванную задачу, после возврата из прерывания или исключения. Прерывания могут происходить и во время задач обработки прерывания.
  2. При каждом переключении на другую задачу процессор i486 может также выполнять переключение на другую LDT. Это может использоваться для того, чтобы дать каждой задаче собственное отображение логических адресов в физические. Тем самым обеспечивается дополнительное средство защиты, поскольку задачи могут быть таким образом изолированы, и их взаимное влияние друг на друга исключено. Регистр PDBR также перезагружается. Это позволяет использовать механизм подкачки страниц для обеспечения изолированности задач.

Использование механизма мультизадачности является необязательным. Для некоторых прикладных программ этот способ организации выполнения программ не является лучшим. При необходимости наибольшей скорости реакции на прерывания, время, которое потребуется на сохранение состояния процессора при переключении задачи может оказаться слишком большим. В этой ситуации возможный компромисс может состоять в том, чтобы использовать задаче-ориентированные структуры данных, но выполнять переключение задач программными, а не аппаратными средствами. Это позволяет сохранять меньшее количество информации о состоянии процессора. Этот метод может являться одним из методов оптимизации, используемых для улучшения характеристик быстродействия системы после реализации базовых функции системы.



<== предыдущая лекция | следующая лекция ==>
Объединение защиты сегментов и страниц | Сегмент состояния задачи


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.282 сек.