Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

Входной коммутатор

Схема анализа запросов

I

I

РгЗС1

I

Схема

Коммутации

Схема

анализа

адреса

I

PZ3CZ

К абонентам

it ••• ♦

Схема совпа­дения —CZ

пкз

| | 1 РгНА

1.

РгОшЛ РгУС

Шифратор

I

I

Выходной

коммутатор

РгОЗ

РгИ

УУОП

ОП

10/77

На рис. 14.6 приведена упрощенная структурная схема БОП. Обработка запроса в БОП состоит из трех этапов. Поскольку на каждом этапе используются отдельные средства, возникает свое­образный конвейер, и при наличии запросов одновременно обра­батываются три запроса по одному для каждого этапа.

  1. Обработка сигналов запросов. Схема анализа приорите­тов запросов циклически с периодом, равным времени обработки одного запроса в ОП, анализирует поступившие от абонентов запросы, выделяет наиболее приоритетный из них и фиксирует его наличие засылкой 1 в соответствующий данному абоненту разряд регистра обобщенных запросов РгОЗ.

Далее по содержимому РгОЗ шифратор формирует в регист­ре номера адреса РгНА 4-разрядный номер абонента, принятого на обслуживание. При считывании информации из ОП номер абонента определяет, куда выдается информация. Код в Рг039 управляя входным коммутатором, обеспечивает прием «запро­сного слова» .(ЗС) соответствующего абонента в РгЗС1. Запро­сное слово содержит адрес ОП, признак обращения (запись или считывание), ключ программы, а при записи и информационное слово. На этом завершается первый этап.

  1. Обработка запросного слова. Схема анализа адреса про­веряет код адреса на нечетность, допустимость адреса для дан­ной конфигурации ОП (нарушение адресации). Она также опре­деляет по старшим разрядам РгЗС1 номер модуля ОП, свободен ли этот модуль и формирует 7-разрядное управляющее слово. Это слово содержит 4-разрядный номер абонента, пославше­го данный адрес, 2-разрядный номер модуля ОП и 1-разрядный признак операции обращения (запись или считывание).

Если адресуемый ЗС модуль памяти оказывается занятым операцией обращения для другого ЗС (в том числе от данного абонента), то ЗС остается в РгЗС1 до освобождения модуля памяти, если ЗС принадлежит каналу, и освобождает РгЗС1, если принадлежит процессору. В последнем случае запросы процессора не обрабатываются до освобождения модуля памя­ти, оказавшегося занятым.

Если запрашиваемый модуль ОП свободен, ЗС передается в РгЗС2 из РгЗС1у который, таким образом, освобождается для приема нового ЗС. На этом заканчивается второй этап. *

  1. Обращение к модулю ОП. В соответствии с содержимым управляющего слова запускается цикл обращения в определен­ном модуле ОП, записывается по указанному в ЗС адресу ин­формационное слово из ЗС или производится считывание слова в РгИ. Далее считанная информация через выходной коммута­тор, управляемый кодом номера абонента в РгУС, передается соответствующему абоненту.

Одновременно с запуском цикла в ОП старшие разряды адреса (номер блока) передаются в качестве адреса в память ключей защиты. Происходит сопоставление ключа защиты из ПКЗ и ключа программы в ЗС. При их несоответствии в опреде­ленном разряде регистра ошибок памяти РгОП фиксируется нарушение защиты. В случае выявления нарушений при обраще­нии к памяти (нарушение адресации или защиты), на что указы­вает наличие 1 в соответствующем разряде 3-разрядного регист­ра ошибки памяти РгОшП, блокируется запись слова из ЗС, а при считывании блокируется выдача считанного слова из РгИ абоненту (выдается нулевой код). Содержимое РгОшП выдает­ся в регистр ошибок абонента.

Отметим в заключение, что с помощью БОП производятся запись ключей защиты в ПКЗ и считывание ключа при его пере­даче в регистр ССП.

Многоабонентное обслуживание порождает конфликты, воз­никающие при одновременном обращении абонентов к памяти. Эти конфликты, с которыми связаны простои отдельных або- . нентов в ожидании освобождения памяти, снижают произво­дительность ВС. Для уменьшения частоты конфликтов использу­ются быстродействующие буферные памяти в процессорах и ка­налах. Этой же цели служит расслоение памяти (см. § 14.2).

  1. Динамическое распределение памяти.

Организация виртуальной памяти

В мультипрограммных системах размещение всех исполняе­мых программ полностью в ОП во многих случаях невыполнимо: программы часто имеют большую длину, а емкости существую­щих ОП ограниченны. Однако нет принципиальной необходимо­сти в том, чтобы вся программа находилась в ОП, так как в лю­бой момент времени работа программы концентрируется на определенных сравнительно небольших участках. Таким обра­зом, в ОП следует хранить только используемые в данный пери­од части программ, а неиспользуемые части могут располагаться в ВЗУ. Программируя свою программу, пользователь не знает, в комбинации с какими программами будет выполняться его программа, какое место в памяти отведет ей операционная система.

При подготовке программ используются условные адреса. Позднее в процессе выполнения программы операционная систе­ма выделяет активным частям программы место в памяти, и ус­ловные адреса переводятся в исполнительные. Эта процедура получила название динамического распределения памяти.

Осуществление динамического распределения чисто про­граммным путем привело бы к значительным потерям машинно­го времени. Целесообразнее пользоваться для этой цели аппара­турными средствами.

Один из способов динамического распределения памяти ос­нован на использовании базовых регистров. Операционная система каждой пользовательской программе ставит в соответ­ствие свой базовый адрес. Базовые адреса обрабатываемых программ находятся в общих регистрах. При выполнении про­граммы реальный или физический адрес образуется суммирова­нием базового и относительного адресов. При динамическом распределении памяти с помощью базовых регистров программа (или, по крайней мере, та часть ее, адрес которой преобразуется с помощью одного и того же базового адреса) должна распола­гаться в последовательных ячейках и вводиться в ОП целиком, хотя в ближайшем цикле активности может потребоваться лишь небольшой фрагмент программы.

При рассматриваемом способе динамического распределения памяти свободная память может состоять из несвязанных об­ластей (фрагментация памяти) и для ввода нужной программы может понадобиться сдвиг содержимого памяти. На рис. 14.7, а показано распределение памяти между программами А, Б, С, D, из которых две и D) являются в данный момент наименее активными и следовательно, могут рассматриваться как канди­даты на удаление во внешнюю память. Если вновь вводимая программа Е (рис. 14.7, б) больше любой из программ А и D, то для ее размещения в памяти необходимо, как показано на рис. 14.7, в, сдвигать программы В и С. Это перемещение связа­но с потерей времени. Более того, в ряде систем подобное пере­мещение требует выполнения заново операции редактирования связей в программе и новой загрузки программы.

Отмеченные недостатки в распределении памяти отсутствуют в виртуальной памяти со страничной организацией.

Виртуальная память есть способ организации памяти муль­типрограммной вычислительной системы, при котором достига­ется гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов. Это удается достигнуть без заметного снижения

В_

С

а) б)

Е

I

°\

1

Е

с*

8)

Рис. 14.7. Пример распределения памяти:

а — распределение памяти до ввода новой программы; 6 — вводимая программа; в — варианты распре­деления памяти после ввода новой программы

производительности машины ценой усложнения аппаратуры и операционной системы и процессов их функционирования.

Принцип виртуальной памяти предполагает, что пользова­тель при подготовке своей программы имеет дело не с физиче­ской ОП, действительно работающей в составе вычислительной установки и имеющей некоторую фиксированную емкость, а с виртуальной (т. е. кажущейся) одноуровневой памятью, емкость которой равна всему адресному пространству, определя­емому размером адресных полей в форматах команд и базовых регистров. В ЕС ЭВМ это пространство составляет 16 777 216 байт.

Пользователь имеет в своем распоряжении все адресное пространство системы независимо от объема ее физической памяти и объемов памятей, необходимых для других программ, участвующих в мультипрограммной обработке.

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

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

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

Виртуальная Страничная память таблица п-й программы

Регистр номера программы ^

Номервиртуальной страницы

Номер

байта

Рис. 14.8. Страничная организация памяти:

а — соответствие между виртуальными и физическими страницами; 6 - разование виртуального адреса в физический

Виртуаль­ный адрес

Страничная таблица п-й программы Номер физической страницы из страничной таблицы

^Физичес­кий адрес

преоб-

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

Если страничная таблица указывает на размещение требуе­мой информации во внешней памяти, то обращение к ОП не может состояться немедленно: операционная система должна организовать передачу из внешней памяти в ОП нужной стра­ницы.

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

Страничные таблицы программ хранятся в ОП, и обращение к нужной строке активной страничной таблицы в ОП происходит по адресу, который определяется номером активной программы и номером виртуальной страницы (рис. 14.8).

Для ускорения преобразования адресов используется не­большая сверхоперативная память, куда передается из ОП стра-

ничная таблица активной программы. В другом варианте в сверх­оперативной памяти могут находиться сведения о номерах виртуальных и соответствующих физических страниц для не­скольких недавно использовавшихся страниц, в том числе при­надлежащих разным программам. В этом варианте сверхопера­тивная память, используемая при преобразовании адресов, cfpo- ится как ассоциативная (см. гл. 4) с обращением не адресным, а по содержанию хранимой в ячейке информации — в данном случае по хранимому в ячейке номеру программы к номеру виртуальной страницы.

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

Виртуальная память каждой программы делится на части, именуемые сегментами, с независимой адресацией байт внутри каждой части. К виртуальному адресу следует добавить допол­нительные разряды левее номера страницы; эти разряды опреде­ляют номер сегмента.

Возникает определенная иерархия в организации программ, состоящая из четырех ступеней: 1) программа, 2) сегмент,

  1. страница, 4) байт. Этой иерархии программ соответствует иерархия таблиц, служащих для перевода виртуальных адресов в физические. Программная таблица для каждой программы, загруженной в систему, указывает начальный адрес соответству- ■%г ющей сегментной таблицы. Сегментная таблица перечисляет сегменты данной программы с указанием начального адреса страничной таблицы, относящейся к данному сегменту. Странич­ная таблица определяет расположение каждой из страниц сег­мента в памяти. Страницы сегмента могут располагаться не подряд, часть страниц данного сегмента может находиться в оперативной памяти, остальные — во внешней.

Рассмотрим с некоторыми упрощениями организацию сег-

ментно-страничной виртуальной памяти, реализованной в маши­нах ЕС ЭВМ II очереди [49].

В этой системе работа с виртуальной памятью возможна только в режиме расширенного управления (ССП [12] =1).

Сегмент представляет собой блок последовательных адресов размером 64 Кбайт или 1 Мбайт, размер страницы 2 или 4 Кбайт. Начальные адреса сегментов и страниц кратны их размерам. Размеры сегментов и страниц виртуальной памяти активной в данный момент программы задаются значениями соответствующих разрядов управляющего регистра 0.

Виртуальный адрес (как и физический) имеет длину 24 раз­ряда, причем поле номера сегмента занимает 8 или 4 старших разряда соответственно для сегментов размером 64 Кбайт и 1 Мбайт, поле номера байта занимает 11 или 12 младших разрядов для страниц размером 2048 и 4046 байт. Промежуточ­ные разряды адреса занимает поле номера страниц, которое может иметь 4, 5, 8 или 9 разрядов в зависимости от размеров сегмента и страницы.

Сегментные и страничные таблицы находятся в ОП, а в про­граммной таблице нет необходимости, так как для каждой ак­тивной в данный момент программы управляющий регистр 1 хранит начальный адрес ri длину соответствующей сегментной таблицы. Хранит он также номер программы.

Процесс преобразования адресов представлен на рис. 14.9. В общем случае преобразование адреса происходит в два этапа и требует двух дополнительных обращений к ОП (рис. 14.9, а).

Первый этап. Начальный адрес сегментной таблицы, установленный в управляющем регистре 1, суммируется с номе­ром сегмента из виртуального адреса. В результате образуется адрес, по которому из ОП считывается строка сегментной табли­цы, содержащая адрес начала и длину страничной таблицы для данного сегмента.

Второй этап. Полученный адрес начала страничной таблицы суммируется с номером страницы из виртуального адреса, при этом образуется адрес, по которому из ОП считыва­ется строка страничной таблицы. Если эта страница оказывает­ся в ОП, то в старшие разряды регистра физического адреса передается ее номер, а в младшие заносится номер байта из регистра виртуального адреса. Формирование физического адре­са на этом завершается.

Если нужная физическая страница оказывается во внешней памяти, то происходит прерывание по страничному сбою (см. § 14.6). Операционная система инициирует передачу этой страницы из внешней памяти в ОП (при этом меняется номер физической страницы) и корректирует соответствующим обра-

Номер

Номер

'UU

программысегмента страницы /байта

Номер Виртуальной Номер

РгВА

Адрес начала сегментной таблицы

/7 -5

I Виртуальный I \адрес Г