KR20000042927A - 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법 - Google Patents

휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법 Download PDF

Info

Publication number
KR20000042927A
KR20000042927A KR1019980059224A KR19980059224A KR20000042927A KR 20000042927 A KR20000042927 A KR 20000042927A KR 1019980059224 A KR1019980059224 A KR 1019980059224A KR 19980059224 A KR19980059224 A KR 19980059224A KR 20000042927 A KR20000042927 A KR 20000042927A
Authority
KR
South Korea
Prior art keywords
signal
registration
signal handler
management table
registered
Prior art date
Application number
KR1019980059224A
Other languages
English (en)
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 윤종용
Priority to KR1019980059224A priority Critical patent/KR20000042927A/ko
Publication of KR20000042927A publication Critical patent/KR20000042927A/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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법에 관한 것으로, 복수의 모듈로부터 발생되는 시그널 핸들러를 등록 및 관리하기 위한 다중신호조정부를 구비하도록 하고, 상기 다중신호조정부가 모듈 및 인터페이스로부터 제공되는 명령에 의해 등록모드, 제거모드 및 호출모드를 각각 제어하도록 구현하였다. 그로 인해 본 발명은 모듈간의 의존성이 낮아지고 응용 프로그램 내의 시그널 처리 루틴이 단순화되는 장점과 더불어 코드의 재 사용성을 높이는 효과를 얻을 수 있다.

Description

휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법
본 발명은 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법에 관한 것으로, 특히 다수의 모듈로부터 요구되는 시그널 핸들러의 사용 요구를 등록 및 관리하여 다중 시그널을 조정하는 방법에 관한 것이다.
일반적으로 적어도 하나의 기능 모듈을 구비하고 있는 시스템의 경우 소정의 운영체제(OS; Operating System) 환경 아래에서 운용되며, 시스템을 구성하는 기능 모듈들의 경우에도 OS 환경에서 상호 연계성을 가져야 한다. 이때 상기 기능 모듈들은 시스템에서 서비스하는 기능들을 분담하여 처리하게 되는 구성을 통칭하는 의미로 사용된다.
한편, 상기 OS는 시스템을 사용하기 쉽게 하기 위해 유효하게 이용할 수 있도록 준비되어 있는 소프트웨어를 의미한다. 즉, 프로그램의 실행을 제어하고, 컴파일, 디버그, 입출력 제어, 기억 영역의 할당, 데이터의 관리 등 각종 서비스가 제공된다.
도 1은 종래 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 구성의 일 예를 도시한 도면이며, 여기서 시그널 핸들러는 지정된 시그널에 따른 처리를 행하는 알고리즘이라 할 수 있다. 상기 도 1에서는 설명의 편의를 위해 4개의 모듈만을 도시하였으나 모듈을 소정 개수로 구현이 가능하다는 것은 자명할 것이다.
한편, 앞에서 개시한 "휴대형 운영시스템 인터페이스(POSIX; Portable Operation System Interface) 상에서"라는 것은 "POSIX라는 운영체제를 시스템의 운영체제로 사용하고 있다"라는 의미가 되는 것이다.
상기 도 1에 도시한 모듈1∼4(110 내지 140)는 단일 시그널 핸들러(Signal Handler)를 사용하는데, 이는 서비스되는 다양한 시그널 형태 중 특정한 하나의 시그널 형태를 선택하여 사용하는 방식이다.
즉, POSIX 운영체제 하에서는 운영체제의 시그널을 이용하려는 응용프로그램이 자체적으로 운영체제의 API를 이용하여 시그널 발생시 호출될 함수(시그널 핸들러)를 지정하여야 한다. 그리고, POSIX 운영체제에서는 각 시그널에 대해 하나의 시그널 핸들러만을 저장하고 있다.
따라서, 교환시스템 등과 같이 대형 소프트웨어 프로젝터(Software Projector)에서는 응용프로그램의 각 모듈별로 필요한 시그널 핸들러를 구현하여 등록하게 되는데, 그 대상이 되는 시그널에 대해 타 모듈에서 이미 등록한 동일 시그널 핸들러가 있을 경우에는 그 처리 방법에 대한 대책이 있어야 한다.
그로 인하여 교환시스템 등과 같이 대형 소프트웨어 프로젝터에서 POSIX 운영체제를 직접 사용하는 경우 시그널 핸들러를 가지는 모듈간에는 복잡한 의존성을 가지게 된다.
그 이유를 도 1에 도시한 구성을 참조하여 보다 구체적으로 설명하면, 예를 들어 모듈 4(140)가 ①에서 POSIX 신호 인터페이스(150)로 특정 시그널 형태에 따른 시그널 핸들러의 등록을 요구하면 상기 POSIX 신호 인터페이스(150)는 등록된 시그널 핸들러가 호출될 시 상기 시그널 핸들러를 등록한 모듈 4(140)를 호출하게 된다.
이때, 도 1에 도시한 ②에서와 같이 모듈 3(130)에서 상기 모듈 4(140)가 사용하고 있는 시그널 핸들러의 사용을 요구하는 경우가 발생할 수 있는데, 이러한 경우 시스템은 단일의 시그널 핸들러를 채택하고 있음에 따라 두 모듈(140,130)이 동시에 동일한 시그널 핸들러를 사용할 수 없다.
따라서, 이러한 경우가 발생하게 되면 나중에 시그널 핸들러 사용을 요구한 모듈 3(130)은 ③에서 기존에 시그널 핸들러를 사용중인 모듈 4(140)에게 공유할 것을 알린 후 등록된 시그널 핸들러를 공유하기 위한 새로운 경로를 형성한다. 또한, ④에서는 기존에 모듈 4(140)에서 사용하던 경로는 차단된다.
상술한 바에서는 하나의 모듈의 경우를 예를 들어 설명하였으나 많은 모듈이 앞에서 개시한 바와 같이 시그널 핸들러를 공유하게 되면 공유를 위한 경로가 복잡해질 뿐 아니라 앞에서도 언급한 바와 같이 상호 모듈간의 의존성이 커지는 문제점이 있었다.
따라서 상기한 바와 같은 문제점을 해결하기 위한 본 발명의 목적은 복수의 모듈에서 동일한 시그널 핸들러의 등록이 가능하도록 하는 방법을 제공함에 있다.
본 발명이 다른 목적은 복수의 모듈로부터 발생되는 시그널 핸들러를 등록하여 호출 발생시 등록된 복수의 시그널 핸들러를 호출하는 방법을 제공함에 있다.
본 발명의 또 다른 목적은 복수의 모듈로부터 발생되는 시그널 핸들러를 등록한 관리 테이블을 특정 모듈의 제거 요구에 의해 해당 시그널 핸들러를 관리 테이블로부터 제거하는 방법을 제공함에 있다.
상기한 바와 같은 목적을 달성하기 위한 본 발명은 복수의 모듈로부터 발생되는 시그널 핸들러를 등록 및 관리하기 위한 다중신호조정부를 구비하도록 하고 상기 다중신호조정부가 등록모드, 제거모드 및 호출모드를 각각 제어하도록 구현하였다.
첫 번째로 상기한 목적을 달성하기 위한 본 발명에 따른 등록모드는, 모듈로부터 등록 요구와 함께 시그널 넘버와 시그널 핸들러 어드레스를 수신하고, 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 상기 시그널 핸들러 어드레스를 등록하는 과정으로 구현하였다.
두 번째로 상기한 목적을 달성하기 위한 본 발명에 따른 제거모드는, 모듈로부터 제거 요구와 함께 시그널 넘버와 시그널 핸들러 어드레스를 수신하여 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 등록된 상기 시그널 핸들러 어드레스를 제거하는 과정으로 구현하였다.
세 번째로 상기한 목적을 달성하기 위한 본 발명에 따른 호출모드는, 인터페이스로부터 호출 요구와 함께 특정 시그널 넘버가 수신되면 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 등록된 시그널 핸들러 어드레스를 순차적으로 호출하는 과정으로 구현하였다.
도 1은 종래 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 구성의 일 예를 도시한 도면.
도 2는 본 발명의 일 실시 예에 따른 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 구성의 일 예를 도시한 도면.
도 3은 본 발명의 일 실시 예에 따른 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 제어 흐름을 도시한 도면.
도 4는 도 3에 도시한 등록모드를 수행하기 위한 서브루틴을 도시한 도면.
도 5는 도 3에 도시한 제거모드를 수행하기 위한 서브루틴을 도시한 도면.
도 6은 도 3에 도시한 호출모드를 수행하기 위한 서브루틴을 도시한 도면.
이하 본 발명의 일 실시 예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
본 발명의 일 실시 예에 따른 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 구성은 도 2에 도시한 바와 같다. 상기 도 2를 통해 살펴보면, 본 발명의 일 실시 예에 따른 구성은 복수개의 모듈(210 내지 240)을 하나의 다중신호조정부(250)로 묶어 상기 다중신호조정부(250)를 통해 POSIX 신호 인터페이스(260)에 접속하도록 구성되어 있다.
상기 각 모듈(210 내지 240)은 운용자의 요구에 따라 특정 시그널 형태를 처리하기 위한 시그널 핸들러를 작성한 후 등록 요구를 행하거나 처리 종료에 따라 기존의 시그널 핸들러의 제거를 요구한다.
이때, 상기 다중신호조정부(250)는 각 모듈(210 내지 240)들로부터 등록 요구되는 시그널 핸들러들을 등록 요구한 모듈에 대응하여 관리하여야 하며, 사용이 종료될 시 제거 요구에 의해 해당하는 모듈에 대해 시그널 핸들러를 제거하여야 한다. 또한, 상기 POSIX 신호 인터페이스(150)로부터 특정 시그널 핸들러를 호출하는 호출 요구가 있을 시 호출된 시그널 핸들러를 등록한 모든 모듈을 호출하여야 한다. 내부 모듈(210 내지 240)이 아닌 상기 POSIX 신호 인터페이스(260)에 접속된 제3파티의 구성으로부터 특정 시그널 핸들러의 등록이 있은 경우에는 상기 POSIX 신호 인터페이스(260)로부터 등록된 시그널 핸들러를 요구하여 별도의 버퍼에 저장하여 관리한다. 상기 제3파티의 시그널 핸들러를 별도로 관리하는 것은 모듈(210 내지 240)로부터 동일한 시그널 핸들러의 등록 요구가 발생하는 경우 상기 제3파티의 시그널 핸들러를 해제하여야 하는 문제가 발생할 수 있기 때문이다.
상기 다중신호조정부(250)는 각 모듈(210 내지 240)로부터 발생되는 시그널 핸들러의 등록을 관리하기 위한 관리 테이블을 구비하여야 한다. 상기 관리 테이블을 이용하여 시그널 핸들러를 등록하거나 삭제 및 호출하는 일련의 동작은 도 3 내지 도 6에 도시한 제어 흐름에 의해 수행한다.
즉, 상기 다중신호조정부(250)는 도 3에 도시한 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리를 위한 제어 흐름을 구비한다. 또한, 상기 도 3에서 개시하고 있는 각 모드를 수행하기 위한 서브루틴을 가지는데, 등록모드를 수행하기 위한 서브루틴은 도 4에 도시한 바와 같다. 그리고, 제거모드를 수행하기 위한 서브루틴은 도 5에 도시한 바와 같으며, 호출모드를 수행하기 위한 서브루틴은 도 6에 도시한 바와 같다.
즉, 상기 다중신호조정부(250)는 각 시그널별로 시그널 핸들러를 저장하는 관리 테이블과, 모듈(210 내지 240)로부터 시그널 핸들러 등록 요구를 입력받아 관리 테이블에 등록하는 프로세스와, 모듈(210 내지 240)로부터 제거 요구를 입력받아 관리 테이블에 등록된 시그널 핸들러를 제거하는 프로세스와, 시그널 발생이 있을 때 해당 시그널에 등록된 시그널 핸들러를 호출하는 프로세스를 구비한다.
상기 POSIX 신호 인터페이스(260)는 상기 다중신호조정부(250)로부터 등록되었음을 알리는 정보(관리 테이블 인덱스 등)를 제공받아 관리하며, 상기 관리하고 있는 정보에 대응하는 신호 형태의 호출이 발생할 시 이를 상기 다중신호조정부(250)에 제공한다. 또한 제3파티로부터 특정 시그널 핸들러의 등록 요구에 의해 제공되는 시그널 핸들러 어드레스를 등록하여 관리하며, 상기 다중신호조정부(250)의 요구에 의해 상기 관리하는 제3파티의 시그널 핸들러 어드레스를 제공한다.
이하 상기한 구성을 참조하여 본 발명의 바람직한 일 실시 예에 따른 동작을 상세히 설명하면 다음과 같다.
다중신호조정부(250)는 도 3의 310단계 내지 314단계에서 외부로부터 제공되는 요구가 있는 가를 감시한다. 상기 310단계에서는 n개의 모듈(210 내지 240)로부터 특정 시그널 핸들러의 등록을 요구하는 명령이 제공되는 가를 감시하며, 312단계에서는 특정 시그널 핸들러의 제거를 요구하는 명령이 제공되는 가를 감시한다. 또한, 상기 314단계에서는 POSIX 신호 인터페이스(260)로부터 특정 시그널 핸들러의 호출을 요구하는 명령이 제공되는 가를 감시한다.
상기 등록 요구는 모듈이 특정한 시그널 형태를 사용하기 위한 시그널 핸들러를 사용 요구하는 시작 동작이며, 상기 제거 요구는 해당 시그널 핸들러의 사용이 완료됨에 따라 더 이상 해당 시그널 핸들러가 필요하지 않을 시에 행하는 종료 동작이다. 상기 호출 요구는 특정 시그널 형태에 해당하는 호출이 발생하는 경우에 호출된 시그널 형태에 대응하는 시그널 핸들러를 등록한 모듈의 호출을 요구하는 것이다.
상기 다중신호조정부(250)는 310단계에서 등록 요구의 수신을 감지하면 316단계로 진행하여 등록모드를 수행하고, 상기 312단계에서 제거 요구를 수신하면 318단계로 진행하여 제거모드를 수행하며, 상기 314단계에서 호출 요구를 수신하면 320단계로 진행하여 호출모드를 수행한다.
먼저, 316단계에서 수행되는 등록모드의 수행과정을 도 4에 도시한 등록모드 서브루틴을 참조하여 바람직한 일 예를 상세히 설명한다.
다중신호조정부(250)는 410단계에서 등록 요구한 모듈로부터 시그널 넘버와 호출을 원하는 시그널 핸들러 어드레스를 수신한다. 상기 시그널 넘버는 서비스를 원하는 시그널 형태를 선택하는 정보이며, 상기 시그널 핸들러 어드레스는 호출이 발생할 시 호출할 모듈의 시그널 핸들러를 지정하는 정보이다.
상기 410단계에서 시그널 넘버와 시그널 핸들러 어드레스를 수신하면 412단계로 진행하여 최초의 등록인가를 판단한다. 상기 최초 등록은 관리 테이블에서 상기 시그널 넘버에 대응하는 큐(Queue) 영역에 최초 시그널 핸들러 어드레스 등록을 의미한다.
따라서, 상기 최초 등록 여부를 판단하기 위해서는 관리 테이블에서 해당 큐를 찾는 동작이 선행되어야 하며, 이를 위해 모듈로부터 인가되는 시그널 넘버를 이용하게 된다.
상기 관리 테이블의 일 예를 표로서 도시하면 아래 <표 1>과 같이 나타낼 수 있다.
인덱스 시그널 넘버 시그널 핸들러 어드레스
1 Sig 1 SH 7
2 Sig 2 SH 5, SH 1, SH n
3 Sig 3
4 Sig 4
n-1 Sig n-1
n Sig n
상기 <표 1>을 참조하여 관리 테이블의 구성을 살펴보면, 인덱스는 관리 테이블을 관리하기 위한 정보이고, 시그널 넘버 영역은 시스템에서 사용되는 시그널 형태를 지정하는 시그널 넘버 정보를 저장하는 영역이며, 시그널 핸들러 어드레스 영역은 시그널 넘버에 대응하는 시그널 형태의 시그널 핸들러 등록을 요구한 모듈에 작성된 시그널 핸들러를 지정하는 시그널 핸들러 어드레스를 저장하는 영역이다. 상기 관리 테이블에 등록되는 시그널 넘버는 시스템에서 서비스되는 시그널의 종류에 의해 정의되는데, 상기 <표 1>에서는 n개의 시그널 종류를 정의하고 있다.
상기 412단계에서 최초 등록이라 판단하면 상기 다중신호조정부(150)는 414단계로 진행하여 상기 수신한 시그널 넘버에 대응하는 시그널 형태를 사용하기 위해 제3파티의 시그널 핸들러 어드레스가 등록하였는가를 검사한다. 상기 검사는 다중신호조정부(250)가 POSIX 신호 인터페이스(260)에 등록 여부 검사를 요구함으로서 이루어진다. 한편, 상기 제3파티는 시스템 외부에서 POSIX 신호 인터페이스(260)를 이용하기 위해 연결된 구성을 의미한다. 만약 상기 제3파티로부터 특정 시그널 넘버에 대해 시그널 핸들러 어드레스 등록 요구가 있을 경우 상기 POSIX 신호 인터페이스(260)는 상기 제3파티로부터 인가되는 시그널 핸들러 어드레스를 등록하여 해당 신호 형태에 따른 호출이 발생할 경우 등록된 시그널 핸들러 어드레스를 이용하여 호출하게 된다.
상기 다중신호조정부(260)에서 제3파티의 등록 여부를 검사하는 것은 앞에서도 개시한 바와 같이 관리 테이블에 등록된 시그널 넘버가 지정하는 시그널 형태와 동일한 시그널 형태에 대한 등록이 제3파티로부터 등록되어 있을 경우 상기 관리 테이블의 등록 또는 상기 제3파티에 의한 등록 중 선 등록된 어느 한 등록은 제거된다. 이는 이미 종래 기술을 설명함에 있어 개시한 바 있으므로 상세한 설명은 하지 않는다.
상기 414단계에서 시그널 넘버에 대한 등록 검사가 완료되면 상기 다중신호조정부(250)는 상기 POSIX 신호 인터페이스(260)로부터 검사 결과를 통보 받아 416단계에서 이미 제3파티로부터 해당 시그널 넘버에 대해 등록이 되어 있는 가를 판단한다.
만약, 상기 416단계에서 이미 제3파티로부터 등록이 되어 있는 경우에는 418단계와 420단계를 통해 상기 POSIX 신호 인터페이스(260)로부터 제3파티의 시그널 핸들러 어드레스를 제공받아 상기 관리 테이블과는 별도의 저장 매체에 등록한다. 즉, 상기 418단계에서 상기 POSIX 신호 인터페이스(260)로 제3파티의 시그널 핸들러 어드레스의 제공을 요구하여 요구한 시그널 핸들러 어드레스를 수신한다. 상기 수신이 완료되면 상기 420단계로 진행하여 모듈(210 내지 240)에 의해 등록된 시그널 핸들러 어드레스와는 별도로 등록한다.
하지만, 상기 412단계에서 최초 등록이 아니라고 판단하거나 상기 416단계에서 제3파티에 의해 이미 등록된 시그널 핸들러 어드레스가 없을 경우 또는 상기 420단계가 행하여진 후 상기 다중신호조정부(250)는 422단계로 진행한다. 상기 422단계로 진행한 다중신호조정부(250)는 상기 410단계에서 수신한 시그널 넘버에 대응하는 관리 테이블의 큐를 찾아 시그널 핸들러 어드레스 영역에 상기 410단계에서 수신한 시그널 핸들러 어드레스를 저장한다. 상기 큐는 관리 테이블에서 하나의 시그널 형태에 대응하는 인덱스, 시그널 넘버 영역 및 시그널 핸들러 어드레스 영역을 지칭하는 의미이다. 따라서, 상기 관리 테이블은 등록된 신호 형태와 동일한 개수의 큐가 존재하게 된다.
상기 422단계와 상기 420단계에서 호출이 발생할 시 호출할 시그널 핸들러 어드레스의 등록이 완료되면 상기 다중신호조정부(250)는 424단계로 진행하여 POSIX 신호 인터페이스(260)가 특정 신호 형태의 호출이 발생하는 경우 호출이 발생한 신호 형태에 대응하는 시그널 핸들러 어드레스들이 호출될 수 있도록 큐의 인덱스를 제공한다. 상기 POSIX 신호 인터페이스(260)가 호출 발생에 의해 호출할 큐의 인덱스를 상기 다중신호조정부(250)로 제공하는 동작은 종래 단일의 신호 핸들러 방식에서 이루어지던 기술임에 따라 상세한 설명은 하지 않는다.
한편, 상기 등록모드를 수행하는 중에 이미 특정 모듈에 의해 등록이 이루어진 시그널 넘버의 등록 요구가 다른 모듈로부터 발생할 경우가 있을 것이다. 이러한 경우의 동작을 상기 도 4에 도시한 과정을 동해 살펴보면, 410단계에서 상기 다중신호조정부(250)는 등록 요구한 모듈로부터 시그널 넘버와 시그널 핸들러 어드레스를 수신하게 될 것이다. 상기 수신을 완료한 후 상기 다중신호조정부(250)는 412단계로 진행하여 상기 수신한 시그널 넘버를 근거로 하여 상기 관리 테이블의 큐를 검사할 것이며, 상기 검사 결과 이미 다른 모듈에 의해 등록된 시그널 핸들러 어드레스가 존재하는 것을 감지하게 되면 최초 등록이 아니라고 판단하여 422단계로 진행하게 될 것이다. 따라서, 상기 422단계로 진행한 다중신호조정부(250)는 수신한 시그널 넘버에 대응하는 관리 테이블 큐의 시그널 핸들러 어드레스 영역에 이미 등록된 시그널 핸들러 어드레스 다음에 새로 수신한 시그널 핸들러 어드레스를 등록한다.
그로 인하여 다수의 모듈이 동일한 시그널 넘버에 대해 등록을 요구한다고 하더라도 앞서 등록한 모듈의 시그널 핸들러 어드레스를 제거하지 않고도 서비스가 가능하게 된다.
상기 원하는 시그널 핸들러 어드레스를 제거한 다중신호조정부(250)는 도 3에 도시한 메인 루틴을 리턴한다.
다음으로, 등록된 시그널 핸들러의 사용이 종료하는 경우 관리 테이블에 등록되어 있는 시그널 핸들러 어드레스를 삭제하는 제거모드의 수행과정을 도 5에 도시한 제거모드 서브루틴을 참조하여 바람직한 일 예를 상세히 설명한다.
다중신호조정부(250)는 510단계에서 제거 요구한 모듈로부터 시그널 넘버와 제거를 원하는 시그널 핸들러 어드레스를 수신한다. 상기 시그널 넘버와 시그널 핸들러 어드레스는 서비스를 원하는 시그널 형태를 선택하는 정보와 호출이 발생할 시 호출할 모듈의 시그널 핸들러를 지정하는 정보임은 이미 앞에서 개시한 바 있다.
상기 510단계에서 시그널 넘버와 시그널 핸들러 어드레스를 수신하면 상기 다중신호조정부(250)는 512단계로 진행하여 상기 수신한 시그널 넘버에 대응하는 관리 테이블의 큐를 찾는다. 상기 큐를 찾게 되면 상기 다중신호조정부(250)는 상기 수신한 시그널 핸들러 어드레스가 상기 찾은 큐의 시그널 핸들러 어드레스 영역에 등록되어 있는 가를 체크한다.
상기 체크에 의해 상기 수신한 시그널 핸들러 어드레스가 등록되어 있음을 감지하면 상기 다중신호조정부(250)는 514단계로 진행하여 큐의 시그널 핸들러 어드레스 영역에 등록된 해당 시그널 핸들러 어드레스를 제거한다. 상기 원하는 시그널 핸들러 어드레스를 제거한 다중신호조정부(250)는 도 3에 도시한 메인 루틴을 리턴한다.
다음으로, 시그널 핸들러 어드레스가 등록된 관리 테이블을 이용하여 호출을 행하는 호출모드의 수행과정을 도 6에 도시한 제거모드 서브루틴을 참조하여 바람직한 일 예를 상세히 설명한다.
POSIX 신호 인터페이스(260)는 특정 시그널 형태의 호출이 발생하면 상기 시그널 형태에 대응하여 상기 다중신호조정부(250)로부터 제공된 큐 인덱스를 상기 다중신호조정부(250)로 제공하여 해당 모듈 또는 제3파티로의 호출을 행하도록 한다.
상기 POSIX 신호 인터페이스(260)로부터 큐 인덱스(특정 시그널)를 제공받은 상기 다중신호조정부(250)는 610단계에서 이를 감지한다. 상기 큐 인덱스를 감지한 상기 다중신호조정부(260)는 612단계로 진행하게 되며, 상기 612단계에서 감지한 큐 인덱스를 이용하여 관리 테이블에 등록된 시그널 넘버와 그 대응하여 저장된 시그널 핸들러 어드레스를 검색한다. 한편, 상기 다중신호조정부(250)는 614단계에서 상기 검색에 의해 검색되는 시그널 핸들러 어드레스를 등록된 순서에 의해 순차적으로 호출한다. 상기 시그널 핸들러 어드레스는 특정 모듈에 의해 작성된 시그널 핸들러를 지정하는 것으로 상기 호출은 상기 시그널 핸들러 어드레스가 지정하는 모듈의 시그널 핸들러를 그 대상으로 한다.
상기 614단계에서 해당 큐에 등록된 모든 시그널 핸들러 어드레스로의 호출이 완료되면 상기 다중신호조정부(250)는 616단계와 618단계에서 별도로 등록된 제3파티를 지정하는 시그널 핸들러 어드레스가 존재하는 가를 검사하여 존재하는 경우 상기 POSIX 신호 인터페이스(260)를 통해 제3파티의 시그널 핸들러를 호출하게 된다.
이하 상술한 등록모드, 제거모드 및 호출모드에 의한 동작을 앞에서 관리 테이블의 일 예로 개시한 <표 1>에 등록된 시그널 넘버, 시그널 핸들러 어드레스를 참조하여 설명한다.
첫 번째로 등록모드를 살펴보면, 모듈 5는 제2시그널 형태의 등록을 위해 제2시그널 핸들러를 작성한 후 상기 제2시그널 형태를 지정하는 시그널 넘버 "SIG 2"과 모듈 5의 시그널 핸들러 어드레스를 지정하는 "SH 5"를 다중신호조정부(250)로 제공한다. 상기 다중신호조정부(250)는 이를 제공받아 "SIG 2"에 대응하는 관리 데이터 큐(인덱스 "2")에 등록된 시그널 핸들러 어드레스가 없으므로 POSIX 신호 인터페이스(260)로 제3파티로부터 등록된 시그널 핸들러 어드레스가 있는 가를 조사한다. 상기 조사에 의해 등록된 시그널 핸들러 어드레스가 존재하는 경우에는 등록된 시그널 핸들러 어드레스를 별도의 저장 매체에 등록한다. 하지만, 상기 조사에 의해 등록된 시그널 핸들러 어드레스가 존재하지 않거나 그에 따른 시그널 핸들러 어드레스의 별도 등록이 완료되면 관리 테이블의 상기 "SIG 2"에 대응하여 "SH 5"를 등록한다. 그 후 모듈 1로부터 "SIG 2"와 "SH 1"이 제공되면 상기 "SIG 2"에 대응하는 관리 테이블의 큐에 "SH 1"을 상기 SH 5"에 연속하여 등록한다.
상술한 등록모드에 의해 <표 1>에 도시한 바와 같이 관리 테이블이 작성된 후 모듈 1로부터 "SIG 2"와 함께 "SH 1"의 제거 요구가 제공되었다고 가정하여 보자. 이 경우 상기 다중신호조정부(250)는 "SIG 2"에 대응하는 관리 테이블의 큐를 검사하여 "SH 1"이 존재하므로 이를 관리 테이블로부터 제거한다.
한편, 상기 <표 1>에 도시한 바와 같은 관리 테이블을 참조하여 제2시그널 형태에 대해 호출이 발생하였다고 가정하여 보자. 이 경우 POSIX 신호 인터페이스(260)는 제2시그널 형태에 대응하는 관리 테이블 인덱스인 "2"를 상기 다중신호조정부(250)로 제공한다. 상기 인덱스 "2"를 제공받은 다중신호조정부(250)는 인덱스 "2"에 대응하는 관리 데이터의 큐의 시그널 핸들러 어드레스 영역에 등록된 "SH 5, SH 1, SH n"을 순차적으로 호출한다. 만약, 상기 등록된 "SH 5, SH 1, SH n"의 호출이 완료된 후 별도로 등록된 시그널 핸들러 어드레스가 존재하는 경우에는 별도로 등록된 시그널 핸들러 어드레스를 마지막으로 호출하게 된다.
상술한 바와 같이 본 발명은 다수의 모듈의 동일한 시그널 핸들러를 등록하여 사용할 수 있어 응용 프로그램 개발시 시그널을 사용하는 모듈간의 의존성이 낮아지고 응용 프로그램 내의 시그널 처리 루틴이 단순화되는 장점이 있다.
또한 하나의 시그널에 대해 다중 시그널 핸들러를 등록하고, 관리할 수 있도록 하는 다중신호조정부를 구현함으로서 다중신호조정부에서 지원하는 시그널을 참조하여 응용 프로그램을 개발할 수 있도록 함과 더불어 코드의 재 사용성을 높이는 효과를 얻을 수 있다.

Claims (5)

  1. 관리 테이블을 구비하여 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러를 관리하기 위한 방법에 있어서,
    모듈로부터 등록 요구와 함께 시그널 넘버와 시그널 핸들러 어드레스를 수신하고, 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 상기 시그널 핸들러 어드레스를 등록하는 등록과정과,
    상기 모듈로부터 제거 요구와 함께 시그널 넘버와 시그널 핸들러 어드레스를 수신하여 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 등록된 상기 시그널 핸들러 어드레스를 제거하는 제거과정과,
    인터페이스로부터 호출 요구와 함께 특정 시그널 넘버가 수신되면 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 등록된 시그널 핸들러 어드레스를 순차적으로 호출하는 호출과정으로 이루어짐을 특징으로 하는 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법.
  2. 제1항에 있어서, 상기 등록과정은,
    모듈들의 등록 요구를 감시하는 단계와,
    상기 등록 요구를 수신하면 등록모드로 전환하여 해당 모듈로부터 시그널 넘버와 시그널 핸들러 어드레스를 수신하는 단계와,
    상기 시그널 넘버에 대응하는 관리 테이블의 큐를 검사하여 첫 번째 등록인가를 판단하는 단계와,
    첫 번째 등록인 경우 상기 인터페이스를 호출하여 제3파티로부터의 등록이 있는 가를 검사하는 단계와,
    상기 제3파티로부터의 등록이 있는 경우에는 등록된 제3파티의 시그널 핸들러 어드레스를 상기 관리 테이블과는 별도의 저장 매체에 등록한 후 상기 수신한 시그널 넘버에 대응하는 관리 테이블의 큐에 상기 해당 모듈로부터 수신한 시그널 핸들러 어드레스를 등록하는 단계와,
    상기 첫 번째 등록이 아닌 경우에는 상기 시그널 넘버에 대응하는 관리 테이블의 큐에 상기 해당 모듈로부터 수신한 시그널 핸들러 어드레스를 등록하는 단계와,
    상기 제3파티로부터의 등록이 없는 경우에는 상기 시그널 넘버에 대응하는 관리 테이블의 큐에 상기 해당 모듈로부터 수신한 시그널 핸들러 어드레스를 등록하는 단계로 이루어짐을 특징으로 하는 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법.
  3. 제2항에 있어서,
    상기 등록과정에서 동일한 시그널 넘버로 서로 다른 모듈로부터의 등록 요구가 순차적으로 발생하는 경우 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 상기 등록 요구가 이루어진 모듈로부터 수신되는 시그널 핸들러 어드레스를 순차적으로 등록하는 과정을 더 구비함을 특징으로 하는 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법.
  4. 제3항에 있어서, 상기 호출과정은,
    상기 인터페이스로부터 호출 요구와 함께 특정 시그널 넘버가 수신되면 상기 시그널 넘버에 대응하는 상기 관리 테이블의 큐에 복수개의 시그널 핸들러 어드레스가 등록되어 있는 경우 상기 등록된 시그널 핸들러 어드레스를 등록 순서에 의해 순차적으로 호출하는 과정을 더 구비함을 특징으로 하는 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법.
  5. 제4항에 있어서, 상기 호출과정은,
    상기 별도로 등록된 시그널 핸들러 어드레스가 존재하는 경우 호출 요구된 관리 테이블의 큐에 등록된 모든 시그널 핸들러 어드레스를 호출한 후 마지막으로 호출하는 과정을 더 구비함을 특징으로 하는 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법.
KR1019980059224A 1998-12-28 1998-12-28 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법 KR20000042927A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980059224A KR20000042927A (ko) 1998-12-28 1998-12-28 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980059224A KR20000042927A (ko) 1998-12-28 1998-12-28 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법

Publications (1)

Publication Number Publication Date
KR20000042927A true KR20000042927A (ko) 2000-07-15

Family

ID=19566180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980059224A KR20000042927A (ko) 1998-12-28 1998-12-28 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법

Country Status (1)

Country Link
KR (1) KR20000042927A (ko)

Similar Documents

Publication Publication Date Title
US7508756B2 (en) Method and system for decreasing routing latency for switching platforms with variable configuration
US6678748B2 (en) Method for optimizing multiple input/output requests to a single logical device
EP1091294B1 (en) Method and apparatus for assigning resources to logical partition clusters
US7058743B2 (en) Method and device for dynamic interrupt target selection
US6986147B2 (en) Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment
US5737521A (en) Tracer system for analyzing errors in running real-time systems
US8090701B2 (en) Apparatus and system for communicating with multiple data stores
US5740359A (en) Program execution system having a plurality of program versions
KR20000042927A (ko) 휴대형 운영시스템 인터페이스 상에서 다중 시그널 핸들러의 등록 및 관리방법
CN116192776A (zh) 可自修复的报文保序方法、装置、终端及存储介质
US7536422B2 (en) Method for process substitution on a database management system
US5062046A (en) Multiple processor system having a correspondence table for transferring processing control between instruction processors
CN100538665C (zh) 多处理器系统、系统板和高速缓存替换请求处理方法
US11748074B2 (en) User exit daemon for use with special-purpose processor, mainframe including user exit daemon, and associated methods
CN112486421B (zh) 一种数据存储方法、装置、电子设备及存储介质
CN112488293B (zh) 运行深度学习网络的方法及装置
KR100420254B1 (ko) 데이터베이스관리방법
CN116226081A (zh) 数据库弹性伸缩方法、装置、电子设备及存储介质
KR100484875B1 (ko) 다수의동일기능장치제어시스템및그제어방법
JP2004086921A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
CN117743358A (zh) 一种用于处理话单资料查询的方法、装置及存储介质
JP2001236238A (ja) 割込処理方法
JPH02247748A (ja) マルチプロセッサによるデータベース処理方式
KR930010288B1 (ko) 전전자 교환기의 시스팀 라이브러리 이용방법
CN115421804A (zh) 一种基于kpu统一接口的数据管理方法、系统及装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination