Потоки и процессы Oracle - PullRequest
4 голосов
/ 26 февраля 2010

Здесь: http://download.oracle.com/docs/html/A95907_01/diff_uni.htm#1077398 Я обнаружил, что в Windows Oracle основан на потоках, а в Unix - на процессах. Почему это так?

Более того, существует множество процессов Oracle http://www.adp -gmbh.ch / ora / concepts / projects / index.html независимо от системы.

Почему средство записи журнала и средство записи базы данных реализованы как процессы ... и выполнение запроса выполняется с использованием потоков (windows) или процессов (unix).

Ответы [ 2 ]

3 голосов
/ 27 февраля 2010

Oracle использует область общей памяти SGA для хранения информации, которая (и должна быть) доступна для всех сеансов / транзакций. Например, когда строка заблокирована, эта блокировка находится в памяти (как атрибут строки), и все другие транзакции должны видеть, что она заблокирована.

В Windows поток не может получить доступ к памяти другого процесса

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

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

Oracle запускает несколько фоновых потоков / процессов для выполнения работы, которая (или может быть) асинхронна другим процессам. Таким образом, они могут продолжаться, даже когда другие процессы / потоки заблокированы или заняты.

1 голос
/ 26 февраля 2010

См. Ответ, который я опубликовал ранее в том же духе, что и вопрос ' Что такое процесс и нить? '. Таким образом, Windows широко использует потоки. В отличие от * nix / Linux систем, основанных на потоках. И посмотрите здесь также, эта ссылка является прямой ссылкой (которая встроена в первую ссылку, которую я дал) на объяснение , которое я дал о том, как Linux делит потоки и процессы по времени.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...