The design of the UNIX Operating System 49 страница



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

 

Таким образом, возможность обеспечения (при поддержке операционной системы) для программы "ви-димости" практически неограниченной (характерный размер для 32-разрядных архитектур 232 = 4 Гбайт) адресуемой пользовательской памяти (логическое адресное пространство) при наличии основной памяти существенно меньших размеров (физическое адресное пространство) – очень важный аспект.

 

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

 

Например, 16-разрядный компьютер PDP-11/70 с 64 Кбайт логической памяти мог иметь до 2 Мбайт опе-ративной памяти. Операционная система этого компьютера тем не менее поддерживала виртуальную па-мять, которая обеспечивала защиту и перераспределение основной памяти между пользовательскими процессами.

 

Напомним, что в системах с виртуальной памятью те адреса, которые генерирует программа (логические адреса), называются виртуальными, и они формируют виртуальное адресное пространство . Термин "вир-туальная память" означает, что программист имеет дело с памятью, отличной от реальной, размер кото-рой потенциально больше, чем размер оперативной памяти.


Основы операционных систем 83

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

 

Следует отметить, что оборудование компьютера принимает участие в трансляции адреса практически во всех схемах управления памятью. Но в случае виртуальной памяти это становится более сложным вслед-ствие разрывности отображения и многомерности логического адресного пространства. Может быть, наиболее существенным вкладом аппаратуры в реализацию описываемой схемы является автоматическая генерация исключительных ситуаций при отсутствии в памяти нужных страниц (page fault).

 

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

 

Сегментная организация в чистом виде встречается редко.

 

Архитектурные средства поддержки виртуальной памяти

 

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


Дата добавления: 2021-01-21; просмотров: 88; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!