KR101662030B1 - 태스크 이동 시스템 및 그 방법 - Google Patents

태스크 이동 시스템 및 그 방법 Download PDF

Info

Publication number
KR101662030B1
KR101662030B1 KR1020100003369A KR20100003369A KR101662030B1 KR 101662030 B1 KR101662030 B1 KR 101662030B1 KR 1020100003369 A KR1020100003369 A KR 1020100003369A KR 20100003369 A KR20100003369 A KR 20100003369A KR 101662030 B1 KR101662030 B1 KR 101662030B1
Authority
KR
South Korea
Prior art keywords
task
movement
management unit
migration
migration point
Prior art date
Application number
KR1020100003369A
Other languages
English (en)
Other versions
KR20110083243A (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 KR1020100003369A priority Critical patent/KR101662030B1/ko
Priority to US12/923,759 priority patent/US8332461B2/en
Publication of KR20110083243A publication Critical patent/KR20110083243A/ko
Application granted granted Critical
Publication of KR101662030B1 publication Critical patent/KR101662030B1/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, look ahead
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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
    • 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]

Abstract

자원 관리부를 이용하여 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하고, 프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 이동 착수 핸들러로부터 이동 관리부로 전송함으로써, 이동 관리부를 이용하여 상기 캡쳐 준비 상태가 된 제1 태스크에 대한 이동 요청 신호에 따라 상기 캡쳐 준비 상태가 된 제1 태스크의 마이그레이션 포인트를 캡쳐하여 상기 마이그레이션 포인트가 캡쳐된 제1 태스크를 제2 태스크로 이동하는 태스크 이동 시스템을 제공한다.

Description

태스크 이동 시스템 및 그 방법{TASK MIGRATION SYSTEM AND METHOD THEREOF}
본 발명은 멀티프로세서 컴퓨팅 환경에서 동적으로 태스크를 이동하기 위한 시스템 및 방법에 관한 것이다.
최근 실시간 처리를 요하는 멀티미디어와 같은 애플리케이션의 증가에 따라, 컴퓨팅 기기들의 시스템 성능 요구량도 점점 증가하고 있으며 급기야 단일 프로세서만으로는 그처럼 빠른 처리를 요하는 애플리케이션을 효율적으로 처리할 수 없는 상황에 직면하고 있다.
이러한 변화는 반도체 집적기술의 발달과 더불어 멀티 프로세서 컴퓨팅 기술이 등장하였고, 멀티 프로세서를 사용할 경우 단일 프로세서보다 에너지 효율 및 성능향상에 있어서 많은 이점을 가져다 주고 있다. 멀티 프로세서 컴퓨팅 환경에서는 보다 적합한 성능을 얻기 위해 동시에 태스크를 수행하거나 병렬성을 활용하여 태스크를 수행할 수 있다.
멀티 프로세서를 사용하는 정보기기는 개인휴대 단말기, 서버, 이동전화, 이동 컴퓨터와 더불어 세탑 박스, 디지털 영상기기 등을 포함하여 미래 임베디드(Embedded) 시스템의 주요한 부분을 차지할 것으로 예상된다. 따라서, 밀티 프로세서를 사용하는 정보기기는 단일 기기에서 사용자의 요구에 따라 다양한 응용이 수행되어야 한다.
멀티 프로세서의 구성으로는 동일한 ISP(Instruction Set Processor)를 사용하는 균일한 프로세서들을 버스나 NoC(Network On Chip)와 같은 Interconnection으로 연결한 균일형(Homogeneous) 멀티프로세서가 있으며, 여러 개의 ISP 프로세서와 DSP, FPGA, Reconfigurable Processor등의 하드웨어 적인 프로그래밍 특성을 가진 디바이스들과 Interconnection으로 연결한 비균일형(Heterogeneous) 멀티프로세서가 있을 수 있다.
이러한 비균일한 멀티프로세서 컴퓨팅 환경에서는 제한된 컴퓨팅 자원을 최대한 활용하여 응용에 적합한 구성으로 시스템을 최적화해서 사용해야 하며 사용자의 요구에 따라 수행하고자 하는 응용이 변하거나 환경변화에 최적화된 형태로 재구성될 수 있어야 한다.
본 발명의 일실시예에 따른 태스크 이동 시스템은 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하는 자원 관리부, 프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 이동 관리부로 전송하는 이동착수 핸들러 및 상기 제1 태스크에 대한 이동 요청 신호에 따라 상기 제1 태스크의 마이그레이션 포인트를 캡쳐하여 상기 제1 태스크를 제2 태스크로 이동하는 이동 관리부를 포함한다.
또한, 본 발명의 일실시예에 따른 태스크 이동 방법은 자원 관리부를 이용하여 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하는 단계, 프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 이동 착수 핸들러로부터 이동 관리부로 전송하는 단계 및 이동 관리부를 이용하여 상기 제1 태스크에 대한 이동 요청 신호에 따라 상기 제1 태스크의 마이그레이션 포인트를 캡쳐하여 상기 제1 태스크를 제2 태스크로 이동하는 단계를 포함한다.
본 발명의 일실시예에 따르면 멀티 프로세서 상에서 다중 태스크를 운영하는 경우 태스크간 효율적인 이동을 위한 방법 및 기본적인 시스템 구성으로 사용할 수 있다.
또한, 본 발명의 일실시예에 따르면 비균일한 멀티프로세서 환경에서 최적의 시스템 구성을 동적 재구성 할 수 있다.
또한, 본 발명의 일실시예에 따르면 멀티 프로세서 컴퓨팅 환경에서 동적 태스크 이동을 통하여 시스템을 모니터링 하고, 최적의 재구성 조합을 찾고, 오류 발생시 적절한 대응을 하도록 하는 자원관리 기능을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 비균일한(Heterogeneous) 멀티프로세서 컴퓨팅 환경에서의 태스크 이동을 위한 시스템 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 태스크 이동 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 태스크의 마이그레이션 포인트 캡쳐 과정을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 태스크 이동 시스템의 마이그레이션 포인트 처리 과정을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 정지 비트(stop bit)을 이용한 마이그레이션 포인트 캡쳐 방법을 도시한 도면이다.
도 6 내지 도 7은 본 발명에 따른 이동 관리부에 의한 태스크 이동 방법을 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 따른 이동착수 핸들러에 의한 태스크 이동 방법을 도시한 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 일실시예에 따른 태스크 이동 장치를 포함하는 시스템의 멀티프로세서 컴퓨팅 플랫폼은 하나 이상의 ISP(Instruction Set Processor)와 ASIC(application- specific integrated circuit)과 같은 특정 하드웨어 디바이스, FPGA(Field Programmable Gate Array)와 같이 재구성 가능한 디바이스들, 버스나 NoC(Network on Chip)와 같은 통신 채널로 서로 연결된 구조일 수 있다.
멀티 프로세서 컴퓨팅 플랫폼을 기초로 하는 본 발명의 일실시예에 따른 태스크 이동 장치는 ISP 프로세서(하기에는 General Purpose Processor (GPPS)라 칭함)가 하나 이상 존재할 수 있으며, 상기 프로세서 상에서 운영체제와 시스템 소프트웨어들이 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 비균일한(Heterogeneous) 멀티프로세서 컴퓨팅 환경에서의 태스크 이동을 위한 시스템 구성을 도시한 블록도이다.
도 1에 도시된 바와 같이 본 발명의 일실시예에 따르면 GPP에는 ARM(Advanced RISC Machine)과 같은 ISP를 예로 들 수 있으며 RP는 VLIW(Very long instruction word)와 작은 셀 구조를 갖는 프로세서를 예로 들 수 있으며 상기 구조는 제한된 것이 아니다.
도 2는 본 발명의 일실시예에 따른 태스크 이동 장치의 구성을 도시한 블록도이다.
본 발명의 일실시예에 따른 태스크 이동 시스템은 크게, 자원 관리부(210), 이동착수 핸들러(220) 및 이동 관리부(230)으로 구성된다.
본 발명의 일실시예에 따른 자원 관리부(210)는 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하며, 이동착수 핸들러(220)는 프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 이동 관리부로 전송한다.
본 발명의 일실시예에 따른 이동 관리부(230)는 상기 제1 태스크에 대한 이동 요청 신호에 따라 상기 제1 태스크의 마이그레이션 포인트를 캡쳐하여 상기 제1 태스크를 제2 태스크로 이동한다.
본 발명의 일실시예에 따르면, 자원 관리부(210), 이동착수 핸들러(220) 및 이동 관리부(230)는 하나의 모듈로 구성이 가능하나, 기능적인 효율성을 고려하여 세가지 모듈로 구분하여 설명하도록 한다.
예를 들어, 본 발명의 일실시예에 따른 태스크 이동 시스템은 ASIC과 같은 하드웨어에서는 하드웨어 형태의 태스크가 수행되며 GPP에서는 명령어 코드(Instruction code) 형태의 태스크가 수행될 수 있다.
본 발명의 일실시예에 따른 태스크 이동 시스템은 자원관리 차원에서 제1 태스크에 대한 이동 요청이 발생하면 상기 요청을 자원 관리부(210)가 이동 관리부(230)로 송신하게 되며, 이동 관리부(230)는 해당 태스크의 정보를 메모리로부터 추출하여 제1 태스크의 마이그레이션 포인트(migration point)를 캡쳐하기 위한 작업을 수행한다.
도 3은 본 발명의 일실시예에 따른 태스크의 마이그레이션 포인트 캡쳐 과정을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 태스크 이동 시스템은 서로 다른 ISP구조를 갖는 프로세서 상에서 수행되는 제1 태스크와 제2 태스크의 마이그레이션 포인트 캡쳐 과정을 이해할 수 있으며, 그에 따른 태스크의 마이그레이션 포인트는 다음과 같은 특성을 가진다.
본 발명의 일실시예에 따른 마이그레이션 포인트는, 상기 제1 태스크 중 제2 태스크로 전환되는 정보와 동일한 상태로 설정될 수 있다. 또한, 본 발명의 일실시예에 따른 마이그레이션 포인트는, 가능한 최소한의 컨텍스트(Context)의 값을 가지도록 설정된다.
또한, 본 발명의 일실시예에 따른 마이그레이션 포인트는, 컴파일러에 의하여 수행 코드에서의 주소를 상기 마이그레이션 포인트의 순번으로 맵핑될 수 있다. 예를 들어, 상기와 같은 경우 전환 대상 태스크간 동일한 마이그레이션 포인트 순번은 수학식 1과 같이 동일한 상태임을 의미한다.
[수학식 1]
MPi state for 제1 태스크= MPi state for 제2 태스크
한편, 본 발명의 일실시예에 따르면 마이그레이션 포인트를 보다 효율적으로 사용하기 위해서는 응용의 행동(behavioral) 특성에 대한 분석이 선행되어야 하는 바, 사용자 레벨(user level)에서 그 사용이 이루어 져야 응용을 구성하는 프로세서의 최소한의 마이그레이션 상태(migration state)를 가지는 프로그램상의 위치를 정할 수 있다.
도 4는 본 발명의 일실시예에 따른 태스크 이동 시스템의 마이그레이션 포인트 처리 과정을 도시한 도면이다.
예를 들어, 도 4에 도시된 바와 같이 본 발명의 일실시예에 따른 마이그레이션 포인트 처리 방법은 ISP가 상이한 프로세서 간의 이동에도 확대 적용할 수 있으며, 프로세서의 수행 상태에서 동일한 포인트를 지정하여 그 상태의 장치 독립화(machine independent)한 상태를 전달 함으로 목적지 노드(destination node)에서 프로세서를 재개할 수 있다.
도 5는 본 발명의 일실시예에 따른 정지 비트(stop bit)을 이용한 마이그레이션 포인트 캡쳐 방법을 도시한 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 태스크 이동 시스템은 이동된(Migrated) 태스크에 전달되어야 하는 최소한의 정보를 정의할 수 있는 태스크의 상태를 정한 후, 해당 위치에 마이그레이션 포인트 함수를 위치 시킨다.
본 발명의 일실시예에 따른 태스크 이동 시스템은 태스크 수행이 마이그레이션 포인트에 위치하게 되면 태스크 식별자를 기준으로 해당 태스크의 이동 요청이 있었는지 여부를 체크한다.
이때, 본 발명의 일실시예에 따른 태스크 이동 시스템은 태스크에 대한 요청이 없는 경우, 대기 상태로 다시 되돌리고 태스크의 수행을 계속 진행한다. 한편, 본 발명의 일실시예에 따른 태스크 이동 시스템은 태스크에 대한 요청이 있는 경우, 전달되어야 하는 현재 태스크의 상태를 저장하기 위해 해당 태스크의 상태를 저장하고, 이동착후 핸들러(220)를 호출한다.
또한, 본 발명의 일실시예에 따른 태스크 이동 시스템은 태스크 상태의 저장이 완료된 후 마이그레이션 진행을 위해 체크-인(check_in) 함수를 호출하고, 자원(source) 태스크는 마이그레이션 타입(migration type)에 따라 수행을 멈추게 되고 목적지 노드의 이동된 태스크에 상태를 수임한다.
또한, 본 발명의 일실시예에 따른 태스크 이동 시스템은 이동된 태스크에 모든 상태가 수임되어 목적지 노드에 태스크가 수행되면 마이그레이션 포인트 지점을 수행하게 되고, 체크 아웃(check out)을 통해 자원 태스크의 상태를 전달 받아 현재 수행된 태스크의 상태를 세트(set)하기 위한 이동착수 핸들러를 호출한 후, 이동 되기 이전 상태와 동일한 상태로 설정한다.
본 발명의 일실시예에 따라 마이그레이션 포인트를 이용하면 프로세서의 정상 적인 수행 중에서 이동 요청이 있었는지를 체크하기 위한 런타임 오버헤드(runtime overhead)가 발생할 수 있다. 또한, 본 발명의 일실시예에 따르면 마이그레이션 포인트 의 수행 빈도수가 높아질수록 이동 요청의 역방향 딜레이(reaction delay)는 감소하지만 런타임 오버헤드는 증가하게 되므로, 다음과 같은 다양한 방법을 통하여 마이그레이션 포인트의 런타임 오버헤드를 감소하기 위한 방법을 제공할 수 있다.
먼저, 본 발명의 일실시예에 따른 오버헤드 감소 방법으로 Polling function on the check point 방법을 이용할 수 있는 바, 상기 방법은 전역 변수를 설정하고 이동 요청 시 해당 변수를 매 폴 포인트(poll point)에서 확인하는 방법이다.
본 발명의 일실시예에 따른 상기 방법은 메트릭스를 적용하기 쉬우나, 너무 많은 폴 포인트에 비례한 런타임 오버헤드가 발생하며, 너무 적은 폴 포인트에 비례한 반응 지연이 증가 할 수 있다.
또한, 본 발명의 일실시예에 따른 오버헤드 감소 방법으로 Dynamic modification of the code at the check point 방법을 이용할 수 있는 바, 상기 방법은 수행 코드에 마이그레이션 포인트 정보를 기반으로 이동 요청 시 분기점을 추가하여 이동을 착수 하도록 하는 방법으로 분기 명령어 코드 삽입을 위해 원본 코드에 추가의 모조 코드(dummy code)들을 삽입하였다가 이동 요청 시 분기 명령어로 대치하는 방법이다.
본 발명의 일실시예에 따른 상기 방법은 폴 포인트보다 비교적 성능 오버헤드가 작으나 일반적인 태스크 수행 중에도 모조 코드에 대한 성능 오버헤드를 발생시킬 수 있다.
마지막으로, 본 발명의 일실시예에 따른 오버헤드 감소 방법으로 Hardware supported for migration check 방법을 이용할 수 있는 바, 프로세서에 마이그레이션 포인트 캡쳐를 위한 추가 하드웨어 모듈을 추가, 또는 디버그 모드의 명령어 주소 비교 레지스터(Instruction address compare register)를 이용한 방법이다.
본 발명의 일실시예에 따른 상기 방법은 정상 상태에서 태스크의 수행 오버헤드는 없는 반면, 일반적으로 적용하기 힘들며 비교 레지스터의 개수에 의해 마이그레이션 포인트의 수가 제한 받게 되며, 디버그(Debugger) 장비와 간섭이 있을 수 있으며 일반 적으로 해당 기능을 사용하기 위한 컴파일러 지원이 거의 없을 수 있다.
또한, 본 발명의 일실시예에 따르면 VLIW를 사용하는 프로세서 상에서 마이그레이션 포인트를 캡쳐 하기 위한 방법으로 마이그레이션 포인트에 해당하는 PC값을 현재 PC값과 비교하는 하드웨어 로직(hardware logic)을 추가하는 방법, VLIW 명령어(instruction)에서 정지 비트(stop bit)를 이용하는 두 가지 방법을 제안할 수 있다.
본 발명의 일실시예에 따라 PC 값을 비교하는 하드웨어 로직을 추가 하는 방법은 마이그레이션 포인트 주소를 저장해야 하는 레지스터의 개수에 의해 마이그레이션 포인트 지정이 제한되므로, 실제 하나의 명령어 사이클(instruction cycle)에 현재의 pc 값과 비교가 이루어져야 하기 때문에 지원 가능한 레지스터의 개수는 매우 제한 적이다.
따라서, 본 발명의 일실시예에 따르면 VLIW 명령어에서 마이그레이션 포인트캡쳐를 위한 정지 비트(stop bit)를 추가 하고 태스크 이동 요청 위치에서 해당 태스크의 명령어 코드에서 이동을 위한 마이그레이션 포인트에 정비 비트를 마이그레이션 포인트 정지 비트(check point stop bit)로 수정한다.
다음으로, 본 발명의 일실시예에 따라 태스크의 수행이 마이그레이션 포인트에 도달 하면 정해진 마이그레이션 체크 포인트 핸들러로 이동하여 태스크 이동 과정을 수행할 수 있다.
예를 들어, 본 발명의 일실시예에 따르면 OS로부터 태스크 C에 대한 이동 요청이 발생하면 태스크 C의 마이그레이션 포인트에 해당 하는 명령어의 정지 비트에 마이그레이션 포인트 정지 비트를 “111”로 수정한다.
이때, 본 발명의 일실시예에 따르면 기존의 정지 비트 값은 추후 원복을 위해 별도로 저장하며, 코드 수정된 프로세서 C’는 수행도 중 마이그레이션 포인트 수행 지점에서 정지 비트에 의해 캡쳐된다. 또한, 상기 정보는 마이그레이션 명령어 핸들러에 의해 이동 관리부로 전송되며 이를 기반으로 태스크 C의 이동을 진행한다.
아래에서는 본 발명의 일실시예에 따른 태스크 이동 방법을 도 6 내지 도 8을 참고하여 설명하도록 한다.
도 6 내지 도 7은 본 발명에 따른 이동 관리부에 의한 태스크 이동 방법을 도시한 흐름도이다.
먼저, 본 발명의 일실시예에 따른 이동 관리부는 이동 요청 태스크 신호 리스트를 초기화 하고 메시지 수신을 대기한다(610, 620).
다음으로, 본 발명의 일실시예에 따른 이동 관리부는 메시지 수신 대기 상태에서 태스크 캡쳐 정보가 수신되는지 태스크 이동 요청 신호가 수신되는지 여부를 확인한다(630).
이때, 본 발명의 일실시예에 따른 이동 관리부는 이동착수 핸들러로부터 상기 제1 태스크에 대한 캡쳐 정보를 수신한 경우, 상기 제1 태스크에 대한 태스크 전환을 수행하여 상기 제1 태스크를 제2 태스크로 이동하도록 제어한다(700).
한편, 본 발명의 일실시예에 따른 이동 관리부는 자원 관리부로부터 상기 제1 태스크에 대한 이동 요청 신호를 수신한 경우, 상기 제1 태스크의 상태를 확인하여 상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인지 여부를 판단한다(640, 650).
이때, 본 발명의 일실시예에 따른 이동 관리부는 상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인 경우, 상기 제1 태스크에 대한 태스크 전환을 수행하여 상기 제1 태스크를 제2 태스크로 이동하도록 제어한다(660).
본 발명의 일실시에에 따른 단계(700)에 의하면 본 발명의 일실시예에 따른 이동 관리부는 상기 제1 태스크의 코드를 복원하고(710), 상기 제1 태스크와 동일한 상태의 상기 제2 태스크를 추출하여 상기 마이그레이션 포인트의 위치에서 상기 제2 태스크를 개시 또는 재개시한다(720 ~ 760).
또한, 본 발명의 일실시예에 따른 이동 관리부는 상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태가 아닌 경우, 상기 제1 태스크에 대한 요청 신호를 이동 요청 태스크 신호에 추가한다(670).
다음으로, 본 발명의 일실시예에 따른 이동 관리부는 상기 제1 태스크(태스크 A)에 대한 요청 신호를 상기 이동 요청 태스크 신호에 추가한 경우, 상기 제1 태스크의 원본 코드를 메모리에 복사하고 상기 제1 태스크의 위치의 코드를 수행 정지(stop) 코드로 수정한다(680).
이때, 본 발명의 일실시예에 따른 이동 관리부는 상기 제1 태스크의 위치의 코드를 수행 정지(stop) 코드로 수정한 경우, 상기 이동착수 핸들러를 활성화 시키도록 제어한다(690).
도 8은 본 발명의 일실시예에 따른 이동착수 핸들러에 의한 태스크 이동 방법을 도시한 흐름도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 이동착수 핸들러는 초기화 후 정지 신호(Stop signal)를 수신하기 위하여 수신 대기한다(810, 820).
이때, 본 발명의 일실시예에 따른 이동착수 핸들러는 상기 수행 정지 코드에 대응하는 정지 신호(stop signal)을 수신한 경우, 상기 제1 태스크의 정보를 추출하고 상기 이동 요청 태스크 신호에 제외(exception) 발생된 태스크와 프로그램 수행 주소가 존재하는지 여부를 확인한다(830 ~ 860).
또한, 본 발명의 일실시예에 따른 이동착수 핸들러는 상기 제외(exception) 발생된 태스크와 상기 프로그램 수행 주소가 일치하는 경우, 상기 제1 태스크에 대한 요청을 제거하고 스케줄링 태스크 신호에서 상기 제1 태스크를 이동 준비 상태로 변경 및 제거한다(870 ~ 880).
다음으로, 본 발명의 일실시예에 따른 이동착수 핸들러는 상기 제1 태스크를 이동 준비 상태로 변경 및 제거한 경우, 상기 캡쳐된 제1 태스크의 정보 및 상기 마이그레이션 포인트 주소를 상기 이동 관리부로 전송한다(890, 900).
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
210: 자원 관리부
220: 이동착수 핸들러
230: 이동 관리부

Claims (19)

  1. 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하는 자원 관리부;
    프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 이동 관리부로 전송하는 이동착수 핸들러; 및
    상기 캡쳐 준비 상태가 된 제1 태스크에 대한 이동 요청 신호에 따라 상기 캡쳐 준비 상태가 된 제1 태스크의 마이그레이션 포인트를 캡쳐하고, 상기 마이그레이션 포인트가 캡쳐된 제1 태스크를 제2 태스크로 전환하는 이동 관리부
    를 포함하고,
    상기 이동착수 핸들러는 이동 요청 태스크 신호에 제외(exception) 발생된 태스크와 프로그램 수행 주소의 존재 여부에 기초하여 상기 필요 정보를 상기 이동 관리부로 전송하는
    태스크 이동 시스템.
  2. 제1항에 있어서,
    상기 마이그레이션 포인트는,
    상기 제1 태스크 중 제2 태스크로 전환되는 정보와 동일한 상태로 설정되는 태스크 이동 시스템.
  3. 제1항에 있어서,
    상기 마이그레이션 포인트는,
    상기 제1 태스크와 제2 태스크의 컨텍스트(Context)가 동일하도록 설정되는 태스크 이동 시스템.
  4. 제1항에 있어서,
    상기 마이그레이션 포인트는,
    수행 코드에서의 주소를 상기 마이그레이션 포인트의 순번으로 맵핑되도록 설정되는 태스크 이동 시스템.
  5. 제1항에 있어서,
    상기 이동 관리부는,
    상기 자원 관리부로부터 상기 제1 태스크에 대한 이동 요청 신호를 수신한 경우, 상기 제1 태스크의 상태를 확인하여 상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인지 여부를 판단하고,
    상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인 경우, 상기 제1 태스크에 대한 태스크 전환을 수행하여 상기 제1 태스크를 제2 태스크로 이동하는 태스크 이동 시스템.
  6. 제5항에 있어서,
    상기 이동 관리부는,
    상기 제1 태스크의 코드를 복원하고, 상기 제1 태스크와 동일한 상태의 상기 제2 태스크를 추출하여 상기 마이그레이션 포인트의 위치에서 상기 제2 태스크를 개시 또는 재개시하는 태스크 이동 시스템.
  7. 제5항에 있어서,
    상기 이동 관리부는,
    상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태가 아닌 경우, 상기 이동 요청 태스크 신호에 상기 제1 태스크에 대한 요청 신호를 추가하는 태스크 이동 시스템.
  8. 제7항에 있어서,
    상기 이동 관리부는,
    상기 이동 요청 태스크 신호에 상기 제1 태스크에 대한 요청 신호를 추가한 경우, 상기 제1 태스크의 원본 코드를 메모리에 복사하고 상기 제1 태스크의 위치의 코드를 수행 정지(stop) 코드로 수정하는 태스크 이동 시스템.
  9. 제8항에 있어서,
    상기 이동 관리부는,
    상기 제1 태스크의 위치의 코드를 수행 정지(stop) 코드로 수정한 경우, 상기 이동착수 핸들러를 활성화 시키도록 제어하는 태스크 이동 시스템.
  10. 제9항에 있어서,
    상기 이동착수 핸들러는,
    상기 수행 정지 코드에 대응하는 정지 신호(stop signal)을 수신한 경우, 상기 제1 태스크의 정보를 추출하고 상기 이동 요청 태스크 신호에 상기 제외(exception) 발생된 태스크와 상기 프로그램 수행 주소가 존재하는지 여부를 확인하는 태스크 이동 시스템.
  11. 제10항에 있어서,
    상기 이동착수 핸들러는,
    상기 제외 발생된 태스크와 상기 프로그램 수행 주소가 일치하는 경우, 상기 제1 태스크에 대한 요청을 제거하고 태스크 스케줄링 큐에서 상기 제1 태스크를 이동 준비 상태로 변경 및 제거하는 태스크 이동 시스템.
  12. 제11항에 있어서,
    상기 이동착수 핸들러는,
    상기 제1 태스크를 이동 준비 상태로 변경 및 제거한 경우, 상기 캡쳐된 제1 태스크의 정보 및 상기 마이그레이션 포인트의 주소를 상기 이동 관리부로 전송하는 태스크 이동 시스템.
  13. 자원 관리부에 의하여 제1 태스크에 대한 이동 요청 신호를 이동 관리부로 전송하는 단계;
    프로세서로부터 상기 제1 태스크 중 마이그레이션 포인트(migration point)의 캡쳐(Capture) 준비 상태가 된 제1 태스크를 수신한 경우, 이동착수 핸들러에 의하여 상기 제1 태스크에 대한 이동 요청 신호에 따른 필요 정보를 상기 이동 착수 핸들러로부터 이동 관리부로 전송하는 단계; 및
    이동 관리부에 의하여 상기 캡쳐 준비 상태가 된 제1 태스크에 대한 이동 요청 신호에 따라 상기 캡쳐 준비 상태가 된 제1 태스크의 마이그레이션 포인트를 캡쳐하여 상기 마이그레이션 포인트가 캡쳐된 제1 태스크를 제2 태스크로 전환하는 단계
    를 포함하고,
    상기 전송하는 단계는 상기 이동착수 핸들러에 의하여 이동 요청 태스크 신호에 제외 발생된 태스크와 프로그램 수행 주소의 존재 여부에 기초하여 상기 필요 정보를 상기 이동 관리부로 전송하는
    태스크 이동 방법.
  14. 제13항에 있어서,
    상기 자원 관리부로부터 상기 제1 태스크에 대한 이동 요청 신호가 상기 이동 관리부에 수신된 경우, 상기 이동 관리부에 의하여 상기 제1 태스크의 상태를 확인하여 상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인지 여부를 판단하는 단계; 및
    상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태인 경우, 상기 이동 관리부에 의하여 상기 제1 태스크에 대한 태스크 전환을 수행하여 상기 제1 태스크를 제2 태스크로 이동하는 단계
    를 더 포함하는 태스크 이동 방법.
  15. 제14항에 있어서,
    상기 제1 태스크를 제2 태스크로 이동하는 단계는,
    상기 이동 관리부에 의하여 상기 제1 태스크의 코드를 복원하는 단계; 및
    상기 이동 관리부에 의하여 상기 제1 태스크와 동일한 상태의 상기 제2 태스크를 추출하여 상기 마이그레이션 포인트의 위치에서 상기 제2 태스크를 개시 또는 재개시하는 단계
    를 포함하는 태스크 이동 방법.
  16. 제14항에 있어서,
    상기 제1 태스크가 상기 마이그레이션 포인트에 위치하여 이동 준비 상태가 아닌 경우, 상기 이동 관리부에 의하여 상기 제1 태스크에 대한 요청 신호를 상기 이동 요청 태스크 신호에 추가하는 단계;
    상기 이동 관리부에 의하여 상기 제1 태스크의 원본 코드를 메모리에 복사하는 단계;
    상기 이동 관리부에 의하여 상기 제1 태스크의 위치의 코드를 수행 정지(stop) 코드로 수정하는 단계; 및
    상기 이동 관리부에 의하여 상기 이동착수 핸들러를 활성화 시키도록 제어하는 단계
    를 더 포함하는 태스크 이동 방법.
  17. 제16항에 있어서,
    상기 수행 정지 코드에 대응하는 정지 신호(stop signal)가 이동 착수 핸들러에 수신된 경우, 상기 이동착수 핸들러에 의하여 상기 제1 태스크의 정보를 추출하는 단계; 및
    상기 이동착수 핸들러에 의하여 상기 이동 요청 태스크 신호에 상기 제외 발생된 태스크와 상기 프로그램 수행 주소가 존재하는지 여부를 확인하는 단계
    를 더 포함하는 하는 태스크 이동 방법.
  18. 제17항에 있어서,
    상기 제외(exception) 발생된 태스크와 상기 프로그램 수행 주소가 일치하는 경우, 상기 이동착수 핸들러에 의하여 상기 제1 태스크에 대한 요청을 제거하는 단계;
    상기 이동착수 핸들러에 의하여 태스크 스케줄링 큐에서 상기 제1 태스크를 이동 준비 상태로 변경하고 제거하는 단계; 및
    상기 이동착수 핸들러에 의하여 상기 캡쳐된 제1 태스크의 정보 및 상기 마이그레이션 포인트의 주소를 상기 이동 착수 핸들러로부터 상기 이동 관리부로 전송하는 단계
    를 더 포함하는 태스크 이동 방법.
  19. 제13항 내지 제18항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020100003369A 2010-01-14 2010-01-14 태스크 이동 시스템 및 그 방법 KR101662030B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100003369A KR101662030B1 (ko) 2010-01-14 2010-01-14 태스크 이동 시스템 및 그 방법
US12/923,759 US8332461B2 (en) 2010-01-14 2010-10-06 Task migration system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100003369A KR101662030B1 (ko) 2010-01-14 2010-01-14 태스크 이동 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20110083243A KR20110083243A (ko) 2011-07-20
KR101662030B1 true KR101662030B1 (ko) 2016-10-14

Family

ID=44259532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100003369A KR101662030B1 (ko) 2010-01-14 2010-01-14 태스크 이동 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US8332461B2 (ko)
KR (1) KR101662030B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869136B2 (en) * 2011-01-05 2014-10-21 International Business Machines Corporation Calculating migration points for application migration
US9588808B2 (en) 2013-05-31 2017-03-07 Nxp Usa, Inc. Multi-core system performing packet processing with context switching
ES2703473B2 (es) * 2016-07-12 2020-10-22 Proximal Systems Corp Aparato, sistema y procedimiento de gestion de acoplamiento de intermediario

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050203988A1 (en) 2003-06-02 2005-09-15 Vincent Nollet Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
JP2005322232A (ja) 2004-05-03 2005-11-17 Sony Computer Entertainment Inc タスクの移動に関するシステムおよび方法
US20060190942A1 (en) * 2004-02-20 2006-08-24 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
US6161219A (en) * 1997-07-03 2000-12-12 The University Of Iowa Research Foundation System and method for providing checkpointing with precompile directives and supporting software to produce checkpoints, independent of environment constraints
US7346664B2 (en) * 2003-04-24 2008-03-18 Neopath Networks, Inc. Transparent file migration using namespace replication
US7565653B2 (en) 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
KR20090005921A (ko) 2007-07-10 2009-01-14 삼성전자주식회사 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
US7801994B2 (en) * 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
JP5132292B2 (ja) * 2007-12-07 2013-01-30 キヤノン株式会社 情報処理装置および情報処理方法
KR101366075B1 (ko) 2007-12-20 2014-02-21 삼성전자주식회사 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치
KR101400286B1 (ko) * 2008-01-22 2014-05-26 삼성전자주식회사 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050203988A1 (en) 2003-06-02 2005-09-15 Vincent Nollet Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
US20060190942A1 (en) * 2004-02-20 2006-08-24 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
JP2005322232A (ja) 2004-05-03 2005-11-17 Sony Computer Entertainment Inc タスクの移動に関するシステムおよび方法

Also Published As

Publication number Publication date
US20110173633A1 (en) 2011-07-14
KR20110083243A (ko) 2011-07-20
US8332461B2 (en) 2012-12-11

Similar Documents

Publication Publication Date Title
US9652247B2 (en) Capturing snapshots of offload applications on many-core coprocessors
TWI559153B (zh) 分散式計算架構
CN107636612B (zh) 应用迁移装置、方法与存储介质
KR102192503B1 (ko) 캐시 서버를 이용하여 가상 데스크톱 서비스를 제공하기 위한 시스템 및 그 방법
US20170353397A1 (en) Offloading Execution of an Application by a Network Connected Device
CN106844017B (zh) 用于网站服务器处理事件的方法和设备
EP3837604B1 (en) In situ triggered function as a service within a service mesh
Verbelen et al. Adaptive deployment and configuration for mobile augmented reality in the cloudlet
KR102083289B1 (ko) 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
JP2010272055A (ja) 情報処理装置および方法、並びにプログラム
US8607199B2 (en) Techniques for debugging code during runtime
WO2014143059A1 (en) Mechanism for facilitating dynamic and efficient management of instruction atomicity volations in software programs at computing systems
CN111459623A (zh) 应用程序恢复运行的方法、装置及计算机
WO2023046141A1 (zh) 一种数据库网络负载性能的加速框架、加速方法及设备
KR101662030B1 (ko) 태스크 이동 시스템 및 그 방법
US11467946B1 (en) Breakpoints in neural network accelerator
RU2600538C2 (ru) Запуск приложения на основе интерфейса передачи сообщения (mpi) в гетерогенной среде
US10313450B2 (en) Method for transparently connecting augmented network socket operations
US20100269119A1 (en) Event-based dynamic resource provisioning
US8442939B2 (en) File sharing method, computer system, and job scheduler
CN110955503A (zh) 任务调度方法及装置
US10223238B1 (en) Multiple-stage crash reporting
Chae et al. {DynaMix}: Dynamic Mobile Device Integration for Efficient Cross-device Resource Sharing
JP6656485B1 (ja) 割込み処理方法、コンピュータシステムおよびプログラム
Sawada et al. An android cluster system capable of dynamic node reconfiguration

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

Year of fee payment: 4