Защита памяти. Память.


Защита памяти (storage protection) — важное условие работы для систем коллективного пользования. Защита памяти ограничивает диапазон адресов, которые доступны программе. Защиту памяти для программы, занимающей непрерывный блок ячеек памяти, можно реализовать с помощью граничных регистров, где указываются старший и младший адреса этого блока памяти.
Защита памяти также может быть реализована с помощью ключей защиты памяти (storage protect keys), относящихся к определенным областям основной памяти — программе разрешается обращение только к тем областям памяти, ключи которых совпадают с ключом данной программы.

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

Каналы ввода-вывода
Канал ввода-вывода представляет собой специализированный процессор, предназначенный для управления вводом-выводом независимо от основного процессора. Канал имеет возможность прямого доступа к основной памяти для записи и выборки информации. Основное назначение каналов состоит в том, чтобы увеличить параллелизм работы аппаратуры и освободить процессор от подавляющей части нагрузки, связанной с управлением вводом-выводом.
Для высокоскоростного обмена данными между внешними устройствами и основной памятью используются селекторные каналы (selector channel), имеющие только по одному подканалу и обслуживающие в каждый момент времени только одно устройство.
В отличие от селекторных, мультиплексные каналы (multiplexor channel) имеют множество подканалов и могут работать одновременно с несколькими потоками данных в режиме чередования.

Захват цикла памяти
Наиболее узкое место где может возникнуть конфликтная ситуация между каналами и процессором — это доступ к основной памяти. При возникновении ситуации, когда и каналам и процессору может потребоваться обращение к основной памяти, в обычном случае приоритет предоставляется каналам. Это и называется захватом цикла памяти (cycle stealing), канал буквально “крадет” циклы обращения к памяти у процессора. Подобный подход обычно используется в ОС.

Относительная адресация
Для обеспечения работы с большими адресными пространствами в памяти используется относительная адресация (база + смещение). В этом случае все адреса программы суммируются с содержимым базового регистра (base register) . Подобное решение имеет то преимущество, что программы в этом случае оказываются перемещаемыми и позиционно независимыми.

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

Прямой доступ к памяти (ПДП)
Прямой доступ к памяти (Direct Memory Access, DMA) является средством повышения производительности за счет минимизации количества прерываний, происходящих в процессе выполнения программы. ПДП основан на том, что после начала операции ввода-вывода символы передаются в основную память по принципу захвата цикла — канал захватывает шину связи процессора с основной памятью на короткое время передачи одного символа, после чего процессор продолжает работу. Когда внешнее устройство оказывается готовым к передаче очередного символа блока, оно прерывает процессор. Однако в случае ПДП состояние процессора запоминать не требуется, поскольку передача одного символа означает для процессора скорее задержку, или приостановку, чем обычное прерывание. Символ передается в основную память под управлением специальных аппаратных средств, а после завершения передачи процессор возобновляет работу.
Аппаратные средства, обеспечивающие захват циклов памяти и управление устройствами ввода-вывода в режиме ПДП, называются каналом прямого доступа к памяти (DMA channel).

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

Иерархия памяти ( storage hierarchy)
Известно, что современные вычислительные машины содержат несколько видов памяти: кеш-память (cache,storage) оперативную, внешнюю, и другие. Все эти виды памяти создают единую иерархию памяти, переход по уровням этой иерархии от кеш к внешней памяти сопровождается уменьшением стоимости и скорости и увеличением емкости памяти.

Вопросы
1. Объясните, в чем заключается концепция расслоения памяти.
2. В чем заключается отличие между простой и двойной буферизацией?
3. Опишите несколько способов защиты памяти.
4. Определите понятие — спулинг.
5. Как осуществляется прямой доступ к памяти?
6. Укажите различия между селекторными и мультиплексными каналами.
7. Какие возможности предоставляет использование виртуальной памяти?

Загрузка...