Память

advertisement
Память
Память человека есть лист белой бумаги: иногда напишется
хорошо, а иногда дурно.
К. Прутков
Единственное сокровище человека - это его память. Лишь в
ней - его богатство или бедность.
Адам Смит
Закладывая что-то в память ЭВМ, помните, куда вы это
положили.
Аксиома Лео Бейзера:
Прямой доступ к памяти
• Прямой доступ к памяти (Direct Memory Access – DMA) –
более эффективный метод работы контроллеров
устройств ввода-вывода, используемый для работы
высокоскоростных устройств, способных передавать
информацию со скоростью, близкой к скорости работы
памяти.
• DMA-контроллер передает блок данных из буферной
памяти непосредственно в основную память, без участия
процессора.
• Преимущество подобного широко применяемого подхода
в том, что прерывание в этом случае генерируется на
каждый блок пересылаемых данных (хранящийся в
буфере), но не на каждый пересылаемый байт, как при
традиционном способе обмена.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
2
Структура памяти
• Основная (оперативная) память – единственная крупная часть
памяти, к которой процессор имеет непосредственный доступ.
Содержимое основной памяти не сохраняется после
перезагрузки системы или после выключения компьютера (как
правило).
• Внешняя (вторичная) память – расширение основной памяти,
обеспечивающее функциональность устойчивой
(сохраняемой) памяти большого объема.
• В качестве вторичной памяти чаще всего используются
жесткие диски (hard disks). Физически они состоят из твердых
пластин из металла или стекла, покрытых магнитным слоем
для записи. Поверхность диска логически делится на дорожки
(tracks), которые, в свою очередь, делятся на секторы.
Контроллер диска определяет логику взаимодействия между
устройством и компьютером.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
3
Устройство жесткого диска
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
4
Системы памяти
• Системы памяти организованы в иерархию, исходя их быстродействия,
стоимости и возможности сохранения информации (устойчивости).
• Для оптимизации работы памяти любого вида используется
ассоциативная память (кэш – cache), размещаемая в более
быстродействующих системах памяти и хранящая наиболее часто
используемые элементы более медленной памяти.
• Кэш-память – это ассоциативный список пар (Адрес, Значение), причем
аппаратный поиск в ней происходит по адресу как по ключу.
• Перед обращением к медленной внешней памяти сначала происходит
поиск по заданному адресу в кэш-памяти, и только если он не привел к
успеху, выполняется стандартное обращение к внешней памяти.
• Принцип кэширования требует согласованности данных, хранимых
одновременно на разных уровнях памяти.
• Аппаратура и ОС поддерживают кэш команд, кэш данных, кэш
жесткого диска и т.д. – для всех видов памяти.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
5
Иерархия устройств памяти
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
6
Виды внешней памяти
• Флэш-память (флэшка) – внешняя память компактного
размера, модуль которой подключаются через USB-порт.
• Параметры: объем - до 128 гигабайт и более; скорость
обмена через порт USB 2.0: 240 – 480 мегабит в секунду;
скорость обмена через порт USB 3.0: до 5 гегабит в
секунду.
• Внешний жесткий диск (ZIV drive и другие) – объем до 1
терабайта; работает также через порт USB.
• BluRay – диски – новая разновидность компакт-дисков
большой емкости (односторонние – 25 гигабайт,
двусторонние – 50 гигабайт). Для сравнения, стандартная
емкость диска DVD составляет 4.7 гигабайт.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
7
Аппаратная защита памяти и процессора(1)
• В целях совместного использования системных ресурсов (памяти,
процессора, внешних устройств) несколькими программами,
требуется, чтобы аппаратура и операционная система
обеспечили невозможность влияния некорректно исполняемой
программы на другие пользовательские программы.
• Аппаратная поддержка двух режимов исполнения программ:
– пользовательского (непривилегированного) режима – для выполнения
программ пользователей;
– системного (привилегированного, режима ядра) - для модулей
операционной системы.
• Для определения текущего режима выполнения команд в
аппаратуре вводится бит режима, равный 0 для системного и 1 –
для пользовательского режима.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
8
Аппаратная защита памяти и процессора(2)
• Выполняемые в привилегированном режиме модули ОС выполняют
распределение и выделение системных ресурсов, в частности, формирование
новых адресов.
• Пользовательские программы, в результате ошибок или преднамеренных атак
не могут обратиться в область памяти операционной системы или другой
задачи, изменять их и нарушать их целостность.
• При прерывании или сбое аппаратура автоматически переключается в
системный режим. Некоторые привилегированные команды, изменяющие
системные ресурсы и состояние системы (например, регистр состояния
процессора), должны выполняться только в системном режиме.
• Для защиты ввода-вывода все команды ввода-вывода считаются
привилегированными.
• Необходимо гарантировать, чтобы пользовательская программа никогда не
получила управление в системном режиме и, в частности, не могла бы
записать новый адрес в вектор прерываний.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
9
Использование системного вызова для
выполнения ввода-вывода
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
10
Пояснение к использованию
системного вызова
1. Системный вызов номер n вызывает
программируемое прерывание.
2. Вызывается ОС в привилегированном режиме, и по
номеру системного вызова определяется операция
ввода-вывода, которая должна быть выполнена по
данному прерыванию.
3. Затем в привилегированном режиме выполняется
операция ввода-вывода.
4. Завершение ввода-вывода и возврат в
пользовательскую программу, выполняемую в
обычном режиме.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
11
Защита памяти
• Недопустимо разрешить пользовательской программе
формировать в обычном режиме произвольный адрес и
обращаться по нему, так как при этом может быть
нарушена целостность системных областей памяти.
• В аппаратуре вводятся два регистра:
– базовый регистр (base register), содержащий начальный
адрес области памяти, выделенной пользовательской
программе;
– регистр границы (limit register), содержащий размер
пользовательской области памяти.
• Память вне отмеченного диапазона считается
защищенной, т.е. обращения к ней из пользовательской
программы не допускаются (при попытке такого
обращения возникает прерывание).
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
12
Использование регистра базы и регистра
границы для защиты памяти
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
13
Схема аппаратной защиты адресов памяти
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
14
Системы с теговой архитектурой
• В системах с теговой архитектурой каждое слово памяти имеет тег –
информацию о типе данных, хранящемся в данном слове. Специальные теги
имеют любые данные ( целые и вещественные числа, адреса, указатели на
процедуры и др.)
• Адрес в системе с теговой архитектурой представлен специальным адресным
словом - дескриптором. Дескриптор содержит тег, адрес начала адресуемого
массива в памяти, длину массива и 4 бита защиты – от чтения, от записи, от
выполнения и от записи адресной информации.
• Формирование и изменение дескриптора возможно только средствами ОС в
привилегированном режиме. Пользовательская программа не может
сформировать или изменить дескриптор и работает со своей областью памяти
как с массивом, защищенным тегом и дескриптором, образовывая от него
подмассивы и формируя их дескрипторы (такое действие разрешено).
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
15
Аппаратная защита адресов памяти в системах с
теговой архитектурой
• Аппаратура при выполнении команды выполняет динамический контроль
типов – проверяет, соответствуют ли теги операндов выполняемой операции.
Если не соответствуют – прерывание.
• Допустимая операция над массивом - индексация a[i], в которой аппаратно
проверяется, что индекс i не выходит за границы массива a. Обращение в
"чужую" область памяти в такой системе принципиально невозможно;
невозможна адресная арифметика (в стиле C / C++), так как попытка
выполнения арифметической операции над словом с тегом дескриптор
приводит к немедленному прерыванию.
• Кроме дескриптора, имеется также косвенное слово (indirect word) –
тегированный адрес для обращения к элементу данных одной командой,
непосредственно по адресу (без индексации). Для косвенных слов фактически
выполняются те же аппаратные проверки, что и для дескрипторов.
31.05.2013 9:19:04
Рудаков С.А. Операционные системы
16
Организация аппаратной защиты
памяти и процессора
• При исполнении в привилегированном режиме ОС имеет
неограниченный доступ к памяти монитора и к памяти
пользователя. Команды записи значений в регистры base и limit
являются привилегированными.
• Для организации периодических прерываний в системе имеется
таймер – системный регистр, содержащий некоторое значение
времени, установленное специальной командой в
привилегированном режиме. Значение таймера уменьшается
через каждый такт процессорного времени. Когда значение
таймера становится равным нулю, происходит прерывание, при
котором производится опрос устройств для реализации режима
разделения времени и для вычисления текущего времени.
31.05.2013 9:19:05
Рудаков С.А. Операционные системы
17
Download