Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspektlektsy3-1.doc
Скачиваний:
50
Добавлен:
03.05.2015
Размер:
1.02 Mб
Скачать

Лекция 7 Организация адресного пространства

  1. Организация адресного пространства внешней памяти

Память третьего уровня - внешняя память - строится на основе различного рода ВЗУ: НМД, НМЛ, НОД (CD–ROM и др.). При этом накопители номеруются: ВЗУ0, ВЗУ1, ... , ВЗУ(N-1). Номер ВЗУ интерпретируется как адрес устройства. Информационное пространство каждого ВЗУi адресуется обычно с точностью до блока информации фиксированной ёмкости. Номер блока обычно указывают напрямую, т.е. используется прямая адресация. Формат адреса при обращении к ВП:

Здесь: 2n – количество регистров в контроллере ВЗУ, 2k – количество блоков на носителе информации ВЗУ. Ёмкость ВП практически не ограничена - за счёт съёмных носителей информации. Их идентификацией (т.е. адресацией) ведает человек. На техническом уровне один съёмный носитель от другого неотличим.

ВЗУ подключаются к ЭВМ не напрямую, а через специальные устройства управления – т.н. контроллеры ПУ (рисунок 2.18).

По адресу (номеру ВЗУ) выбирается один из контроллеров, а по ШД в выбранный контроллер передается номер ВЗУ (для групповых контроллеров) и номер блока (сектора) на носителе информации, по ШУ – направление обмен – ввод или вывод. После этого производится поиск адресуемого блока на носителе и запускается алгоритм обмена информацией между ОП и ВЗУ. Этот алгоритм реализуется КВЗУ, механизмом ВЗУ и последовательностью команд, которые поступают от ЦП. Обычно эти программы порождаются программами ввода-вывода ОС, а не программами пользователя. Эти специальные программы инициализируются из программ пользователя, когда в них дело доходит до операторов ‘ввод’ или ‘вывод’. В этот момент их выполнение прерывается и управление передается ОС - т.н. супервизору (монитору) ввода-вывода. Он собирает необходимую информацию об обмене из соответствующих таблиц ОС и каталогов и вызывает программу-драйвер. Под управлением драйвера и осуществляется обмен между ОП и ВП.

2.Организация виртуальной памяти ЭВМ

Следует отметить, что программирование (организация) обмена информацией между ОП и ВП требует от исполнителя высокой квалификации. В противном случае обмен организуется неоптимальным образом, что приводит к значительным потерям времени на ‘свопинг’. Свопинг (swapping) - это взаимный обмен информацией между ОП и ВП: прежде чем в ОП ввести новую информацию, необходимо освободить часть ОП путём переписи старой информации во ВП. В этой ситуации актуальной является задача автоматизации обмена (свопинга). Такого рода автоматизация обычно осуществляется на базе т.н. виртуальной организации памяти ЭВМ.

Идея (концепция) виртуальной (кажущейся) памяти заключается в следующем: ОП и ВП в функциональном (логическом) отношении (т.е. с точки зрения пользователя) рассматривается как одноуровневая память с прямым (произвольным) доступом (как бы одноуровневая память): ОП и ВП - единое адресное пространство. Для адресации такой памяти используются адреса 0,1, ... ,Еоп-1,Еоп,Еоп+1, ... ,Е-1, где Е=Еоп+Евп.

Для адресации виртуальной памяти иcпользуются длинные виртуальные адреса. При этом разрешено считать, что информация, которая хранится во ВП, также доступна ЦП, как и информация, которая хранится в ОП. Считать-то можно, но как обеспечить это технически? Для этого в ЭВМ встраиваются специальные программные и технические средства, которые и обеспечивают автоматический свопинг. При каждом обращении по виртуальному адресу эти средства должны обеспечить выполнение двух действий:

преобразование виртуальных адресов в физические, т. е. либо в адреса ячеек ОП, либо, если это ВП, в адреса ВЗУ и номера блоков на носителе информации, по которым и производится обращение к памяти;

если адресуемая информация в момент обращения находится не в ОП, а во ВП, то передачу её (вместе с блоком информации) из ВП в ОП на заранее освобожденное место (свопинг).

Технически наиболее просто указанные действия реализуются при страничной организации памяти. В этом случае для адресации ячеек виртуальной памяти используются длинные виртуальные адреса ВА следующего формата:

,

где m=k+n - длина ВА, Р - номер виртуальной страницы, D - номер ячейки в странице. Физический адрес имеет аналогичную структуру:

только старшие разряды - поле S - указывают адрес (номер) физической страницы. Понятие ‘виртуальная страница’ связывается с той информацией, которая хранится в этой странице, а не с местом её хранения. А вот понятие ‘физическая страница’ связано с местом хранения виртуальной страницы с номером Р. Таким образом, виртуальные страницы подвижны, а физические - неподвижны. Это означает, что одна и та же виртуальная страница в разные моменты времени может находиться в различных физических страницах памяти: то в ОП, то в ВП, то опять в ОП, т.к. информация в процессе функционирования ЭВМ перемещается внутри физической памяти.

За процессом перемещения виртуальных страниц необходимо следить. С этой целью текущее состояние виртуальной памяти отображается в виде таблицы страниц. В таблице страниц каждой виртуальной странице с номером Р ставится в соответствие одна строка. В этой строке и указывается, в каком месте физической памяти расположена виртуальная страница в данный момент времени, т.е. в этой строке указывается номер физической страницы S. Кроме того, здесь же указывается и признак доступности страницы ЦП dp, если dp=0 - страница Pнаходится во ВП (РОП),если dp=1 – страница Р находится в ОП (РОП), доступна ЦП. В случае dP=1 преобразование BA в физический ФА производится следующим образом (рисунок 2.19). Физический адрес формируется конкатенацией (склеиванием) поля S из таблицы страниц и поля D из ВА: ФА=S.D.

В случае, если dp =0 - т.е. страница недоступна ЦП, происходит прерывание текущей команды и управление передаётся средствам ОС средствам, обеспечивающим свопинг. Эти средства обеспечивают перемещение виртуальной страницы Р из ВП в ОП, предварительно удалив страницу из ОП во ВП. После этого прерванная команда повторяется сначала и ФА для неё формируется по схеме рисунка 2.19. Порядок использования таблицы страниц можно проиллюстрировать рисунком 2.20.

Рисунок 2.20

Здесь для примера показано обращение к виртуальной странице Р=574. Поскольку она недоступна ЦП (SP=319, dP=0), то производится свопинг: 1) виртуальная страница с Р=1 переносится из физической страницы 63 в страницу 320, 2) на её место – страница с номером 63 (пунктирные линии на рисунке 2.21). В результате свопинга в таблице изменяются две строки, страница 574 становится доступной ЦП и прерванная команда повторяется сначала.

Где хранить таблицу страниц? Проще всего в ОП. Но при этом при каждом обращении по ВА будет производиться два физических обращения к ОП: сначала к таблице страниц, а затем к ячейке ОП по ФА. Ясно, что такая организация памяти снижает быстродействие памяти ЭВМ вдвое. Как быть? Хранить таблицы страниц не в ОП, а в СОП. Это дороже, но быстрее.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]