Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Защита памяти в мультипрограммных ЭВМ






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

Таким образом, средства защиты памяти должны предотвращать [2]

неразрешенное взаимодействие пользователей друг с другом,

несанкционированный доступ пользователей к данным,

повреждение программ и данных из-за ошибок в программах,

намеренные попытки разрушить целостность системы.

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

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

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

Если нарушается защита памяти, исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

Защита от вторжения программ в чужие области памяти может быть организована различными методами. Но при любом подходе реали­зация защиты не должна заметно снижать производительность компьютера и требовать слишком больших аппаратурных затрат.

Методы защиты базируются на некоторых классических подходах, которые получили свое развитие в архитектуре современных ЭВМ. К таким методам можно отнести защиту отдельных ячеек, метод граничных регистров, метод ключей защиты [7].

Защита отдельных ячеек памяти организуется в ЭВМ, предназначенных для работы в системах управления, где необходимо обеспечить возможность отладки новых программ без нарушения функционирования находящихся в памяти рабо­чих программ, управляющих технологическим процессом. Это может быть достигнуто выделением в каждой ячейке памяти специального " разряда защиты". Установка этого разряда в " 1" запрещает производить запись в данную ячейку, что обеспечивает сохранение рабочих программ. Недостаток такого подхода – большая избыточность в кодировании информации из-за излишне мелкого уровня защищаемого объекта (ячейка).

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

Метод граничных регистров (рис.5.23) заключается во введении двух граничных регистров, указывающих верхнюю и нижнюю границы области памяти, куда программа имеет право доступа.

 
 

 

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

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

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

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

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

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

Функционирование этого механизма защиты памяти поясняется схемой на рис.5.24. При обращении к па­мяти группа старших разрядов адреса ОЗУ, соответствующая номеру блока, к кото­рому производится обращение, используется как адрес для выборки из памяти ключей защиты и передачи на регистр ключа защиты памяти кода ключа защиты, при­своенного операционной системой данному блоку. Схема анализа сравнивает ключ защиты блока памяти и ключ программы, находящийся в регистре слова состояния программы (ССП), и вырабатывает сигнал " Обращение разрешено" или сигнал " Прерывание по защите памяти ". При этом учитываются значения режима обращения к ОЗУ (запись или считывание), указываемого триггером режима обращения ТгРО, и режима защиты, уста­новленного в разряде режима обращения (РРО) ключа защиты памяти.

 
 

Средства защиты памяти в персональной ЭВМ

Защиты памяти в персональной ЭВМ [4] делится на

защиту при управлении памятью и

защиту по привилегиям.

Средства защиты при управлении памятью осуществляют проверку

превышения эффективным адресом длины сегмента,

прав доступа к сегменту на запись или только на чтение,

функционального назначения сегмента.

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

При проверке функционального назначения сегмента определяются операции, которые можно проводить над находящимися в нем данными. Так, сегмент, представляющий собой стек программы, должен допускать обращение как на запись, так и на чтение информации. К сегменту, содержащему программу, можно обращаться только на исполнение. Любое обращение на запись или чтение данных из этого сегмента будет воспринято как ошибочное. Здесь наблюдается некоторый отход от принципов Неймана в построении ЭВМ, в которых утверждается, что любая информация, находящаяся в ЗУ, функционально не разделяется на программу и данные, а ее идентификация проводится лишь на стадии применения данной информации. Очевидно, что такое развитие вызвано во многом появлением мультипрограммирования и необходимостью более внимательного рассмотрения вопросов защиты информации.

Защита по привилегиям фиксирует более тонкие ошибки, связанные, в основном, с разграничениеv прав доступа к той или иной информации.

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

выполнять некоторые команды,

выполнять команды ввода-вывода на том или ином внешнем устройстве,

обращаться к данным других программ,

вызывать другие программы.

На аппаратном уровне в процессоре различаются 4 уровня привилегий. Наиболее привилегированными являются программы на уровне 0.

Число программ, которые могут выполняться на более высоком уровне привилегий, уменьшается от уровня 3 к уровню 0. Программы уровня 0 действуют как ядро операционной системы. Поэтому уровни привилегий обычно изображаются в виде четырех колец защиты (рис.5.25).


 
 

Как правило, распределение программ по кольцам защиты имеет следующий вид:

уровень 0 – ядро ОС, обеспечивающее инициализацию работы, управление доступом к памяти, защиту и ряд других жизненно важных функций, нарушение которых полностью выводит из строя процессор;

уровень 1 – основная часть программ ОС (утилиты);

уровень 2 – служебные программы ОС (драйверы, СУБД, специализированные подсистемы программирования и др.);

уровень 3 – прикладные программы пользователя.

Конкретная операционная система не обязательно должна поддерживать все четыре уровня привилегий. Так ОС UNIX работает с двумя кольцами защиты: супервизор (уровень 0) и пользователь (уровни 1, 2, 3). Операционная система OS /2 поддерживает три уровня: код ОС работает в кольце 0, специальные процедуры для обращения к устройствам ввода-вывода действуют в кольце 1, а прикладные программы выполняются в кольце 3.

Простую незащищенную систему можно целиком реализовать в одном кольце 0 (в других кольцах это сделать невозможно, так как некоторые команды доступны только на этом уровне).

Уровень привилегий сегмента определяется полем DPL уровня привилегий его дескриптора. Уровень привилегий запроса к сегменту определяется уровнем привилегий RPL, закодированном в селекторе. Обращение к сегменту разрешается только тогда, когда уровень привилегий сегмента не выше уровня запроса.

При страничном преобразовании адреса применяется простой двухуровневый механизм защиты: пользователь (уровень 3) / супервизор (уровни 0, 1, 2), указываемый в поле U/S соответствующего каталога.

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

 

5.7. Ввод-вывод информации

 

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

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

Интерфейсы имеют следующие параметры [7]:

пропускная способность – количество инфор­мации, которая может быть передана через интерфейс в единицу времени;

максимальная частота передачи информационных сигналов через интерфейс;

максимально допустимое расстояние между соединяемыми устройствами;

общее число проводов (линий) в интерфейсе;

информационная ширина интерфейса – число бит или байт данных, передаваемых параллельно через интерфейс;

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

Разработка систем ввода-вывода требует решения целого ряда проблем, среди которых выделим следующие:

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

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

упростить для пользователя и стандартизовать программирование операций ввода-вывода, обеспечить незави­симость программирования ввода-вывода от особенностей того или иного периферийного устройства;

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

Главным направлением решения указанных проблем является магистрально-модульный способ построения ЭВМ (рис.5.26): все устройства, составляющие компьютер, включая и микропроцессор, организуются в виде модулей, которые соединяются между собой общей магистралью. Обмен информацией по магистрали удовлетворяет требованиям некоторого общего интерфейса, установленного для магистрали данного типа. Каждый модуль подключается к магистрали посредством специальных интерфейсных схем (И i).

На интерфейсные схемы модулей возлагаются следующие задачи:

обеспечение функциональной и электрической совместимости сигналов и протоколов обмена модуля и системной магистрали;

преобразование внутреннего формата данных модуля в формат данных системной магистрали и обратно;

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


 
 

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

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

Недостатком магистрально-модульного способа организации ЭВМ является невозможность одновременного взаимодействия более двух модулей, что ставит ограничение на производительность компьютера. Поэтому он, в основном, используется в ЭВМ, к характеристикам которых не предъявляется очень высоких требований, например в персональных ЭВМ.

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

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

1) сформировать начальный адрес области обмена ОП;

2) занести длину передаваемого массива данных в один из внутренних регистров, который будет играть роль счетчика;

3) выдать команду чтения информации из УВВ; при этом на шину адреса из МП выдается адрес УВВ, на шину управления – сигнал чтения данных из УВВ, а считанные данные заносятся во внутренний регистр МП;

4) выдать команду записи информации в ОП; при этом на шину адреса из МП выдается адрес ячейки оперативной памяти, на шину управления – сигнал записи данных в ОП, а на шину данных выставляются данные из регистра МП, в который они были помещены при чтении из УВВ;

5) модифицировать регистр, содержащий адрес оперативной памяти;

6) уменьшить счетчик длины массива на длину переданных данных;

7) если переданы не все данные, то повторить шаги 3-6, в противном случае закончить обмен.

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

Альтернативой программно-управляемому обмену служит прямой доступ к памяти – способ быстродействующего подключения внешнего устройства, при котором оно обращается к оперативной памяти, не прерывая работы процессора [3]. Такой обмен происходит под управлением отдельного устройства – контроллера прямого доступа к памяти (КПДП).

Структура ЭВМ, имеющей в своем составе КПДП, представлена на рис.5.27.

 
 

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

Последовательность действий КПДП при запросе на прямой доступ к памяти со стороны устройства ввода-вывода следующая:

1. Принять запрос на ПДП (сигнал DRQ) отУВВ.

2. Сформировать запрос к МП на захват шин (сигнал HRQ).

3. Принять сигнал от МП (HLDA), подтверждающий факт перевода микропроцессором своих шин в третье состояние.

4. Сформировать сигнал, сообщающий устройству ввода-вывода о начале выполнения циклов прямого доступа к памяти (DACK).

5. Сформировать на шине адреса компьютера адрес ячейки памяти, предназначенной для обмена.

6. Выработать сигналы, обеспечивающие управление обменом (IOR, MW для передачи данных из УВВ в оперативную память и IOW, MR для передачи данных из оперативной памяти в УВВ).

7. Уменьшить значение в счетчике данных на длину переданных данных.

8. Проверить условие окончания сеанса прямого доступа (обнуление счетчика данных или снятие сигнала запроса на ПДП). Если условие окончания не выполнено, то изменить адрес в регистре текущего адреса на длину переданных данных и повторить шаги 5–8.

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

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

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

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

Как отмечалось выше, обычно компьютер строится по магистрально-модульному принципу. При этом все составляющие его устройства объединяются общей шиной, по которой между ними происходит обмен данными, адресами, а также управляющими сигналами. В качестве примера перечислим основные линии, составляющие одну из распространенных системных магистралей – шину ISA:

A 0- A 23 – шина адреса;

D 0- D 15 – двунаправленная шина данных, допускает обмен как байтами, так и словами (2 байта);

CLK – шинный тактовый сигнал, синхронизирует работу процессора, ОП и УВВ;

MR – управляющий сигнал чтения из ОП;

MW – управляющий сигнал записи в ОП;

IOR – управляющий сигнал чтения из УВВ;

IOW – управляющий сигнал записи в УВВ;

IRQi – запрос прерывания от i -го источника;

DRQi – запрос прямого доступа к памяти по i –му каналу контроллера ПДП;

DACKi – разрешение прямого доступа к памяти i –му каналу контроллера ПДП;

AEN – сигнал занятости шин обменом в режиме ПДП,

READY – сигнал готовности УВВ к обмену.

Магистраль обеспечивает подключение до семи внешних устройств, работающих в режиме прямого доступа к памяти, и до 11 запросов прерываний от УВВ. Еще четыре запроса прерываний зарезервированы за устройствами, входящими в состав стандартной конфигурации ЭВМ, и на магистраль не выведены.

Хотя шина ISA имеет небольшую информационную ширину и в настоящее время используется для подключения только относительно медленных периферийных устройств, ее состав позволяет в определенной мере проследить взаимосвязь различных рассмотренных ранее устройств, составляющих ЭВМ.

 


Литература

1. Аванесян Г.Р., Лёвшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник. М.: Машиностроение, 1993.

2. Атовмян И.О. Архитектура вычислительных систем. М.: МИФИ, 2002.

3. Борковский А. Англо-русский словарь по прог­раммированию и информатике (с толкованиями) М.: Русский язык, 1990.

4. Бродин В.Б., Шагурин И.И. Микропроцессор i486. Архитектура, программирование, ин­терфейс. М.: ДИАЛОГ-МИФИ, 1993.

5. Гуров В.В. Синтез комбинационных схем в примерах. М.: МИФИ, 2001.

6. Гуров В.В., Ленский О.Д., Соловьев Г.Н., Чуканов В.О. Архитектура, структура и организация вычислительного процесса в ЭВМ типа IBM PC /Под ред. Г.Н. Соловьева. М.: МИФИ, 2002.

7. Каган Б.М. Электронные вычислительные машины и системы. М.: Энер­го­атом­из­дат, 1991.

8. Казаринов Ю.М., Номоконов В.Н., Подклетнов Г.С. и др. Микропроцессорный ком­п­лект К1810: Структура, программирование, применение /Под ред. Ю.М. Казаринова. М.: Высшая школа, 1990.

9. Корнеев В.В., Киселев А.В. Современные микропроцессоры. М.: Нолидж, 1998.

10. Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088. М.: Радио и связь, 1987.

11. Майоров С.А., Новиков Г.И. Структура электронных вычислительных машин. Л.: Машиностроение, Ленингр.отд-ие, 1979.

12. Никитин В.Д., Соловьев Г.Н. Операционнные системы. М.: Мир, 1989.

13. Савельев А.Я. Прикладная теория цифровых автоматов. М.: Высшая школа, 1987.

14. ГОСТ 15133-77. Приборы полупроводниковые, термины и определения.

15. ГОСТ 17021-75.Микроэлектроника, термины и определения.


 

Валерий Валентинович Гуров

 

Основы организации вычислительных машин

 

 

Учебное пособие

 

Редактор Антонова Н.Н.

Лицензия ЛР 020676 от 09.12.97г.

Подписано в печать 02.11.2004 Формат 60х84 1/16

Уч.-изд. л. 10, 25. Печ. л. 10, 25 Тираж 200 экз.

Изд. №029-1 Заказ 890

Московский государственный инженерно-физический институт

(технический университет)

Типография МИФИ

115409 Москва, Каширское шоссе, 31






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.