KR930000853B1 - 멀티 프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템. - Google Patents
멀티 프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템. Download PDFInfo
- Publication number
- KR930000853B1 KR930000853B1 KR1019900003741A KR900003741A KR930000853B1 KR 930000853 B1 KR930000853 B1 KR 930000853B1 KR 1019900003741 A KR1019900003741 A KR 1019900003741A KR 900003741 A KR900003741 A KR 900003741A KR 930000853 B1 KR930000853 B1 KR 930000853B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor module
- local
- shared
- database
- processing operation
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims description 157
- 230000015654 memory Effects 0.000 claims description 93
- 238000001514 detection method Methods 0.000 claims description 59
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000010586 diagram Methods 0.000 description 28
- 238000000034 method Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/922—Communications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
내용 없음.
Description
제1도는 멀티 프로세서 시스템을 사용한 종래 데이터 베이스 처리 시스템의 일예.
제2도는 멀티프로세서 시스템을 사용한 종래 데이터 베이스 처리 시스템의 또다른 일예.
제3도는 본 발명에 따른 데이터 베이스 프로세싱 시스템의 도식적인 블럭 선도.
제4도는 본 발명의 동작을 설명하기 위한 도면.
제5도는 본 발명에 적용되는 멀티프로세서의 도식적인 블럭 선도.
제6도 및 제7도는 터미털 유니트로부터의 호출 요구의 처리 동작을 설명하기 위한 도면.
제8도는 본 발명에 따른 공유 및 국부처리 동작에 사용되어져야 할 관리 데이터를 설명하기 위한 도면.
제9도는 본 발명에 따른 공유/국부 변환제어를 설명하기 위한 흐름도.
제10도 내지 제12도는 락 제어 하의 베타제어의 데드락 상태를 설명하기 위한 도면.
제13도는 WFG(그래프 대기)의 한 예를 설명하기 위한 도면.
제14도는 본 발명에 따른 데드락 검출 시스템의 도식적인 블럭 선도.
제15a도 및 제15b도는 국부 WFG와 광역 WFG사이의 관계를 설명하기 위한 도면.
제16도는 자원 관리 정보를 설명하기 위한 도면.
제17도는 제16도에 도시된 자원 관리 정보를 나타내는 유향(有向) 그래프.
제18도 내지 제20b도는 본 발명에 따른 데드락 검출의 구성을 설명하기 위한 도면.
제21도는 대기 상태를 갖는 트랙색션 마다에 대해 제공된 WFG제어 표.
제22도는 제21도에 도시된 WFG제어표를 설명하기 위한 도표.
제23도는 제3도 및 제14도에 도시된 데드락 검출 시스템과 데이터 베이스 프로세싱 시스템을 포함하는 공유 메모리의 도식적인 블럭 선도.
제24도는 제3도 및 제14도에 도시된 데드락 검출 시스템과 데이터 베이스 프로세싱 시스템을 포함하는 프로세서 모듈의 도식적인 블럭 선도.
본 발명은 멀티프로세설를 사용한 데이터 베이스 프로세싱 시스템, 특히, 자원으로의 호출상태에 따른 공유 처리 동작과 국부 처리 동작 사이의 다이내믹 스위칭을 인에블하는 데이터 베이스 프로세싱 시스템에 관한 것이다. 자원은 처리되어져야 할 데이터 베이스의 유니트이다.
국부 처리 동작은 국부 메모리 상의 제어 데이터를 주로 사용함으로써 데이터를 구부적으로 처리하기 위한 동작이며, 공유 처리 동작은 공유 메모리 상의 제어 데이터를 주로 사용함으로써 데이터를 처리하기 위한 동작이다.
본 발명의 또 다른 면은 멀티프로세서 시스템을 사용하는 전체 데이터 베이스 프로세싱 시스템을 통하여 개선을 가능하게 하는 데드락 검출 시스템에 관한 것이다.
멀티프로세서 시스템은 대락 미세 커플링형(fine coupling type)과 대충 커플링형(coarse coupling type)으로 분류될 수 있다. 거기에는 또한 멀티프로세서의 다양한 형태, 예를 들면, 상기 두 형태를 조합한 복작한 형태와, 상기 두 형태 사이의 중간 형태가 있다.
일반적으로, 데이터 베이스 프로세잉 시스템은, 하나의 프로세싱 시스템내에서는 응답의 제한(시스템의 일정시간내에 처리되는 일의 양의 제한)이 발생하기 때문에 멀티프로세싱 시스템을 활용한다. 데이터 베이스가 또한 멀티프로세서 시스템을 사용함으로써 시스템의 일정시간 내에 처리되는 일의양을 증가시키기 위한 관리 될때, 정상 상태에서 데이터 베이스를 유지하기 위해 데이터 베이스의 내용이 서로 모순되는 일이 없고 또 어떤 제약을 완전히 만족하게 되는 성질을 의미하는 “통합성 보증(integrity guarantee)”을 확실하게 할 필요가 있다.
그러나, 통합성 보증을 위해 필요한 시간은, 통합성 보증이 각 프로세서 마다에서 확실해져야 하기 때문에 멀티프로세서 시스템내에서 상당히 증가하는 경향이 있다. 따라서, 그것은 멀티프로세서의 일정시간내에 처리되는 일의 양을 증가시키기 위한 통합성 보증을 효과적으로 수행하기 위해 필요하다. 더우기, 그것은 데이터 베이스 프로세싱 시스템내에서 데드락(dead lock)검출을 효과적으로 수행하기 위해 필요하다.
본 발명의 목적은 멀티프로세서 시스템내네서 데이터 베이스의 관리에 대한 통합성 보증의 효과적인 처리를 가능하게 하는 멀티프로프로세서 시스템을 사용하는 데이터 베이스 포로세싱 시스템을 제공하기 위한 것이다.
본 발명의 또 다른 목적은 전체 데이터 베이스 프로세싱 시스템의 일정시간 내에 처리되는 일이 양의 개선을 가능하게 하는 데드락 검출 시스템이 제공되도록 하기 위한 것이다.
본 발명에 따라서, 하이 스피드 버스 라인을 통해 서로 연결되는 국부 메모리와 하이 스피드 버스라인을 통한 다수의 프로세서 모듈에 연결된 공유 메모리를 갖는 다수의 프로세서 모듈에 의해 구성되는 멀티프로세서 시스템을 사용하고; 각 자원마다에서 국부 처리동작의 대상이나 또는 공유 처리 동작의 대상중 어느 하나를 나타내는 데이터 베이스 관리 정보를 저장하기 위한 공유 메모리내에 제공되는 저장 유니트;
각 프로세서 모듈마다내에서 균형적으로 수행되어지는 공유처리 동작이나 비균형적으로 수행되어지는 국부 처리동작중의 어느한 동작 아래서 데이터 베이스 관리 정보에 따라, 데이터 베이스로의 호출 요구에 대한 호출 제어를 수행하기 위한 프로세서 모듈의 각각의 안으로 제공되는 호출 관리 유니트;
각 자원마다에서 관리되는 자원의 호출상태와 같은 방법으로 공유/국부 변환을 제어하기 위한 프로세서 모듈내에 제공되는 제어 유니트;
호출 빈도가 특정 프로세서 모듈에 비균일하게 분배될 때, 특정 프로세서 모듈의 자원은 특정 프로세서 모듈에 대한 국부 처리 모듈의 대상이 되도록 결정되며; 호출 빈도가 특정 프로세서 모듈에 균일하게 분배될 때, 특정 프로세서 모듈의 자원은 공유처리 동작의 대상이 되도록 결정된다.
더우기, 본 발명에 따르면, 데이터 베이스 프로세싱 시스템은 프로세서 모듈 사이의 트랜색션을 관리하기 위한 공유 메모리 내에 제공되는 트랜색션 관리 정보 영역과;
다른 프로세서 모듈을 동작하는 트랜색션들 사이의 대기 상태를 표시하기 위해 공유 메모리내에 제공되는 첫번째 유향(有向)그래프 정보 영역과;
데드락을 검출하기 위해 프로세서 모듈내에 제공되는 데드락 검출 유니트와;
프로세서 모듈내에서 동작하는 트랜색션들 사이의 대기 상태를 표시하기 위해 국부 메모리 내에 제공되는 두번째 유향 그래프 정보 영역과를 포함하는 데드락 검출 시스템을 더 포함하고, 그 중에 데드락 검출은 공유 메모리와 국부 메모리상의 첫번째와 두번째 유향 그래프에 따라 탐색되는 방법과 같이 국부 데드락 검출과 광역데드락 검출 사이에서 개별적으로 수행된다.
참조된 실시예를 기술하기 전에, 종래의 데이터 베이스 프로세싱 시스템의 설명이 주어질 것이다.
제1도와 제2도는 멀티프로세서 시스템을 사용하는 종래 데이터 프로세싱 시스템의 예를 도시한다.
제1도와 제2도에서, 참조번호 11a 내지 11n은 중앙처리 장치(CPU)와 국부 메모리 25를 갖는 각각의 프로세서 모듈을 나타낸다.
각 프로세서 모듈 11은 프로세서 모듈 사이의 커뮤니케이션 수행이 가능하도록 하기 위해 버스라인 12를 통해서 연결된다. 참조번호 22a 내지 22n은 제어되어져야 할 데이터 베이스를 나타낸다. 각 자원 22a 내지 22n은 각 프로세서 모듈 11a내지 11n내에 제공된다. 더우기, 참조번호 13a내지 13n은 2차 데이터 메모리로서 각기 제공되는 실저장 유니트를 나타낸다.
일반적으로 자원 22로의 호출은 “입자(granule)”로 불리우는, 즉 데이터 베이스 내에 존재하는 주어진 데이터 세트(데이터 세트는 데이터의 집단)의 유니트에 의해 관리된다. 이 유니트는, 예를 들면, 화일 레벨이나 기록 레벨에 의해 표시될 것이다.
자원 22로의 호출 내에서는, 데이터의 통합성을 유지하기 위해 통합성 보증을 확실하게 할 필요가 있다. 데이터의 통합성은 예를들면, 호출의 경쟁에 기인하는 데이터의 모순의 발생을 방지하거나 고장으로부터의 회복에 의해 성취될 수 있다.
제1도에 도시된 시스템내에서, 실 저장 유니트 13내에 저장된 데이터에 관하여, 각 프로세서 모듈 11에 의해 수행되는 자원 22는 로드 상태에 따라 예비적이고 정적으로 결정되거나, 동적으로 결정된다. 따라서, 그 자원 22로의 통합성 보증은 종래 기술에서는 각 프로세서 모듈 11내에서 국부적으로 실행된다.
제2도에 도시된 시스템내에서, 참조번호 10은 다수의 자원 22를 갖는 공유 메모리를 나타낸다. 이 경우에, 실 저장 유니트 13으로부터 잃어내어진 자원 22는 각 프로세서 모듈 11로부터 호출될 수 있는 공유 메모리 10내에 제공된다. 이 경우에, 특정주파수가 지정되어 통신되는 베타제어(exclusive control)와 동작 보조가 다른 2개의 장치 사이에서 속도, 시간등을 조정하거나 양자를 독립적으로 동작시키기 위한 버퍼 제어 (buffer control)는 일반적으로 전시스템 내에서 처리된다. 즉, 각 프로세서 모듈 11은 전시스템의 공유 처리 동작에서 높은 통합성 보증이 실현될 수 있도록 하기 위해 전시스템내에서 배타 제어와 버퍼 제어의 처리를 균형 있게 그리고 공통적으로 실현한다.
종래의 기술에서, 통합성 보증은 상기 언급된 두가지 방법만에 근거하여 실행된다. 즉, 한 통합성 보증은 제1도에 도시된 모든 프로세서 11에서 국부 처리 동작으로 수행되며, 또 다른 통합성 보증은 제2도에 도시된 전시스템 내에서 단지 공유처리로 실행된다.
따라서, 종래 기술에서는 한 자원의 호출상태에 따른 국부 처리 동작과 공유 처리 동작 사이의 스위칭에 의해 수행되는 것으로서의 그러한 통합성 보증은 없다.
즉, 제1도내의 국부 처리 동작에서, 예를들면, 프로세서 모듈 11a는 자원 B(22b)를 호출하고, 프로세서 모듈 11a는 버스 12를 프로세서 모듈 사이의 커뮤니케이션을 활용함으로써 프로세서 모듈 11b로의 버퍼 호출에 대한 요구와 배타제어에 대해 폐쇄동작을 하기 위한 요구를 발생하는 것으로 추정한다.
따라서, 결과적으로, 커뮤니케이션을 위한 오버헤드(overhead)(컴퓨터의 전동작 시간으로부터 관리 프로그램을 실행하기 위해 취해진 실시간의 비율)가 매우 커진다. 특히, 일정시간 내에 처리되는 일이 양은 다수의 프로세서 모듈에 의해 호출될 수 있는 특정자원 22내에서 현저하게 감소한다. 더우기, 오퍼레이터가 통계상 얻어진 호출 데이터에 참조하여 최적 자원을 할당해야 하기 때문에 튜닝 동작(일이 양과 일의 특징에 따라 자원을 효과적으로 배정하기 위한 시스템의 조정)을 수행하기가 어렵다.
더우기, 제2도에 있는 공유 처리 동작에서, 한 특정한 자원 22가 특정 프로세서 모듈 12에 의해 빈번하게 호출 될지라도, 그것은 전 시스템내에서 배타제어와 버퍼제어의 관리를 수행하기 위해 항상 필요하다. 따라서, 전체적인 효율은 이 방법에서 상당히 감소한다.
따라서, 본 발명의 목적은 통합성 보증을 효과적으로 수행하고 호출 수행을 개선하기 위한 것이다.
멀티프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템을 이하에서 상세히 설명하겠다.
제3도는 본 발명에 다른 데이터 베이스 프로세싱 시스템의 도식적인 블럭선도이다.
제3도에서, 참조번호 20은 공유/국부 처리동작과 데이터 베이스의 호출 상태와 같은, 데이타 베이스의 관리에 대한 정보를 저장하기 위해 공유메모리 10내에 제공되는 저장 유니트를 나타낸다. 21은 배타 제어에 대한 패쇄 정보(lock information)를 저장하기 위해 공유메모리 10내에 또한 제공되는 저장 유니트를 나타낸다. 23은 자원의 호출 상태를 관리하기 위해 프로세서 모듈 11내에 제공되는 호출 관리 유니트를 나타낸다. 24는 국부 처리 동작과 공유처리 동작 사이의 스위칭을 제어하기 위한 변환 제어 유니트를 나타낸다. 26은 베타제어에 대한 국부 락정보를 저장하기 위한 프로세서 모듈 11의 국부 메모리 25내에 제공되는 저장 유니트를 나타낸다.
국부 메모리 25를 갖는 각 프로세서 모듈 (11-1,11-2,...)는 하이 스피드 버스 라인 12를 통한 공유 메모리 10에 연결된다.
더우기, 이 시스템에서, 각 실저장 유니트 13은 각 프로세서 모듈 11이 실기억 유니트 13을 동등하게 호출하는 것을 가능하게 하기 위해 I/O 버스 라인 14를 통하여 각 프로세서 모듈에 열결된다.
데이터 베이스의 자원의 관리는 데이터 베이스 관리 정보 저장 유니트 20내에 관리 정보 세트에 근거하여 수행된다. 비록 저장 유니트 20이 본 실시예에서 공유 메모리 10내에 제공될지라도, 국부 메모리 25내에 그것을 제공하는 것은 가능하다.
본 실시예에서, 공유/국부 표시 영역 20-1은 공유 처리 동작의 대상이나 국부 처리 동작중의 어느 하나인 호출의 대상이 되는 그 자원 22를 나타낸다. 더우기, 영역 20-2는 도한 자원의 호출 상태를 저장하기 위해 저장 유니트 20내에 저장된다.
각 프로세서 모듈은 동일한 구조를 가지며, 호출 관리 유니트 23과 공유/국부 변환 제어 유니트 24를 포함한다.
호출 관리 유니트 23은 공유 메모리 10내에서 자원 22와 국부 메모리 25내에서 자원 양측의 관리 기능을 갖는다.
자원 22의 공유 처리 동작에서, 각 프로세서 모듈 11은 자원 22에 대한 통합성 보증의 처리를 균형있게 수행한다. 이 경우에 있어서, 단어 “균일하게”는 심지어 프로세서 모듈이 자원 22를 호출하지 않더라도, 제어가 동일한 처리 순서에 의해 수행됨을 의미 한다.
국부 처리 동작에 있어서, 자원 22에 배정된 특정프로세서 모듈만이 그 자원에 대한 통합성 보증의 처리를 수행한다. 따라서, 자원을 관리하는 프로세서 모듈과 다른 프로세서 모듈 사이의 처리 동작은 “비균형적”이 된다.
호출 제어가 공유처리 동작에 의하거나 국부처리 동작에 의한 것 중의 하나에 의해 자원 22에 수행되는지 아닌지의 결정은, 저장 유니트 20의 공유/국부 표시 유니트 20-1에 참조하여 수행된다.
공유/국부 변환 제어 유니트 24는 모든 자원 22에 대한 호출 상태를 관리한다. 호출 빈도가 특정 프로세서 모듈에 비균일하게 분배될 때, 변환 제어 유니트 24는 그러한 자원을 특정 프로세서 모듈에 대한 국부 처리 동작의 대상으로 결정한다. 호출 빈도가 특정 프로세서 모듈에 균일하게 분배될 때, 변환 제어 유니트 24는 그러한 자원을 공유 처리 동작의 대상으로 결정한다. 호출 빈도가 특정 프로세서 모듈에 균일하게 분배될 때, 변환 제어 유니트 24는 그러한 자원을 공유 처리 동작의 대상으로 결정한다. 따라서, 변환 제어 유니트 24는 각 자원 22의 호출 상태를 관리하고, 공유 처리 동작으로부터 국부 처리동작으로 수행하며 공유/국부 표시 유니트 20을 갱신함에 의한 그역도 또한 같다.
제4도는 본 발명의 동작을 설명하기 위한 도면이다.
본 발명의 특징은 데이터 베이스 자원의 관리내에서, 고유/국부 변환 제어에 근거한 자원의 호출 상태에 따른 공유 처리 동작과 국부 처리 동작 사이의 다이내믹 스위칭이 존재한다. 상기 설명된 바와같이, 국부 처리 동작은 주로 국부 메모리내에서 수행되며 공유 처리 동작은 주로 공유 메모리내에서 수행된다.
국부 처리의 경우에 있어서, 자원의 배타제어와 버퍼 제어는 그 자원을 관리하는 특정프로서 모듈에 의해 수행된다. 자원에 대한 호출이 특정 프로세서 모듈에 비균일하게 분배될 때, 배타제어와 버퍼 제어를 국부적으로 함으로써, 고속 호출 제어를 성취하는 것이 가능하다.
공유처리 동작의 경우에, 통합성 보증이 전 시스템내에서 수행되기 때문에, 처리동작은 국부처리 동작과 비교하여 지연될 것이다. 그런, 호출 동작이 특정 프로세서 모듈에 균일하게 분배되기 때문에, 자원이 모든 프로세서 모듈에 의해 균일하게 호출될 때 특정 프로세서상의 부하의 집중을 피하는 것이 가능하다.
제4도에 도시된 바와같이, 본 발명에서 호출 동작이 특정 프로세서 모듈에 비균일하게 분배될 때, 국부 처리 동작이 수행된다. 반면, 호출 동작이 특정 프로세서 모듈에 균일하게 분배될 때, 공유처리 동작이 수행된다. 상기 스위칭은 공유/국부 변환 제어 유니트에 의해 동적으로 수행된다. 결과적으로, 자원의 호출 상태에 따른 최적 호출 관리를 수행하느 것이 가능하다.
제5도는 본 발명이 적용되는 멀티프로세서의 도식적인 블록선도이다. 제5도에서, SSU는 공유 메모리 유니트를 나타내며, SCA는 I/O 인터페이스 어댑터를 나타내며, DK는 디스크 유니트를 나타내고, DLP는 데이터 링크 프로세서를 나타내며, 그리고 DRC는 드라이버/리시버 카드 나타낸다. 더우기, 12는 하이 스피드 버스를 나타내며, 14는 I/O버스를 나타낸다. 이들 버스라인은 버스의 고속 동작을 성취하고, 고장에 대항한 대응책을 취하기 위해 다중 송신 된다.
제5도에 도시된 바와같이, 각각의 프로세서 모듈(PM)11은 적어도 하나의 CPU와 국부 메모리 25를 갖는다. 프로세서 11은 버스 제어기의 제어하에 하이스피드 버스 12를 통하여 공유 메모리 유니트 SSU를 호출할 수 있다(도시되지 않음).
각 프로세서 모듈 11은 다른 프로세서 모듈의 처리 동작을 교대로 수행하는 것이 가능해지도록 하기 위해 구성된다. 따라서, 하나의 프로세서 모듈내에서 고장이 발생할 때, 그 프로세서 모듈이 시스템으로부터 차단되고 그 처리 동작은 또다른 프로세서 모듈에 의해 번갈아 연속된다.
데이터 베이스의 내용은 디스크 유니트 DK예를들면, 광 디스크 장치 또는 자기 디스크내에 저장된다. 디스크 유니트 DK는 I/O 버스와 I/O인터페이스 어댑터 SCA를 통한 어느 프로세서 모듈에 의해 호출될 수 있다.
제6도와 제7도는 터미널 유니트로부터 호출 요구위 처리 동작을 설명하기 위한 도면이다. 제6도는 메시지의 입력으로부터 응용 프로그램의 개시까지 처리 동작의 흐름도이다. 제6도에서 APP는 응용 프로그램을 나타낸다. 제7도는데이터 베이스 관리 유니트에서 처리 동작의 흐름도이다. 이들 도면내의 참조번호 ①내지⑨는 다음의 항목 숫자에 상응한다.
① 메시지, 예를들면, 데이터 베이스 탐색 요구는 터미널 유니트로부터 프로세서 모듈 11에 입력된다. 프로세서 모듈 11은 메시지에 응답하여 주어진 처리 동작을 수행한다. 이 경우에, 터미널 유니트느 특정 메시지를 이송하는 특정프로세서 모듈을 이미 결정할 것이다.
② 메시지는 응용 프로그램에 의해 호출되어져야 할 데이터 베이스의 내용과 각 프로세서 모듈에서 부하상태에 따라 각 프로세서 모듈 11의 각 응용 프로그램에 분배된다.
③ 메시지가 분배되는 응용 프로그램 APP 는 실행을 개시한다. 응용프로그램 APP 는 필요하다면 데이터 베이스 동작 언어에 근거한 데이터 베이스 관리 유니트에 대한 호출 요구를 수행할 수 있다.
④ 데이터 베이스 관리 유니트 내에서, 호출 관리 유니트 23은 호출 요구를 받는 자원에 대한 배타제어 즉, 응용 프로그램의 간섭에 따라, 호출에 대한 경쟁을 피하기 위한 락 제어를 수행한다. 이 배타제어는 호출 되어져야할 자원이 공유처리 동작의 대상 또는 국부 처리 동작의 대상이 되는지 아닌지에 따라 선택적으로 수행된다. 따라서, 효과적인 락 관리는 전 시스템이나 단지 특정 프로세서 모듈내에서 어느 한곳에서 선택적으로 수행된다.
⑤,⑥ 공유 메모리와 국부 메모리는, 예를 들면, 호출되어져야할 자원이 공유 처리 동작의 대상이거나 국부 처리 동작의 대상인지 아닌지에 따라 선택적으로 활용된다. 버퍼 제어는 공유처리 동작의 대상과 국부 처리 동작의 대상 사이의 상기 선택후에 실행된다. 호출의 결과는 호출 요구를 받는 응용 프로그램에 넣어 진다.
⑦ 상기 호출 처리에 더하여, 공유/국부 변환 제어 유니트 24는 각 프로세서 모듈에서 호출상태를 유지하고 처리한다. 공유/국부 변환 제어 유니트 24는 또한 각 자원에 대해 공유 처리 동작의 대상이나 국부 처리 동작의 대상중의 어느 하나를 판단하기 위한 정보의 수집을 수행한다.
⑧ 공유/국부 변환 제어 유니트 24는 각 자원에 대해 호출의 빈도를 탐색한다. 즉, 그 유니트 24는 호출의 빈도가 특정 프로세서 모듈상에 집중되는지 어떤지를 탐색한다. 그 유니트 24는 공유 처리 동작의 관리 또는 국부 처리 동작의 관리중 어느 것이 수행되어져야 하는지를 결정한다.
⑨ 공유와 국부 처리 동작 사이의 변환이 필요할 때 변환 처리 동작은 공유처리 동자으로부터 국부 처리 동작으로 변환하기 위해 공유/국부 변환 제어 유니트 24에서 수행되거나 그 역도 또한 같다. 이 변환은 공유 메모리와 국부 메모리 사이에서 자원과 관리정보가 이동되는 것과 같은 방법으로 수행된다.
공유/국부 변환 제어 유니트 24는 예정된 시간 간격이나 적절한 타이밍에 따라 상기 변환을 주기적으로 수행한다.
제8도는 본 발명에 관한 공유 및 국부 처리 동작에 사용하기 위한 데이터를 설명하기 위한 도면이다. 제8도에서, 참조번호 30은 데이터 베이스의 관리에 대한 스페이스 관리정보를 저장하기 위한 스페이스 관리 표를 나타내고 있다. 참조번호 31은 자원에 관한 다양한 정보를 저장하기 위한 데이터 베이스 특성표를 나타내고 있다. 참조번호 33은 각 프로세서 모듈의 호출 상태를 저장하기 위한 데이터 베이스 호출 상태표를 나타낸다.
이 실시예에서 프로세서 모듈은 다수의 어드레스 스페이스를 포함할 수 있으며, 데이터 베이스의 관리와 어드레스 스페이스는 각 어드레스 스페이스에 공통으로 제공된 커넬(Kernel)(자원과 서비스등을 관리하는 동작 시스템(0S)을 위한 주요 프로그램)에 의해 수행된다. 더우기, 프로세서 모듈은 스페이스 고장이 우연하게 일어날 때 사용되는 백업(back up)기능을 가지고 있다. 스페이스 관리표는 더우기 데이타 베이스 특성표 31을 지시하기 위한 지시기능을 포함한다.
데이타 베이스 특성표 31은 각 자원에 대한 아래의 정보를 가지고 있다.
(a) 자원 명칭 : 이 명칭은 각 자원에 있는 공유 및 국부 메모리를 관리하는 유니트가 첨가되어 있다. 실제 자원 22는 이 자원 명칭에 의해 판별될 수 있다. 즉, 그것은 버퍼 관리 정보 32를 통하여 국부 메모리의 데이터와 함께 공유버퍼의 데이터를 일치시키기가 가능하다.
(b) 공유 및 국부 표시 : 이 표시는 상응 자원 21이 국부 처리 동작에 의하거나 공유처리 동작에 의하여 제어된다. 자원과 관리 정보를 포함하고 있는 메모리, 다시 말하면 공유 및 국부 메몰 둘다 이러한 표시에 따라서 결정된다.
(c) 호출 상태 지시 : 호출지시는 데이터 베이스 호출 상태표 33을 지시하기 위하여 사용된다.
(d) 데이처 베이스 관리 정보 : 이 정보는 국부 처리동작의 경우에 데이터의 통합성을 보증하기 위한 프로세서 모듈의 확인기능(ID)을 가지고 있다.
데이터 베이스 호출표 33은 각 자원에 있는 호출 상태를 관리하는데 사용되는 아래 정보를 가지고 있다. 이 정보는 각 프로세서 모듈로부터 많은 호출횟수를 포함한다.
(a) PM-ID는 자원을 정확하게 호출하거나 또는 호출 요구하에 자원을 부정확하게 호출하는 프로세서 모듈의 확인기능을 포함한다.
(b) 다수의 참조 회수와 다수의 갱신횟수는 각 프로세서의 모듈이 처리될 때 많은 횟수를 포함한다.
스페이스 관리표 30과 데이터 베이스 특성표 31, 데이터 베이스 호출상태 특성표 33은 각각 공유메모리와 국부메모리에 제공된다. 자원이 국부처리형에 속할 때, 데이터 베이스 특성표 31과 데이터 베이스 호출상태표 33은 국부처리 제어을 수행하는 프로세서 모듈의 국부메모리에 제동된다.
자원이 공유처리형에 속할 때 데이터 베이스 특성표 31은 공유메모리에 제공된다. 그러나 데이터 베이스 호출표 33은 공유메모리와 국부메모리 모두에 제공된다. 이런 경우에 프로세서 모듈은 단지 그 자체의 프로세서 모듈을 위한 호출 상태 정보만을 갱신한다.
각 프로세서 모듈로부터의 호출 상태 데이터는 예정된 시간 간격으로 공유메모리에 수집된다. 제9도는 본 발명에 따르는 공유/국부 변환제어를 설명하기 위한 흐름도이다.
① 판단은 자원이 공유처리형에 고정되거나 국부처리형에 고정되던지 간에 수행된다. 호출상태에 관계없이 오퍼레이터가 또는 시스템 메니저가 자원에 대한 상기 형들중의 하나를 확고하게 지정할 때, 공유처리와 국부처리 사이에 있는 변환제어는 수행되지 않는다.
② 각 프로세서 모듈에서 호출상태는 공유메모리에 있는 데이터 베이스 호출 상태표에서 제어되고 레지스터 된다.
③ 수행된 판단은 현재의 자원이 공유처리동작에 속하거나 또는 국부처리동작에 속하던간에 데이터 베이스 특성표에 근거함으로써 수행된다. 자원이 공유처리동작에 속할 때, 단계 ④는 (YES)를 선택하게 된다. 자원이 국부처리동작이 속할 때, 단계 ⑨는 (NO)를 선택하게 된다.
④ 판단은 처리가 국부처리동작으로 이동되던지 그렇지 않던 지간에 수행된다. 이러한 경우에, 호출 상태는 한 프로세서 모듈에서 많은 호출 횟수가 호출 상태의 결과에 관해서 다른 프로세서 모듈의 것보다 현저히 많아지던지 아닌지에 관해 탐색된다. 호출이 특성 프로세서 모듈(NO)을 균일하게 분배할 때, 자원의 처리는 완료된다.
⑤ 처리가 단계 ④(YES)에서 국부처리동작으로 이동될 때, 국부처리 모듈 PM은 그와 같은 방법으로 국부처리형에 따라 결정되는 자원의 통합성을 보증하는 프로세서 모듈이 처리가 상당히 많아지는 프로세서 모듈로써 인식되는 것을 결정한다.
⑥ 데이터 베이스 호출 상태표는 이 단계에서 클리어된다. 관리정보는 이하의 통합성 보증을 수행하는 프로세서 모듈로 이동된다. 즉, 데이터 베이스 호출 상태표는 국부처리동작을 위하여 사용된다.
⑦ 버퍼 제어는 국부처리관리로 이동된다. 최신 데이터 베이스의 관리는 국부처리 형에 따라 결정되는 프로세서 모듈에 의해 수행된다.
⑧ 자원의 데이터 베이스는 버퍼는 데이터 베이스의 처리 효과를 개선하기 위한 국부처리동작을 수행하는 프로세서 모듈의 국부메모리에서 제공된 버퍼로 제공된다.
⑨ 자원이 공유 처리형이 아닐 때, 즉 자원이 국부처리형일때, 국부처리동작을 수행하는 프로세서 모듈은 각 프로세서 모듈로부터 호출 요구에 따라서 호출 상태를 레지스터한다. 국부처리동작을 수행하는 프로세서 모듈의 많은 호출 횟수가 또다른 프로세서 모듈에서의 호출에 대한 것보다 더 적을때, 그 자원은 공유 처리형으로써 결정되고, 단계 ⑩ 내지 ⑬은 아래에서 설명하는 것처럼 수행된다. 그 국부성이 부정확할 때, 그 동작은 또 다른 국부 PM으로 이동한다. 이 단계는 또한 단계 ④에 추가된다.
⑩ 데이터 베이스 호출 상태표는 이단계에서 클리어된다. 관리 정보는 이하의 통합성 보증을 수행하는 프로세서 모듈의 국부메모리로부터 공유메모리까지 이동된다. 즉 버퍼 제어는 공유처리관리까지 이동된다.
⑪ 최신 데이터의 관리는 또한 공유 처리 관리에 의해 수행된다. 즉 자원은 각 프로세서 모듈에 의해 균형적으로 관리된다.
⑫ 자원에 대한 데이터 베이스 버퍼는 공유메모리로 이동하며 또다른 프로세서 모듈로 부터 참조에 대한 효율을 증진하는 것이 가능해진다.
상기 설명된 바와같이, 본 발명에 따라서, 공유처리 동작을 위한 통합성 보증과 또는 국부처리동작을 위한 통합성 보증은 둘다 데이터 베이스의 자원에 대한 호출 상태에 따라 자동적으로 선택된다. 따라서, 프로세서 모듈 사이에 있는 고속 호출 제어를 성취하는 것이 가능하다. 더우기, 프로세서 모듈 사이에 있는 커뮤니케이션에서 오버헤드의 감소를 이루기가 가능함으로 전시스템의 일정시간내에 처리되는 일의 양을 늘리기가 가능하다.
본 발명의 또다른 면은 제3도와 제4도에 도시된 멀티프로세서 시스템을 사용하는 데이터 베이스 처리 시스템내에 있는 데드락 검출 시스템에 관한 것이다. 본 발명에 따라 데드락 검출 시스템의 실시예를 서술하기 전에, 기본적이 데드락 검출 방법에 대한 설명을 하겠다.
제10도 내지 제12도는 락 제어하의 배타제어에 있는 데드락 상태를 설명하기 위한 도면이며, 제13도는 WFG의 한예를 설명하기 위한 도면이다. 락 제어에 있어, 동일한 자원을 필요로하는 요구자원 사이에 있는 특정 자원에 대한 참조의 순서와 갱신의 순서는 참조의 자원과 명칭에 대한 락의 모우드(공유 모우드 또는 배타 모우드)를 지정함에 의해 한정된다. 처리 순서의 결정에 대한 결과로써, 자원의 통합성은 쉽게 보증될 수 있다.
제10도에서 T1과 T2는 트랜색션을 포함하고, R1과 R2는 자원을 포함한다. 트랜색션은 터미널로부터의 데이터 입력의 처리를 위한 요구나 또는 시퀀셜 데이터의 유니트이다. 이 도면은 우선 트랜색션 T1이 공유 모우드 S하의 자원 R1에 대한 락 제어를 수행하고, 두번째로 트랜색션 T2는 배타모우드 X아래의 락 제어를 요구하는 상태를 나타내고 있다. 이런 경우에, 트랜색션 T2로부터의 락 제어요구는 트랜색션 T1이 락제어를 복구할 때까지 지연된다. 락 제어 아래의 배타 제어를 수행할 때, 이 배타 제어에서 발생하는 데드락은 해결되는 문제이다. 데드락 상태는 두가지 요구자원이 특정 자원의 락 제어를 요구하거나, 둘다 두가지 요구 자원 사이에 있는 락 제어의 순서를 대기할 때 발생한다.
제11도는 예를들면, 트랜색션 T1은 공유 모우드 내에 자원 R1의 락 제어를 수행하고 배타 모우드내에 자원 R2에 대한 락 의 복구를 대기한다. 트랜색션 T2는 공유 모우드 내에 자원 R2의 락 제어를 수행하고 배타 모우트내에 자원 R1의 락의 복구를 대기한다. 이 경우에 제12도에서 도시된 바와같이 하나의 결과로써 트랜색션 T1은 트랜색션 T2를 대기하고, 트랜색션 T2는 트랜색션 T1을 대기한다. 따라서, 데드락 상태는 T1과 T2에서의 처리동작이 둘다 완료될 수 없기 때문에 두개의 트랜색션 T1과 T2사이에서 발생한다.
일반적으로 유향그래프는 데드락 검출에 사용된다. 유향그래프는 락 제어하에 있는 트랜색션 사이의 대기 상태를 나타낸다. 데드락 검출은 유향그래프에 있는 폐쇄루프를 검출함으로써 수행된다. 일반적으로, 유향그래프는 WGF(그래프 대기)라고 불리워 진다.
제13도는 WFG의 한예를 설명하기 위한 도면이다. 제13도에서, T1 내지 T7은 트랜색션을 나타낸다. 트랜색션 사이에 있는 각 화살표는 대기 상태를 나타낸다. 굵은 화살표에 의해 도시된 것처럼 선 T1 →T2 → T6 →T7 → T5 →T1은 한 폐쇄루프를 이루고 있다. 즉 T1은 T2를 대기하고, T2는 T6을 대기하고, T6은 T7을 대기하고, T7은 T5를 대기하고, T5는 T1을 대기한다. 따라서, 데드락 상태는 이러한 폐쇄루프에서 일어난다. 데드락 상태는 요구중의 어떤 하나가 트랜색션에 있는 에러로서 처리되는 루프를 차단함으로써 그와 같은 방법으로 복구될 수 있다.
멀티프로세서 시스템에서는 아래의 항목(a) 내지 (c)에 의해 도시된 바와같이 WFG를 이용하는 데드락 검출의 세가지 알려진 방법이 있다.
(a) 멀티프로세서 시스템에서, 첫째로 특별한 프로세서 모듈은 데드락 검출을 수행하기 위하여 제공된다. 그 프로세서 모듈은 WFG를 포함하고 전시스템에서 데드락 검출을 수행한다.
(b) 모든 WFG's는 공유메모리에서 제공된다. 각 프로세서 모듈은 공유메모리의 WFG를 이용함으로써 데드락 검출을 동시에 수행한다.
(c) 각 프로세서 모듈은 국부메모리를 이용하는 데드락 검출을 자발적으로 수행한다.
각 프로세서 모듈은 국부 WFG와 광역 WFG를 포함한다. 버스를 통한 관리 커뮤니케이션은 또다른 프로세서 모듈의 국부 WFG가 데드락 검출에 필요로 할때 프로세서 모듈 사이에서 수행된다. 그러나 문제는 아래에서 설명하는 바와같이 상기 3가지 종래 방법에서 발생한다. 항목 (a)에서, 첫째로, 특정 프로세서 모듈은 그 같은 특정 프로세서 모듈이 데드락 검출을 주로 제어하는 때부터 과부하가 나타난다. 두번째로, 전체 WFG를 유지하기 위한 비용이 증가한다. 세째로, 고장이 특정 프로세서 모듈에서 발생할 때, 고장의 영향은 전체 시스템에 미친다.
항목 (b)에서, 이러한 방법으로, 만일 데드락 이 프로세스 모듈내에서 다루어질 수 있다 할지라도 공유메모리를 항상 호출하는 것이 필요하다. 따라서, 처리속도는 상당히 지연됨으로 시스템의 일정 시간내에 처리되는 일의 양은 감소된다.
항목 (c)에서, 프로세서 모듈 사이에 있는 메시지 커뮤니케이션의 오버헤드는 각 프로세서 모듈이 국부메모리에서 WFG를 처리할 때부터 상당히 증가된다. 본 발명에 따른 데드락 검출 시스템은 이하에 상세하게 설명되어 있다.
제14도는 본 발명에 따른 데드락 검출 시스템의 도식적인 블럭선도이다. 따라서, 이 도표는 제3도와 상응하고, 공유메모리 10과 프로세서 모듈 11은 제3도에서 도시하는 바와같이 동일한 것이다. 그러한 데드락 검출기능은 제23도와 제24도에서 도시하는 바와같이 공유메모리 10과 프로세스 모듈 11에 추가된다.
제14도에서, 공유메모리 10은 트랜색션 10을 관리하기 위한 트랜색션 관리 정보 영역 130과 프로세서 모듈 사이의 트랜색션의 대기 상태를 지시하기 위한 광역 WFG정보역역 140을 프로세서 모듈 11은 데드락 검출 장치 150, WFG정보영역 160을 포함하는 국부메모리 25로 이루어졌다.
본 발명에서, 데드락 은 트랙색션 사이에서 대기 상태를 나타내는 유향그래프를 활용함으로써 검출된다. 따라서, 국부 WFG, 즉, 동일한 프로세서 모듈들 내에서 동작하는 트랜색션 사이의 대기 상태를 나타내는 유향그래프 정보는 국부메모리에 세트된다. 자신의 트랜색션에 대해 대기하는 다른 시스템의 트랜색션을 나타내는 다른 시스템의 에이전트(Agent)정보는 아주 다른 프로세서 모듈을 동작시키는 트랜색션 사이의 대기상태를 나타내는 유향그래프 정보로서 공유메모리에 세트된다.
위에서 설명한 바와같이, 국부메모리와 광역 WFG에 제공된 국부 WFG가 공유메모리에 제공되므로 국부 데드락 검출과 광역 데드락 검출을 분리하는 것이 가능하다. 데드락 검출장치 150은 공유메모리 10과 국부메모리 25에서 유향그래프 정보에 따라 대기 상태를 검출한다. 폐루프가 검출될 때, 데드락 검출 장치 150은 데드락 의 발생을 인식하고 데드락 을 복구하는 처리를 실행하기 시작한다.
WFG를 사용하는 데드락 검출 방법을 멀티프로세서 시스템에 적용할 때, 종래의 방법에서 모든 WFG정보가 공유메모리 10에 제공되거나 모든 WFG정보가 데드락 검출을 실행하는 특정 프로세서 모듈의 국부메모리 중 어느 하나에 제공된다. 본 발명에서 제14도와 제15도에 도시한 바와같이, 광역 WFG정보 140과 국부 WFG정보 160은 분리되어 관리된다.
제15a도는 국부 WFG와 광역 WFG사이의 관계를 설명하기 위한 도이다. 제15도에서, 동일한 프로세서 모듈 내의 다른 트랜색션 사이의 대기 상태를 나타내는 트랜색션은 다음을 기초로 각 프로세서 모듈에서 관리된다.
(a) 트랜색션 T1.
(b) 트랜색션 T2, T4, T6 및 T7.
(c) 트랜색션 T3, T5 및 T8.
서로 다른 프로세서 모듈을 동작시키는 다른 트랜색션 사이의 대기 상태를 나타내는 트랜색션은 에이전트로서 구성되고, 다음과 같이 도시하였다.
(d) T1, T4 및 T5의 트랜색션 에이젠트.
제15a도와 제15b도에서, T1과 T5에 대해 대기하는 T5(점으로된 원)의 식별만을 갖는다. 더우기, T1은 T2에 대해 대기하고, T4는 T3에 대해 대기한다. WFG의 구조는 공유/국부처리의 경우에 공유메모리에서 에이젠트 정보를 갖는다. 수정에서와 같이, 공유처리에 대응하는 자원을 막는 트랜색션 사이의 관계를 구성하는 것이 가능하다.
제15b도는 공유처리의 자원에서 락 동작에 대한 T3와 T4의 대기상태의 경우이다. 제15s도와 제15b도에 도시한 바와같이, 락 처리가 각 시스템에서 동작할 때 에이전트는 락 이 다른 프로세서 모듈로부터 요구될 때 공유메모리에 제공된다. 그러나, 제15a도에 도시한 공유 처리에 대한 락 청리의 경우에서, WFG를 준비할때 메시지 커뮤니케이션을 실행하는 것이 필요하다. 이 경우에 메시지 커뮤니케이션은 WFG가 비동기로 제공되므로 트랜색션의 실행에 대해 영향을 받지 않는다.
데드락 검출은 국부 데드락 검출이 T2에서 실행된 후에 공유메모리에서 T1에 대해 실행된다. T1이 T2에 대해 대기하는 대기상태는 T2의 에에전트가 공유메모리에 존재하고, 공유메모리에서 구별되기 때문에 판단할 수 있다. 위헤서 설명한 바와같이, 프로세서 모듈내에서 사용된 국부 WFG만이 국부메모리 25에 제공되고, 프로세서 모듈에서 사용된 광역 WFG는 공유메모리 10에 제공된다. 따라서, 아래에 설명될 종래 기술의 결점을 해결하는 것이 가능하다.
(1) 국부적으로 폐쇄된 데드락 의 경우에 하나의 프로세서 모듈내에서 데드락 만을 검출하는 것이 가능하다. 예를들면, 트랜색션을 다루는 특정 프로세서 모듈의 국부메모리에 따라 T1,T2,T3중에서 발생하는 데드락 상태인지 아닌지를 명료하게 하는 것이 가능하다.
(2) 프로세서 모듈 사이의 데드락 검출에서, 시스템 구조에 따라 두가지 방법을 따르는 하나를 선택하는 것이 가능하다. 즉, 한가지 방법에서, 각 프로세서 모듈은 공유메모리에서 공유 정보에 따라 데드락 검출을 협력하여 실행한다.
(3) 프로세서 모듈 사이의 광역 데드락 검출에서, 데드락 검출의 주파수의 조절을 손쉽게 하는 것이 가능하다. 예를들면, 데드락 검출은 시스템에서 로드를 고려하여 생략될 것이고, 소정의 제한된 시간의 트랜색션은 정지될 것이다.
제16도는 자원 관리 정보를 설명하기 위한 도이다. 이 도면에서, (a) 부분은 락 제어의 목적이 되는 자원 R1,R2,R3의 관리 정보를 나타내고, (b)와 (c)부분은 대기상태의 관리정보를 나타낸다. 이 경우에, b트랜색션의 각각은 대응자원의 락 상태를 유지한다. 더우기 (c) 트랜색션 각각은 트랜색션의 복구에 대한 대기상태를 유지한다.
이 예에서, 트랜색션 T1은 자원 T1의 락 을 유지하고, 트랜색션 T2는 트랜색션 R1으로부터 자원 R1의 락 의 복구에 대해 대기한다. 트랜색션 T4는 트랜색션 T2에 대해 또한 대기한다. 제17도는 제16도에 도시한 자원 관리 정보의 대기상태를 나타내는 유향그래프이다. 제12도에서 설명한 바와같이, 예를들면, 오른쪽 방향 화살표는 T2가 T1에 대해 대기하는 것을 나타낸다. 이 경우에, WFG정보를 링크 정보(식별정보)와 표로 표시된다.
제18도-제20b도는 본 발명에 다른 데드락 검출의 구성을 설명하기 위한 도이다. 제18도에서, 관련된 WFG가 국부 WFG 160과 광역 WFG 140에 존재할때 데드락 검출은 첫째, 국부 WFG정보를 기초로 그래프의 루우프를 조사, 둘째, 에이전트에 대한 대기상태가 존재하고 광역 WFG정보를 마지막으로 조회할 때 공유메모리 10을 호출하는 관계로 실행한다.
제20a도에서, 국부 WFG정보 사이의 존재 하는 대기상태가 광역 WFG정보 140을 통하여 다른 프로세서 모듈 PM 2의 WFG정보 160과 프로세서 모듈 PM 1의 국부메모리에 저장될 때, 프로세서 모듈 PM 1만을 사용함으로써 데드락 을 검출하는 것이 가능하다.
따라서, 이 경우에, 프로세서 모듈 PM 1은 메시지 커뮤니케이션을 통하여 프로세서 모듈 PM 2에 그 자신의 국부 WFG정보의 서브그래프를 보내고, 프로세서 모듈 PM 2에 데드락 의 검출을 요구한다. 따라서 프로세서 모듈 PM 2는 서브그래프와 그 자신의 국부 WFG정보에 기초로 데드락 의 발생을 검출할 수 있다.
더우기, 제20도에 도시한 바와같이 시스템 사이의 루우프를 검출하고 공유메모리에서 국부메모리와 서브그래프를 기록하는 것이 가능하다. 제21도는 대기상태의 트랜색션에 대해 제공된 WFG제어표이다. WFG제어표 30은 다음의 영역(a)-(e)로 이루어 졌다.
(a) 데드락 검출 제어 정보에 대한 영역 : 데드락 복구에 대한 트랜색션 대상을 선택하기 위한 정보는 이 영역에서 세트된다.
(b) 데드락 검출 작업 정보에 대한 영역 : 이 영역은 데드락 의 검출시 일시적으로 사용된다.
(c) 트랜색션 식별기를 세트하기 위한 영역 : 대기상태를 갖는 트랜색션의 식별기는 이 영역에 저장된다.
(d) 시스템 식별기를 세트하기 위한 영역 : 트랜색션에서의 동작인 프로세서 모듈의 식별기 또는 프로세서 모듈에 의해 동작하는 데이터 베이스를 관리하는 서브시스템의 식별기는 이 영역에서 세트된다.
(e) 대기측 지정에 관한 포인터 영역 : WFG제어표에서 대기상태를 갖는 트랜색션을 지정하는 포인터는 이 영역에 저장된다. 다수의 대기상태일때, 다수의 영역은 이 표에서 준비된다.
제22도는 제21도에서 도시한 WFG제어표를 설명하기 위한도이다. 이 도면에서, 기준번호 31은 색인표를 나타내고, WFG제어표 30의 각각은 색인표 31에서 포인트되고, 그것들은 도면에서 도시한 바와같이, 서로 링크된다. 이 표 옆에서, 데드락 검출을 시작하는 색인표는 국부메모리 25에 제공되고 검출되는 데드락 검출의 스타트 포인트는 색인표에 의거하여 결정된다. 데드락 검출의 알고리즘, 즉 제14도에 도시한 데드락 검출 장치 150의 처리동작은 이후에 좀더 상세히 설명될 것이다.
(a) 데드락 검출을 스타트하는 국부시스템에서 실행되는 처리동작 : ① 그 자신의 국부 시스템내의 WFG는 탐색되고 국부 시스템의 WFG에서 대기상태의 루우프는 검출된다. ② 광역 WFG에서 복구된 트랜색션에서와 같이 트랜색션에 대한 대기시간이 적당한지 또는 않은지를 판단한다. 트랜색션이 장시간 대기할 때, 광역 WFG에 대한 대기상태의 루우프는 또한 검출된다. 광역 WFG는 트랜색션 에이젠트 사이의 관계를 나타낸다. 그 관계가 트랜색션 에이전트가 존재할 때, 데드락 검출은 광역 WFG에서만 실행된다.
③항 ①의 결과로 자신의 에이전트가 존재할 때, 자신의 시스템에 대한 데드락 검출은 서브그래프가 국부 시스템으로 전송되고, 서브그래프 또는 짧은 타입( shortened type)(서브그래프의 양끝)이 공유메모리에 제공되는 방법등으로 실행된다.
(b) 요구된 국부 시스템에서 실행되는 처리동작 : ① 요구된 서브그래프는 자신의 시스템의 국부 WFG에서 결합된다. ② 데드락 검출이 국부 시스템에서 발견되지 않고, 다른 국부 시스템에 대한 요구가 발견되지 않을때 처리동작은 이 단계로 완성된다. ③ 연구결과, 만약 다른 국부시스템의 대기 트랜색션이 발견된다면 항 ①②로 도시한 바와같이 동일한 처리동작이 실행된다.
(c) 데드락 판단 : 항(b)에서 동일한 트랜색션에 대해 요구한 WFG의 서브그래프의 트랜색션으로부터의 사이클이 발견되고, 위의 사실이 데드락 으로서 판단된다. 데드락 의 복구에 대한 트랜색션 대상이 판단된 시스템에서의 트랜색션으로부터, 또는 서브그래프를 구성하는 트랜색션으로부터 선택된다. 일반적으로, 처리동작을 정지시키는 트랜색션의 제어정보를 기초로 선택할 때 트랜색션은 적어도 많은 손해를 갖는다.
제23도는 데이터 베이스 프로세싱 시스템과 데드락 검출 시스템을 포함하는 공유 메몰의 도식적인 블록도이다. 제 24도는 데이터 베이스 프로세싱 시스템과 데드락 검출 시스템을 포함하는 프로세서 모듈의 도식적인 블럭도이다.
데이터 베이스 프로세싱 시스템에 대해 사용된 공유메모리 10의 내부구조는 제3도에 도시하였고, 데드락 검출 시스템에 대해 사용된 공유메모리 10의 내부구조는 제14도에 도시하였다.
위의 설명에서, 비록 도면이 데이터 베이스 프로세싱 시스템과 데드락 검출 시스템 사이에서 분리될지라도, 사실상, 데드락 이 데이터 베이스 프로세싱 동작시 발생하므로 공유메모리는 트랜색션 관리 정보와 광역 WFG정보로 이루어졌고, 프로세서 모듈은 데드락 검출기능과 국부메모리에서의 국부 WFG정보로 이루어졌다.
Claims (2)
- 다수의 프로세서 모듈(11), 하이 스피드 버스라인(12)을 통하여 서로 연결되고 각각 국부메모리(25)를 갖는 다수의 프로세서 모듈(11); 상기 하이 스피드 버스라인(12)을 통하여 상기 다수의 프로세서 모듈(11)에 연결된 공유메모리(10)로 구성되어 있는 상기 데이터 베이스 프로세싱 시스템에 있어서, 공유처리 동작의 대상이거나 모든 자원에 대한 국부처리동작의 대상중 어느 하나를 나타내는 데이터 베이스 관리 정보를 저장하기 위한 상기 공유메모리(10)에 제공된 저장 수단(20); 상기 공유 처리동작이 대칭적으로 실행되고, 상기 국부처리 동작이 상기 프로세서 모듈(11)에 비대칭적으로 실행되고, 상기 데이터 베이스 관리 정보에 따라 상기 공유처리 동작이거나 상기 국부처리 관리 정보중 어느 하나에 상기 데이터 베이스에 요구하는 호출에 대한 호출 제어를 실행하기 위하여 상기 프로세서 모듈의 각각에 제공된 호출 관리 수단(23); 호출 주파수가 특정한 프로세서 모듈에 비균잃게 분배될 때, 상기 특정 프로세서 모듈의 자원이 상기 특정 프로세서 모듈에서 상기 국부처리동작의 대상으로서 결정되고; 상기 호출 주파수가 특정 프로세서 모듈로 비균일하지 않게 분배될 때 상기 특정 프로세서 모듈의 자원이 상기 공유 처리 동작으 대상으로서 결정되는 상기 자원의 호출 상태가 모든 자원에 대해 관리되는 방법으로 공유/국부 변환을 제어하기 위한 상기 프로세서 모듈에 제공된 제어수단(24)으로 구성된 멀티프로세서 시스템을 사용하는 데이터 베이스 프로세싱 시스템.
- 청구범위 제1항에 있어서, 상기 데드락 검출 시스템이 상기 프로세서 모듈 사이의 트랜색션을 관리하기 위한 상기 공유메모리(10)에 제공된 트랜색션 정보 영역(130 ); 다른 프로세서 모듈에 의해 동작하는 각 트랜색션 사이의 대기상태를 나타내는 상기 공유메모리(10)에 제공된 첫번째 유향그래프 정보영역(140); 데드락 을 검출하기 위한 상기 프로세서 모듈(11)에 제공된 데드락 검출수단(150); 상기 프로세서 모듈내에서 각각 동작하는 트랜색션 사이의 대기상태를 나타내는 상기 국부메모리(25)에 제공괸 두번째 유향그래프 정보 영역(160); 트랜색션의 대기상태가 상기 공유메모리와 국부메모리에 상기 첫번째와 두번째 유향그래프 정보에 따라 연구되는 방법과 같이 데드락 검출이 국부 데드락 검출롸 광역 데드락 검출 사이에서 실행되는 데드락 검출 시스템으로 더 이루어진 데이터 베이스 프로세싱 시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1-68815 | 1989-03-20 | ||
JP1-68814 | 1989-03-20 | ||
JP1068814A JP2825839B2 (ja) | 1989-03-20 | 1989-03-20 | デッドロック検出処理方式 |
JP1068815A JPH07120305B2 (ja) | 1989-03-20 | 1989-03-20 | マルチプロセッサによるデータベース処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR900015010A KR900015010A (ko) | 1990-10-25 |
KR930000853B1 true KR930000853B1 (ko) | 1993-02-06 |
Family
ID=26410003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019900003741A KR930000853B1 (ko) | 1989-03-20 | 1990-03-20 | 멀티 프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템. |
Country Status (7)
Country | Link |
---|---|
US (1) | US5649184A (ko) |
EP (1) | EP0389242B1 (ko) |
KR (1) | KR930000853B1 (ko) |
AU (1) | AU614225B2 (ko) |
CA (1) | CA2011807C (ko) |
DE (1) | DE69032337T2 (ko) |
ES (1) | ES2116267T3 (ko) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0962586A (ja) * | 1995-08-25 | 1997-03-07 | Fujitsu Ltd | 情報処理装置及び情報処理装置におけるデータ処理方法 |
JP3857409B2 (ja) * | 1998-03-17 | 2006-12-13 | 富士通株式会社 | 分散処理システム、分散処理方法及び分散処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2000047994A (ja) * | 1998-07-27 | 2000-02-18 | Fujitsu Ltd | 情報処理装置 |
US7346910B1 (en) * | 2000-05-26 | 2008-03-18 | International Business Machines Incorporation | Administration of groups of computer programs, data processing systems, or system resources |
ATE259081T1 (de) * | 2000-07-06 | 2004-02-15 | Texas Instruments Inc | Mehrprozessorsystem prüfungsschaltung |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7475257B2 (en) * | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US7523157B2 (en) * | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US20050289143A1 (en) * | 2004-06-23 | 2005-12-29 | Exanet Ltd. | Method for managing lock resources in a distributed storage system |
US7735089B2 (en) * | 2005-03-08 | 2010-06-08 | Oracle International Corporation | Method and system for deadlock detection in a distributed environment |
US7616218B1 (en) * | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
JP2007328461A (ja) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US8352709B1 (en) | 2006-09-19 | 2013-01-08 | Nvidia Corporation | Direct memory access techniques that include caching segmentation data |
US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
US8601223B1 (en) | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
US8707011B1 (en) | 2006-10-24 | 2014-04-22 | Nvidia Corporation | Memory access techniques utilizing a set-associative translation lookaside buffer |
US8700883B1 (en) | 2006-10-24 | 2014-04-15 | Nvidia Corporation | Memory access techniques providing for override of a page table |
US8533425B1 (en) | 2006-11-01 | 2013-09-10 | Nvidia Corporation | Age based miss replay system and method |
US8706975B1 (en) | 2006-11-01 | 2014-04-22 | Nvidia Corporation | Memory access management block bind system and method |
US8347065B1 (en) * | 2006-11-01 | 2013-01-01 | Glasco David B | System and method for concurrently managing memory access requests |
US8504794B1 (en) | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
US8607008B1 (en) | 2006-11-01 | 2013-12-10 | Nvidia Corporation | System and method for independent invalidation on a per engine basis |
US8700865B1 (en) | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
US8543773B2 (en) * | 2008-08-25 | 2013-09-24 | International Business Machines Corporation | Distributed shared memory |
US9411661B2 (en) * | 2009-04-08 | 2016-08-09 | International Business Machines Corporation | Deadlock avoidance |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9104502B2 (en) | 2012-12-15 | 2015-08-11 | International Business Machines Corporation | Managing resource pools for deadlock avoidance |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
TWI513230B (zh) * | 2013-04-29 | 2015-12-11 | Ind Tech Res Inst | 支援用戶端設備廣域管理協定之遠端管理系統及裝置及其提升遠端管理效能之方法 |
CN108809863A (zh) * | 2017-05-05 | 2018-11-13 | 中国航空无线电电子研究所 | 一种基于afdx的机载数据存储资源分布式共享网络系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1504112A (en) * | 1976-03-17 | 1978-03-15 | Ibm | Interactive enquiry systems |
US4320451A (en) * | 1974-04-19 | 1982-03-16 | Honeywell Information Systems Inc. | Extended semaphore architecture |
US4189771A (en) * | 1977-10-11 | 1980-02-19 | International Business Machines Corporation | Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment |
US4245306A (en) * | 1978-12-21 | 1981-01-13 | Burroughs Corporation | Selection of addressed processor in a multi-processor network |
US4707781A (en) * | 1979-01-09 | 1987-11-17 | Chopp Computer Corp. | Shared memory computer method and apparatus |
US4484262A (en) * | 1979-01-09 | 1984-11-20 | Sullivan Herbert W | Shared memory computer method and apparatus |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4494193A (en) * | 1982-09-30 | 1985-01-15 | At&T Bell Laboratories | Deadlock detection and resolution scheme |
US4648035A (en) * | 1982-12-06 | 1987-03-03 | Digital Equipment Corporation | Address conversion unit for multiprocessor system |
US4591977A (en) * | 1983-03-23 | 1986-05-27 | The United States Of America As Represented By The Secretary Of The Air Force | Plurality of processors where access to the common memory requires only a single clock interval |
JPS6054052A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 処理継続方式 |
JPS6171750A (ja) * | 1984-09-17 | 1986-04-12 | Kokusai Denshin Denwa Co Ltd <Kdd> | プロトコル検証回路 |
US5123101A (en) * | 1986-11-12 | 1992-06-16 | Xerox Corporation | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss |
US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
US5142683A (en) * | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
JPS63263557A (ja) * | 1987-04-13 | 1988-10-31 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 階層リレーテツド・リソースへの同時トランザクシヨンによるアクセスを調節する方法 |
US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
-
1990
- 1990-03-15 CA CA002011807A patent/CA2011807C/en not_active Expired - Fee Related
- 1990-03-19 AU AU52001/90A patent/AU614225B2/en not_active Ceased
- 1990-03-20 KR KR1019900003741A patent/KR930000853B1/ko not_active IP Right Cessation
- 1990-03-20 ES ES90302972T patent/ES2116267T3/es not_active Expired - Lifetime
- 1990-03-20 EP EP90302972A patent/EP0389242B1/en not_active Expired - Lifetime
- 1990-03-20 US US07/495,982 patent/US5649184A/en not_active Expired - Fee Related
- 1990-03-20 DE DE69032337T patent/DE69032337T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0389242A2 (en) | 1990-09-26 |
ES2116267T3 (es) | 1998-07-16 |
EP0389242A3 (en) | 1993-06-30 |
AU5200190A (en) | 1990-09-27 |
AU614225B2 (en) | 1991-08-22 |
CA2011807C (en) | 1999-02-23 |
DE69032337D1 (de) | 1998-07-02 |
EP0389242B1 (en) | 1998-05-27 |
CA2011807A1 (en) | 1990-09-20 |
DE69032337T2 (de) | 1998-09-24 |
US5649184A (en) | 1997-07-15 |
KR900015010A (ko) | 1990-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR930000853B1 (ko) | 멀티 프로세서 시스템을 사용한 데이터 베이스 프로세싱 시스템. | |
US5274809A (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
US5349656A (en) | Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information | |
US6952827B1 (en) | User program and operating system interface in a multithreaded environment | |
US4663709A (en) | Control system for tightly-coupled multiprocessing units | |
US5193186A (en) | Processor system for executing processes in parallel under multitask, control method of waiting for event of process | |
US20060206901A1 (en) | Method and system for deadlock detection in a distributed environment | |
Yu et al. | On coupling multi-systems through data sharing | |
Taylor et al. | A parallel implementation of Flat Concurrent Prolog | |
JPH08137707A (ja) | 分散トランザクション処理システム | |
US8499298B2 (en) | Multiprocessing transaction recovery manager | |
CN101331456A (zh) | 越过障碍的推测性执行 | |
JPH0784851A (ja) | 共有データ管理方法 | |
JPH0830644A (ja) | 共有した接続処理を介して多重ユーザ・アプリケーションにより並列データ・ベース・アクセスをするシステム及び方法 | |
JPH05197604A (ja) | マルチプロセッサ・コンピュータ及びその動作方法 | |
JPH103416A (ja) | 情報処理装置およびその方法 | |
JPH10283243A (ja) | データベース管理システム | |
JP2539352B2 (ja) | 階層型多重計算機システム | |
US20010054056A1 (en) | Full time operating system | |
EP0343646B1 (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
Shu et al. | Correctness criteria and concurrency control for real-time systems: a survey | |
US20040261080A1 (en) | Methods and systems for managing access to shared resources using control flow | |
JPH0814800B2 (ja) | データベース排他制御方法 | |
Atwood | Concurrency in operating systems | |
JPH02171952A (ja) | マルチプロセッサにおけるディスパッチ方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050121 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |