
книги из ГПНТБ / Дроздов Е.А. Основы построения и функционирования вычислительных систем
.pdfи установление порядка обмена информацией .ѵежду ними. Задача распределения памяти состоит в установ
лении |
соответствия между |
массивами |
информации и |
|
-массивами ячеек памяти ВС. |
|
|||
Различают централизованную и иерархическую орга |
||||
низацию памяти. При |
централизованном |
способе орга |
||
низации |
памяти все |
типы |
внешних ЗУ |
(на магнитных |
барабанах, дисках, картах, лентах) связаны непосред ственно с основной оперативной памятью. Обмен инфор мацией осуществляется только между ООП и соответ ствующим типом внешнего ЗУ. Обмен между однотип
ными |
или |
разнотипными внешними ЗУ |
производится |
через |
ООП. |
Такая организация памяти ВС |
эффективна |
и целесообразна, когда имеется соответствие между числом различных массивов информации, отличающихся частотой использования и требуемым временем на пере пись массива в ООП, и числом различных типов внеш
них |
ЗУ. |
Тогда |
наиболее |
часто используемые |
массивы, |
||||||
а также массивы с жесткими требованиями по |
времени |
||||||||||
на |
перепись |
их |
в |
ООП |
|
(массивы |
с высокой |
степенью |
|||
готовности к использованию при решении |
соответствую |
||||||||||
щих задач) |
будут |
храниться в ЗУ на магнитных |
бара |
||||||||
банах. |
Массивы, |
сравнительно |
редко |
используемые, |
|||||||
а |
также массивы |
с менее жесткими |
требованиями |
||||||||
по |
степени |
готовности |
к |
использованию |
размещаются |
||||||
в медленно действующих ЗУ, например |
в ЗУ |
на |
маг |
||||||||
нитных |
лентах. |
В |
ООП |
хранятся |
часть |
программ |
опе |
рационной системы и исполняемые рабочие программы
.абонентов.
Более |
гибким, а поэтому и более распространенным |
||
является |
иерархический |
способ организации |
памяти. |
В этом случае непосредственно с ООП связано наиболее
быстродействующее из внешних ЗУ |
(например, |
ЗУ на |
|||
магнитных барабанах), далее с этим |
ЗУ связано |
следую |
|||
щее |
по быстродействию |
устройство |
памяти |
(например, |
|
ЗУ |
на магнитных дисках) |
и т. д. Соединение |
ЗУ произво |
дится с помощью междуровневых информационных ка налов. Управление обменом информацией между ЗУ различных уровней осуществляется управляющей про граммой, размещаемой в ООП. При такой организации памяти все информационные массивы могут первона чально размещаться в ЗУ нижнего уровня, а затем, в зависимости от потребностей в тех или иных массивах, они перемещаются в иерархии вверх от медленно дей-
40
ствующих ЗУ большей емкости к |
быстродействующим |
ЗУ, вплоть до ООП сравнительно |
небольшой емкости. |
В ЗУ нижнего уровня постоянно хранятся все Информа ционные массивы ВС, поэтому это ЗУ называется ещеархивной памятью системы. На всех других уровнях ЗУ информация хранится временно, эти ЗУ для информа ционных массивов составляют временную память. Ха рактеристики ЗУ промежуточной памяти и в первуюочередь характеристики ЗУ на магнитных барабанах во1
многом определяют производительность |
ВС. |
|
|||
Простейшим способом распределения памяти явля |
|||||
ется |
постоянное |
распределение, |
суть которого |
заключа |
|
ется в следующем. За каждым |
информационным масси |
||||
вом |
постоянно |
закрепляются |
области |
памяти |
внешних |
ЗУ. |
Каждый раз, когда новая |
программа, принадлежа |
щая некоторому информационному массиву, вызывается для выполнения из внешней памяти в оперативную, она помещается по определенному фиксированному базис ному адресу, а те программы, которые находились на ее месте, переписываются или в другую область ООП, если они задействованы в вычислительном процессе и, кроме того, емкость ООП достаточна для их хранения, или во внешнюю память. Таким образом, при постоян ном (иначе называемом статическим) распределении па мяти размещение исполняемых программ, а также кон
стант, |
исходных |
данных |
и т. д. осуществляется на |
все |
|||
время |
вычислительного |
процесса |
до его |
начала и |
не |
||
изменяется до его окончания. Такая система |
распреде |
||||||
ления |
памяти |
не отличается гибкостью, |
она |
связана |
|||
с большими затратами времени на |
реализацию |
большого |
количества передач. Если длина информационных мас сивов не является постоянной, оперативная память ис пользуется не эффективно, так как количество неисполь
зуемых |
ячеек |
ООП может оказаться |
значительным. |
|
В связи |
с этим |
способ постоянного распределения па |
||
мяти применяется редко, главным образом |
когда |
можно |
||
заранее |
составить план использования ресурсов |
ВС. |
При постоянном распределении памяти базисные адреса информационных массивов сохраняют постоян ные значения. Следовательно, адреса в командах про граммы для распределения памяти прямо определяют ячейки ООП, к которым производится обращение в про грамме. Исполнительный адрес определяется либо пря мым адресом, указанным в команде, либо суммой пря-
4L
мого |
адреса |
и индекса, |
по Которому производится модй' |
|
фикация адресной части |
команды. |
динамическое |
||
Более гибким и эффективным является |
||||
распределение |
памяти, т. е. такое распределение, кото |
|||
рое |
основано |
на выделении ячеек оперативной памяти |
||
для |
информационных массивов в порядке их |
надобности |
в данном вычислительном процессе и с учетом фактиче ской длины массивов. Динамическое распределение па мяти связано с изменением размещения программ, кон стант, исходных данных и т. д. в ООП, причем это изменение определяется условиями, которые выявляют ся лишь в ходе вычислительного процесса и не могут быть учтены при выборе исходного распределения.
При наличии ВЗУ большой емкости динамическое распределение памяти дает возможность абоненту счи тать, что в его распоряжении имеется большая опера тивная память, объем которой ограничен только разряд ностью адреса в команде. В действительности это вир туальная (кажущаяся) или математическая память, так как в любой момент времени только небольшая часть информации, содержащаяся в виртуальной памяти, бу дет храниться в физической оперативной памяти. Таким образом, с точки зрения абонента виртуальная память однородна, хотя в физическом отношении она составле на из ЗУ различных типов. Абонент избавлен от необ ходимости заниматься организацией обмена информа цией между ЗУ различных уровней, поскольку эти функции выполняются диспетчерскими программами операционной системы.
В современных ВС большое распространение полу чил метод динамического распределения памяти, осно
ванный на страничной организации ЗУ и на |
сегмента |
||
ции программ. |
Все поле виртуальной |
памяти |
делится |
на равные части, называемые виртуальными |
страница |
||
ми. Типичные |
размеры страниц — 256, |
1 024, 4 096 бай |
тов. Физическая память также разделяется на равные части, называемые физическими страницами. Размеры физических и виртуальных страниц обычно одинаковы. Физические страницы расположены друг за другом в определенном порядке, однако с точки зрения про граммы все они являются независимыми. Следовательно,
при |
загрузке программы в память ее следующие друг |
за |
другом виртуальные страницы необязательно долж |
ны |
размещаться в следующих друг за другом физиче- |
42
ских страницах. В ВС вводятся правила перевода виртуальных страниц в физические, задаваемые обычно в виде страничной таблицы, указывающей, какая физи ческая страница соответствует каждой виртуальной странице. Формирование страничной таблицы осущест вляется в процессе распределения памяти диспетчерски ми программами операционной системы.
Основной целью страничной организации памяти является повышение эффективности использования па мяти, уменьшение объема пересылки информации меж ду ООП и ВЗУ.
Виртуальная память каждой программы делится на части, именуемые сегментами и имеющие независимую адресацию слов внутри каждой части. Длина сегмента может соответствовать емкости нескольких виртуальных или физических страниц. Разбиение программы на сег менты осуществляется программистом или абонентом. Таким образом, абонент не только знает о том, что его программа разбита на части, сегменты, но он обязан
присвоить каждому |
сегменту |
соответствующий |
номер. |
||
Что |
касается страничной организации |
памяти |
ВС, то |
||
о ее |
существовании |
абонент |
может и |
не подозревать. |
При страничной организации памяти и сегментации программ для выбора слова в виртуальной памяти вир туальный адрес команды должен включать номер сег мента, номер страницы и номер слова в странице. Перевод виртуальных адресов в истинные осуществля ется с помощью системы таблиц перевода, включающей программную таблицу, сегментные таблицы и странич ные таблицы. Эти таблицы с точки зрения подчиненно сти составляют иерархию сверху вниз. В программной таблице перечислены все программы, загруженные в память вычислительной системы, и для каждой про граммы указывается начало соответствующей сегмент ной таблицы. Таким образом, программная таблица устанавливает соответствие между программами и сег ментными таблицами. В сегментной таблице, число ко торых определяется числом программ, перечислены номера сегментов данной программы и для каждого сег мента указывается начало соответствующей страничной таблицы. Следовательно, сегментные таблицы устанав ливают соответствие между сегментами программ и страничными таблицами. Наконец, страничные таблицы устанавливают соответствие между виртуальными и фи-
43
зическими страницами, т. е. они определяют физическое расположение каждой из страниц сегментов в памяти. Поскольку физические страницы, выделенные для раз мещения виртуальных страниц данного сегмента, рас
полагаются необязательно подряд, |
может |
оказаться, |
что часть страниц сегмента находится |
в ООП, |
а часть — |
в ВЗУ. |
|
|
Применение страничной организации памяти и сег ментации программ в мультипрограммной ВС дает су щественные преимущества:
1) при загрузке новых программ в ООП они могут быть направлены в любые свободные физические стра ницы, хотя они и не расположены подряд, следовательно, отпадает необходимость в перемещении информации в остальной части ООП;
2) сокращается объем информации, передаваемой из ООП в ВЗУ и обратно, так как вычислительный про
цесс организуется |
таким образом, |
что в |
ООП записы |
|||
вается начальная страница |
используемой |
программы и |
||||
ей передается управление, |
другие |
страницы |
переписы |
|||
ваются в оперативную память ВС |
(если |
с самого |
нача |
|||
ла они не были туда записаны |
из-за |
ограниченности |
||||
емкости ООП) по мере необходимости; |
|
|
|
|||
3) уменьшаются |
требования к |
емкости |
ООП, |
так |
как в ней содержатся только те страницы рабочих про грамм, которые являются активными в данное время или будут активными в течение ближайшего периода времени.
Заметим, что осуществление динамического распре деления памяти чисто программным путем привело бы к значительным потерям машинного времени, так как каждое обращение исполняемой рабочей программы к памяти требовало бы выполнения группы команд ди спетчерских программ операционной системы. Поэтому наиболее целесообразной является аппаратно-программ ная реализация применяемых способов динамического распределения памяти.
Более подробно об организации и распределении памяти можно познакомиться в работах [Л. 15, 22].
1-6. СИСТЕМЫ ЗАЩИТЫ ПАМЯТИ
В вычислительных системах практически любого ти па оперативная память используется так, что возможно одновременное хранение нескольких рабочих программ,
44
которые выполняются в принятой последовательности. Кроме рабочих программ, в оперативной памяти всегда размещается часть программ общего математического обеспечения системы. При правильном распределении памяти и отсутствии ошибок в программах система функционирует нормально, так как при реализации лю бой программы остальные программы и соответствую щие им данные не претерпевают никаких изменений. Однако вероятность наличия ошибок в адресных частях команд никогда не может считаться равной нулю, а та кие ошибки часто приводят к искажению информации по невыполняемым в данный промежуток времени про граммам. Пусть для некоторой программы Я , определен массив рабочих ячеек с адресами от 0200 по 0400, а про
грамма IJj |
записана в |
ячейках |
с адресами от |
2200 |
по 3000. И |
пусть одной |
из команд |
ПІ ошибочно |
преду |
смотрена запись результата выполнения предыдущей операции в ячейку 2400. Очевидно, что при реализации ПІ программа jflj будет искажена. Обращение по счи тыванию информации к ячейкам полей памяти, относя щихся к другим программам, не вызывает искажения этих программ, но также может считаться нежелатель ным.
Для предотвращения возможных случаев искажения информации при одновременном размещении в опера тивной памяти нескольких или многих программ необ ходимо предусмотреть меры по защите программ от взаимного влияния как в процессе их реализации, так и при отладке. Поскольку каждой программе всегда от водится вполне определенное поле памяти, то практи чески защита программ сводится к защите от возмож ных ошибочных обращений зон или блоков памяти; говоря проще, защита программ сводится к защите па мяти. Реализация мер защиты осуществляется так на зываемыми системами защиты памяти. В общем случае под системой защиты памяти, которая иногда именуется системой защиты адресов памяти, понимается комплекс аппаратно-программных средств, обеспечивающий пред отвращение взаимного искажения программ, одновре менно находящихся в оперативной памяти.
Сущность функционирования любой системы защиты памяти заключается в проверке всех кодов адресов, по
ступающих в оперативную память при обращении к ней, и выработке необходимых сигналов по результатам этой
45
проверки. Если адрес относится к выделенной для дан ной программы зоне памяти, то система защиты разре шает обращение к ОЗУ; если же адрес относится к запрещенной , зоне, то система защиты прекращает выполнение данной команды и посылает запрос на пре рывание реализуемой программы с целью установления причины нарушения границ зоны памяти.
Системы защиты памяти строятся по различным принципам, отвечающим возможностям размещения про граммы, допустимым затратам аппаратуры и машинного времени, а также методам организации вычислительного процесса. Наибольшее распространение получили си стемы с защитой памяти по граничным адресам, по ко дам признаков, или маскам, и по ключам. Все эти виды систем защиты предусматривают использование специ альной дополнительной аппаратуры. Если в вычисли тельной системе предусматривается страничная органи зация памяти с сегментацией страниц, то защита памяти может быть обеспечена только программными методами [Л. 2].
Системы защиты с граничными регистрами. Такие системы реализуют способ защиты по граничным адре сам, заключающийся в следующем. Для каждой про граммы в простейшем случае отводится зона оператив ной памяти, включающая ячейки с последовательными адресами; запись команд и операндов разрешается только в этой зоне. Границы зоны отмечаются фиксиро ванием адресов ее начальной и конечной ячеек. При обращении к памяти в процессе выполнения данной про граммы каждый поступающий в блок управления ОЗУ адрес сравнивается с граничными адресами. По резуль татам сравнения устанавливается возможность обраще ния к ОЗУ по поступившему адресу.
Блок защиты (БЗ), представляющий собой совокуп ность элементов и узлов, обеспечивающих реализацию рассматриваемого способа, строится достаточно просто. Его схема приведена на рис. 1-7, где дополнительно показаны некоторые узлы ОЗУ, взаимодействующие с БЗ в процессе работы. Основу блока защиты состав
ляют два регистра |
кодов границ |
зоны РгКГі |
и РгКГ% |
||
и два узла сравнения кодов УСКі |
и УСКг- Коды |
границ, |
|||
или граничные адреса, вводятся в |
регистры |
через груп |
|||
пы вентилей Ві и |
В% программным |
путем, |
т. е. управ |
||
ляющей программой, перед началом |
выполнения |
каждой |
46
программы; обычно АХі представляет младший из до пустимых адресов, а КГ2 — старший.
Текущий адрес, поступивший в регистр адреса РгА при очередном обращении к ОЗУ, одновременно подает
ся на оба УСК. Если он больше КГ2, |
то УСКі |
формирует |
|||
сигнал нарушения границ |
СНГъ если же он меньше /СА, |
||||
то УСКі формирует СНГ\, |
сигналы |
С # Л |
и СНГ2 через |
||
собирательную схему ИЛИ |
поступают |
в |
центральное |
||
|
/ |
Код |
границы |
|
|
УС,-
Код границы 1 t ^
Рис. 1-7. Схема защиты памяти с двумя граничными регистрами.
устройство управления; объединенный сигнал СНГ рас сматривается как сигнал одного из запросов на преры вание выполнения программы. В том случае, когда код адреса относится к заданной зоне оперативной памяти, узлы сравнения кодов формируют сигналы г4 и г2 соот ветственно, обеспечивающие образование на выходе элемента И сигнала разрешения г на обращение к ОЗУ. Блок управления ОЗУ вырабатывает сигнал передачи кода адреса в дешифратор адреса ДшА только при приеме от блока защиты сигнала разрешения г.
Защита памяти может быть организована только при обращениях по записи. Для этого достаточно допол нить схему рассматриваемого блока защиты элемен-
47
том И, управляемым сигналом записи Зп (на рис. 1-7 этот элемент И показан пунктиром). Кроме того, в бло ке управления ОЗУ необходимо предусмотреть блоки ровку сигнала г сигналом обращения по считыванию Сч. Организация защиты памяти только при обращении по записи снижает общие потери времени, связанные с не
обходимостью дополнительной обработки |
информации |
в блоке защиты. Очевидно, что эти потери |
определяются, |
Главным образом, быстродействием узлов сравнения кодов.
|
53, |
•кг] |
|
|
|
к к г / |
с и г г |
|
|
|
|
|
||
И |
63, |
-кг/ |
|
|
|
TT |
-кг! |
-СНГ |
|
|
|
|
||
Рей |
вз„ |
-кг" |
|
|
|
|
|||
|
|
|
|
|
|
|
|
СНГ |
|
Рис. 1-8. Схема защиты памяти с |
несколькими парам» |
|||
граничных |
регистров. |
|
|
|
Использование системы |
защиты, |
базирующейся на |
двух граничных регистрах, значительно снижает возмож ности программирования, а иногда и эффективность
всей вычислительной системы. Это связано |
с тем, что |
во многих случаях желательно размещение |
программ |
в зонах памяти, не представляющих собой общие после довательности. Для повышения гибкости системы защи ты с граничными регистрами в ее состав могут вклю
чаться несколько пар |
регистров |
по |
числу |
возможных: |
зон размещения одной |
программы. |
В |
этом |
случае к а ж |
дая пара регистров или отдельный блок защиты обес печивает защиту одной заданной зоны памяти. Схема: связей узлов и блоков при использовании k блоков-, защиты приведена на рис. 1-8; надстрочными индексами при обозначениях сигналов и кодов здесь даны номера
соответствующих блоков |
защиты; остальные обозначе |
ния те же, что и на рис. |
1-7. |
48
Анализ схемы рис. 1-8 показывает,- что для ее реализации требуются достаточно большие аппаратур ные затраты, которые могут быть уменьшены только за счет организации последовательного сравнения кодов для отдельных пар граничных регистров. Однако в этом случае резко возрастают затраты машинного времени.
Вследствие |
указанных |
причин |
системы |
защиты |
памяти |
с граничными регистрами используются сравнительно |
|||||
редко. |
|
|
|
|
|
Системы |
защиты по |
маскам. |
Такие |
системы |
обеспе |
чивают возможность размещения одной программы во многих зонах оперативной памяти; эти зоны могут вы деляться в одном блоке памяти, а также совпадать с от
дельными блоками |
памяти, выделяемыми конструктив |
но. В любом случае |
необходимо, чтобы зона включала: |
в свой состав такое количество ячеек памяти, которое' равно целой степени числа два. Тогда старшие разряды, кода адреса всегда обозначают номер зоны. Если k — предельное количество зон, то для их нумерации необ ходимо использовать [log2 £] старших разрядов кода', адреса.
Доступ к выделенным зонам памяти обеспечивается1 специальным кодом, который для каждой выполняемой: программы формируется супервизором; этот код назы вают кодом маски защиты памяти, или кодом признаков" зон памяти. Код маски имеет k разрядов по числу вы деленных зон памяти. Если ;-й разряд кода (/' = 0, 1,. 2, k—1) содержит единицу, то это означает, что вы полняемой программе разрешен доступ в /-ю зону опе ративной памяти. Если же /-Й разряд содержит нуль, то доступ в /-Ю зону запрещен. Код маски всегда содержит столько единиц, сколько зон памяти отведено супервизо ром для размещения данной программы.
Схема аппаратной части системы защиты памяти по маскам приведена на рис. 1-9, где кроме собственно блока защиты БЗ обозначены отдельные узлы оператив ного запоминающего устройства, включая его блок управления БУ ОЗУ. Регистр адреса РгА условно раз делен на две части, фиксирующие младшие и старшие
разряды |
кода |
адреса, т. е. /041 и |
КА2 соответственно. |
Старшие |
разряды кода адреса, обозначающие номер |
||
зоны (блока) |
ОЗУ, подаются для |
анализа в блок за |
|
щиты. |
|
|
|
4—1514 |
49' |