KR102245208B1 - 다중처리방법 및 그 장치 - Google Patents

다중처리방법 및 그 장치 Download PDF

Info

Publication number
KR102245208B1
KR102245208B1 KR1020200113769A KR20200113769A KR102245208B1 KR 102245208 B1 KR102245208 B1 KR 102245208B1 KR 1020200113769 A KR1020200113769 A KR 1020200113769A KR 20200113769 A KR20200113769 A KR 20200113769A KR 102245208 B1 KR102245208 B1 KR 102245208B1
Authority
KR
South Korea
Prior art keywords
task
general
observation
tasks
parent
Prior art date
Application number
KR1020200113769A
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 KR1020200113769A priority Critical patent/KR102245208B1/ko
Application granted granted Critical
Publication of KR102245208B1 publication Critical patent/KR102245208B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다중처리방법 및 그 장치가 개시된다. 컴퓨팅장치는 태스크의 상태정보를 나타내는 태스크테이블을 메모리에 생성하고, 일반태스크의 생성시 상기 일반태스크를 관찰하는 관찰태스크를 생성하며, 일반태스크와 관찰태스크의 상태정보를 각각 태스크테이블에 저장한다.

Description

다중처리방법 및 그 장치{Multiprocessing method and apparatus}
본 발명의 실시 예는 컴퓨팅장치의 다중처리방법 및 그 장치에 관한 것으로, 보다 상세하게는 스레드를 개선한 태스크를 이용하여 다중처리하는 방법 및 그 장치에 관한 것이다.
컴퓨터 프로그램 수행시 프로세스는 하나 이상의 스레드에 의해 수행될 수 있다. 도 1은 종래 프로세스와 스레드의 개념을 도시한 도면이다. 도 1을 참조하면, 컴퓨팅장치(100)는 프로세스(110)의 각 작업을 복수의 스레드(120,122,124)를 이용하여 수행할 수 있다. 예를 들어, 프로세스(110)가 서버(150)와 통신을 통해 소정의 정보를 수신하는 작업들로 구성된다면, 그 작업들은 복수의 스레드(120,122,124)에 의해 비동기 방법으로 수행될 수 있다.
복수의 스레드(120,122,124)를 이용하면 작업의 효율을 높일 수 있는 장점이 있다. 그러나 스레드는 할당된 작업을 완료하면 종료되나, 작업이 완료되지 않으면 작업이 완료될 때까지 계속 대기하면서 자원을 사용한다. 만약 스레드가 수행하는 작업이 예기치 않은 여러 장애로 인해 종료되지 않으면 스레드는 종료되지 않고 자원을 계속 점유하는 문제점이 있다. 예를 들어, 서버(150)로부터 소정의 응답을 받는 작업을 포함하는 스레드(120,122,124)가 통신오류 또는 서버 장애 등으로 인해 서버(150)로부터 응답을 받지 못하면 컴퓨팅장치(100)의 메모리 등의 자원을 점유한 채 그대로 유지되어 자원이 낭비되는 문제점이 존재한다.
본 발명의 실시 예가 이루고자 하는 기술적 과제는, 컴퓨팅장치에서 생성하는 최대 태스크 개수를 일정 개수 이하로 유지하면서 태스크를 실시간 제어할 수 있는 다중처리방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 다중처리방법의 일 예는, 컴퓨팅장치의 다중처리방법에 있어서, 태스크의 상태정보를 나타내는 태스크테이블을 메모리에 생성하는 단계; 일반태스크의 생성시 상기 일반태스크를 관찰하는 관찰태스크를 생성하는 단계; 상기 일반태스크와 상기 관찰태스크의 상태정보를 각각 상기 태스크테이블에 저장하는 단계;를 포함하고, 상기 일반태스크의 최대 생성 개수는 상기 태스크테이블의 크기에 비례하고, 상기 관찰태스크는 기 정의된 조건이 되면 상기 일반태스크를 해제하고 자신도 해제한다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 다중처리장치의 일 예는, 태스크의 상태정보를 나타내는 태스크테이블; 작업을 수행하는 스레드로 구성되는 일반태스크; 및 상기 일반태스크를 관찰하는 관찰태스크;를 포함하고, 상기 일반태스크의 최대 개수는 상기 태스크테이블의 크기에 의해 결정되고, 상기 관찰태스크는 기 정의된 조건이 되면 상기 일반태스크를 해제하고 자신도 해제한다.
본 발명의 실시 예에 따르면, 스레드를 개선한 태스크의 개수를 일정 개수 이하로 유지하면서 태스크를 실시간 제어할 수 있다. 또한 태스크의 재사용을 통해 태스크의 생성 및 소멸에 따른 시스템 부하를 감소시킬 수 있으며, 태스크가 작업을 정상적으로 완료하지 못하는 경우에 태스크를 해제하여 재사용할 수 있다.
도 1은 종래 프로세스와 스레드의 개념을 도시한 도면,
도 2는 본 발명의 실시 예에 따른 태스크의 개념을 설명하기 위한 스레드풀의 일 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 태스크 관리 방법의 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따른 다중처리방법의 일 예를 도시한 흐름도,
도 5는 본 발명의 실시 예에 따른 태스크를 계층적 구조로 생성하는 방법의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따른 계층적 구조의 태스크의 해제 방법의 일 예를 도시한 흐름도, 그리고,
도 7은 본 발명의 실시 예에 따른 계층적 구조에 태스크에 작업을 할당하는 방법의 일 예를 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 다중처리방법 및 그 장치에 대하여 상세히 살펴본다.
도 2는 본 발명의 실시 예에 따른 태스크의 개념을 설명하기 위한 스레드풀의 일 예를 도시한 도면이다.
도 2를 참조하면, 컴퓨팅장치는 프로세스에 대하여 적어도 하나 이상의 스레드를 생성할 수 있다. 여기서, 컴퓨팅장치는 적어도 하나 이상의 프로세서 및 메모리 등을 포함하고 프로그램을 로딩하여 이를 실생할 수 있는 다양한 종류의 서버나 단말 등을 의미한다.
컴퓨팅장치가 프로세스마다 매번 새로운 스레드를 생성하고 종료하는 경우에 스레드의 생성과 종료에 따른 작업 부하로 인해 컴퓨팅장치의 성능 저하가 발생할 수 있다. 또한 컴퓨팅장치에서 동작 중인 스레드의 개수가 일정 개수를 초과하는 경우에도 컴퓨팅장치의 성능 저하가 발생할 수 있다.
이를 해결하기 위한 방법으로 스레드풀(200)이 존재한다. 스레드풀(200)에 포함되는 스레드(210,220,230)의 개수는 컴퓨팅장치의 성능에 따라 다양하게 다양하게 설정될 수 있다. 스레드풀(200)의 스레드(210,220,230)는 할당된 작업을 완료한 후 소멸되는 것이 아니라 재사용된다. 예를 들어, 컴퓨팅장치의 운영체제(OS)는 제1 프로세스의 작업을 스레드풀(200)의 적어도 하나 이상의 스레드(210,220,230)에 할당하는 스케줄링 작업을 수행한다. 제1 프로세스의 작업을 할당받은 스레드(210,220,230)는 작업을 완료하면 소멸되지 않고 재사용 가능한 상태(즉, 해제 상태)가 된다. 이후 제2 프로세스의 작업이 발생하면, 컴퓨팅장치는 스레드풀(200)에서 해제 상태로 존재하는 적어도 하나 이상의 스레드(210,220,230)에 제2 프로세스의 작업을 할당한다. 따라서 스레드의 생성과 소멸에 따른 작업이 존재하지 않아 컴퓨팅장치의 성능을 향상시킬 수 있다.
본 실시 예는 이와 같이 스레드풀(200)에서 동작하는 스레드(210,220,230)를 기반으로 생성된 작업수행주체를 태스크라고 정의한다. 예를 들어, 태스크를 생성한다고 함은 스레드풀(200)의 스레드(210,220,230)를 태스크에 할당하는 것을 의미한다. 다시 말해, 태스크는 기존의 스레드에 몇몇 기능을 부가하여 개선된 형태라고 할 수 있다.
태스크의 개수와 스레드풀(200)의 스레드 개수는 동일하거나 서로 다를 수 있다. 예를 들어, N개의 스레드를 포함하는 스레드풀(200)이 존재하는 경우에, M개의 태스크가 생성될 수 있다. M<N인 경우에는 M개의 태스크에 각각 스레드풀(200)의 스레드(210,220,230)가 하나씩 할당될 수 있다. 반면, M>N인 경우에는 M개의 태스크에 할당할 스레드의 개수가 부족하므로, 우선 N개의 태스크에 스레드를 할당하고, 작업이 완료된 스레드가 존재하면 그 스레드를 나머지 태스크에 할당할 수 있다. 다만, 사용자 관점에서는 M개의 태스크가 작업을 다중 처리하는 것으로 보일 수 있다. 일 예로, 태스크는 프로그래밍 언어인 "C#"의 태스크 클래스를 이용하여 생성될 수 있다.
도 3은 본 발명의 실시 예에 따른 태스크 관리 방법의 일 예를 도시한 도면이다.
도 3을 참조하면, 태스크의 상태 정보를 관리하는 태스크테이블(300)이 존재한다. 태스크테이블(300)은 기 정의된 개수의 태스크에 대한 상태 정보를 저장한다. 예를 들어, 태스크테이블(300)은 M개의 태스크에 대한 상태정보를 저장하는 메모리 영역으로 구성될 수 있다.
태스크테이블(300)은 각 태스크의 메모리 영역을 참조하는 형태로 태스크의 상태정보를 관리할 수 있다. 예를 들어, 태스크테이블(300)의 각 칸(310,312,30,322)에는 제1~N 일반태스크와 제1~N 관찰태스크에 할당된 메모리 영역(360,362,370,372)을 가리키는 주소정보가 저장될 수 있다. 물론 다른 실시 예로, 태스크테이블(300)이 태스크의 상태정보를 직접 저장하도록 구현할 수도 있다. 따라서 이하에서 태스크테이블에 '저장'한다고 함은 태스크의 상태 정보 그 자체를 태스크테이블에 저장하거나 해당 정보가 저장된 메모리 위치를 가리키는 주소정보를 저장(즉, 참조)하는 경우 등 실시 예에 따라 다양하게 해석될 수 있다.
태스크테이블(300)에는 일반태스크와 관찰태스크의 상태정보가 한 쌍으로 저장된다. 예를 들어, 제1 일반태스크와 제1 관찰태스크의 상태정보(310,312)가 한 쌍으로 태스크테이블(300)에 저장되고, 제N 일반태스크와 제N 관찰태스트의 상태정보(320,322)가 한 쌍으로 태스크테이블(300)에 저장된다. 일반태스크는 작업을 할당받아 이를 수행하는 태스크를 의미하고, 관찰태스크는 일반태스크를 감시하는 태스크를 의미한다. 예를 들어, 관찰태스크는 일반태스크가 작업을 완료하였는지, 아니면 작업을 일정시간 동안 완료되지 못하였는지 등을 실시간 감시할 수 있다.
태스크의 최대 생성 개수는 태스크테이블(300)의 크기에 의해 결정된다. 예를 들어, 태스크테이블(300)의 저장 공간의 개수가 M개이면, 일반태스크와 관찰태스크가 쌍으로 생성되므로, 최대 생성 가능한 일반태스크의 개수는 (M/2)개이다.
컴퓨팅장치는 일반태스크가 할당된 작업을 완료하면 일반태스크를 해제하여 재사용 가능한 상태가 변경한다. 일반태스크가 해제되면 일반태스크에 할당된 메모리 영역은 회수되지 않고 할당된 상태 그대로 유지되며, 다만 새로운 작업이 일반태스크에 할당되면 일반태스크는 이전에 할당받은 메모리 영역을 그대로 사용하여 작업을 수행한다. 예를 들어, 컴퓨팅장치는 제1 일반태스크가 할당된 작업을 완료하면, 제1 일반태스크를 해제 상태로 변경하고 그 해제 상태의 정보를 제1 일반태스크에 할당된 메모리 영역(360)에 저장한다. 태스크테이블(300)은 제1 일반태스크의 메모리 영역(360)을 참조하므로, 컴퓨팅장치는 태스크테이블(300)을 통해 일반태스크의 상태가 해제 상태인지 여부를 파악할 수 있다.
일반태스크가 할당된 작업을 완료하지 못하는 경우가 발생할 수 있다. 예를들어, 스크래핑 작업을 수행하는 일반태스크가 서버 장애 또는 통신 장애로 인해 작업을 완료하지 못하는 경우가 있을 수 있다. 이 경우에 일반태스크를 강제로 해제시킬 방법이 필요하다.
이를 위하여, 본 실시 예는 관찰태스크를 포함한다. 관찰태스크는 일반태스크가 작업을 완료하였는지 실시간 감시하며, 일정시간동안 작업을 완료하지 못하였다면 관찰태스크를 해제시키는 동작을 수행할 수 있다. 예를 들어, 관찰태스크는 일반태스크가 작업을 얼마동안 수행하였는지를 파악하기 위하여 타이머 기능을 포함할 수 있다. 예를 들어, 일반태스크에 작업이 할당되면 관찰태스크는 타이머를 시작하고, 타이머를 기초로 일정 시간이 경과하면 일반태스크를 강제 해제시킬 수 있다. 이 외에도, 관찰태스크는 기 정의된 조건에 해당하면 일반태스크를 해제시킬 수 있다. 관찰태스크가 일반태스크를 해제시키는 위한 조건은 실시 예에 따라 다양하게 설정될 수 있다.
관찰태스크는 일반태스크가 해제될 때 함께 해제될 수 있도록 스스로를 해제시킬 수 있는 특수 형태의 스레드로 구현될 수 있다. 이 경우, 관찰태스크는 기 정의된 조건에 해당하여 일반태스크를 해제시키면 스스로도 해제할 수 있다. 예를 들어, C#의 'threadtimer' 등과 같이 스스로 자신을 해제시킬 수 있는 특수 형태의 스레드로 관찰태스크를 생성할 수 있다. 다만, 작업을 할당받아 수행하는 일반 스레드는 스스로를 해제할 수 없다. 관찰태스크도 태스크의 일종이므로, 관찰태스크를 특수 형태의 스레드로 구현하는 경우에, 도 2의 스레드풀(200)에는 특수 형태의 스레드와 일반 작업을 할당받아 수행하는 일반 스레드가 존재할 수 있다.
도 4는 본 발명의 실시 예에 따른 다중처리방법의 일 예를 도시한 흐름도이다.
도 4를 참조하면, 컴퓨팅장치는 태스크의 상태정보를 저장하는 태스크테이블을 생성한다(S400). 태스크테이블의 크기는 일정 크기로 설정될 수 있으며, 태스크테이블의 크기에 따라 일반태스크의 최대 생성 개수가 결정된다. 태스크테이블의 일 예가 도 2에 도시되어 있다.
컴퓨팅장치는 작업을 수행할 일반태크스의 생성시에 관찰태스크를 함께 생성한다(S410). 컴퓨팅장치는 생성한 일반태스크와 관찰태스크의 상태정보를 태스크테이블에 저장한다(S420).
컴퓨팅장치는 태스크테이블을 기초로 작업을 일반태스크에 할당하는 스케줄링 작업을 수행한다(S430). 예를 들어, 새로운 작업이 존재하고 태스크테이블이 가득 찬 상태가 아니면, 컴퓨팅장치는 새로운 일반태스크를 생성하여 작업을 할당할 수 있다. 태스크테이블이 가득 찬 상태이면, 컴퓨팅장치는 태스크테이블에서 해제 상태로 존재하는 일반태스크를 찾은 후 그 일반태스크에게 새로운 작업을 할당한다.
도 5는 본 발명의 실시 예에 따른 태스크를 계층적 구조로 생성하는 방법의 일 예를 도시한 도면이다.
도 5를 참조하면, 부모 태스크(500)는 적어도 하나 이상의 자식 태스크(510)를 포함한다. 실시 예에 따라 자식 태스크(520)는 그 아래에 적어도 하나 이상의 손자 태스크(530)를 포함할 수 있다. 부모 태스크(500), 자식 태스크(510), 손자 태스크(530) 등은 각각 일반태스크와 관찰태스크의 쌍으로 구성된다.
태스크테이블은 부모 태스크를 위한 제1 태스크테이블과 자식 태스크를 위한 제2 태스크테이블 등을 포함할 수 있다. 손자 태스크가 존재한다면, 손자 태스크의 상태정보를 저장하기 위한 제3 태스크테이블이 존재할 수 있다. 각 계층을 위한 태스크테이블은 각각 별개로 메모리 영역에 존재하거나, 함께 합쳐서 존재할 수 있다.
본 실시 예는 이해를 돕기 위하여 세 개의 계층을 도시하고 있으나 계층의 수 및 각 계층에 존재하는 태스크의 수는 실시 예에 따라 다양하게 변형 가능하다.
도 6은 본 발명의 실시 예에 따른 계층적 구조의 태스크의 해제 방법의 일 예를 도시한 흐름도이다. 도 6은 설명의 편의를 위하여 도 5의 계층적 구조에서 부모 태스크와 자식 태스크의 두 개의 계층으로 구성된 경우를 가정하여 설명한다.
도 6을 참조하면, 컴퓨팅장치는 부모 태스크를 생성하고, 부모 태스크의 상태정보를 제1 태스크테이블에 저장한다(S600). 컴퓨팅장치는 적어도 하나 이상의 자식 태스크를 생성하고, 자식 태스크의 상태정보를 제2 태스크테이블에 저장한다(S610).
컴퓨팅장치는 부모 태스크에게 작업을 할당하면, 부모 태스크는 하위에 존재하는 자식 태스크에 작업을 할당한다(S620). 그리고, 컴퓨팅장치는 제2 태스크테이블을 기초로 복수의 자식 태스크가 모두 해제 상태가 되었는지 파악한다(S630). 자식 태스크의 일반태스크가 해제 상태가 변경되는 경우는, 일반태스크가 작업을 완료한 경우 또는 관찰태스크가 기 정의된 조건(예를 들어, 일정 시간 내 작업 완료를 못한 경우)에 따라 일반태스크를 해제시킨 경우이다,
자식 태스크가 모두 해제상태가 되면, 컴퓨팅장치는 부모 태스크를 해제상태로 변경한다(S640). 컴퓨팅장치는 해제 상태의 부모 태스크에게 새로운 작업을 할당할 수 있다. 부모 태스크의 관찰태스크 또한 부모 태스크의 일반태스크를 실시간 감시하여 기 정의된 조건에 해당하면 부모 태스크의 일반태스크를 해제시켜 부모 태스크가 다른 작업을 수행하도록 할 수 있다.
도 7은 본 발명의 실시 예에 따른 계층적 구조에 태스크에 작업을 할당하는 방법의 일 예를 도시한 도면이다.
도 7을 참조하면, 컴퓨팅장치는 복수의 작업(700)을 복수 개의 작업그룹으로 분할한다. 예를 들어, 복수의 작업(700)은 적어도 하나 이상의 서버로부터 데이터를 스크래핑하는 작업일 수 있다. 어느 한 서버(720)에 접속하여 데이터를 스크래핑하는 태스크의 개수가 많아지면 서버에 부하가 가중되어 마치 디도스(DDoS) 공격처럼 서버가 정상적인 서비스를 제공하지 못하는 상태로 만들 수 있다. 따라서 서버에 대한 스크래핑 작업을 일정량 범위 내에서 한정할 필요가 있으므로, 스크래핑 작업을 복수 개의 작업그룹으로 분할할 수 있다.
컴퓨팅장치는 도 6에서 살핀 계층적 구조로 태스크를 생성한다. 예를 들어, 컴퓨팅장치는 부모 태스크와 N개의 자식 태스크(710)로 구성되는 계층적 구조의 태스크에 작업그룹별 작업을 할당한다. 예를 들어, 컴퓨팅장치는 제1 작업그룹을 부모 태스크에 할당한다. 부모 태스크는 할당받은 제1 작업그룹의 작업을 N개의 자식 태스크(710)에 할당한다. N개의 자식 태스크가 제1 작업그룹의 작업을 모두 완료(즉, N개의 자식 태스크가 모두 해제 상태)하였다면, 부모 태스크는 해제되어 다른 작업을 수행할 수 있는 상태가 된다.
부모 태스크가 해제 상태가 되면, 컴퓨팅장치는 다시 제2 작업그룹의 작업을 부모 태스크에게 할당한다. 이와 같은 방법으로 컴퓨팅장치는 제M 작업그룹의 작업까지 모두 완료할 수 있다. 스크래핑 작업인 경우에, 서버(720)에는 최대 N개의 태스크(710)가 통신 연결되므로 서버에 과부하가 발생하는 문제점을 해결하면서 스크래핑 작업을 병렬로 처리할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (8)

  1. 컴퓨팅장치의 다중처리방법에 있어서,
    태스크의 상태정보를 나타내는 태스크테이블을 메모리에 생성하는 단계;
    일반태스크의 생성시 상기 일반태스크를 관찰하는 관찰태스크를 생성하는 단계;
    상기 일반태스크와 상기 관찰태스크의 상태정보를 각각 상기 태스크테이블에 저장하는 단계;를 포함하고,
    상기 일반태스크의 최대 생성 개수는 상기 태스크테이블의 크기에 비례하고,
    상기 관찰태스크는 기 정의된 조건이 되면 상기 일반태스크를 해제하고 자신도 해제하는 것을 특징으로 하는 다중처리방법.
  2. 제 1항에 있어서,
    상기 태스크테이블을 기초로 해제 상태의 일반태스크에게 작업을 할당하는 단계;를 더 포함하는 것을 특징으로 하는 다중처리방법.
  3. 제 1항에 있어서,
    상기 태스크테이블은 일반태스크의 상태정보와 관찰태스크의 상태정보가 저장된 메모리 영역을 참조하는 것을 특징으로 하는 다중처리방법.
  4. 제 1항에 있어서, 상기 태스크테이블은,
    부모 태스크의 상태정보를 나타내는 제1 태스크테이블;
    자식 태스크의 상태정보를 나타내는 제2 태스크테이블;을 포함하는 것을 특징으로 하는 다중처리방법.
  5. 제 4항에 있어서,
    상기 부모 태스크는 부모 일반태스크 및 부모 관찰태스크를 포함하고,
    상기 자식 태스크는 자식 일반태스크 및 자식 관찰태스크를 포함하고,
    상기 제2 태스크테이블을 기초로 모든 자식 태스크가 해제 상태이면 상기 부모 일반태스크를 해제하는 것을 특징으로 하는 다중처리방법.
  6. 제 1항에 있어서,
    상기 일반태스크는 스크래핑 작업을 수행하는 스레드로 구성되고,
    상기 관찰태스크는 상기 스레드가 기 정의된 시간 동안 작업을 완료하지 않으면 상기 스레드를 해제하는 것을 특징으로 하는 다중처리방법.
  7. 태스크의 상태정보를 나타내는 태스크테이블;
    작업을 수행하는 스레드로 구성되는 일반태스크; 및
    상기 일반태스크를 관찰하는 관찰태스크;를 포함하고,
    상기 일반태스크의 최대 개수는 상기 태스크테이블의 크기에 의해 결정되고,
    상기 관찰태스크는 기 정의된 조건이 되면 상기 일반태스크를 해제하고 자신도 해제하는 것을 특징으로 하는 다중처리장치.
  8. 제 1항 내지 제 6항 중 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

KR1020200113769A 2020-09-07 2020-09-07 다중처리방법 및 그 장치 KR102245208B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200113769A KR102245208B1 (ko) 2020-09-07 2020-09-07 다중처리방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200113769A KR102245208B1 (ko) 2020-09-07 2020-09-07 다중처리방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102245208B1 true KR102245208B1 (ko) 2021-04-28

Family

ID=75721243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200113769A KR102245208B1 (ko) 2020-09-07 2020-09-07 다중처리방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102245208B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069338A (ko) * 2009-12-17 2011-06-23 한국전자통신연구원 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법
KR20110104199A (ko) * 2010-03-16 2011-09-22 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
US20130160021A1 (en) * 2011-12-16 2013-06-20 Timothy John Purcell Signaling, ordering, and execution of dynamically generated tasks in a processing system
KR20200011958A (ko) * 2017-05-30 2020-02-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Gpu 태스크 스케줄링을 위한 연속 분석 태스크

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110069338A (ko) * 2009-12-17 2011-06-23 한국전자통신연구원 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법
KR20110104199A (ko) * 2010-03-16 2011-09-22 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
US20130160021A1 (en) * 2011-12-16 2013-06-20 Timothy John Purcell Signaling, ordering, and execution of dynamically generated tasks in a processing system
KR20200011958A (ko) * 2017-05-30 2020-02-04 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Gpu 태스크 스케줄링을 위한 연속 분석 태스크

Similar Documents

Publication Publication Date Title
US6782410B1 (en) Method for managing user and server applications in a multiprocessor computer system
CN100568182C (zh) 在逻辑地分区的数据处理系统内分布工作的方法和系统
JP6132766B2 (ja) データセンタサービスの制御された自動復旧
JP5577412B2 (ja) 計算機システム、マイグレーション方法及び管理サーバ
US7650400B2 (en) Dynamic configuration and self-tuning on inter-nodal communication resources in a database management system
JP2006178969A (ja) 動作不能なマスタ作業負荷管理プロセスを代替するシステムおよび方法
US7565507B2 (en) Cooperative memory management allowing program request and release memory as needed
JP2004038932A (ja) Raidシステムにおけるi/oタスクを分解する方法及び装置
US20190042322A1 (en) Elastic multi-tenant container architecture
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US20050005018A1 (en) Method and apparatus for performing application virtualization
JP2014142928A (ja) クラウドコンピューティング環境を管理する方法およびシステム
JP2006011992A (ja) クラスタ構成コンピュータシステムの系切替方法
JP2006350780A (ja) キャッシュ割当制御方法
WO2006103687A1 (en) Partitioned resource reallocation system and method
JP2009510572A (ja) ロジカル・パーティションにプロセッサを割り当てるための方法、装置、およびプログラム
CN113886089B (zh) 一种任务处理方法、装置、系统、设备及介质
JP2011123746A (ja) 計算機システム、計算機リソースの管理方法及びプログラム
US20020133639A1 (en) Method and system for migrating an object between a split status and a merged status
US6985976B1 (en) System, method, and computer program product for memory management for defining class lists and node lists for allocation and deallocation of memory blocks
KR100772872B1 (ko) 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
US20100094861A1 (en) System and method for application session tracking
KR102245208B1 (ko) 다중처리방법 및 그 장치
CN113986502A (zh) 线程池管理方法、装置、计算机终端及存储介质

Legal Events

Date Code Title Description
GRNT Written decision to grant