KR100594187B1 - 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법 - Google Patents

쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법 Download PDF

Info

Publication number
KR100594187B1
KR100594187B1 KR1019980059069A KR19980059069A KR100594187B1 KR 100594187 B1 KR100594187 B1 KR 100594187B1 KR 1019980059069 A KR1019980059069 A KR 1019980059069A KR 19980059069 A KR19980059069 A KR 19980059069A KR 100594187 B1 KR100594187 B1 KR 100594187B1
Authority
KR
South Korea
Prior art keywords
timer
item
thread
time period
intelligent network
Prior art date
Application number
KR1019980059069A
Other languages
English (en)
Other versions
KR20000042787A (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 삼성전자주식회사
Priority to KR1019980059069A priority Critical patent/KR100594187B1/ko
Priority to US09/472,562 priority patent/US6708197B1/en
Publication of KR20000042787A publication Critical patent/KR20000042787A/ko
Application granted granted Critical
Publication of KR100594187B1 publication Critical patent/KR100594187B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13052Multitasking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13107Control equipment for a part of the connection, distributed control, co-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13213Counting, timing circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13345Intelligent networks, SCP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13396Signaling in general, in-band signalling

Abstract

본 발명은 유닉스 시스템 환경하에 호 처리를 수행하는 지능망교환시스템에서 호 처리 수행을 이루는 태스크 수행시의 필요한 타이머 구동 방법에 관한 것으로, 특히, 쓰레드(Thread) 구조를 통해 태스크 수행을 이루는 유닉스 시스템 환경하의 지능망 교환시스템에서 보다 효율적으로 타이머를 구동할 수 있는 방법에 관한 것이다. 이러한 본 발명은, 생성된 해당 쓰레드에 각각에 대응하는 타이머 아이템과 상기 타이머 아이템의 헤드 아이템을 구비시키고, 상기 헤드 아이템은 헤드 정보와 타임 주기가 가장 짧은 타이머 아이템을 가리키는 프론트 포인트 영역을 구비하고, 상기 타이머 아이템은 생성된 해당 쓰레드에 대응하는 쓰레드 ID와 타이머 ID와 타임 주기가 저장되는 영역을 각각 구분하여 가지며, 각 타이머 아이템에 이전 순서 타이머 아이템의 존재 상태를 감지하는 리어 포인트와 다음 순서 타이머 아이템의 존재를 감지하는 프론트 포인트 영역을 구비하고, 상기 구현된 상기 헤드 아이템을 최우선 순위로, 상기 타이머 아이템 상호간에는 타임 주기가 짧은 순서로 하여 더블링크 리스트 구조를 갖도록 하는 과정과, 매초당 호출되는 타이머 구동 프로세스가 상기 헤드 아이템에서부터 순차적으로 타임 주기를 1씩 감소시키며 상기 각 타이머 아이템을 검색하는 과정과, 상기 검색 과정에서 타임주기가 0인 타이머 아이템을 검출하면, 해당 쓰레드로 타임아웃 사실을 통보한 후, 상기 타이머 아이템을 삭제하는 과정과, 프론트 포인트가 공백 상태인 타이머 아이템이 검출되면 타이머 리스트 검색을 종료하는 과정을 포함함을 특징으로 한다.

Description

쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법
본 발명은 유닉스 시스템 환경하의 지능망교환시스템에서 호 처리 수행시의 타이머 구동 방법에 관한 것으로, 특히, 쓰레드(Thread) 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머의 효율적인 구동 방법에 관한 것이다.
통상적인 교환시스템들이 자신의 구동을 위한 독자적인 OS(Operating System)를 통해 소정 호 처리를 수행하는 것과 달리, ITU-T Q.1200 시리즈 권고안에 따른 지능망(Advanced Intelligent Network ; AIN)교환시스템에서의 호 처리 수행은, 유닉스(Unix) 시스템과 같은 상용 OS를 사용하고, 상기 OS의 동작을 통해 생성된 서비스교환모듈(Service Switching Module ; SSM), 서비스제어모듈(Service Control Module ; SCM), 지능형정보제공시스템(Intelligent Peripheral ; IP )별로 해당 프로세스(Process)들이 각각 동작함으로 하여 수행된다. 상기 지능망교환시스템은 응용 서비스의 개발 기간 단축 및 비용 절감, 그리고 보다 신뢰성 있는 제품이 구현이 가능한 장점 하에 실시되고 있다.
한편, 지능망 교환시스템에서 호를 처리함에 있어 발생된 각각의 호에 해당하는 프로세스(Process)는 생성된 시점부터 종료시점까지 다양한 시점에서 타이머(Timer)를 필요로 하게 되는데, 이의 일 예로서는, 요청된 호에 대해 일정 시간내에 DTMF톤을 착신측으로 송출하여야 하는 경우, 교환기에서 가입 전화기로부터의 전화번호 입력을 대기하는 경우에 첫 번째 번호가 입력될 때까지의 대기시간, 그리고 그 다음 전화번호의 입력을 대기하게 되는 경우, 교환기와 교환기간의 시그널링(Signalling)을 정보 교환을 위한 대기시간 등 과 같은 호 처리 동작이 있다. 즉, 상기한 바와 같은 동작을 포함함과 동시에 호 처리 수행 동작에 있어 많은 타이머 관련 작업이 필요하게 된다. 이는, 지능망 교환시스템에서는 호를 처리함에 있어 필요한 프로세스(Process)가 생성되어 해당 동작을 수행하게 되는데, 기존에는 호를 처리함에 있어 생성된 각 프로세스마다 별도의 타이머를 할당하여 수행하도록 하고 있기 때문이다. 따라서, 호 처리 수행에 있어 각 프로세스마다 할당되는 타이머에 특정한 고유의 값을 주어 그 시간동안 생성된 프로세스가 동작하게 하는 과정을 반복 수행함으로 타이머 관련 작업이 수행되어 호 처리 동작이 수행될 수 있는 것이다.
한편, 상술한 바와 같은 지능망 교환시스템에 있어서, 유닉스 환경하에 쓰레드(Thread) 구조를 채택한 지능망 교환시스템이 구현되어 있는데, 쓰레드 구조를 채택한 지능망 교환시스템에서는 호 처리 동작을 수행함에 있어, 상기 유닉스 환경에서 최초로 그 쓰레드를 생성한 프로세스의 환경을 이어받도록 되어 있다, 따라서, 특정 프로세스에 의해 생성된 모든 쓰레드는 해당 프로세스에 할당된 하나의 타이머를 공유해야만 한다. 이러한 경우, 각각의 쓰레드가 서로 다른 주기(Period)의 시간 동안 동작할 수 있도록 타이머를 필요로 하게 되는데, 이를 지원하기 위해 타이머 구동 구조를 만들어야만 한다.
따라서, 종래 쓰레드 구조를 채용한 지능망 교환시스템에서는 상기한 바와 같은 타이머 구동 구조의 필요성을 만족하도록, 생성된 쓰레드 수와 일치 및 대응하는 항목이 포함된 테이블(Table)을 만들게 된다. 그런 후, 상기 테이블의 각 항목에 쓰레드 ID, 타이머 ID, 타임 주기(Time Period) 영역(Field)을 가지도록 하여 매초당 실행되는 태스크(Task) (Task/Second)로 하여금 상기 테이블을 순차적으로 검색하면서 각 항목별 타임 피리어드를 1씩 감소시키도록 한 후, 타임 피리어드 값이 0이 되는 경우 타임아웃(Time Out) 발생으로 인식하여 해당 쓰레드를 알리는 방식을 구현하고 있었다. 이의 실시예는 첨부된 도 1a 및 도 1b에 도시되어 있다. 도 1a는 초기상태의 타이머 테이블을 나타내는 도면으로, 앞서 설명된 영역이 쓰레드 ID 10, 타이머 ID 11, 타임 주기 12로 구분되어 있음을 보여준다. 그리고 상기 도 1a에 도시된 테이블은 초기상태 타이머의 테이블을 나타냄으로 각 항목이 공백(NULL)상태로 되어 있음을 보여주고 있으며, 따라서, 타이머 인입 포인터(Point To Insert Timer)가 첫 쓰레드의 테이블 영역을 지시하고 있음을 나타낸다. 도 1b는 타이머가 3개 구동 중일 경우의 쓰레드 테이블을 나타내는 도면으로, 타이머 인입 포인터가 3번째 쓰레드를 지나 4번째 쓰레드 테이블 영역을 지시하고 있음을 나타낸다.
그러나, 앞서 설명한 타이머 구동 방법, 즉, 상기 도 1a 및 도 1b에 도시된 바와 같은 종래 타이머 구동 방법에 있어서는, 생성된 쓰레드 개수에 맞추어 테이블을 생성시켜야 하므로 대용량의 메모리를 필요로 하게 되고, 동시에 생성된 테이블을 순차적으로 검색하여 타임아웃(Timeout)의 발생 여부를 검출하도록 되어있으므로 검색 시간 자체에 많은 프로세스 타임을 소모하게 되는 문제를 야기 시키게 된다.
이는 첨부된 도 2a 및 도 2b에 나타난 종래 타이머 구동 방법의 일 예들을 살펴보면 확연히 알 수 있다. 상기 도 2a는 종래 타이머 구동 방법에 있어 새로운 타이머를 추가하는 방법을 나타낸 흐름도이고, 도 2b는 종래 타이머 구동 방법에 있어 타임아웃 발생된 타이머를 처리하는 방법을 나타낸 흐름도 이다.
상기 도 2a를 먼저 참조하면, 210단계에서 타이머 테이블의 순차적인 검색 동작이 이루어진다. 그리고 212단계에서 쓰레드 ID 영역이 공백(NULL)상태인 항목을 검출하고, 214단계에서 쓰레드 ID 및 주기(Period)를 검출된 공백 상태의 해당 영역에 인입 한다. 그런 후, 216단계에서 해당하는 타이머 ID를 할당한다. 따라서 새로운 타이머가 추가되는 동작이 완료되는데, 이때 공백 상태인 항목을 검출하기위해 순차적으로 각 항목을 검색하는데 있어 검색시간이 많이 소요되는 문제를 발생시키게 된다. 상기 도 2a에 나타난 방법과 마찬가지로, 상기 도 2b는 타임아웃이 발생된 타이머를 처리하는 방법을 나타낸 흐름도로서, 이는 1초당 1태스크(TASK) (TASK/Second)의 수행 상태를 나타낸다. 상기 도 2b를 참조하면, 먼저, 220단계에서 타이머 테이블 각 항목의 타이머 주기를 1씩 감소시킨다. 그리고, 222단계에서 감소되는 타이머 주기가 0(Zero)이 된 쓰레드 테이블을 검출하고 검출된 테이블에 해당하는 쓰레드로 타임아웃이 발생되었음을 통보한다. 상기 통보 과정이 종료되면, 224단계에서 타임 아웃된 쓰레드 테이블 항목의 각 영역을 공백(NULL) 상태로 만든다. 그리고 226단계에서 테이블의 다음 항목으로 포인터값을 넘기도록 한다. 따라서, 타임아웃이 발생된 쓰레드에 해당하여 타이머가 삭제되는데 이때 모든 테이블을 순차적으로 검색하는 방법을 택하고 있으므로 검색시간이 많이 걸리는 문제가 발생하는 것이다.
결국, 상기 도 2a 및 도 2b에 나타난 바와 같이, 즉, 종래 쓰레드 구조를 채용한 지능망 교환시스템에서의 호 처리 수행 구조는 필요 없는 쓰레드 항목에 있어서도 테이블이 구현되어야 함으로 대용량의 메모리를 필요로 하는 단점을 가지게 되었고, 상기 테이블을 검색하는데 있어서도 모든 테이블 항목을 순차적으로 검색하여야 하는 등의 검색시간 증가 문제가 발생하였으며, 항상 고정된 테이블을 생성시켜야 하는 문제, 새로운 타이머의 추가가 필요한 경우 추가되는 포인터의 결정 문제, 타이머의 삭제 시 삭제된 곳의 처리 문제들을 해결하여야 함에 따른 시스템 자원의 낭비를 가지게 되었다.
따라서, 본 발명의 목적은, 쓰레드(Thread) 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 호 처리를 수행함에 있어 대용량의 메모리를 필요로 하지 않고도 신속한 검색 시간을 갖도록 하는 쓰레드 타이머의 효율적인 구동 방법을 구현함에 있다.
또한 본 발명의 목적은, 고정적으로 생성 가능한 쓰레드의 숫자에 따라 미리 타이머의 수를 정하지 않은 상태에서도, 필요에 따라 필요한 만큼의 타이머를 제공하고, 타이머를 필요에 따라 용이하게 삭제 및 추가 할 수 있는 방법을 제공함에 있다.
이러한 목적들은, 쓰레드 구조를 채용한 지능망 교환시스템의 호 처리에 있어 각 쓰레드를 위한 타이머 구동을 이루도록 하는 더블 링크 리스트 데이터 구조(Double Linked List Data Structure)를 채용하는 방법을 제안하며, 이에 따라 타이머 구동에 따라 필요한 메모리 용량의 감소와 타이머 검색을 위한 검색 시간의 감소를 이루는 방법의 제안을 통해 이루어지게 된다. 또한, 타이머 주기에 더해질 수 있는 오차가 감소되는 방법의 구현도 가능하게 한다.
이러한 목적들을 달성하기 위해 본 발명은, 생성된 해당 쓰레드에 각각에 대응하는 타이머 아이템과 상기 타이머 아이템의 헤드 아이템을 구현하고, 상기 헤드 아이템은 헤드 정보와 타임 주기가 가장 짧은 타이머 아이템의 리어 포인트를 가리키는 프론트 포인트 영역을 구비하고, 상기 타이머 아이템은 생성된 해당 쓰레드에 대응하는 쓰레드 ID와 타이머 ID와 타임 주기가 저장되는 영역을 각각 구분하여 가지며, 상기 각 타이머 아이템에 이전 순서 타이머 아이템의 존재를 감지하는 리어 포인트와 다음 순서 타이머 아이템의 존재를 감지하는 프론트 포인트 영역을 구비하고, 상기 구현된 헤드 아이템을 최우선 순위로, 상기 타이머 아이템 상호간에는 타임 주기가 짧은 순서로 하여 더블 링크 리스트 구조를 갖도록 한 후, 매초 당 호출되는 타이머 구동 프로세스가 상기 헤드 아이템에서부터 순차적으로 타임 주기를 1씩 감소시키며 상기 각 타이머 아이템을 검색하는 과정과, 상기 검색 과정에서 타임주기가 0인 아이템이 검출되면, 검출된 타이머 아이템에 해당하는 쓰레드로 타임 아웃 사실을 통보한 후, 상기 타이머 아이템을 삭제하는 과정과, 프론트 포인트가 공백 상태인 아이템이 검출되면 타이머 리스트 검색 동작을 종료하는 과정으로 이루어지는 쓰레드 구조를 채용한 지능망 교환시스템에서의 타이머 구동 방법을 제안한다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로서 이는 사용자 또는 칩 설계자의 의도 또는 관례 등에 따라 달라질 수 있으므로, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 이해를 돕기 위하여 쓰레드 구조를 채용한 지능망 교환시스템의 의 구현 배경 및 그 구성을 잠시 설명하고자 한다.
앞서 설명하였듯이, 통상적인 지능망(Advanced Intelligent Network ; AIN) 교환시스템에서의 일반적인 호 처리 수행은, 일반적인 교환기시스템들이 자신의 구동을 위한 독자적인 OS(Operating System)를 통해 소정 호 처리를 수행하는 것과 달리, 상용 OS를 사용하여 ITU-T Q.1200 시리즈 권고안에 따라 생성되는 서비스 교환기 모듈(Service Switching Module ; SSM), 서비스 제어 모듈(Service Control Module ; SCM), 지능형 정보제공 시스템(Intelligent Peripheral ; IP )모듈별로 여러개의 프로세스가 동작함으로 하여 이루어진다. 이는 응용 서비스의 개발 기간 단축 및 비용 절감, 그리고 보다 신뢰성 있는 제품이 구현되는 장점 하에 실시가 되고 있으며, 현 시점에서 상기 OS는 가장 널리 사용되는 유닉스(UNIX)시스템이 채용되어 사용되고 있다. 이러한 지능망 교환시스템에 구현된 호 처리 수행 구조는 한 호에 대해 유닉스의 제안에 따른 소정 프로세스(Process)를 생성하여, 생성된 각 프로세스가 독립적으로 호를 처리하는 방식을 택하고 있다. 즉, 한 가입자가 전화기를 훅-오프(Hook-Off)하게 되는 경우, 하드웨어적인 스위칭 시스템이 이를 감지하고, 그에 관련된 정보를 이벤트 메시지(Event Message) 형태로 해당 처리 모듈(Switching Message Handler)로 넘겨주고, 상기 해당 처리 모듈은 이 메시지를 받은 후 이를 호 처리 모듈로 넘겨주고, 호 처리 모듈은 한 호의 요청(Call Request Message)에 대해 유닉스 프로세스를 생성하도록 하는 것이다. 이때 한 호, 즉, 발신측과 착신측을 처리하기 위해 핼프 콜(Half Call) 개념을 사용하는데 이는 호의 발신측(Originating Part)과 착신측(Terminating Part)을 서로 다른 프로세스로 구분하여 이 두 프로세스간에 IPC(Inter Process Communication) 형태로 호를 처리하는 개념을 말하는 것이다. 그러나, 이와 같은 방식을 통해 호 처리를 수행하는 경우, 호의 양이 증가하면 시스템 상에 생성되는 프로세스가 수가 증가하게 되고, 생성된 프로세스 각각은 중앙처리장치의 처리 시간(CPU Time)을 일정시간 점유하여 해당하는 동작을 수행하게 되는데, 이러한 경우 각각의 호 처리 프로세스들은 유닉스 시스템의 타임 스케쥴링(Time Scheduling)에 의해 CPU의 일부 시간만을 할당받아 자신의 루틴(Routine)을 처리하게 된다. 이때, 유닉스 시스템 상에서 한 호가 형성될 때마다 해당 프로세스를 생성하고, 생성된 프로세스들 사이의 콘텍스트 스위칭을 처리하게 될 경우, 호 의 수가 증가되면 될수록 각 호의 처리 속도는 급격히 감소하게 되며, 새로 발생된 호에 대한 프로세스의 생성 속도가 감소되고 가입자의 호 요청에 대한 실제 호 연결까지의 지연(Delay)이 발생되는 문제가 발생한다. 그리고, 기본적으로 유닉스 시스템에서 시스템 호를 통한 프로세스의 생성은 시스템의 리소스(Resource), 즉, 메모리(Memory)영역, 스택(Stack)영역, CPU 레지스터(Register) 등과 같은 구성 요소들을 상대적으로 많이 사용하게 되는 문제가 발생한다. 이러한 구성 요소들은 프로세스간의 콘텍스트 스위칭시 전환되어야 할 데이터 량이 되는데, 이의 양이 많아지므로 지능망 교환시스템의 호 처리 능력을 감소시키게 되는 것이다.
결국, 종래 지능망 교환시스템에서의 호 처리 수행 구조가 발생 시켰던 교환시스템의 처리 용량, 호 처리 속도의 감소 문제를 해소하고자 유닉스 시스템 상의 쓰레드(Thread)에 의한 호 처리 구조로 전환하는 방식을 구현하게 되었는데, 이러한 방식에 의한 지능망 교환시스템이 쓰레드 구조를 채용한 지능망 교환시스템이다.
이하, 쓰레드 구조를 채용한 지능망 교환시스템을 잠시 설명하면, 우선, 쓰레드 구조를 채용한 지능망 교환시스템의 호 처리 수행 구조의 가장 큰 특징을 보면, 그 명칭에 나타난 바와 같이, 종래 지능망 교환시스템에서 호 처리 수행에 있어 채용하였던 프로세스에 의한 호 처리 구조를 유닉스 시스템의 쓰레드에 의한 호 처리 구조를 채용한 것이다. 호 처리 수행 구조에 있어 쓰레드 구조를 채용한다 함은, 종래와 같이 호 처리 수행을 위해 유닉스 시스템 호(Call)에 의한 소정 프로세스를 생성하여 생성된 프로세스에 의해 호 처리를 수행하지 않고, 대신 쓰레드를 생성하여 생성된 쓰레드(Thread)에 의해 호가 처리됨을 말하는 것이다. 즉 소정 프로세스에 의해 해당 쓰레드가 생성되고, 상기 생성된 쓰레드를 통해 호 처리 동작이 수행되는 것이다.
이와 같이 쓰레드(Thread) 구조에 의한 호 처리 수행의 특징은, 프로세스가 유닉스 시스템 호에 의해 생성되는 커널레벨실체(Kernel Level Entity)인데 반해 쓰레드는 프로세스에 의해 생성되는 사용자레벨실체(User Level Entity)이므로, 상기 쓰레드에 대한 억세스(Access)는 프로세스와 달리 시스템 호가 아닌 특정한 라이브러리(Library)에 의해 직접 억세스 되는 특징을 가진다. 한편, 상기 라이브러리를 통칭 쓰레드 라이브러리로 불린다. 또한, 프로세스가 또 다른 프로세스에 의해 생성되는 결과, 자신을 생성시킨 프로세스의 모든 코드(Code) 및 데이터(Data)를 별도로 복사(Copy)하여 사용하게 되는데, 한 프로세스에 의해 생성된 모든 쓰레드는 자신을 생성시킨 프로세스의 코드(Code) 및 데이터를 함께 공유한다. 이처럼 프로세스의 코드와 데이터를 공유하게 되면, 쓰레드가 타임스케줄러(Time Scheduler)에 의해 일정시간만을 CPU 시간(CPU Time)을 점유하게 되는 결과가 발생한다. 따라서, 쓰레드는 자신의 코드 및 데이터를 수행하고 난 다음, 다른 쓰레드로 전환되는 경우에도 스위칭 되어 지는 데이터의 양이 종래 프로세스에 비해 월등히 감소하게 되는 효과를 낳게 된다. 이는 종래 지능망 교환 시스템의 호 처리 수행 구조를 쓰레드 구조를 전환하는 가장 큰 원인이 된다.
결과적으로, 쓰레드 구조를 채택한 지능망 교환시스템에서의 호 처리 수행에 있어, 유닉스 시스템에서 제공하는 쓰레드 라이브러리를 통해 쓰레드를 생성하여 호 처리 수행 구조를 대체하므로, 쓰레드 생성에 소요되는 시간이 종래 사용되는 유닉스 시스템 호에 의해 프로세스를 생성하는데 걸리는 시간보다 월등히 빠르게 되는 결과를 낳는다. 그리고 생성된 쓰레드를 관리하기 위해 시스템에서 사용되는 리소스 량이 프로세스를 관리하는데 필요한 리소스 량에 비해 월등히 작게된다. 따라서, 쓰레드간의 콘텍스트 스위칭 타임이 줄어들며, 동일한 양의 호 처리 속도에 있어서 프로세스 구조 보다 빠른 특징을 가진다. 이는, 한 교환시스템이 처리할 수 있는 호의 수를 증가시킬 수 있음을 의미한다.
상술한 바와 같이 쓰레드 구조를 채택한 지능망 교환시스템에서의 호 처리 수행은 많은 양의 호가 요구되더라도 교환 시스템의 성능 저하 및 과다한 리소스의 발생에 의한 호 처리 속도의 저하 및 대용량 시스템의 필요성 발생 문제를 해결하는 효과를 가지게 된다.
한편, 상술한 바와 같은 쓰레드 구조를 채용한 지능망 교환 시스템을 구현함에 있어 생성되는 각 쓰레드들은 상기 쓰레드를 생성시킨 해당 프로세스에 할당된 하나의 타이머를 공유해야만 한다. 이러한 경우, 각각의 쓰레드가 서로 다른 주기(Period)의 시간 동안 동작할 수 있도록 별도의 타이머를 필요로 하게 되는데, 이를 지원하기 위해 타이머 구동 구조가 필요하게 되는데, 앞서 종래 기술에서 설명하였듯이, 생성된 쓰레드 수와 일치 및 대응하는 항목이 포함된 테이블(Table)을 만들어 타이머 구동을 처리하였는데, 이는 모든 테이블을 검색하여야 하는 등의 검색시간 소요가 증가되는 난점을 가지게 되었다.
이를 해결하기 위하여, 본 발명은, 타이머 아이템(Timer Item) 개념을 도입한다. 이는, 테이블 형식을 통한 각 쓰레드의 타이머 구동에 의해 발생하였던 불필요한 테이블 검색 시간의 소요 문제를, 필요에 따라 각각 고유한 타이머 값을 가질 수 있으며 동시에 필요에 의해 적절한 구동 순서가 정해질 수 있는 장점을 타이머 아이템 구조가 가지기 때문이다.
하기에, 첨부된 도 3 및 도 4, 도 5a, 도 5b를 참조하여 본 발명에 따라 제안된 타이머 구동 방법을 설명한다.
도 3은 본 발명에 따른 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 상태를 나타내는 도면으로서, 이는 앞서 언급한 타이머 아이템이 더블 링크 리스트(Double Linked List)로 구현되는 상태를 나타내는 도면이다.
상기 도 3을 참조하면, 생성된 해당 쓰레드 각각에 대응하는 타이머 아이템 32가 구현되어 있다. 상기 타이머 아이템 32는 생성된 해당 쓰레드에 대응하는 쓰레드 ID와 타이머 ID와 타임 주기(Period)가 저장되는 영역을 각각 구분하여 가진다. 그리고 상기 각 타이머 아이템 32는 이전 타이머 구동 순서를 가지는 아이템의 존재를 감지하는 리어 포인트(Rear Point)와 다음 구동 순서 아이템의 존재를 감지하는 프론트 포인트(Front Point) 영역을 구비하고 있게 된다. 상기 리어 포인트와 프론트 포인트는 더블 링크 리스트(Double Linked List) 구조를 구현함에 있어 각 타이머 아이템이 다른 타이머 아이템과 연결되도록 하기 위해 소정 용량의 정보 저장 영역을 가진다. 그리고 상기 타이머 아이템 32들과 별도로 최우선 검색 순위를 가지도록 지정된 헤드 아이템 30이 구현되어 있음을 나타내고 있으며, 마찬가지로 더 이상 각 쓰레드에 해당하는 타이머가 없음을 알려주는 공백 아이템 38이 더블 링크 리스트의 마지막에 구현되어 있음을 나타내고 있다.
한편, 상기 도 3은, 현재 4개의 타이머가 구동중이라고 할 경우, 타이머 링크 리스트 헤드(List Head)가 가리키는 아이템, 즉 헤드 아이템 30의 타임 주기가 가장 짧거나 혹은 현재까지의 프로세스 수행 경과 시간이 가장 길게 걸렸음을 나타낸다. 그리고, 이 헤드 아이템 30으로부터 멀리 놓여져 있는 아이템일수록 타임 피리어드가 더 긴 아이템임을 알 수 있다. 즉, 타임 주기 순서대로 링크 리스트가 구성되어 있음을 알 수 있고, 이는 타임 피리어드가 짧은 타이머 아이템을 먼저 검색하도록 한 것이다. 이는, 타임 주기 짧은 타이머 아이템일수록 프로세스 수행 종료 시간이 얼마 안 남았음에 기인한 것이다.
따라서, 상기 도 3에 도시된 바와 같이, 더블 링크 리스트 구조의 동작 방법은 매초당 콜 되는 타이머 구동 태스크(Task)가 헤드 아이템 30에서부터 순차적으로 검색하며 동시에 타임 주기를 1만큼 감소시킨다. 이러한 검색과정과 타임 주기의 감소 과정은 프론트 포인트(Front Point)가 널(Null) 아이템 38을 만날때까지 반복하여 수행하게 된다. 이와 같은 더블 링크 리스트의 동작은 이미 공지 공용되어 사용되는 유닉스 관련 서적 및 자료에 그 상세한 설명이 개시되어 있다.
한편, 상기 도 3에 도시된 바와 같은 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 방법을 나타내는 흐름도는 첨부된 도 4에 도시되어 있다. 즉, 도 4는 본 발명에 따른 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 방법을 나타내는 흐름도이다.
상기 도 4를 참조하면, 타이머 구동 동작이 시작되면, 410단계에서 타이머 링크의 헤더 포인트가 가리키는 소정 타이머 아이템의 타임 주기가 1 감소한다. 이 동작은 별도의 명령 및 요청이 없으면 계속하여 수행한다. 그리고, 412단계에서 상기 410단계의 동작 수행중 감소된 결과의 타임 주기가 0(Zero)인지를 판단한다. 상기 412단계에서 타임 주기가 0인 것으로 판단되면, 이는 타이머 구동이 종료되었음을 의미하므로, 413단계에서 타임 주기가 0이 된 해당 쓰레드로 타임아웃(Time Out)이 발생되었음에 대한 사실을 통보한다. 그러면, 415단계에서 상기 타임아웃이 발생된 타이머 아이템은 더블 링크 리스트에서 삭제되고, 삭제된 타이머 아이템의 전, 후 관계에 있던 다른 타이머 아이템들을 적절히 연결하도록 한다. 이러한 연결 동작은 각 타이머 아이템의 프론트 포인트 및 리어 포인트에 의해 수행된다. 하지만, 상기 412단계에서 타임 주기가 0이 되지 않은 것으로 판단되면, 414단계에서 검색 도중 타이머 아이템의 프론트 포인트가 가리키는 포인트 값이 공백(NULL)인 타이머 아이템을 만났는지를 판단한다. 즉, 타임 주기에 따라 각 타이머 아이템의 검색 및 타임 주기 감소 동작 수행중에 소정 타이머 아이템의 프론트 포인트가 공백 상태의 타이머 아이템을 만나는지를 판단하는 것이다. 상기 414단계에서 소정 타이머 아이템의 프론트 포인트 값이 공백 상태를 만나게 되면, 417단계에서 타이머 리스트 검색 동작을 종료시킨다. 즉, 공백 타이머 아이템은 더 이상 검색할 타이머 아이템이 없음을 의미하는 것이다. 다른 관점으로는 이미 생성되어 동작 수행중인 쓰레드들은 모두 다 검색하였다는 의미를 가지기도 하는 것이다. 그러나 상기 414단계에서 공백 상태의 타이머 아이템을 만나지 않게 되면, 즉, 프론트 포인트 값이 공백이 아닌 것으로 판단되면, 416단계에서 해당 타이머 아이템의 프론트 포인트가 가리키는 타이머 아이템으로 전환하도록 한다. 그리고 상기 410단계 동작을 반복하여 수행하도록 한다.
상기 도 4에 도시된 타이머 구동 흐름도를 요약하여 설명하면, 생성되어 해당 동작을 수행하는 쓰레드 개수만큼의 타이머 아이템이 생성되어 더블 링크 리스트로 구현된 상태에서, 상기 리스트를 검색하는 도중 타임 주기가 종료된 타이머 아이템이 발견되면 그 타이머 아이템을 삭제시키고, 동시에 그에 해당하는 쓰레드로 타임 아웃 사실을 통보시킨다. 그러면, 남은 나머지 타이머 아이템들은 더블 링크 리스트 구조에 따라 타임 주기 순서로 다시 구성되고, 검색 동작은 반복하여 수행된다. 또한 공백 상태의 아이템이 검색되면, 리스트 검색 동작을 종료시킨다.
첨부된 도 5a 및 도 5b에는 상기 도 4에 나타난 본 발명의 실시에 따른 타이머 아이템의 삭제 및 삽입 동작 상태의 일 예가 도시되어 있다.
도 5a는 본 발명의 일 실시 예에 따른 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 아이템 추가 구동 상태를 나타내는 도면으로서, 이는 상기 도 3에 도시된 더블 링크 리스트와 동일한 구조이다.
상기 도 5a에는, 타이머 아이템 51과 또 다른 타이머 아이템 53이 더블 링크 리스트 구조에 따라 서로 연결되어 있는데, 상기 두 타이머 아이템의 중간 타임 주기를 가지는 타이머 아이템 52가 발생되면, 발생된 상기 타이머 아이템 52는 상기 두 타이머 아이템 사이에 더블 링크 리스트 구조로 삽입되게 되는 동작이 나타나 있다. 상기 두 타이머 아이템의 프론트 포인트와 리어 포인트와 삽입된 타이머 아이템 52의 프론트 및 리어 포인트가 서로 더블 링크로 연결된다.
상기 도 5b는 상기 도 5a와 반대되는 동작 상태를 보여주는 도면으로, 이미 더블 링크 리스트 구조로 되어 있는 타이머 아이템 55, 56, 57 중에서 타임주기가 0이 된 타이머 아이템 56이 존재하는 경우, 상기 타이머 아이템 56은 더블 링크 리스트에서 삭제되고, 상기 삭제된 타이머 아이템 56을 제외하고 남은 타이머 아이템 55, 57이 새로이 더블 링크로 연결됨을 나타낸다.
결과적으로, 본 발명에 따른 타이머 아이템은 테이블 구조와는 달리, 새로운 타이머 아이템이 삽입될 경우 이 타이머가 가지는 타임 주기 값의 순서에 따라 적절한 위치에 삽입되고 타임아웃이 발생되거나 타이머 아웃이 발생된 타이머의 경우 어느 때에서든지 삭제가 가능하게 되는 것이다.
상술한 바와 같이 본 발명은 쓰레드 구조를 채용한 지능망 교환시스템에의 호 처리 수행 구조에 있어서 발생하였던 문제들, 즉, 필요 없는 쓰레드 항목에 있어서도 테이블이 구현되어야 하는 문제 혹은 테이블을 검색하는데 있어서 모든 테이블 항목을 순차적으로 검색하여야 함에 따른 검색시간의 증가 문제를 해소하는 이점을 가져다준다.
이는, 통상적인 유닉스 시스템 환경하에 구현되었던 더블 링크 리스트 개념을 지능망 교환시스템의 호 처리 구조에 도입함으로서 이루어질 수 있는 것으로, 실제 구현에 있어서도 용이하게 구현될 수 있게 된다.
도 1a 및 도 1b는 종래 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 상태 테이블을 나타내는 도면.
도 2a 및 도 2b는 종래 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 방법을 나타내는 흐름도.
도 3은 본 발명에 따른 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 상태를 나타내는 도면.
도 4는 본 발명에 따른 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 구동 방법을 나타내는 흐름도.
도 5a는 본 발명의 일 실시 예에 따른 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 아이템 추가 구동 상태를 나타내는 도면.
도 5b는 본 발명의 또 다른 일 실시 예에 따른 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머 아이템 삭제 구동 상태를 나타내는 도면.

Claims (2)

  1. 쓰레드 구조를 채용한 유닉스 시스템 환경하의 지능망 교환시스템에서 타이머의 구동 방법에 있어서,
    생성된 해당 쓰레드에 각각에 대응하는 타이머 아이템과 상기 타이머 아이템의 헤드 아이템을 구현하고, 상기 헤드 아이템은 헤드 정보와 타임 주기가 가장 짧은 타이머 아이템을 가리키는 프론트 포인트 영역을 구비하고, 상기 타이머 아이템은 생성된 해당 쓰레드에 대응하는 쓰레드 ID와 타이머 ID와 타임 주기가 저장되는 영역을 각각 구분하여 가지며, 각 타이머 아이템에 이전 순서 타이머 아이템의 존재 상태를 감지하는 리어 포인트와 다음 순서 타이머 아이템의 존재를 감지하는 프론트 포인트 영역을 구비하고,
    상기 구현된 상기 헤드 아이템을 최우선 순위로, 상기 타이머 아이템 상호간에는 타임 주기가 짧은 순서로 하여 더블링크 리스트 구조를 갖도록 하는 과정과,
    매초당 호출되는 타이머 구동 프로세스가 상기 헤드 아이템에서부터 순차적으로 타임 주기를 1씩 감소시키며 상기 각 타이머 아이템을 검색하는 과정과,
    상기 검색 과정에서 타임주기가 종료된 타이머 아이템을 검출하면, 해당 쓰레드로 타임아웃 사실을 통보한 후, 해당 타이머 아이템을 삭제하는 과정과,
    프론트 포인트가 공백 상태인 타이머 아이템이 검출되면 타이머 리스트 검색을 종료하는 과정을 포함함을 특징으로 하는 지능망 교환시스템에서의 타이머 구동 방법.
  2. 제 1 항에 있어서,
    상기 더블리스트 링크 구조에서 두 개의 타이머 아이템들의 중간 타임 주기를 가지는 타이머 아이템이 발생하면 상기 중간 타임 주기의 타이머 아이템을 상기 두 개의 타이머 아이템들 사이에 삽입하는 것을 특징으로 하는 지능망 교환시스템에서의 타이머 구동 방법.
KR1019980059069A 1998-12-26 1998-12-26 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법 KR100594187B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980059069A KR100594187B1 (ko) 1998-12-26 1998-12-26 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법
US09/472,562 US6708197B1 (en) 1998-12-26 1999-12-27 Method of driving timer in an advanced intelligent network switching system employing the thread call structure under UNIX system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980059069A KR100594187B1 (ko) 1998-12-26 1998-12-26 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법

Publications (2)

Publication Number Publication Date
KR20000042787A KR20000042787A (ko) 2000-07-15
KR100594187B1 true KR100594187B1 (ko) 2006-10-25

Family

ID=19566040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980059069A KR100594187B1 (ko) 1998-12-26 1998-12-26 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법

Country Status (2)

Country Link
US (1) US6708197B1 (ko)
KR (1) KR100594187B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103990A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Programmed load precession machine
JP2003345612A (ja) * 2002-05-28 2003-12-05 Sony Corp 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US7617497B1 (en) * 2004-08-30 2009-11-10 Sun Microsystems, Inc. Method and system for creating and using storage threads
JP4144609B2 (ja) * 2004-09-29 2008-09-03 ソニー株式会社 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム
US20060136886A1 (en) * 2004-12-16 2006-06-22 Bret Patterson Process and implementation for interrupting locked threads
JP7294430B2 (ja) * 2019-09-12 2023-06-20 サンケン電気株式会社 プロセッサ及びイベント処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817018A2 (en) * 1996-07-03 1998-01-07 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
JPH1063515A (ja) * 1996-08-26 1998-03-06 Nippon Telegr & Teleph Corp <Ntt> マルチタスク制御のスケジューリング方法
US5838957A (en) * 1996-02-01 1998-11-17 International Business Machines Corporation Multi-stage timer implementation for telecommunications transmission

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982749A (en) * 1996-03-07 1999-11-09 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6317872B1 (en) * 1997-07-11 2001-11-13 Rockwell Collins, Inc. Real time processor optimized for executing JAVA programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838957A (en) * 1996-02-01 1998-11-17 International Business Machines Corporation Multi-stage timer implementation for telecommunications transmission
EP0817018A2 (en) * 1996-07-03 1998-01-07 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
JPH1063515A (ja) * 1996-08-26 1998-03-06 Nippon Telegr & Teleph Corp <Ntt> マルチタスク制御のスケジューリング方法

Also Published As

Publication number Publication date
US6708197B1 (en) 2004-03-16
KR20000042787A (ko) 2000-07-15

Similar Documents

Publication Publication Date Title
US8850456B2 (en) Extended dynamic optimization of connection establishment and message progress processing in a multi-fabric message passing interface implementation
US5867704A (en) Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
EP0667011B1 (en) Data processing system and operating system
US6078945A (en) Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques
US4153934A (en) Multiplex data processing system
KR100594187B1 (ko) 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법
EP0676693B1 (en) Method and system for dynamically selecting a communication mode
CN112579323A (zh) 一种异构多核的异步通信方法及装置
WO2023125359A1 (zh) 一种任务处理的方法及装置
US5430874A (en) Control method and system for managing memory control blocks of programmed tasks in a multi-processing system
KR100539907B1 (ko) 지능망교환시스템에서 쓰레드에 의한 호 처리 수행 구조 및방법
CN111258937A (zh) 一种环式链表dma的传输方法及系统
US5925121A (en) Data processing system and method for accessing a common data memory
JP3280676B2 (ja) 提供目的別呼処理タスク取り出し方法
CN112379941B (zh) 一种基于Linux内核的双系统设置项管理系统及其管理方法
CN115277842B (zh) 一种多分区网管下沉通信方法
KR920005134B1 (ko) 공통선 신호장치의 신호링크 기능 스케듈러부 구현 방법
CN114416395A (zh) 一种跨交换芯片acl管理方法及其系统
JP2004086921A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
CN111949687A (zh) 基于共享内存和多进程的分布式数据库架构及其实现方法
JP2001236238A (ja) 割込処理方法
CN116107929A (zh) 一种数据访问方法、装置、存储介质及电子设备
JPH0388041A (ja) タスク切り替え方式
CN114217747A (zh) 文件传输的控制方法、装置、存储介质和设备
CN117950826A (zh) 任务处理方法、装置、设备及存储介质

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160530

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee