KR20100073980A - 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법 - Google Patents

하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20100073980A
KR20100073980A KR1020090109630A KR20090109630A KR20100073980A KR 20100073980 A KR20100073980 A KR 20100073980A KR 1020090109630 A KR1020090109630 A KR 1020090109630A KR 20090109630 A KR20090109630 A KR 20090109630A KR 20100073980 A KR20100073980 A KR 20100073980A
Authority
KR
South Korea
Prior art keywords
platform
kernel
replication
hybrid system
receiving
Prior art date
Application number
KR1020090109630A
Other languages
English (en)
Other versions
KR101091509B1 (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 KR20100073980A publication Critical patent/KR20100073980A/ko
Application granted granted Critical
Publication of KR101091509B1 publication Critical patent/KR101091509B1/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/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
    • 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
    • G06F15/163Interprocessor communication
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1043Gateway controllers, e.g. media gateway control protocol [MGCP] controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1106Call signalling protocols; H.323 and related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1108Web based protocols, e.g. webRTC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 관련 방법에 관한 것이다. 하이브리드 시스템의 제1 플랫폼을 제어하는 제1 커널은 하이브리드 시스템의 제2 플랫폼 내에서 실행가능한 프로세스를 시작한다. 제1 커널은 제2 플랫폼을 제어하는 제2 커널이 프로세스의 복제 프로세스를 생성하도록 요청하여, 프로세스가 제2 플랫폼 내에서 실행되도록 한다. 프로세스는 제1 플랫폼의 클록 사이클을 소비하지 않는 제1 플랫폼 내에서의 복제 프로세스를 나타낸다. 제2 플랫폼 내에서 복제 프로세스를 실행하는 동안, 제1 커널은 제2 커널로부터 제1 커널로 전달된 복제 프로세스의 I/O 요청을 서비스한다. 복제 프로세스가 종료될 때, 복제 프로세스가 리소스를 해제하기에 앞서 제1 플랫폼 내의 프로세스가 제거된다.
하이브리드 시스템, 플랫폼, 복제 프로세스, 커널, 운영체제

Description

하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법{SYSTEM AND METHOD FOR SHIFTING WORKLOADS ACROSS PLATFORM IN A HYBRID SYSTEM}
본 발명은 안정적이고 비용-효율적인 컴퓨팅 환경을 제공하기 위해 고성능 메인프레임 시스템들을 저성능 메인프레임 시스템들과 효율적으로 조합하기 위한 시스템 및 관련 방법을 개시한다.
종래의 호스팅 환경은 여러 종류의 플랫폼을 이용한다. 필수적인 애플리케이션(mission-critical application)을 위해서는, 안정적이고 견고한 서비스를 제공하기 위해 고성능 메인프레임이 바람직하다. 더 낮은 신뢰도 요구사항을 갖는 계산적으로 집중적인 작업부하(computationally intensive workload)는 추가적이고 값비싼 관리 노력을 필요로 하며 별개의 분산 시스템들에서 실행되거나, 덜 비용-효율적이지만 적은 관리 노력을 필요로 하는 방법으로 메인프레임에서 실행될 수 있다.
관리 노력을 제한하며 계산-집중적인 작업부하를 위한 실행 환경의 비용-효율성을 유지하기 위해 서로 다른 구조의 다수의 플랫폼이 있는 컴퓨팅 환경에서 계산-집중적인 작업부하를 비용-효율적으로 실행하는 시스템 및 관련 방법에 대한 요구가 있다.
본 발명은 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법으로서,
상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
상기 프로세스가 상기 제1 플랫폼 내에서 실행가능하지 않다는 것을 검출하는 단계;
상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상기 제2 플랫폼 내에 생성하도록 요청하는 단계 및 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
를 포함하고,
상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는 방법을 제공한다.
본 발명은 컴퓨터 판독가능 프로그램 코드가 포함된 컴퓨터 이용가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
상기 컴퓨터 판독가능 프로그램 코드는 컴퓨터 시스템의 프로세서에 의해 실행되는 경우 하이브리드 시스템에서 작업부하들을 플랫폼 간에 이동시키기 위한 방법을 구현하고,
상기 방법은,
상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
상기 프로세스가 상기 제1 플랫폼 내에서 실행가능하지 않다는 것을 검출하는 단계;
상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상 기 제2 플랫폼 내에 생성하도록 요청하는 단계 및 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
를 포함하고,
상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는, 컴퓨터 프로그램 제품을 제공한다.
본 발명은 프로세서 및 상기 프로세서에 연결되는 컴퓨터 판독가능 메모리 장치를 포함하는 컴퓨터 시스템으로서,
상기 메모리 장치는 상기 프로세서에 의해 실행되는 경우 하이브리드 시스템에서 작업부하들을 플랫폼 간에 이동시키기 위한 방법을 구현하는 명령어들을 포함하고,
상기 방법은,
상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
상기 프로세스가 상기 제1 플랫폼 내에서 실행가능하지 않다는 것을 검출하는 단계;
상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상기 제2 플랫폼 내에 생성하도록 요청하는 단계 및 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
를 포함하고,
상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는, 컴퓨터 시스템을 제공한다.
본 발명은 하이브리드 시스템에서 작업부하를 실행하기 위한 종래의 방법 및 시스템의 현재 단점들 중 적어도 하나를 극복하는 방법 및 시스템을 제공한다.
도 1은 본 발명의 실시예들에 따라, 작업부하를 플랫폼 간에 이동시키기 위한 하이브리드 시스템(100)을 도시한다.
하이브리드 시스템(100)은 데이터 경로(180)를 통해 서로 연결되는 적어도 하나의 시스템 U 및 시스템 K(110)를 포함한다. 상기 적어도 하나의 시스템 U 가운데 하나의 시스템 U(150)는 하이브리드 시스템(100)에서 계산-집중적인 작업부하를 갖는 사용자 애플리케이션을 주로 실행하도록 구성되는 저성능 서버이다. 시스템 K(110)는 하이브리드 시스템(100)을 위한 커널 서비스를 주로 실행하도록 구성된 고성능 메인프레임이다. 시스템 K(110) 및 시스템 U(150)는 각각의 하드웨어 플랫폼에서 동작하고, 각각의 커널에 대해 호환가능한 시스템 호출을 갖는 각각의 소프트웨어 환경을 갖는다. 시스템 K(110) 및 시스템 U(150)는 각각의 커널을 서로 연결시키는 데이터 경로(180)를 통해 서로 통신한다. 하이브리드 시스템(100)은 시스템 K(110)와 시스템 U(150) 모두의 기능 및 특성을 제공하는 단일 시스템으로 사용자에게 인식되도록 구성된다.
시스템 K(110)는 하이브리드 시스템(100)의 시스템 K(110)와 시스템 U(150) 모두를 위한 커널 서비스를 주로 실행하도록 구성된다. 시스템 K(110)는 안정적이고 견고한 컴퓨팅 시스템을 제공하기 위해 하이브리드 시스템(100)에 사용된다. 시스템 K(110)는 또한 관리 목적으로 하이브리드 시스템(100)에서 실행되는 프로세스를 표시한다. 시스템 K(110)는 적어도 하나의 사용자 애플리케이션 K 및 커널 K(130)를 포함한다.
시스템 U 바이너리 코드(160)는 상기 적어도 하나의 사용자 애플리케이션 K 중의 하나이다. 시스템 U 바이너리 코드(160)는 시스템 U(150)에서 실행가능한 포맷인 시스템 K(110)의 사용자 모드 애플리케이션이다. 시스템 U 바이너리 코드(160)는 계산-집중적인 작업부하가 실행되도록 하는 명령어들을 포함한다. 하이브리드 시스템(100)은 시스템 K(110)의 리소스를 소비하지 않고 실행하기 위해 시스템 U 바이너리 코드(160)를 시스템 U(150) 상에 복제함으로써 시스템 U 바이너리 코드(160)를 실행한다. 실행에 관한 세부사항은 아래의 도 2a 및 2b의 설명을 참조하라.
커널 K(130)는 시스템 K(110)를 제어하는 운영체제의 주요부이다. 운영체제는, 다른 것들 중에, 시간/시계 관련 서비스, 메모리 관리 서비스, 프로세스 관리 서비스(스케줄링, 종료, 및 시그널링을 포함), 데이터 서비스(파일/파일 시스템 동작, 네트워크 동작, 및 I/O 호출 등), 디버깅과 로깅(logging) 기능, 공유 메모리 없는 IPC(inter-process communication) 서비스, 메모리 공유 서비스, I/O 동기화, 시스템 관리 서비스, 및 하드웨어 서비스 등과 같은 서비스를 제공한다. 운영체제의 예는, 다른 것들 중에, Linux, UNIX® 등일 수 있다(UNIX는 미국 및 기타 국가들에서 X/Open Company Ltd.의 등록 상표이다).
커널 K(130)는 로더/링커 K(131), 스케줄러 K(132), 페이지 폴트 핸들러 K(133), 및 시스템 호출 핸들러 K(134)를 포함하는데, 이들은 기능적 구성요소들이 다.
로더/링커 K(131)는 바이너리 코드를 시스템 K(110)의 메모리 영역에 로딩하고 실행을 위해 필요한 라이브러리 파일들을 링크시킨다. 로더/링커 K(131)는 로딩된 바이너리 코드가 시스템 K(110)에서 실행가능한지 여부에 관해 결정하기 위해 포맷에 대해 바이너리 코드를 검사한다.
스케줄러 K(132)는 순차적인 실행을 위해 프로세스에 우선권을 할당한다. 프로세스에 할당된 각각의 우선권에 따라, 프로세스는 시스템 K(110)의 마이크로 프로세서 클록 사이클을 갖는다.
페이지 폴트 핸들러 K(133)는 프로그램이 주소 공간에 매핑되어 있지만 시스템 K(110)의 물리적 메모리에 로딩되어 있지 않은 페이지에 액세스하려고 시도하는 경우 발생하는 페이지 폴트에 의해 유발되는 인터럽트/익셉션을 처리한다. 페이지 폴트 핸들러 K(133)는 로더/링커 K(131)가 폴트 페이지를 로딩하도록 한다.
시스템 호출 핸들러 K(134)는 커널 K(130)에 의해 제공되는 커널 서비스를 요청하는 시스템 호출을 실행한다. 시스템 호출은 시스템 K(110) 및/또는 시스템 U(150) 상의 프로세스에 의해 불려진다.
하이브리드 시스템(100)에서, 커널 K(130)는 시스템 K(110) 및 시스템 U(130)로부터의 시스템 호출을 이용하여 모든 I/O 요청을 서비스한다. I/O 장치의 예는, 다른 것들 중에, HiperSockets®, DASD(direct access storage device), 엔터프라이즈 테이프 시스템(enterprise tape systems) 등일 수 있다(HiperSockets는 미국 및 기타 국가들에서 International Business Machines Corporation의 등록 상표이다).
시스템 U(150)는 하이브리드 시스템(100)의 시스템 U(150)와 시스템 K(110) 모두를 위한 사용자 애플리케이션을 주로 실행하도록 구성되는 저성능 서버이다. 시스템 U(150)는 계산-집중적인 작업 부하를 시스템 K(110)로부터 시스템 U(150)로 이동시킴으로써 비용-효율적인 컴퓨팅 환경을 제공하기 위해 하이브리드 시스템(100)에 사용된다.
시스템 U(150)는 복제 프로세스(161) 및 커널 U(170)를 포함한다. 커널 U(170)는 시스템 U(150)를 제어하는 운영체제의 코어이다. 커널 U(170)는 업로더/링커 U(171), 스케줄러 U(172), 페이지 폴트 핸들러 U(173), 및 시스템 호출 핸들러 U(174)를 포함하는데, 이들은 물리적으로 개별적인 장치라기보다는 기능적인 구성요소들이다.
복제 프로세스(161)는 시스템 K(110)의 시스템 U 바이너리 코드(160)를 실행하기 위해 시스템 U(150)에 생성되는 프로세스이다.
커널 U(170)는 시스템 U(150)를 제어하는 운영체제의 주요부이다. 운영체제에 의해 제공되는 서비스는 앞의 커널 K(130)의 설명을 참조하라.
로더/링커 U(171)는 바이너리 코드를 시스템 U(150)의 메모리 영역에 로딩하고 실행을 위해 필요한 라이브러리 파일들을 링크시킨다. 로더/링커 U(171)는 로딩된 바이너리 코드가 시스템 U(150)에서 실행가능한지 여부에 관해 결정하기 위해 포맷에 대해 바이너리 코드를 검사한다.
스케줄러 U(172)는 순차적인 실행을 위해 프로세스에 우선권을 할당한다. 프로세스에 할당된 각각의 우선권에 따라, 프로세스는 시스템 U(150)의 마이크로 프로세서 클록 사이클을 갖는다.
페이지 폴트 핸들러 U(173)는 프로그램이 주소 공간에 매핑되어 있지만 시스템 U(150)의 물리적 메모리에 로딩되어 있지 않은 페이지에 액세스하려고 시도하는 경우 발생하는 페이지 폴트에 의해 유발되는 인터럽트/익셉션을 처리한다. 만약 시스템 U(150)의 복제 프로세스에서 페이지에 대한 페이지 폴트가 발생하면, 페이지 폴트 핸들러 U(173)는 시스템 K(110)의 시스템 U 바이너리 코드(160)의 폴트 페이지를 요청한다.
시스템 호출 핸들러 U(174)는 시스템 U(150) 상의 프로세스에 의해 불려지는(invoked) 커널 서비스를 요청하는 시스템 호출을 핸들링한다. 만약 요청된 커널 서비스가 커널 K(130)에 의해 제공되는 서비스라면, 시스템 호출 핸들러 U(174)는 그 시스템 호출을 원격으로 실행하기 위해 커널 K(130)로 서비스를 요청한다. 만약 요청된 커널 서비스가 커널 U(170)에 의해 제공되도록 구성된다면, 시스템 호출 핸들러(174)는 그 시스템 호출을 로컬로 실행한다.
데이터 경로(180)는 커널 K(130)과 커널 U(170)를 서로 연결시킨다. 데이터 경로(180)는 10 기가비트 이더넷과 같은 고속 통신 I/O 장치로 커널 레벨에서 시스템 K(110)와 시스템 U(150)를 직접 연결시킨다.
본 발명의 일 실시예에서, 시스템 U(150)는 Intel® 또는 AMD® 프로세서를 사용하는 블레이드 서버이고, 시스템 K(110)는 IBM® System z® 메인프레임이다(Intel은 미국 및 기타 국가들에서 Intel Corporation의 등록 상표이고, AMD는 미국 및 기타 국가들에서 Advanced Micro Devices, Inc의 등록 상표이며, IBM 및 System z는 미국 및 기타 국가들에서 International Business Machines Corporation의 등록 상표이다). 블레이드 서버와 메인프레임 모두는 Linux 운영체제 또는 기타 UNIX 패밀리 OS를 사용한다. 하이브리드 시스템(100)은 HiperSockets®, DASD(direct access storage device), 엔터프라이즈 테이프 시스템 등으로의 메인프레임의 입력/출력 기능을 유지한다(HiperSockets는 미국 및 기타 국가들에서 International Business Machines Corporation의 등록 상표이다).
하이브리드 시스템(100)은 메인프레임의 우수한 하드웨어 안정성 및 관리 기능을 보유한다. 하이브리드 시스템(100)은 또한 비용-효율성을 얻기 위해 블레이드 서버상에서 계산-집중적인 애플리케이션을 실행한다. 하이브리드 시스템(100)은 메인프레임과 블레이드 서버상의 모든 애플리케이션을 위한 모든 리소스의 통합된 뷰를 제공한다.
하이브리드 시스템(100)은, 다른 것들 중에, 동적 웹 서비스, 데이터 마이닝, SAP® R/3 애플리케이션 서빙, Domino® 그룹웨어 프로세싱, 애플리케이션 서비스 및 Java® 프로세싱의 영역에서 사용될 수 있다(SAP는 미국 및 기타 국가들에서 SAP AG의 등록 상표이고, Domino는 미국 및 기타 국가들에서 International Business Machines Corporation의 등록 상표이며, Java는 미국 및 기타 국가들에서 Sun Microsystems, Inc.의 등록 상표이다).
도 2는 본 발명의 실시예들에 따라, 하이브리드 시스템에서 커널 K와 커널 U가 작업부하를 플랫폼 간에 이동시키기 위해 어떻게 상호동작하는지 설명하는 제어 흐름도이다.
커널 K에 의해 수행되는 단계들(210K, 220K, 230K, 240K, 251K, 271K, 및 272K)의 세부사항에 대해 아래의 도 2a를 참조하라. 커널 U에 의해 수행되는 단계들(231U, 232U, 233U, 250U, 260U, 270U, 및 280U)의 세부사항에 대해 아래의 도 2b를 참조하라.
도 2a는 본 발명의 실시예들에 따라, 커널 K에 의해 수행되는, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법을 도시하는 흐름도이다.
단계(210K)에 앞서, 시스템 K는 시스템 U를 식별하고 이전의 도 1의 데이터 경로를 통해 시스템 U로의 통신 채널을 설정한다. 커널 K는 사용자 애플리케이션을 실행하는 동안 데이터 전달, 시스템 상태 갱신, 및 커널 K와 커널 U 모두에서 참조되는 페이지들의 동기화를 위해 커널 U와 통신한다. 페이지 동기화 과정에서, 커널 U 및 커널 K의 각각의 페이지 폴트 핸들러는 페이지의 유효성이 변함에 따라 페이지에 표시하는 동작, 페이지를 액세스할 때 다른 시스템의 각각의 커널로 페이지를 미러링하는 동작 등을 수행한다.
단계(210K)에서, 커널 K는 시스템 K 상의 시스템 U 바이너리 코드를 포함하는 사용자 모드 애플리케이션을 시작한다. 시스템 U 바이너리 코드는 시스템 U 플 랫폼의 컴퓨터 구조상에서 실행되도록 구성되는 컴퓨터 프로그램의 실행가능한 포맷이다. 커널 K는 단계(220K)로 계속된다.
본 발명의 일 실시예에서, 커널 K는 이전에 존재하는 부모 프로세스로부터 자식 프로세스를 분기시키고 이어서 자식 프로세스를 통하여 시스템 U 바이너리 코드를 실행함으로써 시스템 U 바이너리 코드를 시작한다. 시스템 U 바이너리 코드를 실행하기 위해, 자식 프로세스는 exec() 또는 execve() 시스템 호출을 부르는데(invokes), 이는 그 시스템 호출을 부른 자식 프로세스에 시스템 U 바이너리 코드를 로딩하고 실행한다. exec() 또는 execve() 시스템 호출을 실행한 이후, 자식 프로세스의 실행 스레드는 시스템 U 바이너리 코드의 명령어들에 의해 대체된다.
단계(220K)에서, 커널 K는 단계(210K)에서 로딩된 시스템 U 바이너리 코드가 시스템 K 상에서 실행가능하지 않다는 것을 검출한다. 커널 K의 로더/링커 K는 단계(210K)에서 시스템 U 바이너리 코드를 로딩하도록 불려진 시스템 호출에 의해 호출된다. 로더/링커 K는 시스템 U 바이너리 코드가 시스템 K의 컴퓨터 구조와 호환가능하지 않지만 시스템 U에서 실행가능한 포맷이라는 것을 검출할 수 있다. 커널 K는 단계(230K)로 계속된다.
단계(230K)에서, 커널 K는 시스템 U 바이너리 코드의 복제 프로세스를 시스템 U 상에 생성하도록 커널 U에게 요청하고, 이어서 커널 U가 그 요청을 완료했다는 것을 통지하는 커널 U로부터의 응답을 수신한다. 커널 K로부터의 요청을 수신했을 때 커널 U에 의해 수행되는 동작에 대해서는 아래의 도 2b의 단계(231U)의 설 명을 참조하라.
커널 K가 단계(230K)를 수행한 이후, 시스템 K의 시스템 U 바이너리 코드와 시스템 U의 복제 프로세스는 서로 링크된다. 시스템 U 바이너리 코드 및 복제 프로세스는 실행을 위해 커널 K 및 커널 U의 각각의 커널 상황에 반영된다. 커널 K는 복제 프로세스가 성공적으로 생성되었다는 시스템 U로부터의 응답을 수신함에 따라 단계(240K)로 계속된다.
단계(240K)에서, 커널 K는 아래의 도 2b의 단계(233U)를 수행하는 커널 U에 의한 통지를 수신함에 따라 시스템 U 바이너리 코드를 위한 프로세스를 스케줄링하는 것을 멈춘다. 단계(240K) 이후에, 커널 K는 시스템 K에 시스템 U 바이너리 코드를 로딩한 프로세스를 스케줄링으로부터 제외하고, 시스템 K의 프로세스의 실행 스레드는 멈춘다. 이 프로세스의 프로세스 스터브(process stub)는 시스템 U에서 실행되는 복제 프로세스를 커널 K 내에서 표시하기 위해 시스템 K에 상주하지만, 프로세스 스터브는 스케줄링으로부터 제외되었으므로 시스템 K의 클록 사이클을 낭비하지 않는다. 프로세스 스터브를 통하여, 커널 K는 복제 프로세스가 시스템 K의 로컬 프로세스인 것처럼 시스템 U에서 실행되는 복제 프로세스를 관리한다. 커널 K는 시스템 U로부터 I/O 서비스에 대한 요청을 수신함에 따라 단계(251K)로 계속된다.
단계(251K)에서, 커널 K는 시스템 K에 의해 제어되는 입력/출력(I/O) 장치들을 사용하려는 I/O 요청을 수신함에 따라, 시스템 U의 복제 프로세스로부터의 I/O 요청을 서비스한다. 커널 K는 아래의 도 2b의 단계(250U)를 수행하는 커널 U로부 터의 I/O 요청을 수신한다. 커널 K는 단계(251K)를 시스템 U로부터의 I/O 요청의 수만큼 반복한다. 단계(251K)를 수행한 이후, 커널 K는 다른 I/O 요청을 수신하거나 복제 프로세스가 정지되었다는 시스템 U로부터의 정지 통지(halt notification)를 수신할 수 있다.
단계(271K)에서, 커널 K는 시스템 K의 시스템 U 바이너리 코드를 위한 프로세스 스터브를 종료시키는 이벤트 트리거를 수신한다. 이벤트 트리거는, 다른 것들 중에, 시스템 U의 복제 프로세스가 정지되었다는 커널 U에 의한 통지, 시스템 관리자로부터의 프로세스 스터브를 종료시키는 "킬(kill)" 명령 등일 수 있다. 커널 K는 단계(272K)로 계속된다.
단계(272K)에서, 커널 K는 시스템 K의 시스템 U 바이너리 코드를 위한 프로세스 스터브를 종료시키고, 이어서 시스템 U 상의 복제 프로세스를 종료시키도록 커널 U에게 신호를 보낸다. 커널 K는, 다른 것들 중에, 메모리 덤프, 프로세스의 종료를 부모 프로세스에 통지하는 것 등을 포함할 수 있는 보통의 프로세스를 위한 종료 절차에 따라 프로세스 스터브를 종료시킨다. 프로세스 스터브를 성공적으로 종료하였을 때, 커널 K는 복제 프로세스를 위한 리소스가 해제될 수 있다는 신호를 시스템 U에 전송한다.
본 발명의 일 실시예에서, 시스템 U는 Intel 플랫폼이고 시스템 K 는 System z 플랫폼이다. 이 실시예에서, 커널 U는 Intel 플랫폼의 운영체제이고, 커널 K는 System z의 운영체제이다. System z 상에 생성되는 사용자 애플리케이션은 Intel 바이너리 코드이다. 사용자 애플리케이션은 또한 Intel 바이너리 형태의 라이브러 리를 수반할 수 있다. System z 상의 Intel 바이너리 코드가 시작될 때, System z의 운영체제는 Intel 플랫폼상에 복제 프로세스를 설정하고 Intel 바이너리 코드를 인스턴스화한다. Intel 바이너리 코드를 실행하는 동안 Intel 바이너리 코드로부터 불려지는 시스템 호출은 System z 상에서 원격으로 서비스될 수 있다.
도 2b는 본 발명의 실시예들에 따라, 커널 U에 의해 수행되는, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법을 도시하는 흐름도이다.
단계(231U)에서, 커널 U는 이전의 도 2a의 단계(230K)를 수행하는 커널 K로부터 복제 프로세스를 생성하라는 요청을 수신함에 따라 시스템 K의 시스템 U 바이너리 코드에 대한 복제 프로세스를 생성한다. 커널 U는 또한 커널 U가 커널 K로부터의 요청에 대한 응답으로 복제 프로세스를 성공적으로 생성하였다는 것을 커널 K에 통지한다. 커널 U는 단계(232U)로 계속된다.
단계(232U)에서, 커널 U는 커널 K로부터 시스템 K 상의 시스템 U 바이너리 코드의 메모리 페이지들을 로딩한다. 커널 U는 단계(233U)로 계속된다.
본 발명의 일 실시예에서, 커널 U는 필요한 시점까지 오브젝트의 초기화 및/또는 로딩을 연기하는 레이지 로딩 방법(lazy loading method)으로 단계(232U)를 구현한다. 만약 실행 스레드가 커널 K로부터 커널 U로 아직 전송되지 않은 복제 프로세스 내의 메모리 영역에 도달한다면, 실행은 중단되고 페이지 폴트가 커널 U에 발생한다. 이러한 경우에, 시스템 U의 페이지 폴트 핸들러는 페이지 폴트를 유발한 메모리 영역(즉, 누락 페이지)을 시스템 K로부터 로딩하고, 커널 U의 프로세스의 실행을 재개한다.
단계(233U)에서, 커널 U는 복제 프로세스를 스케줄링 및 실행하고, 시스템 K의 시스템 U 바이너리 코드를 스케줄링하는 것을 멈추라고 커널 K에게 통지한다. 단계(233U)를 수행한 이후, 복제 프로세스는 시스템 K의 시스템 U 바이너리 코드를 대신하여 시스템 U에서 실행된다. 그 결과, 일반적으로 시스템 K의 시스템 U 바이너리 코드의 계산-집중적인 작업부하는 시스템 U로 이동된다. 커널 U는 실행 과정에서 복제 프로세스로부터 I/O 서비스 요청이 불려진 경우 단계(250U)로 계속된다. 커널 U는 복제 프로세스가 실행 과정에서 다수의 I/O 서비스를 부르는 경우 단계(250U)를 여러 번 수행할 수 있다. 커널 U는 복제 프로세스가 I/O 서비스 요청을 부르지 않고 종료되는 경우 단계(250U)를 수행하지 않고 단계(260U)로 계속될 수 있다.
단계(250U)에서, 커널 U는 복제 프로세스에 대한 0 또는 그 이상의 I/O 서비스를 커널 K에 요청한다. 복제 프로세스가 시스템 U에서 실행되는 동안, 복제 프로세스는 각각의 시스템 호출을 통하여 I/O 서비스를 커널 U에 요청한다. 하이브리드 시스템에서 I/O 장치들은 시스템 K에 연결되고 시스템 K에 의해 서비스되기 때문에, 커널 U는 이어서 그 I/O 서비스를 커널 K에 요청한다. 그에 따라, I/O 서비스에 대한 각각의 시스템 호출은 시스템 U 대신 시스템 K에서 원격으로 수행된다.
단계(260U)에서, 커널 U는 복제 프로세스가 정지되었는지 여부를 결정한다. 커널 U는 복제 프로세스가 복제 프로세스에 의해 커널 U에 불려진 익셉션/인터럽트에 의해 정지되었다고 결정한다. 따라서 복제 프로세스가 아직 실행되는 동안에는, 커널 U가 단계들(233U 및 250U)을 계속 수행한다. 만약 커널 U가 복제 프로세스가 복제 프로세스의 정지를 나타내는 익셉션/인터럽트를 수신함에 따라 정지되었다고 결정하면, 커널 U는 단계(270U)로 계속된다.
단계들(233U 및 250U)을 수행하는 동안, 커널 U는 실행을 위해 복제 프로세스를 계속 스케줄링한다. 단계(250U)의 I/O 서비스 요청 및 단계(260U)의 정지 통지는 순차적이 아니고 이벤트-구동 방식이다. 결과적으로, 단계(250U)는 복제 프로세스에 의해 I/O 서비스 요청이 이루어질 때 수행된다.
단계(270U)에서, 커널 U는 복제 프로세스를 실행하는 것을 멈추고, 복제 프로세스가 정지되었다는 것을 커널 K에 통지한다. 커널 U가 복제 프로세스를 실행하는 것을 멈춤에 따라, 커널 U는 커널 U의 실행 스택 내의 복제 프로세스의 상태 및 상황 데이터를 동결시킨다(freeze). 커널 U는 단계(280U)로 계속된다.
단계(280U)에서, 커널 U는 단계(270U)에서 커널 U에 의해 전송된 정지 통지에 대한 응답인 종료 신호를 커널 K로부터 수신한다. 커널 U는 이어서 종료 신호를 커널 K로부터 수신한 이후, 복제 프로세스의 리소스를 해제한다.
도 3은 본 발명의 실시예들에 따라, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위해 사용되는 컴퓨터 시스템(90)을 도시한다.
컴퓨터 시스템(90)은 프로세서(91), 프로세서(91)에 연결된 입력 장치(92), 프로세서(91)에 연결된 출력 장치(93), 및 각각 프로세서(91)에 연결된 메모리 장치들(94 및 95)을 포함한다. 입력 장치(92)는, 다른 것들 중에, 키보드, 마우스, 키패드, 터치스크린, 음성 인식 장치, 센서, NIC(network interface card), VoIP(Voice/video over Internet Protocol) 어댑터, 무선 어댑터, 전화 어댑터, 전용 회로 어댑터 등일 수 있다. 출력 장치(93)는, 다른 것들 중에, 프린터, 플로터, 컴퓨터 화면, 자기 테이프, 이동식 하드디스크, 플로피디스크, NIC, VoIP 어댑터, 무선 어댑터, 전화 어댑터, 전용 회로 어댑터, 소리 및/또는 시각 신호 발생기, LED(light emitting diode) 등일 수 있다. 메모리 장치들(94 및 95)은, 다른 것들 중에, 캐시, DRAM, ROM, 하드디스크, 플로피디스크, 자기 테이프, CD 또는 DVD와 같은 광 저장 장치 등일 수 있다. 메모리 장치(95)는 컴퓨터-실행가능 명령어들을 포함하는 컴퓨터 프로그램인 컴퓨터 코드(97)를 포함한다. 컴퓨터 코드(97)는, 다른 것들 중에, 본 발명에 따라 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위해 사용되는 알고리즘을 포함한다. 프로세서(91)는 컴퓨터 코드(97)를 실행한다. 메모리 장치(94)는 입력 데이터(96)를 포함한다. 입력 데이터(96)는 컴퓨터 코드(97)가 필요로 하는 입력을 포함한다. 출력 장치(93)는 컴퓨터 코드(97)로부터의 출력을 디스플레이한다. 메모리 장치들(94 및 95) 중의 하나 또는 전부(또는 도 3에 도시되지 않은 하나 이상의 추가 메모리 장치)는 컴퓨터 판독가능 프로그램이 포함되고/포함되거나 다른 데이터가 저장된 컴퓨터 이용가능 저장 매체(또는 컴퓨터 판독가능 저장 매체 또는 프로그램 저장 장치)로 사용될 수 있는데, 여기서 컴퓨터 판독가능 프로그램은 컴퓨터 코드(97)를 포함한다. 일반적으로, 컴퓨터 시스템(90)의 컴퓨터 프로그램 제품(또는, 선택적으로, 제조물품)은 상기 컴퓨터 이용가능 저장 매체(또는 상기 프로그램 저장 장치)를 포함할 수 있다.
도 3은 컴퓨터 시스템(90)을 하드웨어와 소프트웨어의 특정 구성으로 도시하지만, 당업자에게 알려진 하드웨어와 소프트웨어의 임의의 구성이 위에 기술된 목적을 위해 도 3의 특정 컴퓨터 시스템(90)과 함께 이용될 수 있다. 예를 들어, 메모리 장치들(94 및 95)은 개별 메모리 장치들이라기보다 하나의 메모리 장치의 부분들일 수 있다.
설명을 위한 목적으로 본 발명의 특정 실시예들이 여기에 설명되었지만, 다양한 변경 및 수정이 당업자에게 자명할 것이다. 그에 따라, 첨부된 특허청구범위는 본 발명의 진정한 사상 및 범위 내에 있는 그러한 변경 및 수정을 모두 포함하도록 의도되었다.
도 1은 본 발명의 실시예들에 따라, 작업부하를 플랫폼 간에 이동시키기 위한 하이브리드 시스템을 도시하는 도면.
도 2는 본 발명의 실시예들에 따라, 하이브리드 시스템에서 커널 K와 커널 U가 작업부하를 플랫폼 간에 이동시키기 위해 어떻게 상호동작하는지 설명하는 제어 흐름도.
도 2a는 본 발명의 실시예들에 따라, 커널 K에 의해 수행되는, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법을 도시하는 흐름도.
도 2b는 본 발명의 실시예들에 따라, 커널 U에 의해 수행되는, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법을 도시하는 흐름도.
도 3은 본 발명의 실시예들에 따라, 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위해 사용되는 컴퓨터 시스템을 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
110: 시스템 K
130: 커널 K
131: 로더/링커 K
132: 스케줄러 K
133: 페이지 폴트 핸들러 K
134: 시스템 호출 핸들러 K
150: 시스템 U
160: 시스템 U 바이너리 코드
161: 복제 프로세스
170: 커널 U
171: 로더/링커 U
172: 스케줄러 U
173: 페이지 폴트 핸들러 U
174: 시스템 호출 핸들러 U
180: 데이터 경로

Claims (9)

  1. 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 방법으로서,
    상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
    상기 프로세스가 상기 제1 플랫폼에서 실행가능하지 않다는 것을 검출하는 단계;
    상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상기 제2 플랫폼 내에 생성하도록 요청하고, 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
    상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
    상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
    상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
    를 포함하고,
    상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는 방법.
  2. 제1항에 있어서,
    상기 프로세스를 종료하라는 상기 이벤트 트리거는 정지 통지 및 킬 명령(kill command)으로 구성되는 그룹으로부터 선택되고, 상기 정지 통지는 상기 제2 플랫폼 내의 상기 복제 프로세스가 정지되었다는 것을 나타내기 위해 상기 제2 커널로부터 전송되며, 상기 킬 명령은 상기 제1 플랫폼 내의 상기 프로세스를 종료시키도록 상기 하이브리드 시스템의 사용자로부터 수신되는, 방법.
  3. 제1항에 있어서,
    상기 멈추는 단계 이후 상기 종료하는 단계 이전에, 상기 제2 플랫폼 내에서 실행되는 상기 복제 프로세스에 의해 이루어진 입력/출력(I/O) 서비스 요청을 서비스하는 단계를 더 포함하며,
    상기 I/O 서비스 요청은, 상기 제1 플랫폼에 연결되고 상기 제1 커널에 의해 호스팅되는 I/O 장치에 보내지고, 상기 I/O 서비스 요청은 상기 제2 커널에 의해 상기 제1 커널로 전달되며, 상기 서비스를 제공하는 단계는 상기 제1 커널에 의해 수행되는, 방법.
  4. 제1항에 있어서,
    상기 요청에 대한 응답으로, 상기 복제 프로세스를 생성하고 이어서 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 상기 통지를 상기 제1 커널에 전송하는 단계;
    상기 복제 프로세스를 상기 제2 플랫폼에서 실행하기 위해 상기 제1 플랫폼 내의 상기 프로세스의 페이지들을 상기 제1 커널로부터 상기 제2 커널로 로딩하는 단계;
    실행을 위해 상기 복제 프로세스를 스케줄링하고, 상기 복제 프로세스의 명령어들을 실행하는 단계;
    상기 복제 프로세스의 상기 실행에 관련된 데이터를 동결시키고(freeze), 상기 복제 프로세스의 정지에 따라 상기 복제 프로세스가 정지되었다는 것을 상기 제1 커널에 통지하는 단계; 및
    상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 수신함에 따라 상기 복제 프로세스에 의해 점유된 상기 제2 플랫폼 내의 리소스들을 해제하는 단계
    를 더 포함하고,
    상기 생성하는 단계, 상기 로딩하는 단계, 상기 스케줄링하는 단계, 상기 동결시키는 단계 및 상기 해제하는 단계는 상기 제2 커널에 의해 수행되는, 방법.
  5. 제4항에 있어서,
    상기 스케줄링하는 단계 이후 상기 동결시키는 단계 이전에, 입력/출력(I/O) 서비스를, 상기 제2 플랫폼 내의 상기 복제 프로세스에 의해 상기 I/O 서비스가 불려지는 경우, 상기 제1 커널에 요청하는 단계를 더 포함하고,
    상기 I/O 서비스는, 상기 제1 플랫폼에 연결되고 상기 제1 커널에 의해 호스팅되는 I/O 장치에 보내지고, 상기 요청하는 단계는 상기 제2 커널에 의해 수행되는, 방법.
  6. 제1항에 있어서,
    상기 제1 플랫폼은 상기 하이브리드 시스템을 위한 커널 서비스들을 제공하도록 구성되는 고성능 메인프레임이고, 상기 제2 플랫폼은 상기 하이브리드 시스템 내에서 계산-집중적인 작업부하들을 주로 실행하도록 구성되는 저성능 서버인, 방법.
  7. 제1항에 있어서,
    상기 제1 플랫폼 내의 상기 프로세스는 상기 제2 플랫폼의 운영체제의 실행가능한 포맷이고, 상기 프로세스는 상기 제1 플랫폼 내에서 상기 제2 플랫폼의 상기 운영체제의 인스턴스를 나타내는, 방법.
  8. 컴퓨터 판독가능 프로그램 코드가 포함된 컴퓨터 이용가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 프로그램 코드는 컴퓨터 시스템의 프로세서에 의해 실행되는 경우 하이브리드 시스템에서 작업부하들을 플랫폼 간에 이동시키기 위한 방법을 구현하고,
    상기 방법은,
    상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
    상기 프로세스가 상기 제1 플랫폼에서 실행가능하지 않다는 것을 검출하는 단계;
    상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상기 제2 플랫폼 내에 생성하도록 요청하고, 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
    상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
    상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
    상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
    를 포함하고,
    상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는 컴퓨터 프로그램 제품.
  9. 프로세서 및 상기 프로세서에 연결되는 컴퓨터 판독가능 메모리 장치를 포함하는 컴퓨터 시스템으로서,
    상기 메모리 장치는 상기 프로세서에 의해 실행되는 경우 하이브리드 시스템에서 작업부하들을 플랫폼 간에 이동시키기 위한 방법을 구현하는 명령어들을 포함하고,
    상기 방법은,
    상기 하이브리드 시스템의 제1 플랫폼 내에서 프로세스를 시작하는 단계 - 상기 프로세스는 상기 하이브리드 시스템의 제2 플랫폼에서 실행가능하고, 제1 커널은 상기 제1 플랫폼을 제어하며, 제2 커널은 상기 제2 플랫폼을 제어함 - ,
    상기 프로세스가 상기 제1 플랫폼에서 실행가능하지 않다는 것을 검출하는 단계;
    상기 제2 커널이 상기 제1 플랫폼 내의 상기 프로세스의 복제 프로세스를 상기 제2 플랫폼 내에 생성하도록 요청하고, 상기 복제 프로세스가 상기 제2 플랫폼 내에 성공적으로 생성되었다는 통지를 상기 제2 커널로부터 수신하는 단계;
    상기 제2 플랫폼이 상기 제2 플렛폼 내의 상기 복제 프로세스를 스케줄링하고 실행한다는 것을 나타내는 상기 제2 커널로부터의 신호를 수신한 것에 대한 응 답으로, 상기 제1 플랫폼에서 상기 프로세스의 스케줄링을 멈추는 단계;
    상기 프로세스를 종료하라는 이벤트 트리거를 수신함에 따라 상기 제1 플랫폼 내의 상기 프로세스를 종료하는 단계; 및
    상기 제1 플랫폼 내의 상기 프로세스가 제거되었다는 것을 나타내는 종료 신호를 상기 제2 커널에 전송하는 단계
    를 포함하고,
    상기 시작하는 단계, 상기 검출하는 단계, 상기 요청하는 단계, 상기 멈추는 단계, 상기 종료하는 단계 및 상기 전송하는 단계는 상기 제1 커널에 의해 수행되는 컴퓨터 시스템.
KR1020090109630A 2008-12-22 2009-11-13 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법 KR101091509B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/341,342 2008-12-22
US12/341,342 US8191072B2 (en) 2008-12-22 2008-12-22 System and method for shifting workloads across platform in a hybrid system

Publications (2)

Publication Number Publication Date
KR20100073980A true KR20100073980A (ko) 2010-07-01
KR101091509B1 KR101091509B1 (ko) 2011-12-08

Family

ID=42268023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090109630A KR101091509B1 (ko) 2008-12-22 2009-11-13 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US8191072B2 (ko)
KR (1) KR101091509B1 (ko)
CN (1) CN101763286B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458466B2 (en) 2008-12-22 2013-06-04 International Business Machines Corporation System and method for handling cross-platform system call in a hybrid system
US8191072B2 (en) 2008-12-22 2012-05-29 International Business Machines Corporation System and method for shifting workloads across platform in a hybrid system
US8621207B2 (en) 2008-12-23 2013-12-31 International Business Machines Corporation System and method for handling cross-platform system call with shared page cache in hybrid system
US9817695B2 (en) * 2009-04-01 2017-11-14 Vmware, Inc. Method and system for migrating processes between virtual machines
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US8631411B1 (en) * 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US9331869B2 (en) * 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8966020B2 (en) 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
US9081613B2 (en) 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
US9253016B2 (en) * 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
US8984109B2 (en) 2010-11-02 2015-03-17 International Business Machines Corporation Ensemble having one or more computing systems and a controller thereof
US8621238B1 (en) * 2011-07-26 2013-12-31 The United States Of America As Represented By The Secretary Of The Air Force Using software-based decision procedures to control instruction-level execution
US8966004B2 (en) * 2011-09-29 2015-02-24 Comcast Cable Communications, LLC. Multiple virtual machines in a mobile virtualization platform
CN106775608B (zh) * 2015-11-24 2020-09-04 腾讯科技(深圳)有限公司 独立系统进程的实现方法和装置
CN106888244B (zh) * 2016-06-02 2020-04-28 阿里巴巴集团控股有限公司 一种业务处理方法及装置
CN109426571B (zh) * 2017-08-28 2022-05-13 阿里巴巴集团控股有限公司 函数调用和数据访问的方法、系统、存储介质、处理器和装置
CN111414240B (zh) * 2019-01-07 2023-05-09 阿里巴巴集团控股有限公司 内核态进程复制方法以及装置、容器扩容方法以及装置
CN111124522B (zh) * 2020-04-01 2020-08-04 广东戴维利科技有限公司 一种微内核及宏内核混合的方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU598101B2 (en) * 1987-02-27 1990-06-14 Honeywell Bull Inc. Shared memory controller arrangement
US5887165A (en) * 1996-06-21 1999-03-23 Mirage Technologies, Inc. Dynamically reconfigurable hardware system for real-time control of processes
DE19635581C1 (de) * 1996-09-02 1997-10-23 Siemens Ag Verfahren und System zur Bestimmung des Aufenthaltsorts eines in einem zellularen Mobilfunknetz registrierten Funkteilnehmers
US6339819B1 (en) * 1997-12-17 2002-01-15 Src Computers, Inc. Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer
US7003593B2 (en) 1997-12-17 2006-02-21 Src Computers, Inc. Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port
US7028312B1 (en) 1998-03-23 2006-04-11 Webmethods XML remote procedure call (XML-RPC)
US6434628B1 (en) 1999-08-31 2002-08-13 Accenture Llp Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6961941B1 (en) 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US7200840B2 (en) 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
US7536688B2 (en) 2003-02-28 2009-05-19 Azul Systems Segmented virtual machine
CN100547973C (zh) * 2007-05-23 2009-10-07 华中科技大学 一种基于对等网络的高性能计算系统
US8191072B2 (en) 2008-12-22 2012-05-29 International Business Machines Corporation System and method for shifting workloads across platform in a hybrid system
US8621207B2 (en) 2008-12-23 2013-12-31 International Business Machines Corporation System and method for handling cross-platform system call with shared page cache in hybrid system

Also Published As

Publication number Publication date
KR101091509B1 (ko) 2011-12-08
CN101763286A (zh) 2010-06-30
US8191072B2 (en) 2012-05-29
CN101763286B (zh) 2014-03-12
US20100162252A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
KR101091509B1 (ko) 하이브리드 시스템에서 작업부하를 플랫폼 간에 이동시키기 위한 시스템 및 방법
Li et al. Serverless computing: state-of-the-art, challenges and opportunities
EP2633400B1 (en) Stateful applications operating in a stateless cloud computing environment
Ghormley et al. GLUix: a global layer unix for a network of workstations
Karmani et al. Actor frameworks for the JVM platform: a comparative analysis
TWI573075B (zh) 持續及有彈性之工作處理
Cheng et al. vScale: Automatic and efficient processor scaling for SMP virtual machines
US20210191780A1 (en) Method and apparatus for processing development machine operation task, device and storage medium
WO2008121917A2 (en) Homogeneous programming for heterogeneous multiprocessor systems
Yu et al. Following the data, not the function: Rethinking function orchestration in serverless computing
US20060167951A1 (en) Semantic management method for logging or replaying non-deterministic operations within the execution of an application process
Miao et al. Spotserve: Serving generative large language models on preemptible instances
Jo et al. Transparent fault tolerance of device drivers for virtual machines
Lordan et al. Compss-mobile: Parallel programming for mobile cloud computing
Wu et al. A survey on serverless computing and its implications for jointcloud computing
Bezirgiannis et al. ABS: A high-level modeling language for cloud-aware programming
CN107783836B (zh) 基于 Linux 容器控制Web 应用资源的方法和装置
US7945808B2 (en) Fanout connectivity structure for use in facilitating processing within a parallel computing environment
Kumari et al. ACPM: adaptive container provisioning model to mitigate serverless cold-start
US10592277B2 (en) System and method for determining the success of a cross-platform application migration
Guo et al. Decomposing and executing serverless applications as resource graphs
Stenbom Refunction: Eliminating serverless cold starts through container reuse
Sahraei et al. Xfaas: Hyperscale and low cost serverless functions at meta
McBride SledgeEDF: deadline-driven serverless for the edge
Rajapackiyam et al. Live Migration of Virtual Machines using Mirroring

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161128

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181127

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 9