KR100421796B1 - 컴퓨터제어시스템 - Google Patents

컴퓨터제어시스템 Download PDF

Info

Publication number
KR100421796B1
KR100421796B1 KR1019970703855A KR19970703855A KR100421796B1 KR 100421796 B1 KR100421796 B1 KR 100421796B1 KR 1019970703855 A KR1019970703855 A KR 1019970703855A KR 19970703855 A KR19970703855 A KR 19970703855A KR 100421796 B1 KR100421796 B1 KR 100421796B1
Authority
KR
South Korea
Prior art keywords
instance
type
distributed unit
types
instances
Prior art date
Application number
KR1019970703855A
Other languages
English (en)
Other versions
KR980700606A (ko
Inventor
구스타브 스벤썬 라르스
울릭 젠센 라르스
나에미 인게보르그 홀테-로스트 안나
미카엘 사무엘썬 보
Original Assignee
텔레폰아크티에볼라게트 엘엠 에릭슨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레폰아크티에볼라게트 엘엠 에릭슨 filed Critical 텔레폰아크티에볼라게트 엘엠 에릭슨
Publication of KR980700606A publication Critical patent/KR980700606A/ko
Application granted granted Critical
Publication of KR100421796B1 publication Critical patent/KR100421796B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Selective Calling Equipment (AREA)
  • Computer And Data Communications (AREA)

Abstract

컴퓨터 제어 시스템은 프로세싱 구조를 갖는다. 프로세싱 구조는 서로, 즉 제어 시스템과 상호작용하고 또한 이 구조의 외부와 상호작용하는 협동 프로세스로서 실행되게 되는 애플리케이션 프로그램을 갖는다. 프로세스 인스턴스(센더, P1, P2, P3)들은 분산 유닛(A-F, R, S)에 의해 제어 시스템 프로세서(CP1, CP2, CP3)에 분산된다.

Description

컴퓨터 제어 시스템
EP 제 405,829 호는 소프트웨어가 오브젝트(object) 형태인 독립적인 소프트웨어 컴포넌트에 의해 실행되는 전기통신 시스템에 관한 것이다. 실행시간 시스템에서의 기능 실행시간 링커는 오브젝트들을 기록하고, 데이터 포인터를 오브젝트 데이터로 저장한다. 다른 오브젝트들과 통신하기 위해, 소스 오브젝트는 실행시간시스템에 메시지를 전송한다. 메시지는 목적지 오브젝트(destination object)의 방법의 명칭과 아이덴티티(identity)를 포함한다.
실행시간 시스템은 목적지 오브젝트가 실행시간 시스템에 의해 지원되는 오브젝트의 그룹에 속하는 경우 단일 프로세서 또는 오브젝트 그룹을 서빙하고, 상기 방법의 아이덴티티와 데이터 포인터에 의해 목적지 오브젝트를 호출한다. 목적지 오브젝트가 다른 프로세서에 위치되는 경우에, 실행시간 시스템은 메시지를 다른 프로세서에 브로드캐스트한다. 수신 프로세서 각각에서, 실행시간 시스템은 메시지의 목적지 오브젝트의 기호 명칭에 대한 그의 링커 테이블을 탐색하고, 만일 발견된다면, 메시지내의 방법 아이덴티피케이션 및 실행시간 링커내의 데이터 포인터 정보를 토대로 목적지 오브젝트를 호출한다. 프로세서간 메시지는 소스 프로세서 지정을 포함하고 각 프로세서의 실행시간 시스템은 프로세서간 메시지가 수신될 때 소스 프로세서의 명칭과 소스 오브젝트의 기호 명칭을 저장한다.
미합중국 특허 제 4,901,231 호에는 다수의 프로세서에 대해 실행하는 다중 프로세서 시스템이 기술되어 있다. 한 쪽 프로세서내의 사용자 프로세스는 다른 쪽 프로세서내의 시스템 자원에 액세스할 수 있다. 사용자 프로세스가 로컬 파일에 액세스할 때, 상기 액세스는 사용자 파일 테이블에 의해 이루어진다. 사용자 프로세스가 원격 파일에 액세스할 때, 상기 액세스는 포트 테이블을 통해 포트 테이블에 의해 식별된 가상 채널에 대해 부분 프로세스로 이루어지고, 그 다음 부분 프로세스의 사용자 파일 테이블과 시스템 파일 테이블을 통해 이루어진다.
미합중국 특허 제 5,187,790 호는 하나 이상의 서버 프로세스와 다수의 클라이언트 프로세스를 포함하는, 다수의 동시 실행 프로세서를 구비한 컴퓨터 시스템에 관한 것이다. 각 프로세스는 오브젝트 액세스 권한(access right)을 나타내는 아이덴티티의 리스트를 갖는다. 각 오브젝트는 상기 오브젝트에 액세스할 수 있는 프로세서를 결정하는데 사용되는 아이덴티티를 갖는 액세스 검사 리스트를 갖는다.
본 발명은 예컨대 전기통신 망내의 망 요소에 포함된 종류의 컴퓨터 제어 시스템에 관한 것이다.
전기통신 망은 망 사용자에게 망 서비스를 제공하도록 협동하는 망 요소, 즉 시스템으로 구성된다. 망 요소에 의해 지원되는 많은 다른 서비스들은 망 요소내의 컴퓨터 시스템에 의해 저장되어 프로세스되는 소프트웨어로 어느 정도 실현된다. 컴퓨터 시스템은 망과 서비스에 관련된 데이터를 저장하고, 서비스를 제어하며, 고객 구내 장비 및 다른 망 요소와 상호작용하고, 국부 송신과 스위칭 하드웨어를 제어한다.
물리적인 장비의 관점에서 컴퓨터를 살펴보면, 컴퓨터 시스템 하드웨어는, 다수의 상이한 장비 어셈블리들로 나누어지는 주로 통신 방향으로 상호 접속 및 협동하는 다수의 프로세서 및 대용량 기억 장치를 포함한다.
도 1은 전기통신 망을 개략적으로 도시하며,
도 2는 도 1에 도시된 종류의 망 요소의 소프트웨어 구조를 개략적으로 도시하는 도면이며,
도 3은 도 2에 따라 망 요소에 포함된 제어 시스템 플랫폼의 구조를 개략적으로 도시하는 도면이며,
도 4 내지 도 8은 상이한 종류의 프로세스 유형을 설명하기 위한 프로세서 풀의 개략도이며,
도 9는 망 요소의 개략적인 하드웨어 도면이며,
도 10은 도 9에 따른 망 요소의 개략적인 관리도이며,
도 11은 도 9에 따른 망 요소의 개략적인 자원도이며,
도 12는 도 9에 따른 망 요소에 포함된 제어 프로세서에서 실행되는 프로세스 인스턴스의 분산을 개략적으로 도시하며,
도 13 및 도 14는 다른 제어 프로세서에 위치된 프로세스 인스턴스로부터 한 제어 프로세서 내 프로세스 인스턴스의 어드레싱을 도시하며,
도 13은 분산 유닛을 갖는 3개의 프로세서의 개략도이고,
도 14는 검색 과정을 도시하는 흐름도이다.
컴퓨터 제어 시스템은 하나 이상의 프로세서에서 실행되는 제어 프로그램을 갖는다. 오늘날, 그러한 시스템에 대한 애플리케이션 개발이 쉬워야하며, 시스템이 상당히 높은 유용성을 가져야 하고, 용량 등등을 업그레이드시키는데 용이해야 한다는 것에 대한 요구는 상당히 크다. 그러한 요구에 따른 방법은 시스템을 계층 구조로 설계하는 것이며, 여기서 애플리케이션은 애플리케이션 프로그래머에 대한 애플리케이션 범위의 문제점만을 남겨놓고서 가장 공통적인 문제점만을 돌보는 제어시스템 플랫폼에서 프로그램된다.
그러한 구조에서, 애플리케이션 프로그램, 및 많은 운영 체제 소프트웨어가 협동 프로세스로서 실행된다.
프로세스 구조에 프로세서를 설치하는 것은 약간 성가시다. 프로세서를 단지 자원 제공자로서 보면, 운영 체제는 애플리케이션 프로그램으로부터 개별적인 프로세서를 감추는 것이 필요하고, 단지 하나의 큰 프로세서의 이미지를 제공한다. 다른 한편으로, 시스템을 외부로 연결시키는 하드웨어 장치를 제어하기 위한 그 자체의 특성과 특정 능력을 갖는 상이한 프로세서들이 있다는 사실은 애플리케이션 프로그램을 상이한 프로세스로 모델링하는데 가장 중요한 조건이다. 프로세서로 처리될 때, 프로세서에 의해 제공되는 자원들이 가능한 한 효율적으로 활용될 수 있도록 시스템을 구성하는 것이 필요하다. 그러나, 이것은 제어 시스템이 가능한 한 애플리케이션 프로그래머에 대해 개별적인 프로세스를 숨기는 것을 중단시키지 않는다.
그러므로, 프로그래머의 관점에서 보면, 제어 시스템은 프로세스에 실행 및 메모리 자원을 제공하지만, 또한 다음과 같은 상이한 서비스,
- 영속 데이터 저장을 위한 데이터베이스,
- 관리된 오브젝트들을 실행하기 위한 구성(프레임워크),
- 타이머 및 클럭과 같은 정규 운영 체제 서비스,
- 애플리케이션 프로그램의 관리,
- 절차, 에러 복구 등의 시작 및 재시작의 제어,
를 제공하는 동질 플랫폼으로서 보여질 수 있는 것이 바람직하다.
본 발명에 따른 컴퓨터 제어 시스템은 상기 데이터베이스의 상이한 부분들을 처리하기 위한 다수의 제어 시스템 프로세서로 구성된 제어 시스템 플랫폼, 프로세서에 의해 제공되는 자원들을 관리하고 제어 시스템에 의해 제공되는 추상화(abstraction) 실행하는 운영 체제, 및 프로세스 자원의 표시(representation)를 포함하는 프로세싱 구조를 갖는다. 이 프로세싱 구조는 서로, 즉 제어 시스템과 이 구조의 외부와 상호작용하는 협동 프로세스로 실행되게 되는 애플리케이션 프로그램을 제공한다. 프로세서 자원 표시의 인스턴스(instance)는 분산 유닛에 의해 제어 시스템 프로세서를 통하여 분산되며,각 분산 유닛은 프로세스 인스턴스의 그룹을 형성한다. 분산 유닛은 특정 분산 유닛 유형에 속하는데, 각 분산 유닛 유형은 이 유형의 분산 유닛의 공통 특성을 기술한다.
여기서 프로세스는 독립적으로 실행하는 유닛을 의미하는데, 즉 프로세스는 시스템에서 어떤 다른 프로세스가 동시에 이루어지는 가에 관계없이 프로그램 코드를 실행한다는 것을 의미한다. 각 프로세스는 그 자체의 전용 상태를 갖는다. 즉, 프로세스는 다른 프로세스에 속하는 데이터에서 직접 작동할 수 없다.
프로세스는 그의 프로세스 유형의 인스턴스를 형성하는 특정 유형일 수 있다. 프로세스 유형은 프로세스가 어떤 기능을 가지는 지를 결정하고, 상이한 유형의 프로세스는 다른 일을 하는 반면, 동일한 유형의 인스턴스는 동일한 일을 하지만 상이한 데이터 또는 상이한 하드웨어 유닛에서 작동한다.
프로세스 인스턴스는 프로그램 코드를 실행하는 물리적 프로세스 인스턴스와, 추상적 개념의 형태인 논리적 프로세스 인스턴스를 포함한다. 시스템에서 논리적 프로세스 인스턴스의 종류는 시스템에 존재하는 프로세스 유형과 그들의 특성에 의해 결정되고, 하드웨어 장치의 관점에서 보면 시스템의 구성에 의해 결정된다.
분산 유닛은 논리적 프로세스 인스턴스와 물리적 프로세스 인스턴스 둘 다를 그룹으로 만들 수 있다. 인스턴스와 분산 유닛 사이의 관계가 논리적인 프로세스 인스턴스에 의하여 표현되기 때문에 논리적 인스턴스는 그룹화되고 분산 유닛이 프로세서에 할당될 때, 이 분산 유닛에 관련된 모든 물리적 프로세스 인스턴스가 상기의 프로세서에서 발생되기 때문에 물리적 인스턴스는 그룹화된다.
프로세스는 또한 중앙 프로세스 유형을 포함할 수 있는데, 그러한 프로세스 유형에 대해 하나의 논리적 프로세스 인스턴스가 있다. 또한, 키(key)에 의해 식별되는 인스턴스를 갖는 프로세스 유형이 있을 수 있는 데, 각 키 값에 대해 하나의 논리적 프로세스 인스턴스가 있다. 상이한 프로세스 유형들은 상이한 유형의 키들을 가질 수 있어서 상이한 수의 논리적 프로세스 인스턴스를 갖는다. 시스템에서 소프트웨어에 의해 설치된 인스턴스를 갖는 프로세스 유형은 이 프로세스 유형과 함께 밀접하게 개발된 데이터베이스 오브젝트 유형을 가질 수 있다. 이러한 데이터베이스 오브젝트 유형의 인스턴스는 하나의 논리적 프로세스 인스턴스에 상응한다.
분산 유닛과 바로 전에 설명된 종류의 프로세스 인스턴스 사이의 관계는 다음과 같은 프로세스 유형으로 표현될 수 있다. 단일 중앙 프로세스 유형에 있어서, 하나의 논리적 인스턴스만이 있기 때문에, 하나의 분산 유닛만이 있을 수 있다. 키에 의해, 인스턴스가 식별되는 프로세스 유형에 있어서, 분산 유닛의 수는 프로세스 지정(process specification)과 함께 상수로서 지정되고, 그 관계는 분산 유닛중 하나에 각 키 값을 맵핑하는 프로그램된 알고리즘으로서 표현된다. 시스템에서 소프트웨어에 의해 그의 인스턴스가 설치되는 프로세스 유형에 있어서, 프로세스 인스턴스들은 데이터베이스 오브젝트들 사이의 관계에 의해 표현될 때 분산 유닛에서 그룹화된다.
프로세스는 또한 각각의 논리적 인스턴스에 대해 항상 물리적 인스턴스가 있다는 것을 제어 시스템이 보장하는 정적 프로세스 유형과, 몇몇 다른 프로세스가 통신하기를 원할 때, 물리적 인스턴스가 생성되는 것을 제어 시스템이 보장하는 동적 프로세스 유형이 있다.
또 다른 프로세스 유형들은 2개의 인스턴스가 협동하지만 시스템에서 다른 프로세스에 대해 하나의 프로세스로서 동작할 때, 특정 시스템 동작 동안을 제외하고는 각 논리적 인스턴스에 대해 많아야 하나의 물리적 인스턴스가 있는 단일 프로세스 유형이다. 다른 프로세스 유형은 하나의 논리적 인스턴스에 대해 수 개의 물리적 인스턴스가 있을 수 있는 복제된 프로세스 유형이다.
단일 프로세스 유형에 있어서, 분산 유닛은 단일 프로세서에만 할당되고, 복제된 프로세스 유형에 있어서, 하나의 분산 유닛은 수 개의 프로세서에서 복제될 수 있다.
수 개의 프로세스 유형은 만일, 그러한 유형들이 어떤 공통적인 종류라면, 동일한 분산 유닛을 공유할 수 있다. 상기의 종류는 중앙, 정적 및 단일 프로세스 유형, 키, 동적 및 단일 프로세스 유형, 중앙, 정적 및 복제된 프로세스 유형, 중앙, 동적 및 복제된 프로세스 유형, 및 설치, 정적 및 단일 프로세스 유형을 포함한다.
키, 동적 및 단일 프로세스 유형의 인스턴스와 프로세스 인스턴스와 동일한 기본 키를 갖는 데이터베이스 오브젝트 인스턴스들은 그러한 프로세스 인스턴스를 대응하는 키를 갖는 데이터베이스 오브젝트의 1차 복제를 유지하는 동일한 프로세서에서 실행시키는 것을 필요로 할 때 동일한 분산 유닛 유형을 참조하도록 만들어진다.
본 발명의 바람직한 실시예가 첨부 도면을 참조하여 아래에서 설명된다.
도 1은 기본 TMN 개요에 따른 전기통신 망을 개략적으로 설명하는 도면이다. 망(102)은 사용자에게 망 서비스를 제공하기 위해 협동하는 망 요소(104)로 구성된다. 망 요소에 의해 지원되는 많은 상이한 서비스들은 망 요소내 컴퓨터 시스템에 저장되어 프로세스되는 소프트웨어에 의해 어느 정도까지는 대부분 실현될 수 있다. 컴퓨터 시스템은 망과 서비스에 관련된 데이터를 저장하고, 서비스를 제어하고, 전화 가입자 장비인 이용자 장비(106, 108)와 다른 망 요소와 상호작용/통신하고, 지역 송신과 교환 하드웨어를 제어한다. 망의 운영 체제는 110과 112이고, 지역망 요소(116)의 관리를 위한 운영 체제는 114이다.
물리적 장비의 관점에서 컴퓨터 시스템을 보면, 컴퓨터 시스템 하드웨어는 통신 방향으로 상호연결되고, 협동하는 다수의 프로세서와 다수의 상이한 장비 어셈블리 사이에서 분할되는 대용량 기억 장치를 포함한다.
어떠한, 컴퓨터 제어 시스템이라도 하나 이상의 프로세서에서 실행하는 제어 프로그램을 갖는다. 오늘날 그러한 시스템에 대해, 애플리케이션 개발이 쉽고 이용가능성이 상당히 높으며 시스템 용량을 쉽게 업그레이드할 수 있어야 한다는 요구가 대두되고 있다. 그러한 요구를 충족시키기 위한 방법은 시스템을 계층 구조를 가지도록 설계하는 것이다. 계층 구조에서, 애플리케이션 프로그래머에 대한 애플리케이션 범위의 문제점만을 남겨놓고서 가장 공통적인 문제점에 대해 지원되는 애플리케이션이 제어 시스템 플랫폼에 프로그램된다.
그러한 구조에서, 수많은 운영 체제 소프트웨어뿐만 아니라 애플리케이션 프로그램은 하드웨어 장치를 통해 서로 상호작용하고, 제어 시스템 및 시스템 외부와 상호작용하는, 프로세스에서 실행되는 코드로 구성된다. 이는 망 요소(202)에서 소프트웨어 실행 환경의 논리도 2에 설명되어 있다. 망 요소(202)는 예컨대 가입자선의 접속을 위한 라인(line) 회로의 형태인 입력 하드웨어 장치(206)에서 끝나는 가입자선(204)을 수신하는 것으로 도시되어 있다. 출력 하드웨어 장치는 208이다. 다수의 송신 채널로 구성된 트렁크(210)는 하드웨어 장치(208)를 통해 망 요소(202)를 떠난다. 212는 스위치이다. 망 요소(202)내의 소프트웨어 시스템은 파선으로 한정된 블록(214)으로 표시된다. 블록(214)은 제어 시스템 플랫폼(216)과 상호작용 프로세스(218, 220, 222)를 포함하는 것으로 도시되어 있다. 예로서, 프로세스(218)는 화살표(224)로 표시된 바와 같이 라인 회로(206)중 하나를 제어하고, 프로세스(222)는 화살표(226)로 표시된 바와 같이 라인 회로(208) 중 하나를 제어하는 것으로 가정한다. 프로세스(220)는 스위치(212)로 향하는 화살표(228)로 표시된 바와 같이, 상기 2개의 라인 회로 사이의 직통 접속(through-connection)을 제어한다.
도 3을 참조하면, 제어 시스템 플랫폼(214)은 실행 및 메모리 자원을 제공하는 다수의 제어 프로세서(302)와 프로세서(302)에 의해 제공된 자원을 관리하고 또한 제어 시스템에 의해 제공된 추상화를 실행하는 운영 체제 소프트웨어(304)로 구성된다. 306에서 프로세스들은 공통 자원으로서 나타나 있다.
이후 아래에서, 운영 체제에 관해 언급할 때, 이는 도 3에 지적된 종류의 운영 체제이며 "당해 운영 체제"로 언급된다. 프로세스는 그의 프로세스 유형의 인스턴스를 형성하는 특정 유형일 수 있다. 프로세스 유형은 프로세스가 어떤 기능을 가지는 지를 결정하고, 상이한 유형의 프로세스는 상이한 일을 하는 한편, 동일한 유형의 프로세스는 동일한 일을 하지만 상이한 데이터 또는 상이한 하드웨어 유닛에서 작동한다.
프로세스 인스턴스는 프로세스 개념의 상이한 면을 설명하기 위하여 논리적 또는 물리적 프로세스 인스턴스로서 특징될 수 있다. 논리적 프로세스 인스턴스는 프로세스 외부의 특정 실체, 예컨대 "기능(function)", 라인 회로, 가입자 등에 관련된다. 물리적 인스턴스 프로세스는 논리적 인스턴스를 표시하고, 메모리내의 상태를 취하고 프로그램 코드를 실행한다.
용어 "논리적 프로세스 인스턴스"는 추상적인 개념이다. 시스템에서 논리적 프로세스 인스턴스의 종류는 시스템에 존재하는 프로세스 유형과 이의 특성으로 결정되고, 하드웨어 장치의 견지에서 보면 시스템의 구성에 의해 결정된다. 이는 시스템의 실행 상태에 상관없이 일정한 조건의 문제이다. 물리적 인스턴스는 논리적 인스턴스의 "구체화"이지만, 시스템에서 물리적 인스턴스는 논리적 인스턴스에 의존할 뿐만 아니라 현 실행시간 상황에 의존한다. 시간에 걸쳐, 상이한 물리적 인스턴스가 동일한 논리적 인스턴스를 표시할 수 있고, 특정 특성을 갖는 프로세스 유형에서, 수 개의 물리적 인스턴스가 동시에 동일한 논리적 인스턴스를 표시할 수 있다.
프로세스 유형은 또한 정적 또는 동적일 수 있다. 정적 프로세스에 있어서, 제어 시스템은 각 논리적 인스턴스에 대해 항상 물리적 인스턴스가 있게 되는 것을 보장한다. 동적 프로세스에서, 제어 시스템은 단지 몇몇 다른 프로세스가 통신하고자 할 때, 물리적 인스턴스가 생성되는 것을 보장한다.
게다가, 프로세스 유형은 "중심"일 수 있다. 이 중심 유형의 프로세스에서,그러한 각 프로세스 유형에 대해 정확히 하나의 논리적 프로세스 인스턴스가 있다.
다른 유형의 프로세스는 키에 의해 식별된 인스턴스를 갖는다. 이 프로세스 유형에서, 각 키 값에 대해 하나의 논리적 프로세스 인스턴스가 있다. 상이한 프로세스 유형은 각각 상이한 유형의 키를 갖고, 따라서 상이한 수의 논리적 프로세스 인스턴스를 갖는다. 키되고 또한 동적인 프로세스 유형의 종류에서, 데이터베이스 및 프로세서의 "공동 할당"이 있을 수 있다. "공동 할당"의 개념은 다음을 토대로 한다.
데이터베이스 오브젝트가 갱신될 때, 몇몇 형태의 데이터베이스 오브젝트 분산 유닛의 모든 복제(replicas)내 카피(copy)가 반드시 갱신되어야 한다. 이는, 정보가 반드시 수 개의 제어 프로세서로 전송되어야 된다는 것을 의미한다. 갱신을 수행하는 프로세스 인스턴스가 데이터베이스 분산 유닛 복제 중 하나와 같은 제어 프로세서에서 실행된다면, 정보 전송은 최소가 된다.
프로세스 인스턴스가 키 프로세스 유형이고 프로세스 인스턴스와 같은 기본 키(primary key)로서 데이터베이스 오브젝트 인스턴스를 자주 갱신한다면, 프로세스 인스턴스는 프로세스 유형과 데이터베이스 오브젝트 유형 둘 다로부터 동일한 분산 유닛 유형을 참조함으로써 1차 복제를 유지하는 제어 프로세서에서 항상 실행되게 될 수 있다. 이 공동 할당은 유형들이 동일한 키 유형을 공유해야 하고, 프로세스 유형이 키된, 동적인 종류일 것을 요구한다.
다른 프로세스 유형은 데이터베이스 오브젝트에 관련된 인스턴스를 가질 수 있다. 그의 인스턴스가 제어 시스템에서 소프트웨어로 설치되는 프로세스 유형에대해, 이 프로세스 유형과 함께 밀접하게 개발된 데이터베이스 오브젝트가 있다. 이 데이터베이스 오브젝트 유형의 인스턴스는 하나의 논리적 프로세스 인스턴스에 상응한다.
마지막으로, 프로세스 유형은 단일이 될 수 있거나 또는 복제된 인스턴스를 가질 수 있다. 이 유형이 "단일" 특성을 가질 때, 2개의 인스턴스가 상호 작용하지만 시스템에서 다른 프로세스에 대해 하나의 프로세스로서 동작할 때 특정 시스템 동작 동안을 제외하고는 각 논리적 인스턴스에 대해 많아야 하나의 물리적 인스턴스가 존재한다. 유형이 "복제된" 특성을 가질 때, 각각의 논리적 인스턴스에 대해 동시에 수 개의 조정되지 않은 물리적 인스턴스가 존재할 수 있다. 이 특성은 단지 "중앙" 특성과 결합될 수 있을 뿐이다. 그러한 정적 프로세스 유형에서 있어서, 이는 다수의 프로세서 각각에서 하나의 물리적 인스턴스가 생성된다는 것을 의미한다. 동적 유형에 있어서, 이는 새로운 물리적 인스턴스가 논리적 인스턴스가 어드레스 될 때마다 생성된다는 것을 의미한다.
하나의 프로세스가 다른 프로세서에서 원격 작동을 하고자할 때, 이 프로세스는 특정 논리적 프로세스 인스턴스 또는 물리적 프로세스 인스턴스를 식별함으로써 다른 프로세스를 어드레스한다.
논리적 프로세스 인스턴스를 식별할 수 있도록, 프로세스 유형 및 상이한 인스턴스 간의 차이, 몇몇 유형의 키 값, 또는 데이터베이스 오브젝트의 참조를 알아야할 필요가 있다. 이는 한 유형의 프로세스가 특정한 다른 유형의 프로세스와 상호 작용하도록 설계될 때는 문제가 되지 않는다. 그러나, 또한 범용 논리적 인스턴스 식별자를 통해, 예컨대 데이터베이스로부터 그러한 식별자를 검색함으로써 "알려지지 않은" 논리적 인스턴스를 식별하는 것이 가능하다. 이 식별자는 확인해야 할 인스턴스를 알고 있는 몇몇 다른 프로세스로부터 출력된다.
물리적 프로세스 인스턴스를 식별하기 위해, 범용 물리적 프로세스 식별자에 대한 데이터 유형이 존재한다. 이들 식별자, 또는 프로세스 인스턴스 참조들은 물리적 인스턴스가 존재하는 동안만 타당하고, 만일 물리적 인스턴스 자체가 참조를 데이터베이스에 저장하거나 또는 이를 원격 작동을 통해 다른 프로세스로 통과시킴으로써 기준을 이용가능하게 만든다면, 다른 프로세스에 의해 사용될 수 있다.
"중앙" 프로세스 인스턴스, 또는 키로 식별된 한 프로세스 인스턴스는 다른 망 요소의 프로세스로부터 어드레스될 수 있어서, 어드레스된 프로세스가 실행하는 망 요소를 식별하는 망 어드레스를 반드시 공급해야 한다. 디폴트에 의해, 동일한 망 요소의 프로세스만이 어드레스된다. 데이터베이스 오브젝트에 의해 식별된 프로세스 인스턴스는 망 요소 내에서만 어드레스될 수 있다.
상기 토의된 프로세스 유형의 특성은 프로세스 유형 명세서의 설계 언어로 명기되어야 한다. 이 명세서는 다음을 명기한다:
- 유형의 명칭.
- 정적 또는 동적인지 여부.
- 기본 키의 유형.
- 인스턴스가 복제되었는지 여부.
- 기본 키를 갖는 유형: 분산 제한 또는 분산 유닛 명세서에 대한 참조.
- 설치된 유형: 분산 유닛 명세서에 대한 참조.
3개의 상이한 프로세스 유형을 명기하는 프로세스 유형 명세서의 예가 아래에 주어진다.
Figure pct00001
물리적 프로세스 인스턴스는 항상 하나의 프로세서에서만 실행된다. 인스턴스가 생성되게 될 때, 제어 시스템은 반드시 프로세서들이 균등하게 사용되게 되는 방식으로 인스턴스가 생성되는 프로세서를 결정하여야 한다. 제어 시스템은 또한 원격 작동을 적절한 프로세스 인스턴스로 보내기 위해 생성된 인스턴스의 트랙을 반드시 유지하여야 한다. 프로세스 기초로 프로세스에서 이를 행하는 것은 불가능한데, 인스턴스가 너무 많기 때문이다.
상기 문제점은 동일한 프로세서에 프로세스 인스턴스 그룹을 함께 유지하기 위해 사용되는 분산 유닛으로 해결된다. 분산 유닛은 논리적 프로세스 인스턴스와 물리적 프로세스 인스턴스 둘 다를 그룹화한다. 인스턴스와 분산 유닛 간의 관계가논리적 인스턴스에 의해 표현되기 때문에 분산 유닛들은 논리적 인스턴스를 그룹화하고, 분산 유닛이 프로세서에 할당될 때, 실제로 발생하는 것은 분산 유닛에 관련된 모든 물리적 프로세스 인스턴스가 상기 프로세서에서 생성된다는 것이기 때문에, 분산 유닛들은 물리적 인스턴스를 그룹화한다.
분산 유닛과 프로세스 인스턴스 간의 관계가 표현되는 방법은 프로세스 유형의 특성에 따른다.
- 중앙 프로세스 유형에 있어서, 이는 평이하다. 하나의 논리적 인스턴스만이 있어서, 하나의 분산 유닛만이 있을 수 있다.
- 그의 인스턴스가 키로 식별되는 프로세스 유형에 있어서, 분산 유닛의 수는 프로세스 명세서와 함께 상수로서 명기되어야 하고, 그 관계는 분산 유닛 중 하나에 각 키 값을 맵핑하는 프로그램된 알고리즘으로서 표현된다.
- 인스턴스가 설치되는 프로세스 유형에 있어서, 분산 유닛이 설치될 뿐만아니라, 프로세스 인스턴스와 분산 유닛 간의 관계는 설치동안 셋 업된다.
분산 유닛들이 수 개의 프로세서에서 복제되는지 여부는 분산 유닛이 그룹화하는 프로세스의 특성에 의존한다. 단일 프로세스에 있어서, 분산 유닛은 단일 프로세서에 유일하게 할당되는 반면, 복제된 프로세스 유형에 있어서, 하나의 분산 유닛이 수 개의 프로세서에서 복제될 수 있다.
당해 운영 체제의 애플리케이션은 코드를 실행하는 다수의 협동 프로세스로 구성되고, 프로세스의 메모리 내에 상태를 가지고 데이터베이스에 데이터를 끊임없이 저장한다. 프로세스 인스턴스는 하나의 제어 프로세서에서만 실행되지만, 프로세스 인스턴스가 실행하는 제어 프로세서에 상관없이 다른 프로세스와 통신할 수 있다.
기능성을 이루기 위해, 당해 운영 체제의 애플리케이션의 설계자는 장치 프로세서를 포함하는 하드웨어 장치가 작동되게 될 때, 물리적 제한 사항보다 다른 어떠한 분산 특징에 대해 관심을 기울일 필요가 없다. 통신은 당해 운영 체제에 의해 명백하게 처리된다.
애플리케이션 설계자는 프로세서 구조와 데이터베이스 사용법을 설계할 때와, 소프트웨어의 구성에 관한 지시를 망 엔지니어에게 제공할 때 우수한 특성을 얻기 위해서는 하드웨어 분산을 고려하여야 한다. 상이한 서브네트(subnet)의 제어 프로세서에서의 기능간의 협동은 물론 비용이 많이 들고, 정보가 수 개의 통신 채널을 통과해야 하기 때문에 서브네트 또는 제어 프로세서 내에서의 협동보다 더 많은 시간이 걸린다.
당해 운영 체제는 애플리케이션 프로그램으로부터 감추어진 프로세스 인스턴스를 찾고자하는 제어 프로세서를 알고, 적절한 제어 프로세서에 프로세스간 통신과 데이터베이스 작동을 지시함으로써 상술된 분산 투과(distribution transparency)를 실행한다.
상술한 바와 같이, 당해 운영 체제가 실제로 모든 단일의 프로세스 인스턴스가 할당되었던 곳의 트랙을 보존한다면, 너무 많은 오버헤드가 있을 수 있게 된다. 오버헤드는 상술된 분산 유닛 개념을 통해 낮추어질 수 있다. 이러한 접근법의 장점은, 운영 체제가 상당히 적은 분산 유닛의 트랙만을 보존해도 된다는 것이다.
분산 유닛은 특정 분산 유닛 유형이다. 분산 유닛 유형은 그러한 유형, 즉 만약 있다면 그룹화시키는 프로세스 인스턴스와 공동 할당된 데이터베이스 오브젝트 인스턴스 유형의 분산 유닛의 특성과 다른 특성, 대부분의 경우 시스템에 존재하는 유형의 분산 유닛의 정확한 수를 기술한다.
시스템이 분산 유닛 유형을 제어 프로세서의 분산 풀(distribution pool)에 할당하는 것으로 구성될 때, 분산 유닛이 어떻게 제어 프로세서에 대해 분산되는 지가 설명된다. 분산 풀은 이론적으로 제어 프로세서의 임의 그룹화이다. 분산 풀에 어떠한 수의 제어 프로세서가 있을 수 있고, 제어 프로세서는 어떠한 수의 풀의 일부일 수 있다.
각 분산 유닛 유형에 대해, 분산 유닛 유형의 특성이 프로세스 유형 명세서에 관한 한 동일한 디자인 언어에 명기되는, 상응하는 명세서가 있어야만 한다. 이 명세서는 다음을 명기해야 한다:
- 유형의 명칭.
- 프로세스 인스턴스의 유형.
- 공동 할당된 데이터베이스 오브젝트 인스턴스의 유형.
- 유형의 분산 유닛의 수.
3개의 상이한 분산 유닛 유형의 예가 아래에 주어진다.
중앙 프로세스 유형:
Figure pct00002
키를 갖는 프로세스 유형:
Figure pct00003
유형들이 동일한 종류라면, 동일한 분산 유닛 유형을 공유하는 수 개의 프로세스 유형이 있을 수 있다. 각 종류의 프로세스 유형에 있어서, 분산 풀에 분산 유닛 유형의 할당은 약간 상이한 일이다. 이는 상술된 프로세스 유형의 종류에 대해 도 4 내지 도 8을 참조하여 더 상세히 설명된다.
중앙, 정적 및 단일 프로세스 유형인 첫 번째 종류는 도 4에 도시되어 있다. 도 4는 분산 풀에 속하는 3개의 프로세서(402, 404 및 406)를 개략적으로 도시한다. 이러한 유형에서, 하나의 프로세스 인스턴스(408)만이 있으므로, 하나의 분산 유닛(410)만이 있다. 당해 운영 체제는 풀 내 제어 프로세서들 중에서 하나를, 즉 분산 유닛(410)이 할당되고 프로세스 인스턴스(408)가 실행되는 프로세서(404)를 선택한다. 이 프로세서(404)가 오기능을 한다면, 당해 운영 체제는 제어 프로세서 중 다른 하나, 즉 프로세서(402 및 406) 중 하나를 선택하여, 이에 대한 프로세스를 다시 시작한다.
키된, 동적 및 단일 프로세스 유형인 두 번째 종류가 도 5에 도시되어 있다. 도 5는 분산 풀에 속하는 3개의 프로세서(502, 504, 506)를 개략적으로 도시한다. 프로세서(502)는 2개의 분산 유닛(508, 510)을 포함하는 것으로 도시되어 있다. 프로세서(504)는 2개의 분산 유닛(512, 514)을 포함하는 것으로 도시되어 있다. 프로세서(506)는 2개의 분산 유닛(516, 518)을 포함하는 것으로 도시되어 있다.
각 분산 유닛은 3개의 논리적 프로세스 인스턴스를 포함하는데, 몇몇은, 몇몇 다른 프로세스가 이의 서비스를 얻기 위해 이와 통신하기를 원하였기 때문에 물리적 인스턴스에 대해 구체화될 수 있다. 이는 도 5에서 다음 방식으로 예시되어있다. 분산 유닛(508)에 대해, 3개의 "순수한" 논리적 인스턴스가 50811-13에 표시되어 있다. 분산 유닛(510)에 대해, 2개의 논리적 인스턴스가 51011,12에 표시되어 있고, 하나의 물리적 인스턴스가 510ph1에 도시되어 있다. 분산 유닛(512)은 하나의 논리적 인스턴스(51211)와 2개의 물리적 인스턴스(512ph1, ph2)를 포함하는 것으로 표시되어 있다. 분산 유닛(514)은 2개의 논리적 인스턴스(51411,12)와 하나의 물리적 인스턴스(514ph1)를 포함하는 것으로 표시되어 있다. 분산 유닛(516)은 2개의 논리적 인스턴스(51611,12)와 하나의 물리적 인스턴스(516ph1)를 포함하는 것으로 표시되어 있다. 분산 유닛(518)은 2개의 논리적 인스턴스(51811,12)와 하나의 물리적 인스턴스(518ph1)를 포함하는 것으로 표시되어 있다.
이러한 유형에 있어서, 애플리케이션 프로그래머는 분산 유닛의 수를 분산 제한, 이 예에서는 6과 프로세스 인스턴스를 식별하는 키를 특정한 분산 유닛을 식별하는 수로 번역하는 기능을 제공해야 한다. 도 5에 도시되어 있는 바와 같이, 당해 운영 체제는 분산 유닛을 풀내 제어 프로세서에 대해 균일하게 분산시키고, 한 제어 프로세서가 실패하면, 이 제어프로세서의 분산 유닛은 풀 내 잔여 제어 프로세서로 이동하고, 실패한 제어 프로세서가 다시 기능하면 역으로 다시 이동한다. 프로세스 인스턴스가 동적이면, 당해 운영 체제는 프로세스 인스턴스가 다이알로그를 이에 셋팅업함으로써 어드레스될 때 물리적 인스턴스를 시작시키게 된다. 실패한 제어 프로세서에서 실행하는 인스턴스는 자동적으로 재 시작되지 않는다.
중앙, 정적 및 복제된 프로세스 유형인 세 번째 프로세스 유형이 도 6에 도시되어 있다. 그러한 프로세스 유형에 있어서, 당해 운영 체제가 풀 내 모든 제어 프로세서에 대해 복제를 하여 각 제어 프로세스에서 하나의 프로세스 인스턴스를 시작시키는 하나의 분산 유닛만이 있다. 이는 도 6에 표시되어 있는데, 동일한 풀에 속하는 3개의 제어 프로세서(602, 604, 606)는 각각 복제된 분산 유닛(608, 610, 612)을 포함하고, 복제된 분산 유닛의 프로세스는 각각 614, 616 및 618에 표시되어 있다. 620에 표시된 네 번째 프로세서는 다른 프로세서의 풀에 속하지 않아서 어떠한 복제된 분산 유닛을 수신하지 않는다.
제어 프로세서(602, 604, 606) 중 하나가 실패하면, 여기서 실행하는 인스턴스는 제어 프로세서가 다시 기능할 때까지만 사라진다. 복제된 프로세스 유형이 어드레스될 때, 센더(sender)는 복제된 프로세스 유형 그 자체를 지적할 수 있고, 인스턴스 중 하나를 명확히 지적할 수 없다. 당해 운영 체제는 센더에 "가장 가까운" 제어 프로세서의 인스턴스를 선택한다. 즉, 만일 동일한 서브네트, 아니면 어떠한 곳에 있는 동일한 제어 프로세서의 인스턴스를 선택한다. 수 개의 제어 프로세서가 동등하게 "가까이" 있다면, 당해 운영 체제은 무작위로 선택한다. 인스턴스의 내부 상태, 그렇게 복제된 프로세스의 내부 상태는 서로 관계없다는 것을 명심해야 한다. 당해 운영 체제는 이들을 서로 일관되게 보존하지 않는다.
중앙, 동적 및 복제 프로세스 유형인 네 번째 종류가 도 7에 도시되어 있다. 도 7은 동일한 풀의 것인 3개의 제어 프로세서(702, 704, 706)를 보여준다. 당해운영 체제는 분산 풀 내의 모든 제어 프로세서에 단일의 분산 유닛(708, 710, 712)을 복제하여, 이러한 프로세스가 어드레스 될 때마다, 풀 내 제어 프로세서 중 하나에서 새로운 프로세스 인스턴스를 시작시킨다. 프로세스 인스턴스(714, 716)들은 복제된 분산 유닛(708)에 표시되어 있고, 복제된 분산 유닛(710)은 3개의 프로세스 인스턴스(718, 720, 722)를 포함하는 것으로 표시되어 있다. 복제된 분산 유닛(706)은 단일의 프로세스 인스턴스(724)를 포함한다.
선택된 제어 프로세서는 정적, 복제 프로세스 유형과 같은 방식으로 송신 프로세스의 위치에 의존한다.
설치된, 정적이고 또한 단일 프로세스 유형인 다섯 번째 종류가 도 8에 도시되어 있다. 도 8은 풀에 속하는 3개의 제어 프로세서(802, 804, 806)를 보여준다. 제어 프로세서(804, 806)는 그룹을 형성한다. 분산 유닛 유형을 분산 풀에 할당하는 것은, 그 분산 유닛 유형에 연결된 유형의 프로세스 인스턴스가 풀 내 제어 프로세서 중 어느 것에 설치될 수 있다는 것을 의미한다. 그러나, 이들이 실행시간에 설치되기 전까지 아무런 분산 유닛과 아무런 프로세스 유닛도 없다.
분산 유닛을 설치하기 위하여, 프로세스 그룹이 도 8에 도시된 바와 같이 선택되어야만 한다. 프로세서 그룹은 구성 데이타로 만들어지는 제어 프로세서의 그룹이다. 분산 유닛(808)이 설치될 때, 당해 운영 체제는 분산 유닛 유형이 할당되는 분산 풀의 일부인 선택된 프로세서 그룹 내 제어 프로세서 중 하나(예를 들면 804)를 선택한다. 그렇게 설치된 분산 유닛(808)내에 프로세스 인스턴스(예컨대 810, 812)가 실행시간에 부가된다. 당해 운영 체제는 선택된 제어 프로세서의 분산유닛에서 프로세스 인스턴스를 시작시키고, 만일 현재 선택된 제어 프로세서가 실패한다면, 다른 하나를 선택하여 프로세스를 재 시작시킨다.
당해 운영 체제는 실제 물리적 제한을 모르기 때문에, 적절한 프로세서 그룹을 생성시키는 것은 애플리케이션 설계자와 망 기술자의 소관이다.
설치된 프로세스 인스턴스는 하드웨어 자원을 나타내는 관리 오브젝트 인스턴스에 밀접하게 관련되고, 하드웨어 자원이 시스템에 부가될 때, 프로세스 인스턴스는 이 자원을 제어 또는 처리할 필요가 있다. 하드웨어 자원은 어떤 방식으로 관리될 필요가 있어서, 자원을 나타내는 관리 오브젝트 인스턴스가 생성된다. 따라서, 프로세스와 이의 분산 유닛의 설치는 종종 관리 오브젝트의 생성과 함께 이루어진다. 하드웨어 자원을 나타내는 관리 오브젝트와 다른 하드웨어 자원을 나타내는 관리 오브젝트 사이의 관계로부터, 선택하고자 하는 적절한 프로세서 그룹이 획득될 수 있다.
바로 전에 상술된 것과 도 9 내지 도 12를 참조하여, 예시적인 설치의 경우가 설명된다. 도 9는 망 요소의 하드웨어를 보여주고, 도 10은 망 요소의 관리를 설명하고, 도 11은 망 요소의 자원을 보여주고 도 12는 망요소에 포함된 제어 프로세서에서 실행되는 프로세스 인스턴스의 분산을 개략적으로 설명하는 도면이다.
프로세서 그룹의 오브젝트는, 설치된 프로세스 인스턴스들이 하드웨어 구성에서 물리적인 제한에 대처하기 위해 실행시키기 위한 것인, 제어 프로세서를 억제하는 것을 가능하게 하는 것이다. 도 9의 망 요소에서, 장치(902, 904)들은 각각의 블록(D1, D2)에 포함되는 것으로 도시되어 있다. 블록(D1, D2)은 교환기(906)각각에 연결된 장치의 수를 나타내기 위한 것이다. 장치(902, 904)를 포함하는 이들 장치들은 장치와 동일한 교환기(906)에 연결된 제어 프로세서(908, 910)에 연결될 뿐이다. 다른 교환기(912)는 이에 연결된 2개의 제어 프로세서(914, 916) 및 블록(D3, D4)에 각각 포함되는 것으로 도시된 2개의 장치(918, 920)를 포함한다. 블록(D3, D4)은 장치(918, 920)를 포함하여, 교환기(912)에 연결된 장치의 수를 나타내기 위한 것이다.
상응하는 도 10의 관리도에서, 프로세서(908, 910, 914,916), 장치(902, 918, 920)뿐만 아니라 도 9의 교환기(906, 912)는 도 10의 상응하는 요소와 같은 참조번호와 아래첨자 MO가 제공된 관리 오브젝트로써 표현되었다. 비슷하게, 상응하는 도 11의 자원도에서, 도 10의 관리 오브젝트에 의해 표현된 것과 같은 동일한 프로세서, 장치 및 교환기들은 도 10의 상응하는 요소와 같은 참조번호와 함께 아래첨자 RO가 제공된 자원 오브젝트로써 표현되었다.
도 10은 분산 풀을 나타내는 관리 오브젝트(1002)가 어떻게 프로세서 관리 오브젝트(908MO, 910MO및 914MO, 916MO)를 그룹화하는 지를 설명한다. 분산 풀에 분산 유닛 유형이 할당되는데, 이는 도 12를 참조하여 아래에서 보다 상세히 설명된다. 관리 오브젝트(908MO, 910MO)는 장치 관리 오브젝트(902MO)가 연결되는 교환기 관리 오브젝트(906MO)에 연결된다. 관리 오브젝트(914MO, 916MO)는 장치 관리 오브젝트(918MO, 920MO)가 연결되는 교환기 관리 오브젝트(912MO)에 연결된다.
상응하는 도 11의 자원도에서, 도 11의 각 자원을 나타내는 자원 오브젝트들은 도 10의 관리 오브젝트와 비슷한 방식으로 편성된다. 그러나, 도 11의 자원도는 제어 프로세서(918, 920)를 그룹으로서 나타내는 자원 오브젝트(924RO)뿐만 아니라, 제어 프로세서(908, 910)를 그룹으로서 나타내는 자원 오브젝트(922RO)를 포함한다.
관리 오브젝트(1002)로 표시되는 분산 풀에 블록(1204∼1218)에 의해 표시된 유형의 분산 유닛을 포함하는 분산 유닛 유형(도 12에서 1202로 개략적으로 표시됨)이 할당된다. 이러한 분산 유닛은 각 블록에서 사각형으로 표시된 다수의 프로세스 인스턴스를 포함한다.
따라서, 분산 유닛(1204, 1206)은 각 장치(D1)의 처리를 위해 프로세스 인스턴스의 그룹을 형성하고, 제어 프로세서(908)에 실행을 위해 설치된다. 장치(902)의 처리를 위한 프로세스 인스턴스는 1224로 표시되어 있다. 분산 유닛(1216, 1218)은 각 장치(D4)의 처리를 위한 프로세스 인스턴스의 그룹을 형성하고, 프로세서(916)에서 실행을 위해 설치된다. 장치(920)의 처리를 위한 프로세스 인스턴스는 1226에 표시되어 있다.
교환기(906 또는 912) 중 어느 것에 연결된 장치를 처리하는 프로세스 인스턴스는 자원 오브젝트(922RO및 924RO)에 의해 지원되는 제어 프로세서의 그룹화로 인해, 교환기에 각각 연결된 각 제어 프로세서(908, 910 또는 918, 920)에서 실행되어야 한다. 따라서, 새로운 장치(928)가 교환기(906)에 부가된다면, 새로운 장치를 처리하는 프로세스 인스턴스가 제어 프로세서(908, 910) 중 하나에서 실행하기 위해 비슷하게 설치되고, 선택되어야 한다. 따라서, 새로운 장치를 나타내는 자원오브젝트(928RO)가 설치되어, 화살표(930)로 표시된 바와 같이 자원 오브젝트(922RO)에 연결되어야 하고 새로운 프로세스 인스턴스는 제어 프로세서(908, 910)에서 실행을 위한 프로세스 인스턴스의 그룹을 형성하는 분산 유닛에 할당되어야 한다. 예로서, 그러한 새로운 프로세스 인스턴스는 예컨대 프로세서(910)에서 실행을 위해 설치된 것으로서 도 12의 1228에 표시되어 있다.
다른 제어 프로세서에 위치된 프로세스 인스턴스로부터 제어 프로세스의 프로세스 인스턴스를 어드레싱하는 것이 도 13과 도 14를 참조하여 설명된다.
도 13은 3개의 제어 프로세서(CP1, CP2, CP3)를 보여준다. 제어 프로세서(CP1)는 2개의 분산 유닛(A, B)을 포함하는 것으로 표시되어 있다. 제어 프로세서(CP2)는 분산 유닛(C, D, R 및 S)을 포함하는 것으로 표시되어 있다. 제어 프로세서(CP3)는 분산 유닛(E, F, R 및 S)을 포함하는 것으로 표시되어 있다. 분산 유닛(R, S)은 그들에게 할당되는 복제된 세 번째와 네 번째 종류 중 어느 것의 프로세스 인스턴스를 가지는 것으로 가정된다.
제어 프로세서의 프로세스가 다른 제어 프로세서에 위치될 수 있는 다른 프로세스에서 작동을 야기시키도록, 어드레싱 정보가 필요하다. 그러한 어드레싱 정보는 다음과 같은 테이블로서 제공된다.
각 제어 프로세서는 모든 제어프로세서에 대해 공통이고, 제어 프로세서에서 모든 분산 유닛의 분산을 나타내는, 그와 관련된 제 1 테이블과 그의 분산 유닛을 지적하는 제 2 테이블을 갖는다. 각 프로세서(CP1, CP2, CP3)에 대해, 제 1 테이블은 T1으로 표시되고, 제 2 테이블은 T2CP1, T2CP2, T3CP3로 각각 표시된다. 첫 번째 열의 각 라인에 있는 제 1 테이블(T1)은 분산 유닛을 설명하고, 두 번째 열은 첫 번째 열의 분산 유닛이 위치되는 프로세서를 나타낸다. 따라서, 테이블(T1)의 라인 2로부터, 분산 유닛(C, D)들은 제어 프로세서(CP2)에 위치되어 있다는 것을 알 수 있다. 제 2 테이블(T2)은 각 라인에 분산 유닛을 설명하는 첫 번째 열과, 그리고 동일한 라인에 분산 유닛에 대한 포인터를 제공 하는 두 번째 열을 갖는다. 이는 테이블(2)의 각 라인에서 대응하는 분산 유닛으로 지적하는 화살표로부터 쉽게 이해할 수 있다. 각 화살표는 화살표가 지적하는 분산 유닛과 동일한 식별 문자로 표시된다.
게다가, 각 분산 유닛은 그의 프로세스 인스턴스에 대한 포인터를 포함하는 테이블(T3)을 갖는다 도 13에서, 이 테이블(T3D)은 프로세서(CP2)의 분산 유닛(D)에 대해서만 설명되어 있다. 도면에서 알 수 있는 바와 같이, 분산 유닛(D)은 3개의 프로세스 인스턴스(P1, P2, P3)를 포함한다. 테이블(3)은 첫 번째 열에 이들 프로세스 인스턴스 중 하나를 각각 나타내는 3개의 라인을 포함하고, 또한 각 라인으로부터의 화살표가 대응하는 프로세스 인스턴스에 대한 포인터를 나타내는 두 번째 열을 포함한다. 동일한 방식으로, 이들 분산 유닛(R, S)에 할당된 프로세스 인스턴스를 식별하는 분산 유닛(R, S)과 관련된 테이블들(도면에 도시되지 않음)이 있을 수 있다. 테이블(T1, T2, T3)은 운영 체제의 일부를 형성한다.
몇몇 예시적인 어드레싱 경우가 설명된다. 도 13의 제어 프로세서(CP1)에 있는 분산 유닛(B)의 프로세서 인스턴스 센더가 제어 프로세서(CP2)에 존재하는 프로세스 인스턴스 중 하나, 예컨대 프로세스 인스턴스(P2), 또는 프로세서(CP2, CP3)의 분산 유닛(R, S)중 어느 것에 할당된 프로세스 인스턴스에서 원격작동될 필요가 있다. 도 14는 당해 프로세스 인스턴스가 발견될 수 있는 것에 따라 운영 체제에 의해 수행되는 검색과정을 설명하는 흐름도이다.
도 13의 분산 유닛(B)에 위치되어, 프로세스 인스턴스를 찾는 프로세스 인스턴스 센더로의 메시지가 진행되어 흐름도의 시작점(1402)에서 나타나게 된다. 검색은 테이블(T1)에 의해 단계(1404)에서 시작된다. 검색될 프로세스 인스턴스가 분산 유닛(D)에 위치된 프로세스 인스턴스(P2)라면, 테이블(T1)의 라인(2)은 이 분산 유닛이 프로세서(CP2)에서 발견될 수 있다는 것을 밝힌다. 이에 따라, 단계(1406)는 프로세스 인스턴스가 그의 프로세서에 있는 분산 유닛에 위치되는 경우를 제거한다. 검색될 프로세스 인스턴스가 복제된 유형이라면, 테이블(T1)의 마지막 라인은 프로세스 인스턴스가 프로세서(CP2, CP3)중 어느 것에서 발견될 수 있다는 것을 밝힌다.
단계(1408)에서, 프로세스 인스턴스가 복제되는지 여부가 결정된다. 복제된다면, 단계(1410)에서 운영 체제는 전송 프로세스 센더에 "가장 가까운" 제어 프로세서(CP2, CP3) 중 하나, 또는 앞서 세 번째와 네 번째 종류의 프로세스에 대해 설명되었던 바와 같이, 제어 프로세서가 동등하게 가깝다면 제어 프로세서 중 어느 하나를 선택한다. 복제되지 않는다면, 단계(1410)는 통과된다.
검색될 프로세스 인스턴스가 P2라면, 단계(1412)는 메시지를 단계(1414)로보내는데, 이 단계에서 라인(2)의 프로세서(CP2)와 관련된 테이블(T2CP2)이 분산 유닛(D)에 대한 포인터를 식별한다. 단계(1416)는 메시지를 단계(1418)로 보내는데, 이 단계에서 라인(2)의 테이블(T3D)은 프로세스 인스턴스(P2)에 대한 포인터를 식별한다.
단계(1420)에서, 프로세스 인스턴스가 정적 또는 동적인지가 결정된다. 동적이라면, 단계(1422)는 프로세스 인스턴스가 키 되었는지 또는 복제되었는지를 결정한다. 키되었다면(keyed), 프로세스 유형은 키되고, 동적 및 단일한 것으로 결정된다. 단계(1424), 질문 "시작되었는가?"에서, 논리적 인스턴스가 물리적 인스턴스에 대해 구체화되었는 지가 결정된다. 구체화되지 않았다면, 프로세스 인스턴스는 단계(1426)에서 시작되고, 메시지는 단계(1428)로 진행한다. 물리적 인스턴스가 있다면, 흐름은 화살표(1430)로 표시된 바와 같이, 메시지 전송 단계(1428)로 진행한다.
단계(1420)에서 정적인 프로세스 인스턴스의 질의가 발견된다면, 흐름은 단계(1422, 1424, 1426)를 바이패스하여, 화살표 1432로 표시된 바와 같이 단계(1428)로 진행된다.
단계(1422)의 응답이 "복제"라면, 이는 중앙, 동적 및 복제 유형의 인스턴스가 있다는 것을 의미하고, 또한 새로운 물리적 유형이 구체화되게 된다는 것을 의미한다. 따라서, 흐름은 단계(1424)를 바이패스하여, 화살표 1434에 따라 단계(1426)로 진행한다. 즉, 운영 체제가 어드레스된 프로세스 인스턴스를 시작시킨다.

Claims (10)

  1. 컴퓨터 제어 시스템에 있어서,
    데이터베이스의 상이한 부분들을 처리하기 위한 다수의 제어 시스템 프로세서로 구성된 제어 시스템 플랫폼, 프로세서에 의해 제공된 자원을 관리하고 제어 시스템에 의해 제공된 추상화를 실행하는 운영 체제, 및 프로세스 자원의 표현을 포함하는 프로세싱 구조,
    서로, 즉 제어 시스템과 이 구조의 외부와 상호작용하는 협동 프로세스로 실행되게 되는 애플리케이션 프로그램을 제공하는 프로세싱 구조,
    프로세스 인스턴스의 그룹을 형성하는 분산 유닛들에 의해 제어 시스템 프로세서를 통해 분산되는 프로세스 자원 표현의 인스턴스, 및
    특정 분산 유닛 유형들에 속하는 분산 유닛을 포함하며, 이 중에서 각각의 분산 유닛 유형은 이러한 유형인 분산 유닛의 공통 특성을 기술하는 것을 특징으로 하는 컴퓨터 제어 시스템.
  2. 제 1 항에 있어서,
    상기 프로세스 인스턴스는,
    프로그램 코드를 실행하는 물리적 프로세스 인스턴스와,
    추상적인 개념의 형태인 논리적 프로세스 인스턴스를 포함하고, 시스템에서 논리적 프로세스 인스턴스의 종류는 시스템에 존재하는 프로세스 유형과 특성에 의해 결정되고, 하드웨어 장치의 관점에서 보면 시스템의 구성에 의해 결정되는 것을 특징으로 하는 컴퓨터 제어 시스템.
  3. 제 2 항에 있어서,
    분산 유닛은, 인스턴스와 분산 유닛 사이의 관계가 논리적 인스턴스에 의해 표현되기 때문에 논리적 프로세스 인스턴스를 그룹화하고, 분산 유닛이 프로세서에 할당되면, 그 분산 유닛에 관련된 모든 물리적 프로세스 인스턴스가 그 특정 프로세서에서 생성되기 때문에 물리적 프로세스 인스턴스를 그룹화시키는 것을 특징으로 하는 컴퓨터 제어 시스템.
  4. 제 3 항에 있어서,
    상기 프로세스는
    각각의 프로세스 유형에 대해 하나의 논리적 프로세스 인스턴스가 있는 중앙 프로세스 유형들,
    키에 의해 식별되는 인스턴스를 가지고, 각 키 값에 대해 하나의 논리적 프로세스 인스턴스가 있고, 상이한 프로세스 유형들은 각각 상이한 유형의 키를 가져서 상이한 수의 논리적 프로세스 인스턴스를 가지게 되는, 프로세스 유형들,
    시스템 자체의 소프트웨어에 의해 설치되는 인스턴스를 갖는 프로세스 유형들로서, 이 프로세스 유형과 함께 밀접하게 개발되는 데이터베이스 오브젝트 유형이 있고, 이 데이터베이스 오브젝트 유형의 인스턴스는 하나의 논리적 프로세스 인스턴스에 대응하게 되는, 프로세스 유형들을 포함하는 것을 특징으로 하는 컴퓨터 제어 시스템.
  5. 제 4 항에 있어서,
    상기 분산 유닛과 상기 프로세스 인스턴스 사이의 관계는 다음과 같이 프로세스 유형들에 대해 표현되는 바,
    - 중앙 프로세스 유형에 대해 관계는 평이하고, 하나의 논리적 인스턴스만이 있기 때문에, 하나의 분산 유닛만이 있을 수 있고,
    - 키에 의해 그 인스턴스가 식별되는 프로세스 유형에 대해, 분산 유닛의 수는 프로세스 명세서와 함께 상수로서 명기되고, 그 관계는 분산 유닛들 중 하나에 각 키 값을 맵핑하는 프로그램된 알고리즘으로 표현되고,
    - 시스템 자체의 소프트웨어에 의해 그 인스턴스가 설치되는 프로세스 유형에 대해, 프로세스 인스턴스들은 데이터베이스 오브젝트 사이의 관계에 의해 표현될 때 분산 유닛에서 그룹화되는 것을 특징으로 하는 컴퓨터 제어 시스템.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 프로세스는
    각 논리적 인스턴스에 대해 항상 물리적 인스턴스가 있도록 제어 시스템이 보장하는 정적 프로세스 유형들,
    몇몇 다른 프로세스가 통신하기를 원할 때 물리적 인스턴스가 생성되는 것만을 제어 시스템이 보장하는 동적 프로세스 유형들을 포함하는 것을 특징으로 하는 컴퓨터 제어 시스템.
  7. 제 6 항에 있어서,
    상기 프로세스는
    2개의 인스턴스가 협동하지만 시스템에서 다른 프로세스들에 대해 한 프로세스로서 동작할 때 특정 시스템 동작 동안을 제외하고, 각 논리적 인스턴스에 대해 하나의 물리적 인스턴스가 있는, 단일 프로세스 유형들,
    하나의 논리적 인스턴스에 대해 수 개의 물리적 인스턴스가 있을 수 있는 복제된 프로세스 유형들을 포함하는 것을 특징으로 하는 컴퓨터 제어 시스템.
  8. 제 7 항에 있어서,
    단일 프로세스 유형들에 대해, 분산 유닛은 단일의 프로세서에 유일하게 할당되고,
    복제된 프로세스 유형에 대해, 하나의 분산 유닛이 수 개의 프로세서에서 복제될 수 있는 것을 특징으로 하는 컴퓨터 제어 시스템.
  9. 제 8 항에 있어서,
    수 개의 프로세스 유형들은, 그러한 유형이 특정 공통 종류라면 동일한 분산 유닛 유형을 공유할 수 있게 되고, 이들 종류는:
    중앙, 정적 및 단일 프로세스 유형,
    키된, 동적 및 단일 프로세스 유형,
    중앙, 정적 및 복제 프로세스 유형,
    중앙, 동적 및 복제 프로세스 유형,
    설치된, 정적 및 단일 프로세스 유형을 포함하는 것을 특징으로 하는 컴퓨터 제어 시스템.
  10. 제 9 항에 있어서,
    키된, 동적 및 단일 프로세스 유형의 인스턴스, 및 상기 프로세스 인스턴스와 동일한 기본 키를 가지는 데이터베이스 오브젝트 인스턴스는 대응하는 키를 갖는 그러한 데이터베이스 오브젝트의 1차 복제를 유지하는 동일한 프로세서에서 그러한 프로세스 인스턴스를 실행시키도록 하기 위해 동일한 분산 유닛 유형을 참조하도록 만들어지는 것을 특징으로 하는 컴퓨터 제어 시스템.
KR1019970703855A 1994-12-09 1995-12-08 컴퓨터제어시스템 KR100421796B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9404296-7 1994-12-09
SE9404296A SE9404296D0 (sv) 1994-12-09 1994-12-09 Sätt och anordning vid telekommunikation

Publications (2)

Publication Number Publication Date
KR980700606A KR980700606A (ko) 1998-03-30
KR100421796B1 true KR100421796B1 (ko) 2004-06-04

Family

ID=20396282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970703855A KR100421796B1 (ko) 1994-12-09 1995-12-08 컴퓨터제어시스템

Country Status (11)

Country Link
EP (1) EP0796469A2 (ko)
JP (1) JPH10510377A (ko)
KR (1) KR100421796B1 (ko)
CN (1) CN1097786C (ko)
AU (1) AU699695B2 (ko)
BR (1) BR9509887A (ko)
CA (1) CA2206928A1 (ko)
FI (1) FI972408A (ko)
NO (1) NO972598L (ko)
SE (1) SE9404296D0 (ko)
WO (1) WO1996018145A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10035140A1 (de) * 2000-07-19 2002-01-31 Philips Corp Intellectual Pty System zur effizienten Übertragung von Teilobjekten in verteilten Datenbanken
US8156472B2 (en) * 2004-02-12 2012-04-10 Microsoft Corporation Process language for microprocessors with finite resources
CN102854853A (zh) * 2012-08-13 2013-01-02 北京和利时系统工程有限公司 一种跨平台轻量级的分布式控制系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0290828A2 (en) * 1987-04-24 1988-11-17 Hitachi, Ltd. Method of managing programs for distributed processing systems and apparatus therefor
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
JPH05204854A (ja) * 1991-07-16 1993-08-13 Alcatel Nv データ処理システム用ソフトウェア構造
JPH0667907A (ja) * 1992-08-20 1994-03-11 Fujitsu Ltd 計算機制御装置
JPH0675889A (ja) * 1990-08-14 1994-03-18 Digital Equip Corp <Dec> 分散不均一環境におけるサーバー機能の実行方法及び装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01101735A (ja) * 1987-10-14 1989-04-19 Mitsubishi Electric Corp アナログ−デイジタル変換二重化回路
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
DE69132012T2 (de) * 1990-10-16 2000-11-16 Consilium Inc Objektorientierte architektur für fabrikverwaltung

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062040A (en) * 1986-12-22 1991-10-29 At&T Bell Laboratories Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
EP0290828A2 (en) * 1987-04-24 1988-11-17 Hitachi, Ltd. Method of managing programs for distributed processing systems and apparatus therefor
JPH0675889A (ja) * 1990-08-14 1994-03-18 Digital Equip Corp <Dec> 分散不均一環境におけるサーバー機能の実行方法及び装置
JPH05204854A (ja) * 1991-07-16 1993-08-13 Alcatel Nv データ処理システム用ソフトウェア構造
JPH0667907A (ja) * 1992-08-20 1994-03-11 Fujitsu Ltd 計算機制御装置

Also Published As

Publication number Publication date
WO1996018145A3 (en) 1996-08-22
FI972408A0 (fi) 1997-06-06
CA2206928A1 (en) 1996-06-13
WO1996018145A2 (en) 1996-06-13
CN1097786C (zh) 2003-01-01
FI972408A (fi) 1997-08-04
EP0796469A2 (en) 1997-09-24
SE9404296D0 (sv) 1994-12-09
CN1169194A (zh) 1997-12-31
MX9704001A (es) 1997-09-30
NO972598L (no) 1997-07-18
KR980700606A (ko) 1998-03-30
NO972598D0 (no) 1997-06-06
JPH10510377A (ja) 1998-10-06
AU699695B2 (en) 1998-12-10
BR9509887A (pt) 1997-10-21
AU4277096A (en) 1996-06-26

Similar Documents

Publication Publication Date Title
US6061726A (en) Dynamic rights assignment apparatus and method using network directory services
US6438590B1 (en) Computer system with preferential naming service
CA2199108C (en) Parallel distributed processing system and method of same
US5838970A (en) Object-oriented computer environment and related method
US5655101A (en) Accessing remote data objects in a distributed memory environment using parallel address locations at each local memory to reference a same data object
US5133053A (en) Interprocess communication queue location transparency
EP0501610B1 (en) Object oriented distributed computing system
US20020087665A1 (en) Method and system for integrated resource management
US7555541B2 (en) Method and apparatus for managing configuration information in a distributed computer system
US5452433A (en) Common agent computer management system and method
CA2048306A1 (en) Distributed configuration profile for computing system
CA2310693A1 (en) System and method for reducing coupling between modules in a telecommunications environment
US5513355A (en) Control system of a switching system
US7590618B2 (en) System and method for providing location profile data for network nodes
EP0213276A2 (en) Dynamic updating of data base directories
KR100421796B1 (ko) 컴퓨터제어시스템
JP4265413B2 (ja) 仮想私設組織に対するポリシの実施システム及びその方法
US5941943A (en) Apparatus and a method for creating isolated sub-environments using host names and aliases
US5881227A (en) Use of daemons in a partitioned massively parallel processing system environment
US5615372A (en) Network definition modifying system
JP2872345B2 (ja) ネットワーク管理方法
CA1260151A (en) Propagation of network queries through superior- subordinate and peer-peer data distribution relationships
CN110727498B (zh) 一种虚拟网络功能的管理方法、nfvo、区块链节点及mano网元
US6829346B1 (en) Routing optimizations for telecommunications network system and method
JPH10187468A (ja) 並列分散処理システムおよびその方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080225

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee