Лекция N 15 Режимы работы ЭВМ IBM PC с центральным процессором (ЦП) 80386 и выше

 

ЭВМ IВМ РС с ЦП 8086 могла работать только в так называемом реальном режиме. Начиная с ЦП 80286 появилась возможность испозования защищенного режима работы, однако вскоре появился более современный ЦП 80386, основные особенности архитектуры которого нашли свое отображение и в следующих моделях ряда этих ЦП: 80486, 80586 и т.д. Поэтому режимы функционирования ряда этих ЦП будем рассматривать для ЦП 80386 и выше. Каждый из этих ЦП может функционировать в одном из трех режимов: реальном, защищенном и виртуальном; далее будут кратко рассмотрены основные особенности функционирования и использования этих режимов.

Реальный режим работы ЦП 80386

 

При включении питания или после сигнала "Сброс" ЦП 80386 устанавливается в реальный режим работы, который соответствует ЦП 8086 с добавлением возможности использования 32-разрядных регистров. Механизм адресации, пространство адресов памяти, управление прерываниями осуществляется аналогично реальному режиму ЦП 8086. В реальном режиме могут использоваться любые команды ЦП 80386.

 

Размер операнда по умолчанию в реальном режиме составляет 16 бит, как и у ЦП 8086. Для того, чтобы использовать 32-разрядные регистры, необходимо предварительно выполнить соответствующую настройку выполняемой программы. Размер сегмента в реальном режиме равен 64К байт, поэтому 32-разрядные адреса должны быть меньше, чем 0000FFFFh. В реальном режиме максимальный размер памяти составляет 1М байт. Так как в реальном режиме не используется страничная адресация, то линейный адрес равен физическому.

Физические адреса, как и в ЦП 8086, формируются в реальном режиме сложением содержимого соответствующего сегментного регистра, который сдвигается влево на 4 разряда, с исполнительным адресом, указанным в команде. В результате создается адресное пространство, определяемое 20-разрядным физическим адресом, т.е. равное 1М плюс 64К байт.

В реальном режиме имеется две зарезервированные области памяти: зона системной инициализации, находящаяся по адресам с FFFFFFF0h по FFFFFFFFh, и зона таблицы прерываний, находящаяся по адресам с 00000h по 003FFh.

В настоящее время реальный режим на ЭВМ IВМ РС с ЦП 80386 используется для реализации двух целей:

1. выполнения на этих ЭВМ программ, написанных под MS DOS или другие родственные ей ОС;

2. для подготовки перехода этой ЭВМ в защищенный режим.

 

Защищенный режим работы ЦП 80386

 

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

1. адресное пространство расширяется до 4Г байт, а область виртуальных адресов - до 64Т байт, т.е. практически не ограничена;

2. используются другие механизмы адресации, при этом существенно, что выполняемой в каком-то отрезке времени задаче выделяется определенная область оперативной памяти (ОП), за пределы которой задача не может обращаться, - при попытке такого обращения возникает так называемое нарушение общей защиты, вследствие чего выполнение задачи прекращается и включается принадлежащая ОС программа обработки прерывания по этой причине;

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

 

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

1. для использования ЭВМ в многопользовательском режиме, например, если ЭВМ является сервером вычислительной сети и на нем установлена многопользовательская ОС для обслуживания запросов рабочих станций этой сети;

2. для использования ЭВМ в однопользовательском многозадачном режиме;

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

4. для использования ЭВМ в однопользовательском однозадачном режиме, но при этом используемая ОС предоставляет пользователю для общения с ЭВМ интерфейс, существенно превосходящий по своим возможностям интерфейс, предоставляемый MS DOS (такие возможности обеспечивают ОС типа Windows).

 

Виртуальный режим работы ЦП 80386 (режим V86). Эмуляция MS DOS в режиме V86

 

Основной целью использования режима V86 является одновременное выполнение программ, написанных под MS DOS, под управлением многопользовательской ОС. При этом у каждого пользователя создается иллюзия монопольного владения всеми ресурсами ЭВМ.

Реальный режим работы ЦП 80386, эмулирующий ЦП 8086, и режим виртуального ЦП 8086, работающий в защищенном режиме ЦП 80386, несколько различаются. Когда ЦП работает в режиме V86, его селекторы, несмотря на то, что включен защищенный режим, интерпретируются также, как и в реальном режиме. Эффективный адрес при этом получается сложением смещения со сдвинутым на 4 разряда влево содержимым сегментного регистра. На ОС возлагаются обязанности по определению программ, использующих механизм адресации ЦП 8086, и программ, использующих адресацию собственно ЦП 80386. Отличие адресации виртуального ЦП 8086 от реального заключаются в использовании механизма страничной адресации, благодаря которому адресное пространство задачи в 1М байт может быть размещено в любом месте пространства линейных адресов ЦП 80386 объемом 4Г байт. Адреса, превышающие величину 1М в режиме виртуального ЦП 8086, будут вызывать возникновение прерывания 13 защищенного режима (нарушение общей защиты).

Все программы виртуального режима выполняются на уровне привилегированности 3, т.е. на низшем уровне, в отличие от реального режима, который всегда имеет уровень привилегированности 0, т.е. высший уровень. Поэтому попытка выполнить в виртуальном режиме привилегированную команду также приведет к возникновению прерывания 13.

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

Важнейшей чертой программ реального режима является широкое использование средств MS DOS и BIOS. Поэтому виртуальный режим может иметь право на вектора программного прерывания) и передача управления через этот вектор требуемой программе ОС, которая, очевидно, должна выполняться опять в режиме V86. Всю эту процедуру иногда называют "отражением" прерывания на MS DOS (или другую ОС реального режима), или "эмуляцией" DOS в режиме виртуального ЦП 8086. Подобная эмуляция должна осуществляться и при возникновении аппаратных прерываний, обеспечивая обычно их обработку с помощью BIOS.

Таким образом многозадачная ОС, выполняемая на ЦП 80386, может полностью моделировать вызовы однозадачной ОС, например, MS DOS. Кроме того, эта многозадачная ОС должна также выполнять подобным образом производить обработку команд обращения задач, выполняемых в режиме V86, к портам ввода-вывода - команд in и out.

Принципы обеспечения в ОС многозадачного и

многопользовательского режимов (на примере ОС типа Windows)

 

Прежде всего перечислим наиболее характерные примеры, когда возникает необходимость использования таких ОС:

- при размещении ОС на сервере вычислительной сети для управления работой этой сети;

- при управлении работой супер-ЭВМ, работающей в режиме разделения времени;

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

Кроме того, использование многозадачной ОС может оказаться весьма целесообразно и на обычной персональной ЭВМ, например, на фоне вывода на печать уже отредактированной части текста продолжается редактирование другой части текста, и т.д.

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

- однозадачные ОС (MS DOS в значительной части случаев ее использования);

- использование в среде MS DOS резидентных программ (TSR), включаемых или по вызову пользователя, например, нажатием заданной комбинации клавиш, или от системного таймера; главный недостаток при использовании TSR заключается в отсутствии реентерабельности (повторной входимости) функций MS DOS и BIOS, вызываемых программами пользователей;

- невытесняющая многозадачность, реализованная в Windows 3.0 и Windows 3.1, явилась шагом вперед по сравнению с использованием резидентных программ, так как при использовании этих вновь созданных программных продуктов была решена проблема реентерабельности для ОС; суть невытесняющей многозадачности состоит в том, что передача управления от программы к программе производится тогда, когда выполняемая в данный момент программа этого "пожелает", что является крупным недостатком метода ввиду отсутствия учета приоритетов при предоставлении задачам времени ЦП и вследствие этого низкой эффективности его использования;

- вытесняющая многозадачность, реализованная в ОС типа Windows, начиная с Windows 95, в ОС Unix и т.д., при которой каждой задаче предоставляется для ее выполнения ограниченный квант времени, вследствие чего существенно возрастает эффективность использования времени ЦП по сравнению со случаем использования невытесняющей многозадачности.

 

 

Характерные свойства современных многозадачных и многопользовательских ОС

 

1. Вытесняющая многозадачность;

2. Реентерабельность программ этих ОС;

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

4. Адресное пространство ОП каждой задачи и ОС должно быть защищено от воздействия друг друга; эта защита организуется при блоковой организации ОП (подобная защита отсутствует при функционировании MS DOS, так как при этом используется реальный режим работы ЦП 80х86, в котором отсутствуют средства рассматриваемой защиты);

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

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

7. Для многопользовательских ОС должен быть предусмотрен ввод имен пользователей и их паролей, причем передачу пароля от терминала пользователя к ЦП ЭВМ предпочтительнее производить в закодированном виде с целью усложнения проникновения злоумышленников к данным, содержащимся в ЭВМ;

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

- при использовании задачами общих данных;

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

- при ожидании основной задачей, когда организованная ей вспомогательная задача подготовит для нее данные.

9. ОС должна содержать средства, которые управляют доступом различных задач к файлам на жестком диске; примерами таких средств являются матрица доступа пользователей к файлам и управление доступом к файлам в зависимости от принадлежности пользователя к тому или иному классу.

10.Задачи пользователей не должны иметь непосредственный доступ к системным ресурсам: портам устройств ввода-вывода, установке векторов прерываний и т.д.; при этом все управление системными ресурсами должно осуществляться только самой ОС, в том числе и по заданию задач пользователей.