Организация мультизадачности в процессорах семейства Х86

Страницы работы

Содержание работы

VII. ОРГАНИЗАЦИЯ МУЛЬТИЗАДАЧНОСТИ

В ПРОЦЕССОРАХ СЕМЕЙСТВА Х86

                                   1. Общие сведения.

Под мультизадачностью или многозадачностью понимается способность компьютера выполнять несколько задач одновременно. Задачей, в общем случае, называют последовательность взаимосвязанных действий, ведущих к достижению некоторой цели. В более конкретном случае, связанном с компьютерной техникой, под задачей понимается программа и, связанные с ней данные, которая выполняется или ожидает выполнения, пока выполняется другая программа. Другими словами, задачами считаются программы, загруженные в оперативную память компьютера. Та задача, которая выполняется в данный момент, т.е. текущая программа называется процессом. В определение задачи часто включаются и ресурсы процессора, которые требуются для  выполнения этой задачи, т.е. для достижения поставленной цели: объем требуемой для решения задачи памяти, необходимые регистры, требуемое время для ее выполнения и т.п. Дескрипторы всех сегментов и шлюзов одной задачи обычно объединяются в одной локальной дескрипторной таблице (LDT) с целью усиление защиты данной задачи от посторонних нежелательных воздействий.

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

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

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

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

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

4.  Мультизадачность создает ощутимые удобства и для одного пользователя, работающего на персональном компьютере. Вызвав в оперативную память несколько задач, пользователь может быстро и удобно переключаться с одной задачи на другую. Например, одна задача – обработка текста, другая – расчеты по электронным блокам, третья – формирование графических изображений, четвертая – использование базы данных и т.п. Каждой задаче выделяется свое окно с соответствующей областью памяти в ОЗУ.

Как уже было отмечено ранее, в современных компьютерах мультизадачность поддерживается аппаратно. Для поддержки мультизадачности в процессорах семейства iAPХ86 предусмотрены следующие регистры и структуры данных.

·  Сегмент состояния задачи TSS (Task State Segment).

·  Дескриптор TSS и его теневой регистр.

·  Регистр задачи TR (Task Register).

·  Дескриптор шлюза задачи.

·  Флаг вложенной задачи NT в регистре ERFLAGS.

·  Флаг TS в регистре СК0.

                     2. Сегмент состояния задачи TSS.

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

Область памяти, где хранится контекст задачи и носит название сегмента состояния данной задачи TSS (Task State Segment). Эта область памяти оформлена как самостоятельный сегмент и, как и все сегменты, описывается соответствующим дескриптором – системным дескриптором TSS. Структура сегмента состояния задачи и его связь с параметрами его дескриптора, для процессоров i386+, приведена на рис.VII.7. Сегмент TSS является  небольшим сегментом данных с разрешенными операциями записи и считывания. Его особенностью является то, что доступ к нему не разрешается никаким программам, даже на самом привилегированном, нулевом уровне. К нему может обращаться только сам процессор. Минимальный объем этого сегмента – 104 (68h) байт. Если при обращении к сегменту TSS процессор обнаружит, что значение в поле предела  его дескриптора меньше 67h, немедленно срабатывает система защиты, и процессор уходит на прерывание (возникает особый случай). Этот объем сегмента носит название обязательной части TSS. Однако сегмент TSS, как и любой сегмент может быть расширен вплоть до 4 Гбайт. Практически сегменты TSS такого размера, конечно, никогда не используются, но сегменты, объемом превосходящие обязательные 68h байт делаются очень часто, особенно, когда используется битовая карта ввода/вывода
(БКВВ). БКВВ служит для разрешения операций обмена информацией с периферийными устройствами тем программам, которые расположены на непривилегированных для этого уровнях.  Следует заметить, что ряд авторов рассматривают карту разрешения ввода/вывода БКВВ как область памяти, независимую от TSS. Они считают, что в TSS, мол, только указывается на местоположение этой карты (в последних двух байтах TSS приводится смещение начального адреса БКВВ относительно начала сегмента TSS).

Рассмотрим подробнее, какая же информация запоминается в сегментах состояния задач TSS. Всю находящуюся в них информацию можно разделить на две части: статическую и динамическую. Статической называется информация, которая не изменяется при переключении задачи. Она устанавливается при инициализации TSS и не изменяется в течение всего времени существования задачи.

Похожие материалы

Информация о работе