2010-02-26 7 views
3

여기 : http://download.oracle.com/docs/html/A95907_01/diff_uni.htm#1077398 나는 오라클에서 스레드 기반 인 반면, 오라클에서는 프로세스 기반이라고 발견했다. 왜 그렇게 생각하니?오라클 쓰레드와 프로세스

무엇보다 시스템에 관계없이 많은 오라클 프로세스 http://www.adp-gmbh.ch/ora/concepts/processes/index.html이 있습니다.

로그 작성자와 db 작성기가 프로세스로 구현되는 이유는 무엇입니까? 쿼리 실행은 스레드 (창) 또는 프로세스 (유닉스)를 사용하여 수행됩니다.

답변

3

오라클은 SGA 공유 메모리 영역을 사용하여 모든 세션/트랜잭션에 액세스 할 수있는 정보를 저장합니다. 예를 들어, 행이 잠겨 있으면 해당 잠금이 메모리에 있고 (행의 속성으로) 다른 모든 트랜잭션은 잠겨 있음을 확인해야합니다. 스레드가 가 다른 프로세스에 의해 손상된 인에서 프로세스를 보호 다른 프로세스에 속한 다른 프로세스의 메모리

threads cannot 액세스 메모리에 액세스 할 수 없습니다 창에서

.

이와 같이 Windows에서 Oracle은 다중 스레드가있는 단일 프로세스 여야합니다. OS가 프로세스간에 메모리 공유를 지원하면 오라클이 다중 프로세스 아키텍처로 작동하고 프로세스 관리를 OS에 맡기는 작업이 줄어 듭니다.

오라클은 다른 프로세스와 비동기적인 (또는 비동기적인) 작업을 수행하기 위해 많은 백그라운드 스레드/프로세스를 실행합니다. 이렇게하면 다른 프로세스/스레드가 차단되거나 사용중인 경우에도 프로세스를 계속 진행할 수 있습니다.

1

이 답변보기 이전에이 질문과 유사하게 'What is process and thread?'에 게시했습니다. Windows는 이러한 방식으로 스레드를 광범위하게 사용합니다. 스레드를 기반으로하는 * nix/Linux 기반 시스템과 달리. 그리고이 링크는 explanation에 대한 직접 링크입니다 (이 링크는 제가 처음 제공 한 링크에 포함되어 있습니다).

호프가 도움이 되었으면 안녕하세요, 탐.

+0

오라클이 인스턴스 당 프로세스가 많은 이유는 무엇입니까? 나는 그 질문을 바꾸겠다. –

+0

예. Windows on Oracle에서 * nix (pmon, smon, lgwr, et.al.)의 Oracle에있는 모든 프로세스는 ORACLE.EXE 내부의 스레드입니다. –