52
числительных машинах, таких как IBM 360/370. В РС механизм сегментно-
страничной адресации появился существенно позднее. Первыми процессорами
фирмы Intel, имеющими аппаратную поддержку механизма сегментации памяти, яв-
лялись процессоры I80286. Однако наиболее широко защищенный режим (многоза-
дачность, виртуальная память) стал использоваться с появлением 32-разрядных
процессоров, в частности процессоров I80386, имеющих аппаратную поддержку ме-
ханизма сегментно-страничной
организации памяти. Такая поддержка позволила
разработчикам системного программного обеспечения строить логическое адресное
пространство памяти в соответствии с потребностями, определяемыми функцио-
нальным назначением ЭВМ. Процессор I80386 может работать как в реальном, так и
защищенном режимах и поддерживает следующие варианты логической организа-
ции памяти:
- плоское (линейное) логическое адресное пространство, представляющее со-
бой массив
байтов со сплошной нумерацией;
- сегментированное логическое адресное пространство, состоящее из некото-
рого числа сегментов, каждый из которых содержит переменное число байтов;
- страничное логическое адресное пространство, состоящее из большого чис-
ла страниц, каждая из которых включает фиксированное число байтов;
- сегментно-страничное адресное пространство, состоящее из некоторого чис-
ла
сегментов, которые, в свою очередь, состоят из целого числа страниц.
Процессор I80386 поддерживает 16000 сегментов различного объема. Размер
каждого сегмента может достигать 4 Гбайт, что позволяет реализовывать управле-
ние виртуальной памятью емкостью до 64 Тбайт (в многозадачном режиме 16000
сегментов – для каждой новой задачи).
Перечисленные возможности позволяют программисту, в случае необходимо-
сти, использовать защищенный режим и
разбить виртуальную память ЭВМ на сег-
менты. При этом каждому модулю программных кодов можно присвоить свой собст-
венный логический сегмент памяти. Пользуясь моделью сегментной адресации, про-
граммист может разделить логическое адресное пространство, например, на сег-
менты данных, кодов программ, стека и несколько дополнительных сегментов. Это
будет способствовать достаточно простой реализации
механизмов, обеспечиваю-
щих защиту отдельных модулей, разделение информации между сегментами, а так-
же совместную или раздельную их обработку.
Виртуальную память можно поделить также на страницы. В отличие от сегмен-
тов, для которых допускаются переменные размеры и размещение в ОП, наиболее
приемлемые для программных модулей страницы имеют фиксированный размер
4 Кбайт и
жесткую привязку к адресам памяти. Страничная организация памяти при-
дает алгоритмам перекачки данных в процедурах размещения, запоминания и поис-
ка более рациональную форму благодаря равномерности распределения блоков
памяти в адресном пространстве. В любой программе можно объединить основные
принципы каждого из рассмотренных способов управления памятью, если, допустим,
логическое адресное пространство разделить на
сегменты, а для управления физи-
ческой памятью применить методы страничной организации. Размер страницы
4 Кбайт хорошо подходит для функционирования операционных систем и для под-
систем ВВ дисков, а также обеспечивает хороший коэффициент удачных обращений
для внутрикристального кэш страниц. Следует отметить, что с появлением процес-
соров Pentium возникла возможность поддержки страниц размером 4 Мбайт
. Однако
при дальнейшем изложении материала размер страницы подразумевается 4 Кбайт.
Следует, однако, иметь в виду, что
виртуальной памяти как физического объ-
екта
не существует (в отличие от кэш-памяти), хотя она и имеет определенную ап-
паратную поддержку. Виртуальная память является "порождением" операционной