Способы защиты оперативной памяти

Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.

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

Два основных вида организации виртуальной памяти — сегментная и страничная организация.

При сегментной организации вся виртуальная память, используемая программой, разбивается на части, называемые сегментами. Это разбиение выполняется либо самим программистом (если он программирует на языке ассемблера), либо компилятором используемого языка программирования. Размеры сегментов могут быть различными, но в пределах максимального размера, используемого в данной архитектуре. Разбиение обычно производится на логически осмысленные части, такие, как сегмент данных, сегмент кода, сегмент стека и т.п.

Таким образом, при сегментной организации у программы нет единого линейного адресного пространства. Виртуальный адрес состоит из двух частей: селектора сегмента и смещения от начала сегмента. Селектор сегмента представляет некоторое число, которое обычно является индексом в таблице сегментов данного процесса. Такая таблица содержит для каждого сегмента его размер, режим доступа (только чтение или возможна запись), флаг присутствия сегмента в памяти. Если сегмент находится в памяти, то в таблице хранится его базовый адрес (адрес физической памяти, соответствующий началу сегмента). Отсутствие сегмента означает, что его данные временно вытеснены на диск и хранятся в файле подкачки (swap file).

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

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

Также существует термин swap также означающий виртуальную память (точнее способ её представления), или же означает подкачку данных с диска. Применение механизма виртуальной памяти позволяет:*упростить адресацию памяти клиентским программным обеспечением;*рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

*изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью);

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

14.Управление оперативной памятью. Понятие виртуальной памяти. Поддержка ВП со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.вп в пред.

Процессор Intel x86 другое название для архитектуры этого типа — IA (Intel Architecture) или же IA-32.Адрес 32 бита разделен на участки:10 (в page directory) + 10 ( в page table entry (PTE)- элемент таблицы страниц) + 12. Первые 10+10 — номер вирт страницы. 12 — смещение внутри страницы (offset).При использовании линейной адресации (доступна только в защищенном режиме) 32-битный адрес делится на три части:

Номер записи в каталоге страниц (номер таблицы страниц- page directory) — биты 31-22 (10). Одна запись из каталога страниц определяет 4 МБайт адресного пространства. Номер записи в таблице страниц (номер страницы в таблице страниц — page table) — биты 21-12 (10). Одна запись из таблицы страниц определяет 4 КБайт адресного пространства.

Смещение в странице — биты 11-0 (12).

Обе эти структуры представляют собой таблицы элементов каталога и таблицы страниц (англ. Page Directory Entry, PDE и англ. Page Table Entry, PTE) страницы памяти по 4 КБайт.

Структура элемента таблицы страниц — PTE:

— номер реальной страницы

— бит изменений (данные об изменении страницы)

— права пользователя (ReadOnly, ReadWrite)

— файловый дескриптор(маленькое целое число — если страница не в памяти, то где ее искать)

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

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

Читайте также:  Выдержка это единственный способ

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

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

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

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

Источник

4.4.5. Методы защиты памяти

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

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

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

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

Защита памяти по граничным адресам

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

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

Защита памяти по маскам

Защита памяти по маскам используется при страничной организации ОП. Для каждой программы перед её выполнением указываются номера страниц, отведенные для размещения её команд и всех необходимых данных. Указание о номерах отведенных страниц для данной программы задается управляющей программой операционной системы в виде кода маски или ко­да признаков страниц. Код маски формируется для каждой рабочей програм­мы. Под маской программы понимается n-разрядный двоичный код, разряд­ность которого определяется количеством страниц ОП. Каждый i-й разряд маски указывает о принадлежности i-й страницы ОП данной программе: если в i-м разряде задано значение 1, то при обращении к ОП разрешен доступ к любой ячейке i-ой страницы, если же i-й разряд маски содержит ноль, то вы­полняемой программе доступ к i-й странице запрещен.

Перед выполнением программы её код маски по специальной команде засылается в регистр маски РМ (рис. 4.21) блока защиты. При каждом обра­щении к ОП код номера страницы из исполнительного адреса загружается в регистр номера страницы PC и затем расшифровывается дешифратором но­мера страницы ДШС. На одном из выходов этого дешифратора, номер кото­рого равен номеру страницы, появляется единичный сигнал. Если в соответ­ствующем этой странице двоичном разряде кода маски программы задана единица, то схема сравнения выдает сигнал разрешения передачи адреса ячейки в ОП, в противном случае схема сравнения вырабатывает сигнал пре­рывания программы.

Рис.4.21. Защита памяти по маскам

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

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

Защита памяти по ключам

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

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

Читайте также:  Технологическая схема производства сметаны термостатным способом

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

Рис.4.22. Защита памяти по ключам

Кроме ПКЗ в состав блока защиты памяти входят: дешифратор номера страниц ДШС для расшифровки кодов номеров страниц; регистр ключей защиты РКЗ для фиксации выбираемых из ПКЗ кодов; регистр ключей про­грамм РКП для приема и хранения кодов ключей программ, поступающих из регистра слова состояния программы (системного регистра) процессора, или кодов ключей каналов; узел сравнения ключей УСК для сравнения ключей защиты с ключами программ (или каналов).

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

Функционирование БЗП начинается с ввода в ДШС кода номера страни­цы ОП, к которой производится обращение. По номеру страницы из ПКЗ вы­бирается соответствующий ключ защиты, код которого помещается в РКЗ. В УСК код ключа защиты сравнивается с кодом ключа программы (канала) и формируются управляющие сигналы разрешения или прерывания.

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

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

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

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

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

Защита памяти по граничным адресам

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

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

Читайте также:  Получить амид пропионовой кислоты всеми возможными способами

Защита памяти по маскам

Защита памяти по маскам используется при страничной организации ОП. Для каждой программы перед её выполнением указываются номера страниц, отведенные для размещения её команд и всех необходимых данных. Указание о номерах отведенных страниц для данной программы задается управляющей программой операционной системы в виде кода маски или ко­да признаков страниц. Код маски формируется для каждой рабочей програм­мы. Под маской программы понимается n-разрядный двоичный код, разряд­ность которого определяется количеством страниц ОП. Каждый i-й разряд маски указывает о принадлежности i-й страницы ОП данной программе: если в i-м разряде задано значение 1, то при обращении к ОП разрешен доступ к любой ячейке i-ой страницы, если же i-й разряд маски содержит ноль, то вы­полняемой программе доступ к i-й странице запрещен.

Перед выполнением программы её код маски по специальной команде засылается в регистр маски РМ (рис. 4.21) блока защиты. При каждом обра­щении к ОП код номера страницы из исполнительного адреса загружается в регистр номера страницы PC и затем расшифровывается дешифратором но­мера страницы ДШС. На одном из выходов этого дешифратора, номер кото­рого равен номеру страницы, появляется единичный сигнал. Если в соответ­ствующем этой странице двоичном разряде кода маски программы задана единица, то схема сравнения выдает сигнал разрешения передачи адреса ячейки в ОП, в противном случае схема сравнения вырабатывает сигнал пре­рывания программы.

Рис.4.21. Защита памяти по маскам

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

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

Защита памяти по ключам

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

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

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

Рис.4.22. Защита памяти по ключам

Кроме ПКЗ в состав блока защиты памяти входят: дешифратор номера страниц ДШС для расшифровки кодов номеров страниц; регистр ключей защиты РКЗ для фиксации выбираемых из ПКЗ кодов; регистр ключей про­грамм РКП для приема и хранения кодов ключей программ, поступающих из регистра слова состояния программы (системного регистра) процессора, или кодов ключей каналов; узел сравнения ключей УСК для сравнения ключей защиты с ключами программ (или каналов).

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

Функционирование БЗП начинается с ввода в ДШС кода номера страни­цы ОП, к которой производится обращение. По номеру страницы из ПКЗ вы­бирается соответствующий ключ защиты, код которого помещается в РКЗ. В УСК код ключа защиты сравнивается с кодом ключа программы (канала) и формируются управляющие сигналы разрешения или прерывания.

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

Источник

Оцените статью
Разные способы