Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Le / Структуры программных средств Oracle.doc
Скачиваний:
49
Добавлен:
16.04.2013
Размер:
128.51 Кб
Скачать

Архитектура процесса однозадачного сервера

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

Для поддержки таких сред в Oracleиспользуется архитектура процесса однозадачного сервера(single-task server process architecture),которая представлена на рис. 6.

Однозадачный процесс эффективен в среде, созданной на основе хост-компьютера, так как в этом случае как клиентскую, так и серверную часть приложения выполняет лишь один процесс. Однако однозадачную конфигурацию Oracleподдерживают не все операционные системы: ее могут применять только те из них, которые обеспечивают надлежащую защиту границы между клиентской и серверной программами. Например, операционная системаVAXVMSкомпанииDigitalможет поддерживать однозадачную конфигурацию для соединений в среде хост-машины, а большинство серверовUNIX- нет; вместо этого для поддержки как соединений клиент/сервер, так и соединений в среде хост-машин большинство серверовUNIXдолжно использовать конфигурацию многопоточного или выделенного сервера.

Области памяти и кэширование данных

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

Чтобы минимизировать число обращений к диску и ускорить работу компьютерных систем, приложения обычно создают области оперативной памяти (RAM - random access memory),в которых временно кэшируются(cache)данные, хранимые на диске. Приложение может работать с данными в кэше памяти практически без задержек и использовать ресурсоёмкие операции обращения к диску только при необходимости или когда это наиболее эффективно. Применяя кэш памяти, приложение и система в целом функционируют намного быстрее.

Кэш-попадания, кэш-промахи и кэш-перезагрузки

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

Кэш-попадание (cache hit илиcache get)происходит в том случае, когда приложение запрашивает данные, уже находящиеся в кэше памяти. Кэш-попадания полезны, так как позволяют обойтись без обращения к диску в процессе обработки запрошенных данных. Кэш-промах(cache miss)происходит тогда, когда приложение запрашивает данные, которых в кэше нет, так что для помещения их в кэш нужно обратиться к диску. Кэш-перезагрузка(cache reload)очень похожа на кэш-промах. Она происходит, когда приложение запрашивает данные, которые находились в кэше, но затем устарели и были из него удалены (записаны обратно на диск) - поэтому приложение должно опять считывать данные с диска в память. Естественно, чем меньше кэш-промахов и кэш-перезагрузок, тем меньше обращений к диску и тем лучше функционирование системы.

Кэш памяти обычно представляет собой фиксированный участок памяти, который не увеличивается и не уменьшается в размере. Поэтому существует ограничение для хранения данных в кэше. Когда кэш заполнен данными и в него нужно считать дополнительную информацию, приложение должно решить, какие блоки следует удалить из кэша, чтобы освободить место для новых данных. Для сохранения в памяти чаще всего используемых блоков данных и минимизации числа кэш-промахов и кэш-перезагрузок приложение должно применять соответствующий алгоритм кэширования (caching algorithm)и с его помощью решать, когда удалять устаревшие блоки из кэша. Широко распространен алгоритм кэширования, называемыйMRU/LRU (most-recently-used/least-recently-used caching algorithm - алгоритм кэширования "использовавшийся позже всех/ использовавшийся раньше всех).Смысл этого алгоритма заключается в том, что при его применении блоки данных, использовавшиеся позже всех, хранятся в кэше, а блоки данных, использовавшиеся раньше всех, записываются обратно на диск, когда требуется дополнительное пространство памяти.

Соседние файлы в папке Le