Предыдущая глава РАБОТА С ОПЕРАТИВНОЙ ПАМЯТЬЮ В ЗАЩИЩЕННОМ РЕЖИМЕ Следующий раздел

23.1. Введение

Важнейшими аппаратными ресурсами ВС являются ЦП и ОП. Управление этими ресурсами выполняется как программно – подпрограммами ядра ОС, так и аппаратно – аппаратурой самого ЦП. При этом программное управление ЦП и ОП использует и дополняет соответствующее аппаратное управление.

В предыдущих разделах пособия были выявлены основные задачи по управлению ЦП:

1) диспетчеризация процессов – распределение времени ЦП между процессами. Данная задача решается ядром ОС;

2) замена на ЦП аппаратного контекста процесса. Такая замена приводит к смене выполняемого на ЦП процесса. Ее реализация требуется для решения предыдущей задачи диспетчеризации процессов. Данная задача решается аппаратно;

3) переключение ЦП из непривелигированного в привелигерованный режим и обратное переключение. Такое переключение требуется для реализации системных вызовов, приводящих к переводу процесса из состояния «Задача» в состояние «Ядро», а также для обратных переходов. Данная задача решается аппаратно;

4) поддержка прерываний. Механизм прерываний чрезвычайно важен для организации взаимодействия между аппаратурой ВС и ее программным обеспечением. Данная задача решается совместно аппаратурой ЦП и подпрограммами ядра ОС.

Первая из перечисленных задач (диспетчеризация процессов) была рассмотрена нами ранее в п.5.4, а остальные задачи будут рассмотрены в данном разделе после рассмотрения задач управления ОП.

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

1) преобразование виртуальных адресов в реальные адреса ячеек ОП;

2) защита областей памяти одного процесса от воздействия других процессов;

3) распределение ОП между процессами.

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

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

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

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

 

Рис. 71. Состав аппаратуры управления памятью

 

 Дальнейшее изложение решения задач по управлению ОП и ЦП основано на использовании в качестве ЦП микропроцессора i80386. Данный процессор занимает очень важное место в историческом ряде процессоров фирмы Intel по следующим причинам. Во-первых, это первый 32-битный процессор. Его регистры, за исключением некоторых регистров управления памятью, рассматриваемых нами позже, приведены  на рис.33.

32-битные рабочие регистры EAX, EBX, ECX, EDX имеют в качестве младших половин регистры AX, BX, CX, DX, доставшиеся «в наследство» от процессора i8086. Это же относится и к регистрам-указателям ESI, EDI, EBP, ESP, EIP, а также к регистру флагов EFLAGS. Что касается сегментных регистров, то они по-прежнему остались 16-битными. Их число увеличилось на два (FS и GS). Новыми по сравнению с i8086 являются также управляющие 32-битные регистры CR0, CR1, CR2, CR3. Эти регистры, в отличие от регистра EFLAGS, отражают не текущее состояние ЦП,  определяемое программой, выполняемой в данный момент времени на ЦП, а долговременное состояние, общее для всех выполняемых на процессоре программ.

 

 

Рис. 72. Регистры процессора i80386

 

Во-вторых, начиная, с i80386 аппаратно поддерживается виртуальная память, имеющая объем во много раз больший, чем реальная ОП.

В-третьих, в i80386 реализованы достаточно надежные аппаратные методы защиты информации в ОП.

Несмотря на то, что последующие модели процессоров фирмы Intel многократно превосходят i80386 по скорости вычислений, в них по-прежнему реализуются идеи, полученные при его проектировании. Указанное превосходство в скорости достигается, в основном, за счет «количественных» факторов: увеличение числа команд, размера и количества регистров, емкости буферов, увеличения тактовой частоты.

Процессор i80386 имеет три режима работы: 1) реальный режим; 2) защищенный режим; 3) режим V86. В реальном режиме процессор оказывается сразу же после включения питания, или в случае сбоя. В этом режиме процессор очень похож на i8086, выполняя все программы для него (в том числе и саму MS-DOS). Отличия: 1) выше скорость выполнения машинных команд; 2) длина всех регистров (кроме сегментных) увеличина до 32 бит.

Режим V86 (виртуальный процессор i8086) имитирует для каждой из нескольких параллельно выполняемых DOS-программ режим работы i8086.

Бит 0 в CR0 управляет переключением режима процессора: 1-защищенный режим; 0-реальный режим. Следующая группа машинных команд (используется ассемблерная форма записи) выполняет переключение ЦП из реального в защищенный режим:

 

mov  AX, CR0

or      AX,1

mov   CR0, AX

 

В защищенном режиме процессор полностью преобразуется:

1) адресное пространство ОП увеличивается до 4-х  Гбайт или более, где 1Г = 1К3, 1К = 1024;

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

 


Предыдущая глава В начало Следующий раздел