Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyGOS_1_60.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.19 Mб
Скачать
  1. Захист пам'яті за допомогою ключів захисту. Структурна схема пам'яті з захистом. Достоїнства і недоліки.

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

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

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

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

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

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

  1. Віртуальні процесори. Призначення і реалізація.

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

Виртуальные процессоры (ВП) являются специализированными - они подразделяются на классы в соответствии с типом потоков, для выполнения которых они предназначены. Примеры классов ВП:

CPU - Потоки обслуживания клиентов, реализуют оптимизацию и логику выполнения запросов. К этому классу относятся и некоторые системные потоки.

AIO - Операции асинхронного обмена с диском.

ADM - Административные функции, например, системный таймер.

TLI - Контроль сетевого взаимодействия посредством интерфейса TLI (Transport Layer Interface).

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

Начальное число виртуальных процессоров каждого класса, создаваемых при запуске INFORMIX-OnLine DS, задается в конфигурационном файле. Однако, потребности в каждом виде обработки не всегда предсказуемы. Инструменты администрирования позволяют динамически, не останавливая сервер, запустить дополнительные виртуальные процессоры. Например, если растет очередь потоков к виртуальным CPU-процессорам, то можно увеличить их число. Точно так же, возможно добавление виртуальных процессоров обмена с дисками, сетевых процессоров взаимодействия с клиентами, создание процессора обмена с оптическим диском, если он отсутствовал в начальной конфигурации. Динамически сократить можно только число виртуальных процессоров класса CPU.

На некоторых мультипроцессорных платформах, где OnLine DS поддерживает родство процессоров (processor affinity), допускается привязка виртуальных CPU-процессоров к определенным центральным процессорам компьютера. В результате производительность виртуального CPU-процессора повышается, поскольку операционная система реже производит переключение процессов. Привязка позволяет также изолировать работу с базой данных, выделяя для этой цели определенные процессоры, в то время как остальные будут заняты другими задачами.

Виртуальный процессор

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]