К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 88
Текст из файла (страница 88)
Остальные управляющие биты действуют в соответствии с различными ограничениями, налагаемыми на доступ к странице. Например, программе могут быть предоставлены полные права на чтение и запись страницы или же только на ее чтение. Диспетчер памяти, то есть ММП, использует информацию из таблицы страниц для выполнения каждой операции чтения или записи. Поэтому было бы целесообразно хранить эту таблицу прямо в нем. Но, к сожалению, она слишком велика, а блок управления памятью обычно интегрирован в микросхему процессора (вместе с кэшем первого уровня), куда невозможно добавить такой большой фрагмент памяти.
Поэтому таблица страниц содержится в основной памяти. Диспетчер памяти может хранить небольшую ее часть, которая включает элементы, соответствующие недавно использовавшимся страницам. Практически это маленький кеш, обычно называемый буфером бысгпрого преобразования аореса (Тгапз1аг1оп 1локазЫе Вп((ег, Т(.В). У него то же назначение и такой же принцип действия, как и у любой другой кэш-памяти. Кроме элемента таблицы странид н Т(.В должен содержаться виртуальный адрес этого элемента. На рис.
5.2В показан один из вариантов организация Т(.В на основе ассоциативного отображения. Существуют и Т(.В с множественно-ассоциативной организацией. Исключительно важно, чтобы содержимое Т1,В соответствовало содержимому таблицы страниц в памяти. Когда операционная система изменяет содержи. мое таблицы страницы, она должна одновременно пометить соответствующие элементы Т(.В как недостоверные. Для этого в каждом таком элементе имеется специальный управляющий бит. Если элемент помечается как недостоверный, он обновляется в ходе обычной операции, выполняемой ММБ, когда нужных данных в Т1.В не оказывается. Преобразование адресов осуществляется следующим образом.
Получив виртуальный адрес, ММП ищет в Т(.В заданную страницу. Если нужная запись находится в Т(.В, из нее тут же извлекается физический адрес страницы. В случае промаха, то есть отсутствия записи в Т1.В, она считывается из таблицы страниц в основной памяти,и Т1.В обновляется. Когда программа генерирует запрос на доступ к странице, отсутствующей в основной памяти, происходит опгибка страницы. В этом случае перед продолжением операции вся страница должна быль перемещена с диска в основную память.
Для этого ММ П обращается к операционной системе, генерируя исключение (прерывание). В результате выполнение активной задачи прерывается, а управление передается операционной системе. Операционная система копирует запрошенную страницу с диска в основную память и возвращает управление прерванной 5.7. Виртуальная память 377 задаче. Поскольку на пересылку страницы уходит довольно много времени, операционная система может приостановить выполнение задачи, вызвавшей ошибку страницы, и активизировать другую задачу, страницы которой имеются в основной памяти. Сгенерированный процессором виртуальный адрес Пр Попадание Физический адрес в основной памяти Рис.
5.28. Принцип действия Тсн с ассоциативным отобраменнем Важно, чтобы после приостановки задачи ее выполнение было продолжено. Поскольку ошибка страницы происходит при обращении некоторой команды к операнду, отсутствутощему в основной памяти, прерывание производится до завершения выполнения втой команды. Когда выполнение задачи возобновляется, выполнение команды нужно продолжить либо с той точки, где оно было прервано, либо начать сначала.
Выбор определяется архитектурой конкретного процессора. 378 Глава 5. Система памяти Если с диска нужно переместить новую страницу, а память уже заполнена, приходится удалять одну из страниц, уже имеющихся в памяти. Правильный выбор удаляемой страницы так же важен, как правильный выбор заменяемого блока в кэше, и здесь, конечно же, учитывается тот факт, что большую часть времени выполнение программы ограничивается несколькими локализированнымн областями. Поскольку основная память значительно больше кэш-памяти, в ней можно держать очень большие фрагменты программы.
Поэтому частота обмена информацией с диском может быть сравнительно невысокой. К операции замены страниц применимы концепции, подобные применяемым в алгоритме 1 КБ, а индикаторами использования страниц могут служить управляющие биты в таблице страниц. В одном из простейших алгоритмов замены задействован единственный управляющий бит, устанавливаемый при обращении к соответствующей странице в 1. Время от времени операционная система очищает этот бит во всех записях таблицы страниц, отмечая таким образом все эти страницы как давно не использовавшиеся. Перед удалением из основной памяти модифицированная страница опять должна быть записана на диск.
Однако протокол сквозной записи, который может успешно использоваться в кэш-памяти, для виртуальной памяти совершенно не подходит. Время доступа к диску настолько велико, что нет смысла часто обращаться к нему при необходимости записать небольшой объем данных. Процесс преобразования адресов в диспетчере памяти сам требует некоторого времени, основная часть которого уходит на поиск записей в ТЕВ. Поскольку принцип локализации ссылок действует и в этом случае, велика вероятность того, что в ряде последовательных преобразований будет использоваться адрес одной и той же страницы.
Особенно часто так бывает при выборке команд. Поэтому среднее время преобразования адресов можно сократить, добавив в процессор один или несколько специальных регистров для хранения номера виртуальной страницы и адреса физического страничного блока, применявшихся в последнем преобразовании. Доступ к информации из этих регистров будет осуществляться даже быстрее, чем доступ к ТЕВ. 5.8. Требования к управлению памятью Рассказывая о концепциях виртуальной памяти, мы предполагали, что в системс выполняется только одна большая программа.
Если вся программа не помещается в физическую память, ее части (страницы) перемещаются с диска в основную память, когда приходит время их выполнения. И хотя мы упоминали о том, что управление перемещением сегментов программы между основной памятью и диском производится соответствующим программным обеспечением, деталей этого процесса мы не касались. Программы управления виртуальной памятью являются частью операционной системы компьютера. Программы операционной системы удобно объединять в виртуальное адресное пространство, которое называется систпемным пространством х отделяется от виртуального адресного пространства, где выполняются прикладные программы. Последнее называется пространством пользователя.
Фактически 5.9. Внешние запоминающие устройства 379 пользовательских адресных пространств может быть множество, по одному для каждого пользователя. В этом случае для каждой прикладной программы создается отдельная таблица страниц. ММ0 считывает ее адрес из базового регистра таблицы страниц. При переключении от одной программы к другой операционная система изменяет содержимое этого регистра. Таким образом, физическая основная память делится между активными страницами системного пространства и нескольких пользовательских пространств. Причем в каждый конкретный момент доступны страницы только одного из этих пространств.
В любой компьютерной системе, в которой в основной памяти сосуществуют независимые пользовательские программы, используется тот или иной вид эащивгы. Ни одна программа не должна иметь возможности разрушать данные или команды других программ. Такая защита может обеспечиваться несколькими способами. Мы же для начала рассмотрим наиболее простую ее форму. Напомним, что в простейшей системе процессор может находиться в одном из двух состояний — супервизора или пользователя. При выполнении подпрограмм операционной системы процессор работает в режиме супервизора, а при выполнении прикладных программ — в режиме пользователя.
В последнем случае запрещено выполнение некоторых машинных команд. Привилегированные команды, выполняющие такие операции, как, скажем, модификация базового регистра таблицы страниц, могут быть реализованы только в режиме супервизора. Это значит, что пользовательская программа не имеет доступа ни к таблице страниц, ни к другим адресным пространствам. Иногда возникает необходимость предоставить прикладной программе доступ к страницам, принадлежащим другой прикладной программе. Для этого операционная система может включить эти страницы в оба адресных пространства, поместив ссылки на них в две разные таблицы страниц. Для управления правами доступа, предоставляемыми каждой из программ, могут быть применены соответствующие управляющие биты в таблице страниц.
Например, одной программе может быть позволено и считывать и записывать некоторую страницу, а другой— только считывать. 5.9. Внешние запоминающие устройства Обсуждавшаяся в предыдущих разделах полупроводниковая память удовлетворяет далеко не всем потребностям компьютера, связанным с хранением данных.
Основным ее недостатком является высокая стоимость хранения единицы информации. Большинству компьютерных систем нужны запоминающие устройства очень большой емкости, роль которых выполняют магнитные диски, оптические диски и магнитные ленты, обычно называемые вторичными или внешними запоминающими устройствами. 5.9.1. Жесткие магнитные диски Как следует из названия, магнитный диск состоит из одного или нескольких дисков, нанизанных на один шпиндель.