KR100293797B1 - 분산운영시스템에서링크된프로세서의체인을해제시키는방법및시스템 - Google Patents

분산운영시스템에서링크된프로세서의체인을해제시키는방법및시스템 Download PDF

Info

Publication number
KR100293797B1
KR100293797B1 KR1019950703332A KR19950703332A KR100293797B1 KR 100293797 B1 KR100293797 B1 KR 100293797B1 KR 1019950703332 A KR1019950703332 A KR 1019950703332A KR 19950703332 A KR19950703332 A KR 19950703332A KR 100293797 B1 KR100293797 B1 KR 100293797B1
Authority
KR
South Korea
Prior art keywords
error
operating system
task
information
link
Prior art date
Application number
KR1019950703332A
Other languages
English (en)
Other versions
KR960701401A (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 KR960701401A publication Critical patent/KR960701401A/ko
Application granted granted Critical
Publication of KR100293797B1 publication Critical patent/KR100293797B1/ko

Links

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/54Interprogram communication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Selective Calling Equipment (AREA)
  • Control By Computers (AREA)

Abstract

분산 운영 시스템의 프로세스들간에 양방향 통신 링크를 설정하기 위하여, 상기 프로세서에는 포트가 제공되어 있는데, 이 포트를 통해서 상기 프로세스간에 통신이 수행된다. 상기 프로세스 및 포트는 운영 시스템이 링크를 갖는 프로세스에 대해 검사하도록 하며, 상기 프로세스 그 자체가 종료되는 경우 이들 링크를 또한 사용하도록 하고 상기 프로세스에서 에러를 발견하여 이를 종료시키도록 할 수 있다. 운영 시스템이 링크를 통해서 프로세스 또는 컴퓨터 중단에 관한 정보를 전송하도록 하여 링크된 프로세스의 모든 체인을 통해서 이 정보를 전달하도록 하고 이들이 응용 특정 방식(application specific measure)을 시작하도록 하기 위하여 상기 링크된 프로세스에서 실행되는 응용에 이 정보를 보고하도록 하기 위해선, 링크 실패(link abortion) 및 통신 에러라 칭하는 코드가 사용된다. 이 코드의 기능은 에러 있는 프로세스를 종료시키고 이 에러를 에러 처리 코드(error handling code)에 보고하는 것을 포함한다. 가장 먼저 언급된 코드는 항상 에러가 보고되는 프로세스에서 실행된다.

Description

[발명의 명칭]
분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법 및 시스템
[도면의 간단한 설명]
제1도는 분산 운영 시스템에서 작업들의 체인 형태로 활동도의 일예를 도시한 도면.
제2도는 여러 가지 이와같은 활동도에 의해 형성된 활동도 그룹의 예를 도시한 도면.
제3도는 자원들이 보다 짧거나 보다 긴 시간동안 활동도에 어떻게 속할 수 있는지를 도시한 도면.
제4도는 활동도의 링크 표현도.
제5도는 활동도에서 에러 결과가 활동도 자체와 분리될 수 있다는 것을 도시한 도면.
도6a 내지 6d도는 에러가 프로세스에서 나타날 때 활동도의 해제가 어떻게 수행될 수 있는지를 도시한 도면.
제7도는 시스템 업그레이딩을 도시한 도면.
제8도는 제1도에 따른 활동도에서 에러 추적 시스템의 설계를 도시한 도면.
제9도는 프로세스에서 에러 출현 상황에서 수행되는 액터(actors)를 도시한 도면.
제10도 내지 제13도는 프로세스 로컬 에러의 처리를 도시한 도면.
제14도 내지 제16도는 통신 에러의 처리를 도시한 도면.
제17도 내지 제19도는 다른 프로세스에서 에러의 처리를 도시한 도면.
제20도는 제6도 내지 제19도를 참조하여 서술된 에러 경우들의 합을 테이블로 도시한 도면.
[발명의 상세한 설명]
[발명의 분야]
본 발명은 일반적으로 분산 운영 시스템(distributed operating system)에서 프로세스 및 관계된 자원(resources)을 처리하는 것에 관한 것이다.
본원과 관련하여 컨텍스트(context)라 칭하는 프로세스는 운영 시스템에서의 자원을 의미하는데, 이 운영 시스템의 자원은 운영 시스템이 상기 프로세스에서 프로그램 코드를 실행하도록 하는 작업에 의해 사용될 필요가 있다. 이 프로세스는 프로그램 카운터, 메모리 공간 및 프로세스 레지스터 세트와 같은 여러 가지 필수불가결한 자원들을 작업에 제공한다. 이 프로세스는 한번에 단지 한가지 작업만이 실행되도록 함으로써 작업들을 동기화 시킨다.
보다 일반적으로, 작업이란 프로세스를 향하는 현상을 의미하는데, 그 결과 프로세스에 의해 소유된 오브젝트의 방법이 실행된다. 작업은 다른 프로세스 또는 자신의 프로세스를 향하는 새로운 작업을 생성할 수 있다.
[관련 기술의 설명]
US 3,905,023호는 다수의 레벨 운영 시스템을 포함하는 시스템을 설명한 것이다. 이 시스템은 매우 크고 대단히 복잡하다. 이 시스템 하드웨어의 신뢰성은 적절한 방식으로 시스템 모듈을 동적으로 그리고 자동적으로 재구성하는 다수의 레벨 운영 시스템의 능력에 의해 보장된다. 이 시스템의 모든 주요 모듈에서, 시스템 자원의 동적 재구성 및 에러 분석을 수행하기 위한 정보를 운영 시스템에 제공하는 에러 검출 및 에러보고 회로가 존재한다. 이 메모리 모듈에는 운영 시스템과 관계없이 "단일 비트" 에러 정정 능력이 제공된다. 이 운영 시스템은 기본적인 레벨 및 N개의 연속적인 레벨을 포함하는 것으로서 간주될 수 있다. 이 기본적인 레벨은 운영 시스템의 핵심으로서 규정된다. 이 운영 시스템의 각각의 레벨에서의 프로세스는 가장 가까운 보다 높은 레벨에서 생성되는 프로세스에 대해선 책임이 있지만, 그 외 임의의 다른 레벨에 대해선 책임이 없다. 운영 시스템은 동적으로 시스템 자원을 제어하고 다수의 프로그램 혼합에서 작업 또는 태스크(task)를 계획한다. 이것은 자원을 재할당하며, 작업을 시작하고 이들의 실행을 관리한다.
GB 2,079,997호는 상호 접속된 다수의 시스템을 갖는 분산 운영 시스템에 관한 것이다. 이 시스템 각각은 다수의 상호 접속된 요소를 갖는다. 이 시스템은 수직 어드레싱(vertical addressing)을 사용하는 동안 연산, 에러 관리 및 기능의 재구성을 위하여 분산 운영 시스템과 함께 용장 요소(redundant elements)를 포함한다. 에러가 검출될 때, 에러는 검증되며, 에러가 있는 요소는 분리되고 이 태스크는 또다른 점유되지 않는 요소에 할당된다. 다른 요소가 활용될 수 없는 경우, 이 시스템은 활용 가능한 요소들을 사용하는 동안 열화된 동작을 실행하기 위하여 재구성된다.
US 4,933,936호에는 유연성 있는 에러 허용한계를 제공하는 분산된 컴퓨터 시스템이 서술되어 있다. 분산 운영 시스템은 모든 컴퓨터에 상주한다. 각각의 컴퓨터는 공통 운영 시스템의 상주 복사(resident copy)에 의해 제어된다.
[발명의 요약]
컴퓨터에서, 통신 에러 또는 에러있는 프로그램에 의해 초래되는 에러들은 원래대로 유지하고 그 외 다른 프로그램 및 호출은 이 에러에 의해 영향받지 않도록 하는 방식으로 컴퓨터의 운영 시스템에 의해 처리될 수 있도록 하는 것이 바람직하다. 에러는 최악의 경우에 에러가 발생된 링크된 프로세스 또는 호출 체인의 제어된 해제를 포함할 것이다. 이 에러의 영향은 이 호출과 관계하여 완전히 분리될 것이다. 다른 말로서, 발생된 에러의 복구는 에러 자체에 의해 초래되는 결과보다 시스템에 대해 보다 큰 결과를 포함하지 않아야만 된다.
본 발명의 제1목적은 가능한 많은 메모리 및 하드웨어 자원을 시스템으로 리턴시키는 동안 분산 운영 시스템에서 링크된 프로세스의 체인을 해제하도록 하는 것이다.
본 발명의 제2목적은 에러를 분리시키고 복구 방식으로 인한 결과를 포함하는 이들 에러의 영향을 단지 문제의 트랜잭션/호출(transaction/call)로만 제한시키고, 가능하다면 컴퓨터 재시작 및 다른 호출에 영향을 미치는 것을 피하고자 하는 것이다.
본 발명의 제3목적은 에러가 시스템내 어느곳에 나타나는지 관계없이 에러를 추적하고자 하는 것이다.
본 발명의 제4목적은 시스템 갱신과 관계하여 소망의 프로그램 제품 버전에 대하여 이들 실행을 제어하도록 하기 위한 어떤 활동도(activities)의 타입을 표시하고자 하는 것이다.
일반적으로, 본 발명을 따르면, 분산 운영 시스템에서 프로세스들간의 양방향 통신 링크를 설정하기 위하여, 이 프로세스에는 포트들이 제공되어 있는데, 이 포트를 통해서 프로세스간의 통신이 수행된다. 이 프로세스 및 포트는 링크를 갖는 프로세스에 대해 검사를 유지하며, 만일 프로세스 자체가 종료되는 경우 이들 링크를 또한 사용하고 이 프로세스에서 에러를 발견하여 이를 종료시킬 수 있다. 운영 시스템이 링크를 통해서 프로세스 또는 컴퓨터 중단에 관한 정보를 전송하도록 하여 링크된 프로세스의 모든 체인을 통해서 이 정보를 전달하도록 하고 이들이 응용 특정 방식(application specific measure)을 시작하도록 하기 위하여 상기 링크된 프로세스에서 실행되는 응용에 이 정보를 보고하도록 하기 위해선, 링크 실패(link abortion) 및 통신 에러라 칭하는 코드가 사용된다. 이 코드의 기능은 에러있는 프로세스를 종료시키고 이 에러를 에러 처리 코드(error handling code)에 보고하는 것을 포함한다. 가장 먼저 언급된 코드는 항상 에러가 보고되는 프로세스에서 실행된다.
특히, 분산된 운영 시스템에서 자원을 처리하기 위한 본 발명을 따른 방법은 상기 프로세스들간에 양방향 통신 링크를 제공하고 상기 운영 시스템을 사용하는 단계와, 링크를 갖는 프로세스와 접촉하며, 링크를 갖는 프로세스가 종료되는 경우 상기 링크를 또한 사용하는 단계와, 프로세스에서 에러를 검출하여 이를 종료시키는 단계와, 프로세스 또는 컴퓨터 장애에 관한 정보를 상기 링크를 통해서 전달하여 링크된 프로세스의 모든 체인을 통해서 이 정보를 전파하는 단계와, 프로세스가 응용 특정 복구를 수행하도록 하기 위하여 상기 링크된 프로세스에서 실행되는 응용에 이 정보를 보고하는 단계를 포함한다.
본 발명을 따른 시스템은 코드 수단을 구비하는데, 상기 코드 수단은; 프로세스들간에 양방향 통신 링크를 제공하는 제1수단과, 상기 운영 시스템이 링크를 갖는 프로세스들과 접촉하도록 하여 프로세스가 종료되는 경우 상기 링크를 또한 사용하는 제2수단과, 상기 운영 시스템 또는 어떤 경우에 프로세스 그 자체가 프로세스내의 에러를 검출하여 이를 종료시키도록 하는 제3수단과, 상기 운영 시스템이 프로세스 또는 컴퓨터 장애에 관한 장애 정보를 상기 링크를 통해서 전달하도록 하고 링크된 프로세스의 모든 체인을 통해서 이 장애 정보를 전파하도록 하는 제4수단과, 프로세스가 응용 특정 복구를 수행하도록 하기 위하여 상기 운영 시스템이 링크된 프로세스에서 실행되는 응용에 상기 장애 정보를 보고하도록 하는 제5수단을 구비한다.
지금부터, 첨부한 도면을 참조하여 본 발명을 보다 상세하게 설명할 것이다. 전체 도면에서 동일하거나 유사한 소자들에는 동일한 참조 문자가 병기되어 있다.
후술된 설명 및 도면에서 특정 형태의 의사 구문(pseudo syntax) 표현뿐만 아니라 메세지 및 통신에 관한 당업자에게 친숙한 표현이 사용될 수 있다. 당업자에게는 이들 표현 및 구문 각각에 대한 보다 상세한 설명이나 해석이 필요치 않다.
사용된 활동도의 개념은 독립적인 외부 또는 내부 이벤트에 따라서 운영 시스템에서 생성된 작업의 체인 및 실행중 상기 체인에 의해 사용되는 자원의 합을 규정하기 위하여 사용된다.
제1도는 두명의 전화 가입자(A 및 B)간의 전화 교환기에서 이벤트로 인해 초래되는 바와 같은 일예의 작업 체인의 "로그(log)"를 도시한 것이다. 특히, 이 도면은 작업 체인 형태의 활동도 및 3가지 타입의 자원을 도시한 것이며, 활동도는 그 자체에, 즉 프로세스, 포트 및 가입자 장비에 부가될 수 있다. 특히, 도면에서 프로세스는 (2)으로, 작업은 (4)으로, 포트는 (6)으로 가입자 장비는 (8)으로 지정되어 있다.
화살표는 "캐스트(cast)" 메세지라 칭하는 비동기 통신 메세지(10) 및 호출 및 응답 메세지(12 및 14) 형태의 동기 메세지와 같은 작업 체인에서의 여러 메세지에 관계한다. 특히, 비동기 메세지는 프로세스가 응답을 대기함이 없이 그 실행을 전송하고 계속할 수 있는 메세지를 의미하며, 반면에 동기 메세지는 응답이 도달될 때까지 프로세스가 로크(lock)되는 것을 의미한다. 각각의 새로운 "캐스트" 메세지는 (4.2)과 같은 새로운 작업을 발생시키며, 이 작업 (4.2)은 자신을 생성시킨 작업 4.1과 동시에 존재할 수 있게 된다. 호출(12)은 또한 새로운 작업(4.6)을 발생시키는 반면에, 호출한 작업(4.5)은 일시적으로 중지된다. 새로운 작업(4.6)이 실행을 중단하고 응답 메세지(14)를 전송하고 나서야 비로서, 중단된 작업(4.5)이 계속될 수 있다.
"독립적인" 외부 이벤트는 시스템내의 어떤 활동도로 향하지 않는 이벤트를 의미한다. A-가입자가 전화 수화기를 든 경우, 이것은 새로운 활동도를 시작하는 독립적인 이벤트이다. B-가입자가 수화기를 든 경우, 이것은 독립적인 이벤트가 아닌데, 그 이유는 든 상태하에서 호출로 향하게 됨으로써 기존의 활동도를 향하게 되기 때문이다. A 또는 B 가입자가 수화기를 놓은 경우, 이 또한 마찬가지이다.
대부분의 내부 이벤트는 독립적이지 않다. 예를들어, 차변 펄스(debiting pulse)가 수신되는 경우, 이것은 활동도가 주기적인 시간 관리를 명령하고 이에 따라서 일시적으로 중단하는 "타임아웃" 작업을 생성시킨다는 사실의 결과이다. 이것은 활동도에 포함된다. 그러나, 어떤 내부적인 이벤트들은 독립적인 것으로서 간주되어야만 된다. 이것은 테스트 발생기로부터의 테스트 활동도의 시작 또는 트리거된 절대 시간 관리(타입 일깨움(type waking up), 루틴 테스트의 시작)와 같은 것에 적용할 수 있다. 체인내의 작업이 운영 시스템의 통신 매카니즘을 통해서 또다른 작업이나 호출에서 직접적으로 발생하도록 할 필요는 없다. 예를 들어, 어떤 시간 간격동안, 어떤 대기열(queue)에서 실행 또는 대기중인 활동도내에 작업이 존재하지 않을 수 있다. 이와 같은 경우에, 활동도를 규정하는 이하에 보다 상세하게 설명되는 링크 픽쳐만이 있다. 지금부터 새로운 작업이 활동도, 예를 들어 B 가입자의 라인 회로에 배타적으로 속하는 일부 자원으로부터 시작되는 경우, 이 작업(4.10)은 이 활동도에 속한다.
제2도를 참조하면, 오퍼레이터 또는 제3 파트(C)가 음성으로 접속되길 원하는 경우, "독립" 및 "종속"간의 구별은 매우 곤란할 것이다. 이벤트가 기존의 활동도(20)로 향하지만 우선적으로 새로운 활동도(22)를 생성시키는 것이 사실이다. 그리고나서, 이들 두 개의 활동도는 동일한 자원에서, 즉 A의 절반 호출 프로세스(24)에서 작업 체인 "모임(meeting)"에 의해 제2도에 개요적으로 도시된 "활동도 그룹"을 형성할 것이다. 그러나, 두 개의 활동도가 자원을 공유한다는 사실이 활동도 그룹을 형성하도록 하는 충분한 기준이 아니라는 것을 알아야만 된다. 많은 활동도(호출)는 이 때문에 동일한 복구 영역에 포함됨이 없이 액세스 프로세스를 공유할 것이다.
충분히 양호한 기준은 동적 프로세스를 공유하는 활동도가 활동도 그룹을 형성한다라고 간주되는 반면에, 이들 공유한 정적 프로세스는 그렇치 않다라고 간주된다. 정적 프로세스는 활동도가 프로세스를 공유하는 다른 활동도에 영향을 미치지 않고 복구되도록 견딜 수 있을 만큼 충분하게 강하다라고 간주된다.
제3도에 개요적으로 도시된 바와 같이, 활동도는 자신의 수명동안 보다 짧은 또는 보다 긴 시간동안 여러 자원들을 부가한다. 실행을 시작하는 작업(25)은 항상 타입 프로세스의 자원(26)를 부가한다. 수많은 경우에, 예를 들어 정적 시작 프로세스는 작업이 종료될 때 직접적으로 해제되지만, 보다 긴 시간동안 활동도에 부가될 수 있어, 동일한 활동도로부터의 새로운 호출이 나중 시점(30, 32)에 도달할 수 있도록 하며, 이것은 새로운 프로세스(34)가 부가되거나 분리된다는 것을 의미한다.
활동도가 통상적으로 부가하는 한가지 중요한 타입의 자원은 운영 시스템의 통신 매카니즘에 속하는 통신 포트이다. 모든 포트들은 프로세스에 속하고 각각의 포트는 대향되는 포트에 대한 참조(reference)를 갖는다. 포트들을 함께 링킹 함으로써, 활동도는 제4도에 따른 링크 픽쳐를 생성할 수 있는데, 이것은 포트(6)의 "소유자(owner)" 프로세스를 함께 유지시킨다. 이와 같은 방식으로, 활동도는 실행될 작업을 갖지 않는 시간동안 프로세스를 부가할 수 있다. 그러나, 이 "부가"는 프로세스에 어떠한 배타적인 액세스를 의미하는 것이 아니라는 점을 유의하라.
링크 픽쳐는 단지 노드 및 링크의 형태로 존재하는 것이라는 것을 인지하는 것이 중요하다. 따라서, 링크 픽쳐의 확장(extension) 및 존재(existence)의 지식을 갖는 집중 또는 균일 분산된 조정 기능(central or even distributed coordinating function)이 없다. 시스템에 존재하는 링크 픽쳐의 지식만이 각 포트에 존재하는 제한된 정보이다(노드는 링크 픽쳐에서 바로 이웃하는 것을 안다).
포트(6)는 또한 활동도에 대한 프로세스에서 관리되는 이와같은 자원들을 간접적으로 부가하기 위하여 사용될 수 있다. 제4도의 프로세스 "액세스 A"에서 실행되는 프로그램에서, 가입자(A)의 하드웨어와 접촉하는 포트(6) 및 링크 픽쳐에 간접적으로 속하는 포트(6)간에 내부 참조가 존재한다. 이와같은 "내부" 접속은 링크 픽쳐의 나머지와 함께 현재 프로세스를 종료시키는 것이 바람직하지 않을 때 필요로 될 수 있다. 전형적으로, 정적 프로세스는 링크 픽쳐의 해제를 (예를 들어 제6도) 보다 오래 지속시키는 것으로 예측된다.
물론, 링크 픽쳐의 존재동안 활동도에 부가될 수 있는 다수의 다른 타입의 자원이 존재하지만, 모든 이들 자원들을 함께 유지시킬 수 있는 것은 항상 링크 픽쳐 및 포트이다.
활동도에 속하는 자원 및 작업이 함께 유지된다는 사실로 인해, 시스템내에 새로운 타입의 "영역"이 형성된다. 도5에 도시된 바와같이, 이 영역(40)은 호출에 포함되는 모든 컴퓨터(42, 44, 46 및 48)를 "횡단(traverse)"하지만, 다른 한편으로 각각의 컴퓨터내에 한계가 정해져 있다. 우측 타입의 매카니즘의 지원으로 인해, 이 영역(40), 즉 활동도는 복구 영역으로서 매우 유용하게 사용될 수 있다.
에러의 결과 및 확장을 활동도내에서 유지시키기 위하여 제한하고 동시에 모든 점유된 자원이 해제된다는 것을 성취할 수 있다면, 최악의 경우 활동도에 의해 제어되는 호출을 분리시킬 수 있는 반면, 모든 다른 호출은 접촉되지 않은채로 남아있게 된다.
이것은 최소 복구 영역이 분리된 컴퓨터인 종래 기술의 기준에 따른 방법과 매우 상이하다. 호출에서 보다 중대한 에러가 있는 경우, 표준 방식은 컴퓨터를 재시작하는 것인데, 이 결과로 인해, 상기 컴퓨터에 속하는 모든 호출은 분리되어야만 된다.
링크 픽쳐의 프로세스들중 하나의 프로세스에서 중대한 에러가 나타나는 경우에, 통상적인 방식은 "호출 중지(call rests)"가 남아있지 않도록 하는 방식으로 전체 호출, 즉 활동도를 단절시키는 것이다. 목적이 단지 이것뿐이라면, 운영 시스템 자체로 이를 수행할 수 있다. 그러나, 응용이 이 해제를 처리할 수 있는 코드를 포함하는 경우 통화중 자원의 해제는 보다 유연하고 보다 신속하게 될 수 있다. 제6a도 내지 제6d도는 호출이 에러로 인해 단절될 때를 도시한 전형적인 도면이다. 이들 도면에서, 에러있는 프로세스는 (50)으로, 정적 프로세스는 (52)으로, 동적 프로세스는 (54)으로 지정되어 있다. 도시된 예에서, 이벤트의 체인은 3가지 단계, 즉 제6a, 6b 및 6c도 각각을 따라서 확장되고 정적 프로세스(52)만이 남아있는 제6d도에 도시된 조건을 발생시킨다. 특히, 모든 프로세스는 항상 우선적으로 화살표(58)에 따라서 그 자체를 종료시키기 전 링크를 통해서 "접속 중지"라 칭하는 차단 메세지(56)를 전송한다. 최종 언급된 단계에 대하여, 상기 지정 "컨텍스트 종료"가 사용된다.
활동도는 또한 시스템 갱신을 위한 클라이언트로서 동작할 수 있다. 활동도 전부 또는 부분은 프로그램 제품의 특정 버전을 실행하는 쪽으로 향할 수 있다. 예를 들어 프로그램의 새로운 버전이 설치된 경우, 어떤 시간동안 이 프로그램 버전을 사용하는 "테스트 활동도"를 생성할 수 있는 반면에, "정상적인" 활동도는 여전히 구 버전을 향하여 제어된다. 나중에, 새로운 프로그램 제품을 향하는 새로운 "정상적인" 활동도를 제어하도록 선택할 수 있다.
이것은 활동도가 "활동도 속성(activity attribute)"과 관계되는 것을 필요로 한다. 이 속성은 활동도 타입에 관한 정보를 갖은 필드를 포함하여야만 한다. 이 속성은 활동도내에 포함되는 작업 생성 자원, 시간 관리 및 모든 메세지를 추종하여야만 한다.
활동도를 갱신하는 시스템의 "관심 영역"은 작업 체인 및 작업 생성 자원(예를 들어, 액세스 프로세스 및 포트), 즉 시스템 갱신 속성을 포함할 수 있는 활동도의 부분이다. 링크 픽쳐는 시스템 갱신 관점에서 중요하지 않거나 가시화할 수 있는 것이 아니다.
제7도는 시스템 갱신 수행을 상세하게 도시한 것이다. 이 도면에서, 컨텍스트(A, B, C, D, E, E', F, F' G)가 도시되어 있다. 이들 컨텍스트 각각에서, 간결성을 위하여 대응하는 컨텍스트와 동일한 목적지를 갖는다라고 여겨지는 프로그램이 실행된다. 컨텍스트(A-D 및 G)에 단지 하나의 프로그램 버전이 존재하는데, 프로그램(A, D 및 G)은 구 버전이라고 간주되고 프로그램(B 및 C)은 새로운 버전이라고 간주된다. 각각의 프로그램(E 및 F)은 (E 및 E') 및 (F 및 F')에서 실행되는 두 개의 상이한 버전으로 존재한다.
시스템 갱신의 어떤 단계동안, 예를 들어 모든 "정상적인 트래픽"은 "구" 프로그램 버전, 즉 컨텍스트(E 및 F)를 향하여 진행하고 모든 "테스트 트래픽"은 "새로운" 프로그램 버전, 즉 컨텍스트(E 및 F')를 향하여 진행한다. 이 시스템을 따른 두 개의 버전들간의 시프트는 이동 가능한 것으로서 표시된 화살표(E" 및 F")로 도시되어 있다. 따라서, 테스트 트래픽의 실행은 도면에 도시되어 있다. 단지 하나의 프로그램 버전만이 존재하는 경우, 모든 트래픽은 컨텍스트(A-D 및 G)에 대하여 참인 이것을 향하여 반드시 제어될 것이다. 도면에 포함된 텍스트 "TEST"를 갖는 직사각형(UA)은 활동도에 포함된 상술된 시스템 갱신 속성을 표시한다.
운영 시스템의 통신 서비스는 활용가능하고 기존의 "지시 규칙(directing rules)"에 따른 호출을 제어하는 프로그램을 인지한다. 간단화된 예로서 도7에 따라서 사용되는 "규칙"만이 강조되었다.
에러를 추적하는 것이 필요로 될 때, 활동도는 또한 정보를 추적하는 캐리어로서 사용될 수 있다. 그러므로, 활동도 속성은 이 추적이 활성화되는지 여부를 표시하는 필드를 포함하고 추적동안 어느 이벤트 타입(예를 들어, 각각의 메세지 전송)이 관찰되어야만 되는지를 표시하기 위한 어떤 "가시성 속성(visibility attributes)"을 포함한다. 오퍼레이터의 명령에 따라서 속성 및 추적 아이덴터티는 활동도의 실행동안 어느 곳에서든지 그리고 언제든지 변경될 수 있다. 추적이 온되는 경우, 활동도는 추적 정보 버퍼의 형태로 자원을 부가한다. 이것은 또한 활동도를 따르고 활동도가 실행되는 모든 컴퓨터에서 활용될 수 있다.
도8에서, 도1을 따른 활동도의 시작된 추적은 보다 굵은 선(60)으로 표시되어 있다. 상술된 추적 속성은 직사각형(SA)으로, 텍스트는 "OFF" 및 "ON"으로 각각 표시되어 있는데, 이 "OFF" 및 "ON"은 속성이 각각 "오프"되고 "온"된다는 것을 표시한다. 활동도의 추적 시스템의 관찰은 시스템 갱신을 위한 관찰보다 더욱 제한된다. 작업 체인 부분, 즉 추적 속성이 (62)에서 시작된 후 다시 중단되는 시점(시점들)(64)까지 이어지는 부분들에만 이와 같은 관심이 향하게 된다. 작업 체인의 이 부분(60)은 실행 열(execution thread)이라 칭한다. 실행 열내에는 보여질 관심을 갖고 있는 어떤 이벤트만이 존재한다. 추적 속성은 변경 순간에서 자신의 크기를 변경시킨다.(SA')에서 5가지 경우로 나타나는 위치 "on"에서, 이 속성은 추적 정보를 갖는 버퍼(B)를 포함한다. 위치 "off"에서, 이와 같은 버퍼는 필요하지 않는다.
추적 속성은 판독될 수 있고 어떤 "추적 지점"에서 변경되는데, 이 추적 지점은 작업 체인의 확장에 따라서 양호하게 규정된 지점들내에 위치된다. 이들 추적 지점들의 일부는 삼각형(SP)으로서 제8도의 예로서 표시된다. 이 추적 지점은 활동도의 이벤트 경우에서 항상 호출되는 코드이다. 추적 지점은 이 호출동안 추적 버퍼의 내용을 판독할 수 있고 자신의 "가시성 속성"으로부터 이벤트가 보고되는지, 즉 추적 오퍼레이터가 가시화되는지를 결정한다.
존재할 수 있는 가시성 속성의 예는 "전송되는 각각의 메세지내의 내용을 보고"(이때, 각각의 포트에 위치되는 추적 지점은 이것에 관심을 갖는다) 또는 이와 같은 보고를 발생하는 각각의 프로세스에서 하나의 추적 지점에서 발생되는 "생성되는 각각의 작업에 아이덴터티를 보고"하는 것이다.
추적 지점이 이벤트를 보고하고 또한 추적 속성을 변경하도록 하기 위하여, 이들이 오퍼레이터, 즉 사람에 대한 인터페이스를 갖도록 하는 것이 필요로 된다. 이 통신이 수행되는 방법은 본 발명의 부분을 형성하지 않지만, 인터페이스를 통과하는 정보 타입을 인지하도록 설명될 수 있다.
오퍼레이터에 의해 추적 지점에 제공될 전형적인 명령은 "통과되는 모든 실행 열에서 추적 속성을 실행하고 추적 속성의 버퍼에 '보고 메세지 전송'을 갖는 가시성 속성을 배치하는"것이다.
추적 지점에 의해 오퍼레이터에 제공될 전형적인 보고는 "아이덴터티 XX 및 내용 xyz을 갖는 메시지가 포트 번호 ABC로부터 포트 번호 DEX로 막 전송된다"는 것이다.
링크 픽쳐 또는 부가적인 자원들은 추적의 관점에서 관심이 없다.
본 발명은 다음의 조건을 토대로 한 것이다.
- 활동도에 직접적으로 관계되는 모든 컴퓨터는 본 발명을 통해서 실행하는 데 필요로 되는 매카니즘을 지원하는 운영 시스템으로 작업되어야만 된다. 이와 같은 운영 시스템을 갖지 않는 컴퓨터는 활동도로부터 제어되는 사용 가능한 "자원"으로서 존재하여야만 된다.
- 운영 시스템의 통신 매카니즘은 에러 검출을 위한 진보된 수단 및 그 자체로서 공지된 에러를 사용자에게 보고하는 가능성을 갖도록 기대된다.
- 운영 시스템의 통신 매카니즘의 필요로 되는 확장은 피상적인 것보다 더 실행 및 전송 능력에 영향을 미치지 않아야만 된다.
- 시스템 및 자신의 하드웨어 구성요소는 복구 수단이 상대적으로 드물게 되도록 견고하게 된다고 간주된다. 빈번하고 대량의 복구는 시스템 활용도에 중대한 영향을 미친다.
본 발명은 :
- 컨텍스트 실패후 정적 프로세스가 어떻게 복구되는 지와,
- 어쨌든, 실패되거나 부분적으로 실패된 활동도를 회복하기 위한 지원과
- 활동도를 분리시키고 실행 자원을 리턴시키기 위한 기능성을 능가하면서 모든 복구가 응용 자체에 의해 수행되어야만 되는 것과,
- 타입 포트 및 컨텍스트의 실행 자원을 제외한 사용된 자원을 복귀시키는 어떤 매카니즘과 무관하다.
본 발명의 원리 및 아키텍쳐가 이하에 제공될 것이다. 차례로, 에러 상황에서의 액터(actors) 프로세스 로컬 에러의 처리, 통신 에러의 처리 및 다른 프로세스에서의 에러가 취급될 것이다.
에러 상황에서의 액터
이들은 그 자체가 공지되어 있는 예를 들어 프로그램 언어 C++로부터 컴파일 되고 여러 타입의 에러 상황이 나타난 경우에 실행될 수 있는 기계 해석 가능한 언어의 코드이다. 문제의 액터의 아래에 사용되는 명칭은 어떤 경우에 음절 "예외(exception)"로 나타난다. 이 음절은 특히 문제의 액터가 어떤 타입의 비정상적인 이벤트, 즉 예외적인 이벤트와 관련하여 실행되는 것을 표시한다.
- 에러처리기-
이것은 운영 시스템의 에러 처리기이다. 제9도에서, (66)는 오류 프로세스를 지정하고 (68)는 관계된 실행 코어(core)를 지정한다. 이웃하는 프로세스 및 관계된 실행 코어는 (70 및 72)으로 각각 지정되어 있다. 이 프로세스(66 및 70)는 (74)으로 표시된 바와 같은 포트(76 및 78)를 통해서 상호 통신한다.
(80 및 82)로 각각 표시된 "에러처리기" 자신의 태스크로서 제9도에서 (84 및 86)로 표시된 응용 자체뿐만 아니라 프로세서 하드웨어 및 실행 코어로부터 에러 표시를 수신하도록 한다. 이와 같은 표시의 경우에, "에러처리기"는 때때로 복구를 능동적으로 중재하고 제어할 수 있으며, 때때로 에러 수에 대한 통계를 유지하기만 한다. "에러처리기"는 두 개의 호출, 즉 응용(84)으로부터의 호출 "사용자제외"(88) 및 관리자 모드에서 실행되는 코어 기능의 부분으로부터의 호출 "보고에러"(90)를 통해서만 도달된다. 그리고 나서, 표시된 에러는 각각의 호출 다음의 파라미터로서 나타난다. "사용자에외"는 에러가 보고될 때 사용될 호출이다. 이 호출과 관계하는 파라미터로서, 어쨌든 에러 코드 및 텍스쳐 에러 정보는 나타나게 된다.
호출 "사용자제외" 및 "보고에러"에 따르는 "에러처리기"에 대한 모든 에러 코드는 활용 가능한 에러 정보, 즉 정상적으로 에러 코드 및 에러의 짧은 텍스쳐 디스크립션과 중첩될 것이다.
- "포트에외처리기"(92)
이것은 링크 실패 및 통신 에러의 경우에 호출되는 운영 시스템의 통신 매카니즘의 특정화된 제외 처리기이다. 이것의 즉각 복구 방식은 문제의 프로세스를 종료시키고 에러를 "에러처리기"에 보고하는 것이다. 그러나, 이 처리기는 응용 설계자에 의해 재기록되거나 또한 특정화되어 보다 적합한 복구를 수행하도록 한다. 이 제외 처리기는 에러가 보고되는 프로세스에서 항상 실행된다.
"포트제외처리기"에 대한 에러 호출에 관해서, 기능 "포트" 및 그것의 특정화에서 제외 호출 "처리제외"의 경우에 실행되는 코드의 명칭인데, 이것이 보다 상세하게 후술될 것이다.
- "응용제외처리기"(94)
이것은 에러를 검출한 후 응용이 제어를 다시 얻도록 하는 경우의 소위 응용의 특정화된 제외 처리기이다. 오류 복구 방식은 모든 자원을 리턴시켜 문제의 프로세스를 종료시키는 것이다. 그러나, 이 처리기는 응용 설계자에 의해 부가적으로 특정화되어, 보다 적합한 복구가 행해지도록 한다. 이 제외 처리기는 항상 에러가 나타나는 프로세스에서 실행된다.
"응용제외처리기"는 호출 "사용자제외"후 실행되는 코드의 명칭이다.
"응용제외처리기"는 통신 에러를 처리하는 것이 아니라 프로세스 로컬 실행에러만을 처리하는 것이다.
- "컨텍스트"=프로세스
특히, "컨텍스트"는 또한 어느 포트가 자신에 부가되는지에 대한 검사를 유지할 것이다. 프로세스가 종료, 정상적이든지 비정상적이든지 종료에 대한 명령을 받는 경우, 소유자 및 명령자 없이 그들을 종료시키거나 그들의 링크를 종료시키는 포트를 매우 빠르게 가리킬 것이다.
"컨텍스트"로의 호출은 "종료프로세스"이다. 이것은 문제의 프로세스를 제거하고 또한 그내에 포함된 모든 남아있는 포트들이 제거될 것이라는 것이다.
- "포트"
에러 처리와 관계하여, 포트는 여러 태스크를 갖는다 :
1) "삭제"를 수신하기 위하여 그리고 이를 수행하는 동안, 어쨋든 링크되어 있는 포트(78)로 "접속실패"를 송출한다(화살표 96).
2) 에러에 관한 정보와 함께, 다른 포트로부터 또는 "주게이트"(98)로부터의 에러 표시를 수신하여 "포트제외처리기"(92)를 호출한다.(화살표 100).
"포트"에 대한 에러 표시에 관하여, 다음이 적용된다 :
1) 활용 가능한 에러 정보를 포함하는 타입 "리턴메세지"의 메시지를 포트에 전송한다. 그리고 나서, 이 포트는 에러 코드와 함께 "포트제외처리기"를 호출할 것이다.
2) 활용 가능한 에러 정보를 포함하는 타입 "접속실패"의 메시지를 포트에 전송한다. 그리고 나서, 이 포트는 에러 코드 "접속에러"와 함께 "포트제외처리기"를 호출할 것이다.
3) 호출 "접속실패"는 정보를 링크되어 있는 포트가 더 이상 존재하지 않는 포트에 제공한다. 이것은 메시지 "접속실패"와 동일한 중요성 및 영향을 갖는다.
- "주게이트"(98)
이 "포트"는 운영 시스템의 통신 매카니즘에 의해 관심을 갖는 어떤 특정한 에러를 처리한다. 특히, 이를 처리할 수 있는 목적지 포트가 존재하지 않기 때문에, 잘못 어드레스된 메시지를 수신하여 처리할 수 있어야만 된다. 이와 같은 메시지가 도달될 때, 전송 포트를 향하는 타입 "리턴메세지"의 메시지를 생성시킨다. "주게이트"는 어떤 프로세스에도 접속되지 않는다.
- 컴퓨터 실행 성능 제어- "COECC"(102)
"COECC"는 자신의 태스크로서 서브넷에 속하는 모든 다른 컴퓨터의 상태를 인지한다. 에러 처리의 경우에, 단지 한가지 태스크만을 갖는데, 즉 장애가 있는 컴퓨터에서 포트를 향하는 링크를 갖는 포트를 찾은 후, "접속실패"로 이들을 호출하는 태스크를 갖는다. 메시지 "상태변경"은 서브넷에서의 컴퓨터가 자신의 상태를 변경하였다는 정보를 제공하는 것이다.
- "응용"(84) = (86)
이 표현 "응용"은 넓은 의미로 사용되는데, 즉 본원에 서술된 통신 매카니즘의 모든 사용자를 의미한다. 수많은 경우에, 이것은 에러 자체를 발견하여 보고하고 심지어 이들을 처리한다.
- "커널(Kernel)"(104) = (68) = (72)
커널이란 실행 코어를 의미한다. 이것은 에러를 "에러처리기"에 보고한다. 특히, "커널"은 운영 시스템의 통신 매카니즘의 어떤 부분을 포함하는데, 즉 "주게이트" 및 "포트"를 포함하는데, 그 이유는 이들의 에러 처리가 사용자 프로세스에 대해 실행하여 이로부터 에러를 보고하는 것을 포함하기 때문이다. "COECC"는 또한 "커널"의 부분이지만 별도로 도출되는데, 그 이유는 이것의 기능성이 에러 검출 경우에 특정한 관련성을 갖기 때문이다.
"커널"로의 특정한 에러 호출이 존재하지 않는다. "커널"이 에러 상황에서 작용하는 경우에, 이것은 단지 능동적인 역할을 한다.
다수의 에러 처리 상황이 제11도 내지 제19도를 참조하여 지금부터 후술될 것이다. 이들의 일반적인 내용과 관계하여, 이들 도면은 제9도에 대응하고 유사한 기능 및 현상을 나타내기 위하여 이 도면과 동일한 참조 문자가 사용한다. 문제의 도면에서 괄호내에 표시한 숫자는 각각의 도면에 표시한 기능 단계를 위한 순서를 나타낸 것이다.
프로세서 로컬 에러의 처리
- 응용에서의 실행 에러, 구성요소 또는 실행 코어에 의한 검출. 제10도에 참조되어 있다.
이 타입의 에러는 허용된 영역을 초과하는 어드레싱, 제로로의 분할, 오버플로우, 루프 등 일 수 있다.
현재 코어 기능(104)이 "보고에러"(1)를 통해서 (1) 운영 시스템의 "에러처리기"(80)로 에러 표시(90)를 전송하도록 하는 (종종 하드웨어) 차단(interruption)을 초래한다. 이와 같은 에러의 경우에, 프로세스는 항상 신뢰할 수 없는 것으로서 판단되므로 "에러처리기"는 "종료프로세스"를 (2) 차례로 "삭제"를 전송하는 프로세스 (3) 남아있는 포트에 전송한다. 이들은 차례로 자신들의 링크를 통해서 "접속 실패"를 전송한다. 정적 프로세스에 문제가 있는 경우, "에러처리기"는 동일한 타입의 새로운 프로세스를 생성하고 동일한 시작 루틴을 호출한다.
- 응용(84) 자체에 의해 검출된 응용에서의 실행 에러. 제11도에 참조되어 있다.
응용 프로그램(84)이 어떤 중대한 에러가 실행동안 발생된 경우, 이것은 통상적으로 "사용자제외"(88)를 통해서 "에러처리기"(90)를 호출하도록 초기화를 취한다. 이대, 프로세스는 에러 자체를 검출하여 보고할 수 있기 때문에 "신뢰할 수 있는" 것으로서 판단된다. 그러므로, "커널"(104)은 응용의 특정화된 "응용제외처리기"(94)로 제어 리턴하도록 하는 가능성을 갖는다. 그럼에도 불구하고, 이를 위한 오류 방식은 "종료프로세스"(2)로 프로세스를 종료시키는 것을 포함하여야만 되며, 이때 모든 것은 본 경우에 "삭제"(3) 및 "접속실패"(4)로 진행한다.
- 시스템 호출 경우의 에러. 제12도 및 제13도에 참조되어 있다.
중대한 에러가 시스템 호출(105)동안 코어(68)에 의해 검출되는 경우, 코어로부터의 리턴값은 (1) 제12도에 다른 이것을 표시할 것이다. "제외"(106)는 (2) 응용에 전달되어 응용 프로그램의 "응용제외처리기"(94) 자체는 에러(3)에 관심을 갖는다. 이 후에, 이 경우가 "종료프로세스"(4), "삭제"(5) 및 어쨌든 프로세스의 종료(8)와 함께 "접속실패"(6)에 관한 제11도를 참조하여 서술되어 있다.
그러나, 어떤 에러의 경우에, 코어(104)는 프로세스가 신뢰할 수 없다는 결론을 직접적으로 도출한다. 이와 같은 경우에, 코어는 제13도에 따라서 (1) 대신 "에러처리기"(80)에 직접적으로 보고하고 그리고 나서 이것은 프로세스(2)를 종료시킨다. 이 연속성은 제12도와 동일하다.
통신 에러 처리
- 손실 메시지
타입 "호출" 또는 "응답"의 메시지가 손실되는 경우, 이것은 해제되는 원래의 호출 부분의 시간 관리에 의해 검출될 것이다. "호출-응답"의 경우에, 이것은 시간 관리를 명령하는 호출 포트이고 이것이 해제될 때, 관련 에러 코드는 응답으로서 호출 "호출"로 리턴된다. 이 연속성은 제12도 및 제13도를 참조하여 앞서 서술된 바와 같이 장애 시스템 호출에 대한 것과 정확하게 동일하게 될 것이다.
손실 메시지가 "캐스트(Cast)"인 경우, 이것은 시간 관리를 명령하는 호출 응용을 대신한다. 이것이 해제될 때, 호출 부분은 제11도와 관련하여 이미 서술된 경우에서와 동일한 상황이 된다.
제14도를 참조하면, 손실 메시지는 또한 시퀀스 계산에 의해 검출된다. 예를 들어 "호출", "캐스트" 및 "응답"에 대하여, 다음이 나타나게 된다. 양방향 링크의 경우에, 이를 통해서 전송되는 모든 메시지들은 시퀀스 계산되어, 수신기가 이 계산의 갭을 검출할 수 있도록 한다. 다음이 발생할 수 있다. 호출 부분은 시퀀스 계산된 메시지를 전송하는데, 이 메시지는 도중에 손실된다. (1) 호출 부분은 자신의 다음 메시지를 전송하며, (2) 이것의 시퀀스 번호는 1로 증분된다. 수신 포트(76)는 이 계산의 갭을 검출하고 메세지를 손실된 번호에 관한 정보를 지닌 "리턴메세지"(3) 타입의 호출 부분(78)으로 전송한다. 포트(78)는 우선 "에러처리기"(82)를 호출하고 나서 에러 코드 "손실메세지"(5)를 갖는 "포트제외처리기"(92)를 호출하며, 이때 "포트제외처리기"는 어떤 형태의 복구를 행한다.
- 잘못 어드레스된 메시지. 제15도에 참조되어 있다.
(1) 어떤 이유로 에러있는 목적지 어드레스(공개되지 않은 포트명칭, 구 포트 참조 또는 이와 유사함)를 포함하는 메시지(130)가 "주 게이트"(98)에서 나타날 것이다. 그리고 나서, 이것은 메시지 (2) 타입 "리턴된 메세지"를 전송기의 포트(78)에 전송한다. 포트(78)는 우선적으로 "에러처리기"(82)(3)를 호출하고 나서 (4) 에러 코드 "활용할 수 없는 포트"와 함께 "포트제외처리기"(92)를 호출한다. 그 후에, 이 경우는 앞서 언급된 것으로 리턴한다.
- 분리된 접촉
또 다른 컴퓨터와의 접촉(74)이 파괴되면, 이것은 두 가지 방식으로 검출될 수 있다.
1) 제16도에 참조되어 있다. 발부된 메시지가 도달하지 않을 것이다. 대신에 이것은 도달되는 (1) 컴퓨터의 "주게이트"(98)에 나타나게 될 것이다. 전자의 경우와 같이, 이것은 "리턴된 메세지"를 전송기 포트(78) (2)에 전송할 것이며, 이때, 이 경우는 또 다른 에러 코드, 즉 "활용할 수 없는 컴퓨터"를 갖을지라도 제15도와 관련하여 서술된 전자의 경우로 리턴할 수 있다.
2) 전송기 포트의 링크 관리는 목적지가 더 이상 도달될 수 없다는 것을 검출하고 "제외처리기"(도시되지 않음)로의 "보고에러"와 함께 호출한다. 그 후에, 이 경우는 경우(1)와 동일하게 될 것이다.
다른 프로세스에서의 에러
자신 또는 다른 컴퓨터에서의 장애 프로세스. 제17도에 참조되어 있다.
프로세스(66)가 장애가 있지만(즉, "에러처리기"에 의해 종료됨) 여지 실행중에 있는 컴퓨터가 손상되지 않은 경우, (76)와 같은 모든 링크 포트는 (1) 자신의 링크를 통해서 "접속실패"를 송출할 것이다. 이것은 (2) 우선적으로 "에러처리기"로 그리고 나서 수신기 프로세스(70)의 "포트제외처리기"(92)로 에러 코드와 함께 호출을 발생시키는데, 상기 수신 프로세스는 오류 또는 특정화된 복구를 수행한다.
- 자신의 서브넷에서의 장애 컴퓨터. 제18도에 참조되어 있다.
자신의 서브넷에서의 컴퓨터가 장애가 있는 경우, "COECC"(102)는 "상태변경"(1)과 함께 그것에 관해서 바로 통지 받을 것을 것이다. 그리고 나서, "COECC"는 이 컴퓨터를 향하여 지시되는 링크를 갖는 포트를 발견하여 이들을 "활용할 수 없는 컴퓨터"(N)와 함께 호출할 것이다. 그리고 나서, 각각의 포트는 "활용할 수 없는 컴퓨터"와 함께 자신의 "포트제외처리기" 및 "에러처리기"를 호출한다. 그 후에, 이벤트의 코스는 동일한 타입의 다른 에러들과 유사하게 진행한다.
- 또 다른 서브넷에서의 장애 컴퓨터. 제19도에 참조되어 있다.
또 다른 서브넷에서의 컴퓨터가 장애가 있는 경우, "COECC"는 통지 받지 않을 것이다. 컴퓨터 소실은 도달하는 메시지가 없게 됨으로써 또는 운영 시스템의 링크 관리에 의해 검출될 것이다. 그러므로, 이 경우는 실제로 제16도를 참조하여 앞서 서술된 경우와 동일하고 동일한 방식으로 검출되고 취급된다.
- 다른 프로세스에서의 루프
무한 프로그램 루프가 두 가지 방식으로 검출된다.
1) "커널"은 루프를 검출하고 제10도와 관련하여 서술된 바와 같은 이벤트의 동일한 체인을 해제한다.
2) 호출 프로세스에서의 시간 관리가 해제된다. 그리고 나서, 이 경우는 상술된 바와 같은, 예를 들어 제14도와 같은 경우 "손실 메시지"로 통과한다.
제11도 내지 제19도를 참조하여 상술된 에러 경우들은 또한 제20도에서 요약된다. 이 테이블은 약어 IPC를 포함하는데, 이것은 운영 시스템의 통신 매카니즘에 관한 것이다.
도면과 관계하여 상술된 여러 에러 경우에서, 사용될 소프트웨어 및 하드웨어 또는 서술된 기능 및 프로세서가 실제로 어떻게 수행되는지에 대해선 상세하게 설명되지 않았는데, 그 이유는 명세서 및 도면을 통해서 본 발명을 어떻게 수행되는지가 당업자에게 자명하기 때문이다. 본 발명은 또한 공지된 운영 시스템에서 사용될 수 있고 어떤 특정한 하드웨어를 필요조건으로 하지 않는다.

Claims (14)

  1. (정정) 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법으로서, 프로세스는 응용이 실행될 수 있고 상기 프로세스에서 프로그램 코드를 실행시키는 작업에 의해 사용되어야만 되는 상기 운영 시스템의 자원을 의미하며, 상기 작업은 상기 프로세스에 의해 소유되는 오브젝트의 방법이 실행되도록 상기 프로세스로 향하는 현상을 의미하며, 작업은 또한 다른 프로세스로 향하거나 소유 프로세스로 향하는 새로운 작업을 생성할 수 있으며, 상기 프로세스는 자원을 작업에 제공하고 단지 하나의 작업을 한번에 실행시킴으로써 작업들을 동기화 시키는, 상기 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법에 있어서, 상기 프로세스들간에 양방향 통신 링크를 제공하고 상기 운영 시스템을 사용하는 단계와, 링크를 갖는 프로세스와 접촉하며, 링크를 갖는 프로세스가 종료되는 경우 또한 상기 링크를 사용하는 단계와, 프로세스에서 에러를 검출하고 이를 종료시키는 단계와, 프로세스 또는 컴퓨터 장애에 관한 정보를 상기 링크를 통해서 전달하고 링크된 프로세스의 모든 체인을 통해서 이 정보를 전파하는 단계와, 프로세스가 응용 특정 복구를 수행하도록 상기 링크된 프로세스에서 실행되는 응용에 이 정보를 보고하는 단계를 포함하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법.
  2. (정정) 제1항에 있어서, 링크된 프로세스의 체인에서 작업으로부터 작업으로 전송될 에러 추적 속성을 사용하는 단계를 더 포함하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법.
  3. (정정) 제2항에 있어서, 작업 체인의 실행동안 임의의 시간에서 상기 속성의 값을 변경시키는 단계를 포함하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법.
  4. (정정) 제2항 또는 제3항에 있어서, 상기 속성에 의해 추적되는 상기 시스템에 이벤트에 관한 정보를 기억시킬 수 있는 추적 버퍼를 상기 추적 속성에 제공하는 단계와, 상기 정보에 의해 상기 이벤트에 대한 로그(log)를 생성하는 단계를 포함하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법.
  5. (정정) 제1항 내지 제3항중 어느 한 항에 있어서, 시스템 갱신 기능을 상기 시스템에 제공하는 단계와, 상기 시스템에서 실행되는 트래픽 타입에 관한 상기 갱신 기능 내부의 정보를 운반할 수 있는 시스템 갱신 정보 속성을 제공하는 단계와, 특정 프로그램 버전의 결정이 실행 기회에서 실행되도록 하기 위하여 작업 체인에서 상기 정보 속성을 전달하는 단계를 포함하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 방법.
  6. (정정) 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템으로서, 프로세스는 응용이 실행될 수 있고 상기 프로세스에 프로그램 코드를 실행시키는 작업에 의해 사용되어야만 되는 상기 운영 시스템의 자원을 의미하며, 상기 작업은 상기 프로세스에 의해 소유되는 오브젝트의 방법이 실행되도록 상기 프로세스로 향하는 현상을 의미하며, 작업은 또한 다른 프로세스로 향하거나 소유 프로세스로 향하는 새로운 작업을 생성할 수 있으며, 상기 프로세스는 자원을 작업에 제공하고 단지 하나의 작업을 한번에 실행시킴으로써 작업들을 동기화 시키는, 상기 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템에 있어서, 프로세스들간에 양방향 통신 링크를 제공하는 제1수단과, 상기 운영 시스템이 링크를 갖는 프로세스들과 접촉하도록 하여 프로세스가 종료되는 경우 상기 링크를 또한 사용하는 제2수단과, 상기 운영 시스템 또는 어떤 경우에 프로세스 그 자체가 프로세스내의 에러를 검출하여 이를 종료시키도록 하는 제3수단과, 상기 운영 시스템이 프로세스 또는 컴퓨터 장애에 관한 장애 정보를 상기 링크를 통해서 전달하도록 하고 링크된 프로세스의 모든 체인을 통해서 이 장애 정보를 전파하도록 하는 제4수단과, 프로세스가 응용 특정 복구를 수행하도록 하기 위하여 상기 운연 시스템이 링크된 프로세스에서 실행되는 응용에 상기 장애 정보를 보고하도록 하는 제5수단을 구비하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  7. (정정) 제6항에 있어서, 통신 매카니즘과, 프로세스간의 통신을 수행할 수 있는 상기 제1수단에 포함되는 프로세스 포트와, 운영 시스템의 상기 통신 매카니즘에 의해 취급되어야만 되는 특정한 에러를 처리하기 위한 프로세스에 접속되지 않는 통신 포트를 구비하며, 상기 프로세스 포트는 에러 처리와 관계하여, 자신의 프로세스와 관계하는 "삭제" 명령을 수신하고 이 명령을 실행하는 동안 링크 분리 메시지를 링크되어 있는 임의의 포토에 전송하며, 다른 프로세스 포트로부터 그리고 임의의 통신 포트로부터의 에러 표시를 수신하고 이와 같은 에러 표시에서 에러에 관한 정보를 상기 포트에 전달하기 위한 상기 통신 매카니즘에서 코드를 호출하는 작업을 갖는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  8. (정정) 제7항에 있어서, 상기 제2수단은 프로세스 포트를 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  9. (정정) 제7항 또는 제8항에 있어서, 상기 제3수단은 상기 운영 시스템 및 프로세스를 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  10. (정정) 제7항 또는 제8항에 있어서, 상기 코드는 상기 제4수단에 포함되고 에러가 보고되는 프로세스에서 항상 실행되는 제외 처리 코드이고, 링크 실패 및 통신 에러의 경우에 호출되며, 에러있는 프로세스를 종료시키고 이 에러를 에러 처리 코드에 보고하는 기능을 갖는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  11. (정정) 제7항 또는 제8항에 있어서, 링크된 프로세스의 체인에서 작업으로부터 작업으로 전송될 에러 추적 속성을 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  12. (정정) 제11항에 있어서, 작업 체인의 실행동안 임의의 시간에서 상기 추적 속성의 값을 변경시키는 수단을 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  13. (정정) 제10항에 있어서, 상기 추적 속성은 상기 속성에 의해 추적될 때 상기 시스템에 이벤트에 관한 정보를 기억시키는 추적 버퍼와 관계되며, 상기 시스템은 상기 정보에 의해 사이 이벤트에 대한 로그를 생성시키는 수단을 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
  14. (정정) 제6항 내지 제8항중 어느 한 항에 있어서, 시스템 갱신 기능과, 상기 시스템에서 실행되는 트래픽 타입에 관한 상기 갱신 기능 내부의 정보를 운반하기 위한 시스템 갱신 정보 속성과, 특정 프로그램 버전의 결정이 실행 기회에서 실행되도록 하기 위하여 작업 체인에서 상기 정보 속성을 전달하는 수단을 구비하는 것을 특징으로 하는 분산 운영 시스템에서 링크된 프로세스의 체인을 해제시키는 시스템.
KR1019950703332A 1993-02-10 1994-02-02 분산운영시스템에서링크된프로세서의체인을해제시키는방법및시스템 KR100293797B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9300431A SE500940C2 (sv) 1993-02-10 1993-02-10 Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
SE9300431-5 1993-02-10
PCT/SE1994/000079 WO1994018621A1 (en) 1993-02-10 1994-02-02 A method and a system in a distributed operating system

Publications (2)

Publication Number Publication Date
KR960701401A KR960701401A (ko) 1996-02-24
KR100293797B1 true KR100293797B1 (ko) 2001-09-17

Family

ID=20388844

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950703332A KR100293797B1 (ko) 1993-02-10 1994-02-02 분산운영시스템에서링크된프로세서의체인을해제시키는방법및시스템

Country Status (17)

Country Link
US (1) US5606659A (ko)
EP (1) EP0683908B1 (ko)
JP (1) JPH08506673A (ko)
KR (1) KR100293797B1 (ko)
CN (1) CN1043093C (ko)
AU (1) AU674212B2 (ko)
BR (1) BR9406557A (ko)
CA (1) CA2155727A1 (ko)
DE (1) DE69422158T2 (ko)
DK (1) DK0683908T3 (ko)
ES (1) ES2142935T3 (ko)
FI (1) FI953776A0 (ko)
GR (1) GR3032896T3 (ko)
MX (1) MX9400916A (ko)
NO (1) NO311056B1 (ko)
SE (1) SE500940C2 (ko)
WO (1) WO1994018621A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE515344C2 (sv) * 1994-02-08 2001-07-16 Ericsson Telefon Ab L M Distribuerat databassystem
US5655961A (en) 1994-10-12 1997-08-12 Acres Gaming, Inc. Method for operating networked gaming devices
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
SE9404294D0 (sv) * 1994-12-09 1994-12-09 Ellemtel Utvecklings Ab sätt och anordning vid telekommunikation
US5594861A (en) * 1995-08-18 1997-01-14 Telefonaktiebolaget L M Ericsson Method and apparatus for handling processing errors in telecommunications exchanges
US5754865A (en) * 1995-12-18 1998-05-19 International Business Machines Corporation Logical address bus architecture for multiple processor systems
SE511875C2 (sv) * 1996-12-19 1999-12-13 Ericsson Telefon Ab L M Samtals och förbindelse kontroll
US6144367A (en) * 1997-03-26 2000-11-07 International Business Machines Corporation Method and system for simultaneous operation of multiple handheld control devices in a data processing system
US5974566A (en) * 1997-10-07 1999-10-26 International Business Machines Corporation Method and apparatus for providing persistent fault-tolerant proxy login to a web-based distributed file service
US6229526B1 (en) 1997-12-18 2001-05-08 International Business Machines Corporation Method and system for simultaneous operation of multiple handheld IR control devices in a data processing system
US7603448B2 (en) * 2000-12-15 2009-10-13 Wind River Systems, Inc. System and method for managing client processes
FI116166B (fi) * 2002-06-20 2005-09-30 Nokia Corp Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite
US7647522B2 (en) * 2006-09-28 2010-01-12 Microsoft Corporation Operating system with corrective action service and isolation
US8336045B2 (en) * 2007-11-29 2012-12-18 Mettler-Toledo, LLC Integration of an external software application(s) with a scale software application
CN101299677B (zh) * 2008-04-30 2010-12-01 中兴通讯股份有限公司 一种多进程共享同一服务进程的方法
CN103150236B (zh) * 2013-03-25 2014-03-19 中国人民解放军国防科学技术大学 面向进程失效错误的并行通信库状态自恢复方法
CN107133109B (zh) * 2017-04-24 2020-01-14 京信通信系统(中国)有限公司 一种模块间通信的方法、装置及计算设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
SE430733B (sv) * 1980-03-24 1983-12-05 Ellemtel Utvecklings Ab Sett och anordning for att under pagaende drift spara fel i ett berekningsforlopp
US4412281A (en) * 1980-07-11 1983-10-25 Raytheon Company Distributed signal processing system
US5165018A (en) * 1987-01-05 1992-11-17 Motorola, Inc. Self-configuration of nodes in a distributed message-based operating system
US4933936A (en) * 1987-08-17 1990-06-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Distributed computing system with dual independent communications paths between computers and employing split tokens
US4937825A (en) * 1988-06-15 1990-06-26 International Business Machines Method and apparatus for diagnosing problems in data communication networks
US5023873A (en) * 1989-06-15 1991-06-11 International Business Machines Corporation Method and apparatus for communication link management
US5260945A (en) * 1989-06-22 1993-11-09 Digital Equipment Corporation Intermittent component failure manager and method for minimizing disruption of distributed computer system
US5029169A (en) * 1989-07-11 1991-07-02 Bell Communications Research, Inc. Methods and apparatus for fault detection
DE69027491T2 (de) * 1989-08-01 1997-02-06 Digital Equipment Corp Verfahren zur Softwarefehlerbehandlung
US5117352A (en) * 1989-10-20 1992-05-26 Digital Equipment Corporation Mechanism for fail-over notification
US4993015A (en) * 1989-11-06 1991-02-12 At&T Bell Laboratories Automatic fault recovery in a packet network
JP2663687B2 (ja) * 1990-07-27 1997-10-15 日本電気株式会社 デュアルリング網におけるatm通信方式
US5193181A (en) * 1990-10-05 1993-03-09 Bull Hn Information Systems Inc. Recovery method and apparatus for a pipelined processing unit of a multiprocessor system
US5129080A (en) * 1990-10-17 1992-07-07 International Business Machines Corporation Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers
GB2260835A (en) * 1991-10-24 1993-04-28 Ibm Data processing system
US5394542A (en) * 1992-03-30 1995-02-28 International Business Machines Corporation Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered

Also Published As

Publication number Publication date
NO953084L (no) 1995-08-07
BR9406557A (pt) 1996-02-06
DK0683908T3 (da) 2000-04-10
DE69422158T2 (de) 2000-05-04
CA2155727A1 (en) 1994-08-18
SE9300431L (sv) 1994-08-11
AU6118394A (en) 1994-08-29
NO953084D0 (no) 1995-08-07
CN1043093C (zh) 1999-04-21
DE69422158D1 (de) 2000-01-20
AU674212B2 (en) 1996-12-12
CN1117766A (zh) 1996-02-28
WO1994018621A1 (en) 1994-08-18
ES2142935T3 (es) 2000-05-01
NO311056B1 (no) 2001-10-01
FI953776A (fi) 1995-08-09
SE500940C2 (sv) 1994-10-03
US5606659A (en) 1997-02-25
GR3032896T3 (en) 2000-07-31
EP0683908A1 (en) 1995-11-29
JPH08506673A (ja) 1996-07-16
FI953776A0 (fi) 1995-08-09
KR960701401A (ko) 1996-02-24
EP0683908B1 (en) 1999-12-15
MX9400916A (es) 1994-08-31
SE9300431D0 (sv) 1993-02-10

Similar Documents

Publication Publication Date Title
KR100293797B1 (ko) 분산운영시스템에서링크된프로세서의체인을해제시키는방법및시스템
US6026499A (en) Scheme for restarting processes at distributed checkpoints in client-server computer system
US5594861A (en) Method and apparatus for handling processing errors in telecommunications exchanges
JP2656708B2 (ja) 結合式データ処理システム用の方法および装置
US7207047B2 (en) System and method for recovering applications
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
KR20010072379A (ko) 내고장성 컴퓨터 시스템
US20080288812A1 (en) Cluster system and an error recovery method thereof
US7454761B1 (en) Method and apparatus for correlating output of distributed processes
US6185702B1 (en) Method and system for process state management using checkpoints
US20040078732A1 (en) SMP computer system having a distributed error reporting structure
EP0701209B1 (en) Apparatus and method for software rejuvenation
US5740359A (en) Program execution system having a plurality of program versions
US8595349B1 (en) Method and apparatus for passive process monitoring
US6173249B1 (en) Method of determining termination of a process under a simulated operating system
US7873941B2 (en) Manager component that causes first software component to obtain information from second software component
Ruth Concurrency in a decentralized automatic regression test selection framework for web services
CN112131088B (zh) 一种基于健康检查和容器的高可用方法
Higaki et al. Group communication protocol for flexible distributed systems
JP2003152722A (ja) 障害情報表示システム
JP3429559B2 (ja) システム版数切替え方式およびシステム版数切替え方法
Bracewell et al. A middleware for dependable distributed real-time systems
JPH02216931A (ja) 障害情報通知方式
JPH11238044A (ja) 計算機
Shin et al. A Case Study: Self-managed COTS Component-based Elevator System.

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: 20080401

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee