KR970008524B1 - 멀티프로세서 시스템의 시스템 자원 할당 제어 방법 - Google Patents

멀티프로세서 시스템의 시스템 자원 할당 제어 방법 Download PDF

Info

Publication number
KR970008524B1
KR970008524B1 KR1019870014588A KR870014588A KR970008524B1 KR 970008524 B1 KR970008524 B1 KR 970008524B1 KR 1019870014588 A KR1019870014588 A KR 1019870014588A KR 870014588 A KR870014588 A KR 870014588A KR 970008524 B1 KR970008524 B1 KR 970008524B1
Authority
KR
South Korea
Prior art keywords
processor
allocation
flag
block
program
Prior art date
Application number
KR1019870014588A
Other languages
English (en)
Other versions
KR880008186A (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 KR880008186A publication Critical patent/KR880008186A/ko
Application granted granted Critical
Publication of KR970008524B1 publication Critical patent/KR970008524B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

없음

Description

멀티프로세서 시스템의 시스템 자원 할당 제어 방법
제1도는 본 발명을 사용하기 위한 멀티프로세서의 블록도.
제2도는 상기 제1도의 멀티프로세서에 의해 구현되는 프로세서 할당 기능의 플로우챠트.
제3도는 상기 프로세서 할당 기능으로 사용된 시스템 플래그를 포함하는 플래그 구조의 테이블도.
제4도는 컴퓨터(101)의 PM 기능부(108)에 전달된 플래그 및 파라메타의 테이블도.
제5도는 제4도의 일부를 더 상세히 도시한 도면.
제6도는 제4도의 또 다른 부분을 더 상세히 도시한 도면.
제7도 내지 13도는 제2도의 플로우챠트에 의해 수행된 기능을 더 상세히 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
101 : 컴퓨터108 : PM 기능
본 발명과 동시에 출원되었으며 본 발명의 동일한 양수인에게 양도된 출원은, 명칭이 "프로세서 통신 프로토콜"인 티.피. 비숍 등의 케이스 번호 4-2-1-3-2호, 명칭이 "멀티프로세서 시스템상에서의 프로그램의 가상 실행"인 티.피 비숍 등의 케이스번호 제6-3-3-1호, 명칭이 "멀티프로세서에 대한 확장된 처리"인 티.피. 비숍 등의 케이스번호 제8-4-5호이다.
본 발명은 일반적으로 멀티프로세서 시스템에 관한 것으로, 특히 멀티프로세서 시스템내서 동적 부하를 균형적으로 처리하는 것에 관한 것이다.
멀티프로세서 시스템에 있어서, 상기 시스템에서는 처리 부하를 여러 프로세서 사이에 분배하는 것이 바람직하다. 이러한 기능을 동적 부하 균형 또는 프로세서 할당이라고 부른다. 종래 기술의 시스템에서는 고정된 알고리즘을 사용하여 상기 기능을 수행했다. 그러한 알고리즘중 하나는 상기 시스템내 모든 프로세서의 프로그램 실행시 실행을 위한 프로프램을 순차적으로 수용한다. 프로그램들은 보통 새로운 업무 또는 처리로서 지칭된다. 또 다른 알고리즘은 최소 작업량을 갖는 프로세서로 새로운 프로그램에 지정하는 것에 관한 알고리즘이다. 종래 기술에서 사용된 기술은 어떤 유형의 처리 환경에서는 잘 적용된다. 그러나, 그러한 기술에는 시스템 관리자가 다른 조건에 부응하도록 동적 로딩(부하) 알고리즘(dynamic loading algorithm)의 조정을 허용하지 않는다는 문제점이 있다. 이에 더해서, 응용 프로그래머 및 지정되는 새로운 프로그램의 사용자는, 프로세서 할당이 어떻게 행해지는지를 제어할 수 없다. 상기 응용 프로그래머 또는 사용자는 종종 멀티프로세서 시스템내의 프로세서가 특별한 업무를 수신하여야 한다고 하는 중요한 정보를 갖는다.
이때 문제는 특별한 업무에 대해 프로세서의 할당이 시스템 관리자에 의해 조정 가능하며, 프로그램의 응용 프로그래머 또는 사용자가 특별한 프로그램을 실행하도록 어떤 프로세서 또는 프로세서 유형이 사용이 조정가능한지 하는 것이다.
본 발명은 상술된 문제들과 종래 기술의 단점을 해결하는 것에 관한 것이다. 본 발명에 따르면, 멀티프로세서 시스템에 있어서는, 시스템 관리자, 응용 프로그래머, 할당되는 프로운 프로그램의 사용자에게 어떤 시스템 프로세서가 주어진 프로그램을 실행하는지를 결정하는 할당 기능 조정 능력이 주어진다.
또한, 이러한 본 발명에 따른 이점에 의해 멀티프로세서 시스템은 각각 상이한 능력 및 상이한 자원(resource)을 갖는 여러 다른 형태의 프로세서로 구성가능하다. 또한, 응용 프로그래머 또는 프로그램 사용자가 사용될 프로세서 할당 기능에 대한 요건을 효율적으로 배치하므로써 멀티프로세서 시스템상에서 구현될 수 없는 어떤 동작 유형이 올바른 방식으로 구형가능케 된다.
상기 방법은, 시스템내 새로운 프로그램에 대한 오브젝트 코트를 기여하는 단계와, 프로세서 할당 파라메타의 셋트를 기억된 오브젝트 코드에 기록시키는 단계와, 기억된 오브젝트 코드를 판독하는 단계와, 판독 오브젝트 코드내 프로세서 할당 파라메타에 응답하여 상기 프로세서중 하나를 할당하는 단계를 수행하므로써 프로세서 자원을 멀티프로세서 시스템내 새로운 프로그램에 할당하는 것을 제어한다.
상기 삽입 단계는 사용자 명령에 응답하여 상기 기억된 오브젝트 코드내에 프로세서 할당 파라메타를 기록하는 단계를 포함한다. 상기 방법에 의해 상기 기억된 오브젝트 코드를 실행하기 위한 요청(request)에 응답하여 상기 할당 단계에서 사용가능하게 다른 프로세서 할당 파라메타가 만들어진다. 또한, 시스템은 복수의 시스템 프로세서 할당 플래그를 기억하며, 상기 할당 단계는 판독 오브젝트 코드를 실행하도록 프로세서중 하나의 할당을 수행하게 프로세서 할당 파라메타 및 시스템 플래그에 응답한다.
상기 다른 이점들 및 본 발명의 특징은, 도면과 함께 설명된 본 발명의 실시예의 다른 설명으로부터 명백해진다.
제1도는 버스(107)에 의해 상호 접속된 복수의 컴퓨터(101 내지 106)를 갖는 멀티프로세서 시스템을 도시한다. 각 컴퓨터는, 벨 시스템 기술 저널, 1978년 7-8월 제57권, 제6호, 케이, 톰슨의 논문 " 유닉스 구현"에 기술된 유닉스 운영 시스템(UNIX operating system)의 변형(version)과 유사한 운영 시스템의 제어하에서 동작한다. 유닉스 운영 시스템의 멀티프로세서 변형은 티, 비숍의 동시계류 출원 케이스 제6-3-3-1호에 설명되어 있다. 제1도에 설명된 시스템내에서의 새로운 프로그램의 시작은, 프로세서로 불리우며 제1도에 예시된 컴퓨터중 하나에 자동으로 할당되는 프로그램에서 발생하는 "exec"명령에 의해 수행된다. 그러한 할당을 하기 위해서 자원 및 동적 로드 균형(밸런스) 할당은 컴퓨터(101)의 커널(kernel)에 의해 실행되는 처리 관리자(PM) 기능부(108)에 의해 수행된다. 컴퓨터는 제1도 시스템의 호스트 컴퓨터로서 지정된다. 제1도의 어떤 컴퓨터에 의한 exec 시스템 콜의 실행은, 컴퓨터(101)의 커널에 의해 실행되는 PM 기능(108)을 발생한다. 프로세서 할당을 제어하기 위해 시스템 간리자 응용 프로그래머 프로그램 사용자에 의해 규정되는 플래그, 변수, 파라메타의 컴퓨터 기능의 사용이 본 발명의 주제이다.
시스템 관리자는 우선 값을 선택 변수로 셋팅하므로써 다섯개의 독특한 할당 방법중 어느 것이 사용되는지를 결정한다. 선택되는 다른 방법은 제7 내지 13도에 따라 더 상세히 논의된다. 제5방법에 있어서, 시스템 관리자, 응용 프로그래머 및 사용자는 프로세서의 할당에 대한 추가 조정을 규정할 수 있다. 상기 시스템 관리자는, 제3도에 설명된 플래그 구조의 플래그 상태를 제어하므로써 멀티프로세서 시스템내 프로그램의 할당을 조정한다. 상기 플래그 구조는 컴퓨터(101)의 커널에 의해 유지된다. PM 기능(108)을 실행하면 컴퓨터 자원을 할당하도록 상기 구조를 어떻게 사용하는지에 더한 방법에 대한 상세한 설명은 제7도 내지 13도를 참조하여 행해진다.
프로그램의 응용 프로그래머 및 프로그램 사용자는 시스멀티(sysmulti) 시스템 콜 또는 머사인(massign) 셀(shell) 명령에 의해 제5방법을 조정할 수 있다. 이러한 조정 결과는 상기 시스템 관리자에 의해 수행된 조정에 의해 수정될 수 있다. 상기 응용 프로그래머가 그의 조정을 실행 PM 기능부(108)로 어떻게 전달하는지를 이해하기 위해서는 새로운 프로그램의 실행이 제1도의 멀티프로세서 시스템상에서 어떻게 구현되는지를 이해하는 것이 필요하다. 상기 응용 프로그래머는 새로운 프로그램의 실행을 요청하는 요청 프로그램을 기록하며 상기 요청 프로그램은 제1도의 프로세서중 하나의 프로세서에 의한 처리에 의해 실행된다. 예를 들어, 이 프로세서가 프로세서(102)라고 가정한다. 상기 응용 프로그램에 의해 먼저 기록된 요청 프로그램은 실행 처리를 차일드(child) 및 패어런드(parent) 처리로 복사하는 포크 명령(fork command)을 실행한다. 이러한 처리로 동일한 프로그램을 공유하게 되지만 다른 데이타 기억 장치를 갖게 된다. 이때 차일드 처리에 의해 시스멀티 시스템 콜이 실행된다. 이 시스템 콜에서 한정된 파라메타는 표준 방식으로, 응용 프로그래머가 PM 기능부(108)의 실행에 의해 수행된 동적 로딩 기능의 수행을 원하는 조정을 규정한다.
시스멀티 시스템 콜을 실행한 후, 상기 차일드 처리는 exec 시스템 콜을 실행한다. 표준 UNIX 운영 시스템 포크 및 exec 시스템 콜 기능에 관한 보다 자세한 정보를 톰슨의 전술된 논문에서 볼 수 있다.
상기 응용 프로그래머는, 요청 프로그램의 소스 코드가 기록되는 시간에 동적 로딩 기능으로 실행되어야 하는 조정을 결정한다. 시스멀티 시스템 콜의 실행시, 응용 프로그래머의 조정을 한정하는 파라메타는 초기에 표준 방식으로 처리의 U블록에 기억된다. 이때 파라메타는 exec 시스템 콜의 실행간 PM 기능부(108)를 이용하기 위해 컴퓨터(101)의 커널로 패스된다.
상기 프로그램의 사용자는 머사인 셀 명령의 실행에 의해 사용자의 조정을 입력시킨다. 예를 들어, 사용자가 제1도에 예시된 멀티프로세서 시스템의 특성 프로세서상에서 워드 처리 프로그램을 실행하기 원하면, 사용자는 프로그램이 할당되는 프로세서를 규정하는 머사인 명령과 워드 처리 프로그램을 포함하는 a.out 파일을 실행한다. 이때 머사인 명령은 표준 방식으로 워드 처리 프로그램의 정보를 a.out 파일에 삽입한다. 상기 머사인 명령은 매우 강력한 도구이다. 왜냐하면 상기 명령이 개별 프로그램 사용자의 요구에 부응하도록 시스템 자원에 대해 동일한 프로그램이 만들어지기 때문이다.
제2도는 컴퓨터 자원 할당 및 할당 기능 자체의 전반을 제어하기 위한 절차를 도시한다. 블록(201)에서 시스템 관리자가 상기 할당 기능으로 사용되는 시스템 플래그 및 선택 SW 변수의 관리를 가능하도록 한다. 상기 선택 SW 변수 및 시스템 플래그는 컴퓨터(101)에 의해 기억되며 공지된 기술을 사용하는 시스템 관리자에 의해 관리된다. 상기 시스템 플래그를 포함하는 구조는 제3도에 예시된다.
블록(202)에서는 상기 프로그램 사용자가 상기 할당 기능을 조정하기 위해서 상기 머사인 명령을 사용하는 것을 가능케한다. 사용자가 후자의 명령을 실행하면, 블록(203)이 실행되며, 이러한 조정을 규정하는 파라메타는 a.out 파일에 기억된다.
블록(204)에서는 상기 exec 시스템 콜을 실행하기 전에 응용 프로그램이 시스멀티 시스템 콜을 실행하게 한다. 상기 시스멀티 시스템 콜이 실행되었으면, 블록(205)이 실행되며, 시스멀티 시스템 콜에서 규정된 파라메타가 블록(205)에 의해 차일드 처리를 실행하는 U블록에 기억된다. 블록(206)은 규정된 파라메타를 판독하여 다른 정보와 함께 파라메타를 PM 처리부(108)와 함께 사용하기 위해 컴퓨터의 커널로 전송하는 exec 시스템에 의해 실행된다.
PM 기능부(108)는 블록(207 내지 210)을 실행한다. 블록(207)은 선택 SW 변수가 블록(209)에 표시된 바와 같이 제 1의 4로딩 균형 방법이 사용됨을 규정하는지 또는 시스템 플래그 및 파라메타를 사용하는 제5방법이(208)에 표시된 바와 같이 사용되는지 여부를 보기 위해 검사한다. 블록(207 내지 210)을 실행하기 위해 사용된 절차는 할당 pe 기능으로 불리운다.
상기 exec 시스템 콜의 실행동안에, 후자의 시스템 콜은 U블록 및 a.out 파일로부터 파라메타를 판독하며 이 파라메타를 PM 처리부(108)로 전달한다. 프로세서 할당을 위해, 컴퓨터(101)의 커널은 PM 기능부(108)내 지정 pe 절차를 호출한다. 시스템 관리자, 응용 프로그래머, 사용자에 의해 판단된 플래그 및 파라메타는 제4도에 도시된 구조의 PM 기능부로 전달된다. 제4도의 pesel 셋트 및 할당 구조는 제5 및 6도에 더 한정된다.
상기 할당 pe 절차는 제7 내지 13도에 더 상세히 도시된다. 블록(701 내지 708)에서 제2도의 블록(209)의 로드 균형 기술이 구현된다. 블록(701)에서는 선택 SW 변수가 시험된다. 상기 선택 SW 변수의 내용이 0이면, 블록(702)이 실행된다. 블록(702)에서는 프로세서를 할당하기 위해서 특정한 기술이 사용되는데, 그 기술은, 모든 프로그램의 실행을 위해 사용되어야 하는 프로세서 실체에 대한 선택 pe 변수의 내용을 검사하는 것이다. 상기 할당은 식별된 프로세서에 주어진다. 선택 pe 변수의 내용은 시스템 관리자에 의해 결정된다.
선택 SW가 0이 아니면, 블록(703)이 실행되며, 선택 SW가 1이면, 블록(704)이 블록(703) 다음에 실행된다. 술어를 간편하게 하기 위해서, 호스트 컴퓨터 또는 호스트 프로세서 엘리먼트, PE인 컴퓨터(101)를 제외하고는 제1도에 도시된 컴퓨터는 부속 컴퓨터 또는 프로세서 엘리먼트로서 지정된다. 블록(704)에서는 할당 방법이 구현되는데 그에 따라 프로그램 또는 업무가 할당을 위해 수신되며, 제1프로그램은 호스트 PE에 할당되며 다음 프로그램은 부속 PE에 할당되며 제3프로그램은 호스트 PE에 할당되며 제4프로그램은 또 다른 부속 PE에 할당된다. 선택 SW가 1이 아니면, 결정 블록(705)가 실행된다. 선택 SW 변수가 2이면, 블록(706)이 실행된다. 블록(706)에서는 할당 방법이 구현되는데 그에 따라 프로그램은 호스트 및 부속 컴퓨터가 동일한 숫자의 할당을 수신하는 주기적 방식으로 호스트 및 부속 컴퓨터에 할당된다. 선택 SW 변수가 2가 아니면, 결정 블록(707)이 실행된다. 선택 SW 변수가 3이면, 블록(708)이 실행되며 프로그램은 부속 컴퓨터를 통해서만 주기적으로 할당된다.
선택 SW 변수의 내용이 3보다 크면 제7 내지 13도의 나머지는 제2도에 예시된 바와 같이 블록(208)을 구현하도록 실행된다. 먼저, 제8도의 결정 블록(809)에서 제5도의 PEFLAG 상태는 이 플래그가 셋트되었는지 아닌지를 결정하기 위해서 검사된다. 이 플래그가 셋트 되면, 특정 컴퓨터가 상기 업무를 실행하기 위해서 제4도의 PE_ASSIGN 변수로 지정된다. 이 컴퓨터의 명세(spcification)는 응용 프로그래머 또는 사용자에 의해 작성된다. PEFLAG 플래그가 셋트되면, 결정 블록(810)은 특정 컴퓨터가 지정되었는지 여부를 결정하도록 실행된다. PE_ASSIGN 변수의 내용은 상기 결정을 내리기 위해 사용된다. 특정 컴퓨터가 규정되어 있지 않으면, 블록(818)이 실행된다. 특정 컴퓨터가 지정되었으면, 결정 블록(811)에서 규정된 컴퓨터가 충분한 메모리를 갖고 있는지를 판단하기 위해 실행되고, 이어서 결정 블록(812)에서는 요청된 컴퓨터가 정확한 형태인지를 결정하기 위하여 실행된다. 블록(811 및 812)에 의해 검사된 두 조건이 부합되면, 현재의 업무를 실행하도록 규정된 컴퓨터를 할당하는 블록(813)을 실행한다. 블록(811 및 812)에 의해 검사된 이 조건이 부합되지 않으면, 에러가 블록(814)을 통해 복귀된다.
결정 블록(818)에서는 MAXCOMPAT 플래그를 체크한다. 셋트되는 MAXCOMPAT 플래그는, exec 시스템 콜을 실행한 컴퓨터에 할당될 모든 새로운 업무를 필요로 한다. 이러한 컴퓨터를 보통 올드 사용자(olduser) 컴퓨터라 한다. MAXCOMPAT 플래그가 셋트되면 결정 블록(819)은 올드 사용자 컴퓨터가 새로운 업무를 실행하기 위한 정확한 유형인지 여부를 결정하도록 실행된다. 상기 올드 사용자 컴퓨터가 정확한 형태이면, 결정 블록(820)은 상기 올드 사용자 컴퓨터가 새로운 업무를 실행하기 위해 충분한 메모리를 갖는지 여부를 확인하기 위해 실행된다. 블록(819 및 820)에서 검사된 양쪽 조건이 참이면, 새로운 업무를 올드 사용자 컴퓨터에 할당하기 위해 블록(821)이 실행된다. 블록(819 또는 820)에서 장해가 있으면, 에러가 블록(822)을 통해 복귀된다.
실행중에, 할당 pe 절차가 어떤 컴퓨터가 가용인지 또는 불가용인지를 한정하는 테이블을 만든다. MAXCOMPAT 플래그가 셋트되지 않으면, 블록(825)이 실행된다. 블록(825)에서 불충분한 메모리를 갖는 컴퓨터들을 모든 불가용 컴퓨터로서 표시한다. 블록(826)에서는 부정확한 형태인 컴퓨터를 불가용 컴퓨터로서 표시한다.
블록(826)의 실행후에, 제9도의 결정 블록(901)은 PRIFLAG 플래그가 셋트인지 아닌지를 결정하기 위해 실행된다. PRIFLAG가 셋트되면, 퍼블릭 컴퓨터만이 할당에 대해 적합하다. 퍼블릭과 프라이비트 컴퓨터 사이의 차이는 시스템 관리자에 의한 지정의 차이이다. 여러 이유로, 시스템 관리자는 프라이비트로서 하나 이상의 컴퓨터를 지정할 수 있으며 상기 컴퓨터의 사용을 어떤 작업 또는 사용자에게 제한할 수 있다. 상기 PRIFLAG 플래그가 셋트되면, 결정 블록(902 및 903)은 어떤 퍼블릭 컴퓨터가 충분한 메모리를 갖고 있는지 그리고 정확한 유형인지 여부를 결정하기 위해 실행된다. 퍼블릭 컴퓨터가 블록(902 및 903)에 의해 검사된 두개의 요부를 만족시키지 않으면, 블록(905)은 실행되며 에러는 복귀된다. 블록(902 및 903)이 요구조건이 만족되면, (906)이 실행되며, 모든 프라이비트 컴퓨터가 불가용으로서 표시된다.
다음에, 결정 블록(910)은 REQFLAG 플래그가 셋트인지 여부를 결정하기 위해 실행된다. REQFLAG 플래그는 제5도에 도시된 구조에 기억된다. 셋트되는 REQFLAG 플래그는 머사인 명령 또는 시스멀티 시스템 콜에 의해 셋트된 파라메타에 따라 컴퓨터 할당이 수행됨을 나타낸다. 이 파라메타는 제6도에 예시된다. 상기 REQFLAG 플래그가 셋트되면, 체크된 제1파라메타는 제6도의 엔트리(607)에 포함된 파라메타이다. 엔트리(607)에는 5개의 파라메타 플래그, 즉, PS_CURRENT, PS_PARENT, PS_MABS, PS_FSPEC 및 PS_EXPLICIT가 있다. PS_MASB 및 PS_EXPLICIT는 프로세서 할당의 일부로 사용되지 않는다. 제10도의 결정 블록(1011)에서는 PS_CURRENT 플래그가 검사된다. PS_CURRENT 플래그가 셋트되면, 새로운 프로그램이 올드 사용자 프로세서에서 실행되는 것을 나타낸다. PS_CURRENT 플래그가 셋트되면, 결정블록(1012)은 올드 사용자 프로세서가 가용으로써 표시되는지를 보기 위해 실행된다. 올드 사용자 프로세서가 가용으로써 이용가능으로 표시되면, 프로그램은 블록(1013)에서 올드 사용자 프로세서에 할당된다. 올드 사용자가 가용하지 않으면, 에러가 블록(1014)에 의해 복귀된다.
PS_CURRENT 플래그가 셋트되지 않았으면, 결정 블록(1018)은 PS_PARENT 플래그가 셋트되었는지 여부를 검가하기 위해 실행된다. PS_PARENT 플래그가 셋트되면, exec 시스템 콜을 실행한 처리의 패어런트 처리를 실행하는 프로세서에 새로운 프로그램을 할당하기 위한 시도가 이루어진다. PS_PARENT 플래그가 셋트되면, 결정 블록(1019)은 패어런트 프로세서가 가용으로 표시되었는지를 보기 위해 실행된다. 상기 패어런트 프로세서가 가용으로 표시되면, 새로운 프로그램이 블록(1020)에서 이 프로세서에 할당된다. 그렇지 않으면, 에러는 블럭(1021)을 통해 복귀된다.
검사되는 다음 플래그는, 결정 블록(1024)에 의해 검사되는 PS_FSPEC 플래그이다. 이 플래그는 제6도의 엔트리(606)에서 주어진 특정 파일 기술어(descriptor)에 대한 국지(로컬)(local)의 프로세서가 상기 할당을 수신하기 위한 프로세서로서 사용되는지를 표시한다. PS_FSPEC 플래그가 셋트되면, 결정 블록(1025)에서는 이 파일에 대한 국지의 프로세서가 가용한지를 보기 위해 검사된다. 상기 프로세서가 이용가능하면, 상기 프로그램은 블록(1026)에서 상기 프로세서에 할당된다. 상기 프로세서가 이용가능하지 않으면, 에러는 블록(1027)에 의해 복귀된다.
프로세서 할당이 제10도의 결정 블록(1011,1018 및 1024)에서 수행된 검사의 결과로서 설정되지 않았으면 제11도의 블록(1011 내지 1108)은, 제6도에 규정된 파라메타의 나머지를 적용하므로 상기 프로그램을 수신하기 위해 이용가능한 프로세서 수를 좁히기 위해 실행된다. (601 및 602)의 내용은 어떤 형태의 프로세서가 허용되는지 그렇지 않는지를 규정한다. 허용될 수 있거나 허용될 수 없는 3가지 유형의 프로세서, 즉, 호스트 컴퓨터(PS_HOSTFLAG), 계산 서버 프로세서(PS_CS) 및 파일 서버 프로세서(PS_FS)가 있다. 결정 블록(1101)에서는 엔트리(601)가 검사된다. 엔트리(601) 내용이 제로가 아니면, 허용된 셋트에서 없는 프로세서 유형의 모든 프로세서를 이용가능하지 않음을 표시하도록 블록(1102)은 실행된다. 다음에, 결정 블록(1103)에서는 엔트리(602) 내의 허용되지 않은 세트가 널(null)인지를 결정하며, 그렇지 않으면, 블록(1104)에서 엔트리(602)내 프로세서 유형의 모든 프로세서를 이용가능하지 않은 것으로서 표시한다.
제6도의 엔트리(603 및 604)에 의해서 제1도의 각 프로세서가 할당을 위해 고려되는지 또는 제외되는지에 관한 명령(specification)는 새로운 프로그램을 실행한다. 블록(1105 및 1106)에서는 포함되는 프로세서를 결정하며, 블록(1107 및 1108)은 제외되는 프로세서를 결정한다.
상기 동작이 수행된 후에, 결정 블록(1109)에서 이용가능한 것으로 표시된 어떤 프로세서가 있는지를 보기 위해 검사된다. 프로세서가 이용가능한 것으로 표시되어 있지 않으면, 에러가 블록(1110)에 의해 복귀된다. 하나 이상의 프로세서가 이용가능하면 시스템 플래그의 나머지는 상기 프로세서 할당을 위해 사용된다. 결정 블록(1111)에서는 CPUFLAG 플래그가 셋트되었는지를 보기 위해 검사된다. CPUFLAG 플래그는, 상기 프로세서 할당이 프로세서 로딩에 의거하고 있으며, 아이들 시간(idle time)을 덜 가지며 어떤 양을 갖는 상기 프로세서가 이용가능하지 않음을 표시한다. CPUFLAG 플래그가 셋트되면, 최대의 아이들 시간(MIT)을 갖는 프로세서를 찾으므로 이러한 결정이 내려진다. 그때 블록(1112)에서는 공식 MIT-MIT/2A에 의해 주어진 것보다 적은 아이들 시간을 갖는 프로세서를 이용불가능한 것으로서 표시한다. 변수 A는, 시스템 관리자에 의해 선정된 값인 변수 CFUZZY를 표시한다. CFUZZY는 제5도에 도시된 구조에 기억된다.
다음에 상기 SHTXTFLAG 플래그는 결정 블록(1113)에서 검사된다. 셋트되는 이 플래그는 나머지 이용가능한 프로세서중 어느 것이 a.out 파일의 공유가능 카피(sharable copy)를 가지면, 그것들중 하나에 할당된다.
SHTXTFLAG 플래그가 셋트되면, 제어 라인을 결정 블록(1114)로 패스되는데 블록(1114)은 a.out 파일의 공유 가능 카피를 갖는 어떤 프로세서가 있는지 여부를 결정한다. a.out 파일의 공유가능 카피를 갖는 프로세서가 있으면, 블록(1115)이 실행되며 a.out 파일의 공유 가능 카피를 갖지 않는 프로세서는 이용가능치 않은 것으로 표시된다.
다음에 제12도의 결정 블록(1201)이 실행된다. 결정 블록(120)에서 MEMFLAG 플래그가 셋트되었는지 여부가 검사된다. MEMFLAG 플래그가 셋트되었으면, 규정된 양보다 적은 자유 글로벌(free global) 메모리를 갖는 모든 프로세서는 불가용으로 표시된다. 이 결정은, 최대 자유 글러벌 메모리를 갖는 프로세서를 찾은 다음에 최대 자유 글로벌 메모리 마이너스 2NFUZZY로 분할된 최소 자유 글로벌 메모리보다 작은 자유 글로벌 메모리를 갖는 프로세서를 제거하므로써 행해진다. 변수 MFUZZY는 시스템 관리자에 의해 결정된다. MEMFLAG 플래그가 셋트되면, 요구된 자유 메모리양보다 적은 불가용 프로세서를 표시하는 블록(1202)이 실행된다. 블록(1202)에서 MFM은 최대 자유 글로벌 메모리를 나타내며 변수 B는 변수 MFUZZY를 나타낸다.
다음에, FILEFLAG 플래그는 결정 블록(1203)에서 검사된다. FILEFLAG 플래그는 셋트될 때, exec 시스템 콜을 실행하는 처리의 개방 파일 분배 및 수가 상기 프로세서 지정을 표시하기 위한 기준으로 사용된다.
이러한 결정은, 실행 처리의 최대 개방 파일을 갖는 프로세서를 결정하므로써 결정 블록(1204)에서 이루어지며 이 파일수가 제5도의 예시된 구조의 FILELIMIT 변수의 값보다 크거나 같은지 여부를 결정하므로써 결정 블록(1204)에서 이루어진다. FILELIMIT 변수는 시스템 관리자에 의해 결정된다. 이 조건이 만족되면, 새로운 프로그램을 최대 개방 파일을 갖는 프로세서에 할당하도록 블록(1205)이 실행된다. 이 조건이 만족되지 않으면 결정 블록(1206)이 실행된다.
블록(1206 내지 1212)은 다음 기능을 수행한다. AOUTFLAG 및 OLDUSERFLAG 플래그가 셋트되고, exec 시스템 콜을 실행하는 처리와 연관된 원격 처리(remote process)수가 STUBLIMIT 변수보다 작거나 같으면, 먼저 통상 a.out 프로세서로 불리는 a.out 파일에 로컬(국부)인 프로세서에 상기 처리를 할당하기 위한 시도가 이루어진다. 원격 처리에 의해 실행 처리가 다른 프로세서 자원으로의 억세스를 얻게 된다. 다른 프로세서가 가용상태가 아니면, 보통 올드 사용자 프로세서로 불리는 exec 시스템 콜이 실행되는 프로세서에 상기 프로그램이 지정된다. 이 프로세서들이 가용 상태가 아니거나 판단블록(1206,1207 및 1208)에 의해 검사된 조건이 만족되지 않으면, 제어는 제13도의 결정 블록(1301)로 패스된다. 결정 블록(1206,1207 및 1208)에 의해 검사된 조건이 만족되어 a.out 프로세서가 가용상태이면, 프로그램은 블록(1210)에서 a.out 프로세서에 할당된다. a.out 프로세서가 가용상태가 아니면, 결정 블록(1211)은 상기 올드 사용자 프로세서가 가용상태인지 여부를 검사한다. 올드 사용자 처리가 가용상태이면, 프로그램은 결정 블록(1212)에 의해 올드 사용자 처리로 지정된다.
결정 블록(1206,1207 또는 1208)에 의해 검사된 조건중 어느 것이 만족되지 않으면 결정 블록(1301)이 실행된다. 상기 OLDUSER 플래그가 셋트되며 결정 블록(1302)이 상기 올드 사용자 프로세서가 가용상태임을 결정한다면, 프로그램은 블록(1303)에 의해 올드 사용자에게 할당된다. 전에 언급된 조건이 만족되지 않으면, 결정 블록(1304)이 실행된다. AOUTFLAG 플래그가 셋트되며 a.out 프로세서가 가용상태이면, 결정 블록(1306)이 실행되어 a.out 프로세서에 할당된다. 올드 사용자 또는 a.out 프로세서에 할당이 이루어지지 않으면, 블록(1307)이 실행되며, 프로그램은 최대 아이들 메모리(the most idle memory)를 갖는 가용 프로세서에 할당된다.
상술된 실시예는 본 발명이 원리를 예시할 뿐이며 본 발명의 정신 및 범위에서 이탈하지 않는다면 종래 기술에 숙련된 사람이라면 다른 실시예도 인출할 수 있음을 이해할 수 있다.

Claims (5)

  1. 복수의 프로세서를 갖는 멀티프로세서 시스템에서 새로운 프로그램의 오브젝트 코드 파일을 기억하는 상기 복수의 프로세서중 하나로의 시스템 자원의 할당을 제어하는 방법으로, 상기 오브젝트 코드 파일은 헤더와 코드부분으로 이루어진 상기 멀티프로세서 시스템 자원 할당 제어 방법에 있어서, 상기 멀티프로세서 시스템의 사용자에 의해서 실행된 사용자 명령에 응답하여 상기 오브젝트 코드 프로그램의 실행을 요청하고 있는 상기 프로세서들중 하나의 프로세서에 요청하므로써 상기 기억된 오브젝트 코드 파일의 헤더부로 프로세서 할당 파라메타의 셋트를 기록하는 단계와, 상기 오프젝트 코드 프로그램의 실행을 할당하도록 상기 프로세서들중 하나를 할당하므로써 상기 기억된 오브젝트 코드 파일을 판독하는 단계와, 상기 판독된 오브젝트 코드 파일의 코드부를 실행하도록 판독된 오브젝트 코드 파일의 상기 헤더부내 상기 프로세서 할당 파라메타에 응답하여 상기 프로세서들중 하나를 할당하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 시스템 자원 할당 제어 방법.
  2. 제1항에 있어서, 시스템 콜(system call)에 응답하여 상기 할당 단계에서 사용하기 위한 다른 프로세서 할당 파라메타를 제공하는 단계를 더 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 시스템 자원 할당 제어 방법.
  3. 제1항에 있어서, 상기 프로세서 할당 파라메타의 셋트를 기록하기 위한 단계는 시스템 프로세서 할당 플래그를 기억하는 단계를 포함하며, 상기 할당 단계는 상기 기억된 시스템 프로세서 할당 플래그에 응답하여, 상기 프로세서들중 하나에 할당하는 단계를 더 포함하는 것을 특징으로 하는 멀티프로세서의 시스템 자원 할당 제어 방법.
  4. 제1항에 있어서, 상기 기록 단계는, 사용자 명령에 응답하여 상기 프로세서 할당 파라메타의 서브셋트를 상기 기억된 오브젝트 코드 부분에 기록하는 단계를 더 포함하며, 상기 방법은 시스템 콜에 응답하여 상기 프로세서 할당 파라메타의 서브셋트를 기억하는 단계와, 시스템 프로세서 할당 플래그를 기억하는 단계를 더 포함하고, 상기 할당 단계는 상기 기억된 시스템 프로세서 할당 플래그에 응답하여 상기 프로세서들중 하나를 할당하는 것을 특징으로 하는 멀티프로세서 시스템의 자원 할당 제어 방법.
  5. 제4항에 있어서, 상기 할당 단계는 특정 프로세서 할당이 허용되었는지 여부를 결정하기 위해 상기 시스템 플래그중 하나를 검사하는 단계와, 특정 프로세서 요청이, 허용되는 상기 특정 프로세서 할당에서 발생되었음을 입증하는 단계와, 상기 특정 프로세서 요청시 상기 특정 프로세서를 할당하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 시스템 자원 할당 제어 방법.
KR1019870014588A 1986-12-22 1987-12-21 멀티프로세서 시스템의 시스템 자원 할당 제어 방법 KR970008524B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US94170186A 1986-12-22 1986-12-22
US941,701 1986-12-22
US941701 1986-12-22

Publications (2)

Publication Number Publication Date
KR880008186A KR880008186A (ko) 1988-08-30
KR970008524B1 true KR970008524B1 (ko) 1997-05-24

Family

ID=25476922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870014588A KR970008524B1 (ko) 1986-12-22 1987-12-21 멀티프로세서 시스템의 시스템 자원 할당 제어 방법

Country Status (9)

Country Link
US (1) US5115505A (ko)
EP (1) EP0272836B1 (ko)
JP (1) JPH0628053B2 (ko)
KR (1) KR970008524B1 (ko)
BR (1) BR8706965A (ko)
CA (1) CA1296432C (ko)
DE (1) DE3789215T2 (ko)
HK (1) HK108094A (ko)
SG (1) SG116694G (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241677A (en) * 1986-12-19 1993-08-31 Nippon Telepgraph and Telehone Corporation Multiprocessor system and a method of load balancing thereof
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US5504894A (en) * 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
FR2692058B1 (fr) * 1992-06-09 1994-07-29 Bull Sa Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail.
JP3003440B2 (ja) * 1993-01-19 2000-01-31 株式会社日立製作所 負荷分散制御方法および分散処理システム
JP2814880B2 (ja) * 1993-06-04 1998-10-27 日本電気株式会社 異なる命令特性を持つ複数のcpuによって構成される計算機システムの制御装置
US5495603A (en) * 1993-06-14 1996-02-27 International Business Machines Corporation Declarative automatic class selection filter for dynamic file reclassification
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5630129A (en) * 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
EP0668564A1 (en) * 1994-02-22 1995-08-23 International Business Machines Corporation Resource measurement facility in a multiple operating system complex
US5915095A (en) * 1995-08-08 1999-06-22 Ncr Corporation Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
US5938722A (en) * 1997-10-15 1999-08-17 Mci Communications Corporation Method of executing programs in a network
FI106507B (fi) 1998-04-09 2001-02-15 Nokia Networks Oy Tietosanoman käsittely tietoliikenneverkon verkkoelementissä
US6947987B2 (en) * 1998-05-29 2005-09-20 Ncr Corporation Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7191446B2 (en) * 2001-06-01 2007-03-13 Texas Instruments Incorporated Method for resource management in a real-time embedded system
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US7594233B2 (en) * 2002-06-28 2009-09-22 Hewlett-Packard Development Company, L.P. Processing thread launching using volunteer information
KR100497230B1 (ko) * 2002-07-23 2005-06-23 삼성에스디아이 주식회사 플라즈마 디스플레이 패널의 구동 장치 및 구동 방법
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7058864B1 (en) * 2003-05-21 2006-06-06 Hewlett-Packard Development Company, L.P. Test for processor memory cache
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7606929B2 (en) 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
US7634773B2 (en) * 2004-11-24 2009-12-15 Hewlett-Packard Development Company, L.P. Method and apparatus for thread scheduling on multiple processors
US7689993B2 (en) * 2004-12-04 2010-03-30 International Business Machines Corporation Assigning tasks to processors based at least on resident set sizes of the tasks
US7707578B1 (en) * 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
US20060156291A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. System and method for managing processor execution in a multiprocessor system
US8825833B2 (en) * 2005-03-30 2014-09-02 International Business Machines Corporation Tracking computer system configuration changes with corresponding message responses
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8019873B2 (en) * 2008-09-30 2011-09-13 Microsoft Corporation Mesh platform utility computing portal
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
JP6252140B2 (ja) * 2013-11-29 2017-12-27 富士通株式会社 タスク割り付けプログラム及びタスク割り付け方法
CN104743480B (zh) * 2015-02-09 2017-05-31 长沙今朝科技股份有限公司 一体式抽真空、充气和压塞装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
JPS6184740A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 汎用オブジエクトコ−ド生成方式

Also Published As

Publication number Publication date
CA1296432C (en) 1992-02-25
DE3789215D1 (de) 1994-04-07
KR880008186A (ko) 1988-08-30
JPH0628053B2 (ja) 1994-04-13
EP0272836A2 (en) 1988-06-29
SG116694G (en) 1994-11-25
HK108094A (en) 1994-10-14
DE3789215T2 (de) 1994-06-01
US5115505A (en) 1992-05-19
JPS63239553A (ja) 1988-10-05
BR8706965A (pt) 1988-07-26
EP0272836B1 (en) 1994-03-02
EP0272836A3 (en) 1988-08-31

Similar Documents

Publication Publication Date Title
KR970008524B1 (ko) 멀티프로세서 시스템의 시스템 자원 할당 제어 방법
US7784053B2 (en) Management of virtual machines to utilize shared resources
KR101031409B1 (ko) 동적으로 가상 머신을 생성하기 위한 방법, 제조물품 및 시스템
US6917963B1 (en) Snapshot image for the application state of unshareable and shareable data
US6848106B1 (en) Snapshot restore of application chains and applications
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
JP4866864B2 (ja) マルチ・プロセッサ環境において共有されるリソースへのアクセスを管理する方法およびプログラム
US4685125A (en) Computer system with tasking
JP5106036B2 (ja) コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US8352938B2 (en) System, method and program to migrate a virtual machine
US7210147B1 (en) IP virtualization
US6996828B1 (en) Multi-OS configuration method
US5958003A (en) Method and computer system for improving the response time of a computer system to a user request
US5717902A (en) Method and system for selectively applying an appropriate object ownership model
US20050246705A1 (en) Method for dynamically allocating and managing resources in a computerized system having multiple consumers
JP3771589B2 (ja) コンピュータ・システム又はそれのプログラムの停止を必要としないオブジェクト指向メソッドを含むコンピュータ・システム、記録媒体、およびコンピュータ・プログラムの動作方法
Neuman et al. The Prospero resource manager: A scalable framework for processor allocation in distributed systems
US20040078782A1 (en) Workload management of stateful program entities
US5893157A (en) Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests
US6775825B1 (en) Common software application definition for resource management
EP1321856A2 (en) Multi-application execution system and method thereof
KR980010840A (ko) 자원 관리를 위한 컴퓨터 구현 방법, 컴퓨터 판독 가능 매체 및 컴퓨터 시스템
US5485573A (en) Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system
US11429424B2 (en) Fine-grained application-aware latency optimization for virtual machines at runtime
JP2900438B2 (ja) ファイルリコール方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee