KR20120117150A - 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법 - Google Patents

디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법 Download PDF

Info

Publication number
KR20120117150A
KR20120117150A KR1020110034726A KR20110034726A KR20120117150A KR 20120117150 A KR20120117150 A KR 20120117150A KR 1020110034726 A KR1020110034726 A KR 1020110034726A KR 20110034726 A KR20110034726 A KR 20110034726A KR 20120117150 A KR20120117150 A KR 20120117150A
Authority
KR
South Korea
Prior art keywords
virtual machine
command
controlling
virtualization
virtual
Prior art date
Application number
KR1020110034726A
Other languages
English (en)
Other versions
KR101812145B1 (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 KR1020110034726A priority Critical patent/KR101812145B1/ko
Priority to US13/446,988 priority patent/US20120266172A1/en
Publication of KR20120117150A publication Critical patent/KR20120117150A/ko
Application granted granted Critical
Publication of KR101812145B1 publication Critical patent/KR101812145B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 가상화 기술을 수행하는 디바이스에 관한 것으로, 특히 상기 디바이스에서 실행하는 가상 머신을 제어하는 가상화 장치에 관한 것이다. 이때, 상기 가상화 장치는 상기 디바이스에 장착되는 가상화 장치는 다수의 기능을 가진 시스템을 하나의 칩으로 구현한 것을 말하는 것으로, 가상화 장치에서 가상 머신을 제어하는 장치는 디바이스로부터 가상 머신 제어를 위한 명령어를 수신할 경우, 상기 명령어를 처리할 가상 머신을 확인하고, 상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 가상 머신 관리부와, 상기 디바이스와 가상 머신이 동일한 기종이 아닐 경우, 상기 수신한 명령어를 가상 머신의 명령어 형태로 변환하여 전송하는 명령어 처리부를 포함하는 것을 특징으로 한다.

Description

디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING VIRTUAL MACHINE THAT CONNECTS THE DEVICE}
본 발명은 가상화 기술을 수행하는 디바이스에 관한 것으로, 특히 상기 디바이스에서 실행하는 가상 머신을 제어하는 가상화 장치에 관한 것이다. 이때, 상기 가상화 장치는 상기 디바이스에 장착되는 가상화 장치로 다수의 기능을 가진 시스템을 하나의 칩으로 구현한 것을 말한다.
최근, 휴대용 단말기는 현대인에게 없어서는 안될 필수품으로서 남녀 노소를 막론하고 사용하고 있으며, 서비스 제공자 및 단말기 제조자는 다른 업체와의 차별화를 위해 제품(또는 서비스)을 경쟁적으로 개발하고 있다.
예를 들어, 상기 휴대용 단말기는 폰북(phone book), 게임(game), 단문 메시지(short message), 이메일(e-mail), 모닝콜(morning call), MP 3(MPEG Layer 3), 일정 관리 기능, 디지털 카메라, 멀티미디어 메시지(Multimedia Messaging Service) 및 무선 인터넷 서비스가 가능한 멀티미디어 기기로 발전하여 다양한 서비스를 제공한다.
최근에는 상기 휴대용 단말기의 성능이 향상되어 다수의 응용 소프트웨어를 지원하면서 상당한 양의 처리를 위해 멀티프로세서 구조를 이용하고 있다.
일 예로, 상기 휴대용 단말기는 이종의 프로세서를 복수 개 사용하는 가상화 기술을 사용한다.
상기 가상화 기술은 휴대용 단말기의 운영체제와 응용 프로그램 사이의 가상화 계층(가상화 소프트웨어)를 이용하여 하나의 단말기에서 다수의 운영체제를 사용하도록 하는 기술을 말한다.
상기 휴대용 단말기와 동일한 인스트럭션 셋 아키텍처(ISA: Instruction Set Architecture)을 사용하는 가상 머신을 생성할 경우 가상화 계층의 처리속도는 보장받을 수 있다.
하지만, 상기 휴대용 단말기와 다른 인스트럭션 셋 아키텍쳐를 사용하는 가상 머신을 생성할 경우, 서로 다른 바이너리 형태의 명령어를 사용하여 가상화 계층에서 명령어 형태를 변환하는 과정을 수행해야한다. 이때, 명령어 형태를 변환하는 과정은 소프트웨어적으로 수행하여 가상화 계층의 처리 속도를 저하시키게 된다.
따라서, 상기와 같은 문제점을 해결하기 위하여 상기 휴대용 단말기와 다른 인스트럭션 셋 아키텍쳐를 사용하는 가상 머신의 처리 속도를 향상시키기 위한 장치 및 방법이 요구된다.
본 발명은 상술한 바와 같은 문제점을 해결하기 위하여 도출된 것으로서, 본 발명의 목적은 디바이스와 독립된 장치를 이용하여 가상 머신을 제어하도록 하기 위한 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 디바이스와 독립된 장치를 이용하여 가상 머신 제어 속도를 향상시키기 위한 장치 및 방법을 제공함에 있다.
상술한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 디바이스에서 가상 머신을 제어하는 장치는 가상 머신 제어를 위한 명령어를 입력받을 경우, 상기 입력받은 명령어를 독립된 가상화 장치로 전송하는 가상화 요청부와, 상기 가상화 장치로부터 명령어를 수신할 경우, 상기 수신한 명령어에 해당하는 동작을 수행하는 제어부를 포함하되, 상기 독립된 가상화 장치는, 소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 가상화 장치에서 가상 머신을 제어하는 장치는 디바이스로부터 가상 머신 제어를 위한 명령어를 수신할 경우, 상기 명령어를 처리할 가상 머신을 확인하고, 상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 가상 머신 관리부와, 상기 디바이스와 가상 머신이 동일한 기종이 아닐 경우, 상기 수신한 명령어를 가상 머신의 명령어 형태로 변환하여 전송하는 명령어 처리부를 포함하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 3 견지에 따르면, 디바이스에서 가상 머신을 제어하는 방법은 가상 머신 제어를 위한 명령어를 입력받을 경우, 상기 입력받은 명령어를 독립된 가상화 장치로 전송하는 과정과, 상기 가상화 장치로부터 명령어를 수신할 경우, 상기 수신한 명령어에 해당하는 동작을 수행하는 과정을 포함하되, 상기 독립된 가상화 장치는, 소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 한다.
상술한 목적들을 달성하기 위한 본 발명의 제 4 견지에 따르면, 가상화 장치에서 가상 머신을 제어하는 방법은 디바이스로부터 가상 머신 제어를 위한 명령어를 수신할 경우, 상기 명령어를 처리할 가상 머신을 확인하는 과정과, 상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 과정과, 상기 디바이스와 가상 머신이 동일한 기종이 아닐 경우, 상기 수신한 명령어를 가상 머신의 명령어 형태로 변환하여 전송하는 과정을 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명은 가상 머신의 제어 속도를 향상시키기 위한 장치 및 방법에 관한 것으로, 디바이스와 독립된 장치를 이용하여 가상 머신을 제어하여 디바이스와 가상 머신 사이의 명령어 변환 속도를 향상시킬 수 있다. 이때, 디바이스와 독립된 장치는 가상화 기술을 처리하는 가상화 계층의 역활을 수행하는 장치로 상기 디바이스에 장착 및 탈착될 수 있는 구조로 되어 있다.
도 1은 본 발명에 따른 가상 머신 동작 과정을 수행하는 가상화 시스템의 구성을 도시한 블록도,
도 2는 본 발명의 바람직한 일 실시 예에 따른 가상화 장치의 명령어 변환 과정을 도시한 도면,
도 3은 본 발명의 바람직한 일 실시 예에 따른 디바이스에서 가상 머신을 제어하는 과정을 도시한 흐름도 및,
도 4는 본 발명의 바람직한 일 실시 예에 따른 가상화 장치에서 가상 머신을 제어하는 과정을 도시한 흐름도.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하 설명에서는 본 발명에 따른 가상 머신 생성, 삭제, 이주와 같은 가상 머신의 동작을 제어하는 디바이스의 성능을 향상시키기 위한 것으로, 상기 디바이스와 독립된 가상화 장치를 이용하여 상기 디바이스의 가상 머신 제어 성능을 향상시키기 위한 장치 및 방법에 대하여 설명할 것이다. 상기 디바이스와 독립된 가상화 장치는 상기 디바이스의 소켓에 장착되어 상기 디바이스와 가상 머신 사이의 명령어 전송을 제어한다.
도 1은 본 발명에 따른 가상 머신 동작 과정을 수행하는 가상화 시스템의 구성을 도시한 블록도이다.
상기 도 1을 참조하면, 상기 가상화 시스템은 임베디드 디바이스(100)와, 가상화 장치(120)로 구성할 수 있으며, 상기 (임베디드)디바이스(100)는 제어부(102), 가상화 요청부(104), 메모리부(106), 입력부(108), 표시부(110) 및 통신부(112)를 포함하여 구성할 수 있다.
먼저, 상기 제어부(102)는 상기 디바이스(100)의 전반적인 동작을 제어한다. 예를 들어, 상기 디바이스(100)가 이동통신 단말기일 경우, 음성통화 및 데이터 통신을 위한 처리 및 제어를 수행하고, 상기 디바이스(100)가 개인용 컴퓨터일 경우, 명령을 해독하고 산술논리연산이나 데이터를 처리한다. 또한, 상기 제어부(102)는 본 발명에 따라 상기 독립된 가상화 장치(120)를 이용하여 가상 머신을 생성하도록 처리하고, 상기 생성된 가상 머신으로 자신의 아키텍처와 다른 아키텍처에 해당하는 운영체제를 구동시킬 수 있다.
상기 가상화 요청부(104)는 상기 독립된 가상화 장치(120)로 제공하는 명령어를 요청하는 것으로, 상기 가상화 장치(120)로 인스트럭션 셋 아키텍처를 전송하거나 상기 가상 머신으로부터 제공되는 명령어를 수신한다. 이때, 상기 가상화 요청부(104)는 상기 독립된 가상화 장치(120)와 연결할 수 있는 소켓을 포함할 수 있다.
상기 메모리부(106)는 롬(ROM; Read Only Memory), 램(RAM; Random Access Memory), 플래쉬롬(flash ROM)으로 구성된다. 상기 롬은 상기 제어부(102), 상기 가상화 요청부(104)의 처리 및 제어를 위한 프로그램의 마이크로코드와 각종 참조 데이터를 저장한다.
상기 램은 상기 제어부(102)의 워킹 메모리(working memory)로, 각종 프로그램 수행 중에 발생하는 일시적인 데이터를 저장한다. 뿐만 아니라, 상기 메모리부(106)는 본 발명에 따라 가상 머신을 통해 구동되는 어플리케이션의 이미지 데이터를 저장한다.
상기 입력부(108)는 상기 디바이스(100)의 동작을 위한 키 입력 데이터를 상기 제어부(102)로 제공하는 것으로, 상기 디바이스(100)가 개인용 컴퓨터일 경우, 키보드, 마우스 등이 상기 입력부(108)가 될 것이며, 상기 디바이스(100)가 이동통신 단말기일 경우, 다수의 숫자키 버튼들과 메뉴 버튼을 포함하는 키패드가 상기 입력부(108)가 될 수 있다. 일 예로, 상기 입력부(108)는 가상 머신 제어(예; 가상 머신 생성, 삭제, 이주 등)를 위한 명령어를 상기 제어부(102)로 제공할 수 있다.
상기 표시부(110)는 상기 디바이스(100)의 동작 중에 발생하는 상태 정보, 제한된 숫자의 문자들, 다량의 동영상 및 정지영상 등을 디스플레이하며, 본 발명에 따라 가상 머신의 동작 과정을 디스플레이한다. 상기 표시부(110)는 컬러 액정 디스플레이 장치(LCD; Liquid Crystal Display)를 사용할 수 있으며 상기 표시부(110)는 터치 입력 장치를 구비하여 터치 입력 방식의 디바이스(100)에 적용할 경우 입력 장치로 사용할 수 있다.
상기 통신부(112)는 통신 모듈을 통해 입출력되는 신호를 송수신 처리하는 기능을 수행하는 것으로, 본 발명에 따라 네트워크 연결 또는 근거리 무선 통신을 위한 통신 모듈로 주변 디바이스(100)로 가상 머신을 이주시킨다.
또한, 상기 가상화 장치(120)는 통신부(122), 명령어 처리부(124), 제어부(128), 가상 머신(VM) 관리부(130) 및 메모리부(132)를 포함하여 구성할 수 있으며, 상기 명령어 처리부(124)는 변환부(126)를 더 포함하여 구성할 수 있다.
먼저, 상기 가상화 장치(120)의 제어부(128)는 상기 디바이스(100)와 장착된 후 디바이스(100)로부터 수신한 명령어에 따라 가상 머신을 제어하도록 처리한다. 이때, 상기 제어부(128)는 상기 디바이스(100)의 명령어에 따라 가상 머신을 생성하거나 삭제 또는 생성된 가상 머신을 다른 디바이스로 이주시키도록 처리한다.
또한, 상기 제어부(128)는 상기 디바이스(100)와 가상 머신 사이에서 교환되는 명령어의 형태를 변환하도록 처리한다. 즉, 상기 제어부(128)는 상기 디바이스(100)의 명령어를 가상 머신에 해당하는 명령어 형태로 변환하고 반대로 상기 가상 머신의 명령어를 상기 디바이스(100)에 해당하는 명령어 형태로 변환하도록 처리한다.
상기 통신부(122)는 상기 디바이스(100)로부터 제공되는 명령어 또는 상기 디바이스(100)로 제공되는 명령어를 전송하는 것으로, 상기 디바이스(100)와 연결할 수 있는 소켓을 포함할 수 있다. 즉, 상기 가상화 장치(120)는 상기 통신부(122)를 이용하여 상기 디바이스(100)에 장착되거나 또는 탈착될 수 있다.
상기 명령어 처리부(124)는 상기 통신부(122)를 통해 상기 디바이스(100)로부터 수신된 명령어를 해당 가상 머신으로 전달하고, 상기 가상 머신으로부터 수신한 명령어를 상기 디바이스(100)로 제공한다.
이때, 상기 명령어 처리부(124)는 상기 디바이스(100)와 가상 머신이 서로 다른 형태의 명령어를 사용할 경우, 상기 디바이스(100)의 명령어를 가상 머신에 해당하는 명령어 형태로 변환하고 반대로 상기 가상 머신의 명령어를 상기 디바이스(100)에 해당하는 명령어 형태로 변환하도록 처리한다.
상기 명령어 처리부(124)의 변환부(126)는 상기 명령어 처리부(124)의 제어를 받아 상기 디바이스(100)와 가상 머신 사이에서 교환되는 명령어의 형태를 변환시킨다.
상기 가상 머신 관리부(130)는 상기 디바이스(100)로부터 제공받은 명령어를 이용하여 가상 머신(VM)을 생성하거나 삭제할 수 있으며 기 생성된 가상 머신을 주변 디바이스로 이주시킬 수 있다. 또한, 상기 가상 머신 관리부(130)는 기 생성된 가상 머신을 모니터링하여 상기 디바이스(100)로부터 제공받은 명령어를 수신할 가상 머신이 상기 디바이스(100)와 동일한 명령어 형태를 사용하는지 판단한다.
즉, 상기 가상 머신 관리부(130)의 판단 결과에 따라 상기 명령어 처리부(124)의 명령어 변환 과정 필요 여부가 결정된다.
상기 메모리부(132)는 상기 가상화 장치(120)의 동작에 필요한 데이터를 저장하며 본 발명에 따라 가상 머신으로 제공되는 명령어와 가상 머신으로부터 제공되는 명령어를 저장한다.
도 2는 본 발명의 바람직한 일 실시 예에 따른 가상화 장치의 명령어 변환 과정을 도시한 도면이다.
상기 도 2를 참조하면, 상기 명령어 변환 과정은 상기 가상화 장치의 명령어 처리부의 동작 과정에 포함된다.
먼저, 상기 가상화 장치는 가상 머신 관리부(VM 관리부)에 의해 다수의 가상 머신(VM)이 생성될 수 있으며, 상기 가상 머신은 가상 머신을 생성한 디바이스와 동일한 아키텍처를 사용하거나 또는 다른 아키텍처를 사용할 수 있다.
이에 따라, 상기 디바이스와 서로 동일한 아키텍처를 사용하는 가상 머신은 상기 디바이스로부터 제공되는 명령어를 직접 처리할 수 있다. 하지만, 상기 디바이스와 서로 동일하지 않은 아키텍처를 사용하는 가상 머신은 상기 디바이스로부터 제공되는 명령어를 직접 처리할 수가 없다.
상기와 같은 문제점을 해결하기 위하여 본 발명에 따른 가상화 장치는 상기 디바이스로부터 수신한 명령어를 해당 가상 머신이 처리할 수 있는 형태의 명령어로 변환하여 가상 머신으로 제공한다. 반대로, 상기 가상화 장치는 다른 아키텍처에 해당하는 가상 머신으로부터 수신한 명령어를 디바이스의 아키텍처에 해당하는 형태의 명령어로 변환하여 상기 디바이스로 제공하도록 처리한다.
즉, 도시된 바와 같이 상기 가상화 장치의 가상 머신 관리부는 상기 디바이스의 요청에 따라 다수의 가상 머신을 생성하고, 상기 가상 머신을 모니터링하여 상기 디바이스로부터 수신한 명령어에 해당하는 가상 머신을 확인한다. 이때, 상기 가상 머신 관리부는 수신한 명령어를 명령어 처리부로 제공하게 되며, 상기 명령어 처리부는 상기 명령어에 해당하는 가상 머신의 아키텍처를 확인하여 명령어 변환 과정이 필요한지를 판단한다.
만일, 상기 명령어 변환 과정이 불필요함을 확인할 경우, 상기 명령어 처리부는 상기 가상 머신 관리부로부터 제공받은 명령어를 그대로 해당 가상 머신으로 제공(실선 표시 흐름)한다.
한편, 상기 명령어 변환 과정이 필요함을 확인할 경우, 상기 명령어 처리부는 변환부를 통해 상기 가상 머신 관리부로부터 제공받은 명령어를 가상 머신의 아키텍처에 해당하는 형태로 변환한 후, 상기 해당 가상 머신으로 제공하도록 처리(점선 표시흐름)한다.
또한, 상기 명령어 처리부는 상기 가상 머신에서 디바이스로 제공되는 명령어에 대한 변환 과정을 수행한다. 즉, 상기 명령어 처리부는 상기 가상 머신으부터 명령어를 수신할 경우, 상기 명령어를 제공한 가상 머신과 디바이스가 서로 다른 아키텍처를 사용하여 변환 과정이 필요하다고 판단할 경우에는 상기 변환부를 통해 상기 제공받은 명령어를 디바이스에 해당하는 형태로 변환한 후, 상기 가상 머신 관리부로 제공하도록 처리한다. 이에 따라 상기 가상 머신 관리부는 통신부를 통해 상기 디바이스로 명령어를 전달하도록 처리한다.
도 3은 본 발명의 바람직한 일 실시 예에 따른 디바이스에서 가상 머신을 제어하는 과정을 도시한 흐름도이다.
상기 도 3을 참조하면, 상기 디바이스는 개인용 컴퓨터, 이동통신 단말기, 노트북, 임베디드 디바이스를 의미하고, 상기 디바이스와 독립된 가상화 장치를 이용하여 가상 머신을 제어할 수 있다. 이때, 상기 가상화 장치는 기존의 가상화 계층에서 수행하는 동작을 하드웨어로 구현한 것이다.
먼저, 상기 디바이스는 301단계에서 가상 머신 제어를 위한 명령어를 사용자로부터 입력받는다. 이때, 상기 가상 머신 제어를 위한 명령어는 가상 머신을 생성하는 명령어, 가상 머신을 삭제시키는 명령어, 가상 머신을 다른 디바이스로 이주시키는 명령어, 가상 머신을 이용하여 어플리케이션을 구동시키는 명령어 등이 될 수 있다.
이후, 상기 디바이스는 303단계로 진행하여 상기 301단계에서 입력받은 명령어를 가상화 장치로 전송한다. 여기에서, 상기 가상화 장치는 가상 머신을 제어하는 장치로 상기 디바이스와 독립적으로 구성되어 있다. 즉, 상기 가상화 장치를 디바이스(디바이스의 소켓, 케이블)에 연결할 경우, 가상화 계층이 구비되지 않은 디바이스에서도 가상 머신을 제어할 수 있다.
이후, 상기 디바이스는 305단계로 진행하여 가상화 장치로부터 명령어를 수신하는지 확인한다.
만일, 상기 305단계에서 명령어를 수신하지 않음을 확인할 경우, 상기 디바이스는 상기 305단계의 과정을 재수행한다.
한편, 상기 305단계에서 명령어를 수신함을 확인할 경우, 상기 디바이스는 307단계로 진행하여 수신한 명령어에 해당하는 동작을 수행한다.
즉, 기존의 디바이스에서 가상 머신을 생성하기 위해서는 가상화 계층을 통해 가상 머신을 생성하고 상기 가상화 계층에서 명령어를 변환하였으나 본 발명에 따른 디바이스는 명령어를 가상화 장치로 전송한 후, 상기 가상화 장치로 하여금 가상화 머신을 생성하고 명령어를 변환하도록 처리한다.
이후, 상기 디바이스는 본 알고리즘을 종료한다.
도 4는 본 발명의 바람직한 일 실시 예에 따른 가상화 장치에서 가상 머신을 제어하는 과정을 도시한 흐름도이다.
상기 도 4를 참조하면, 상기 가상화 장치는 디바이스에 장착되어 가상 머신을 생성하도록 처리하는 것으로, 기존 디바이스의 가상화 계층에서 수행하는 동작을 하드웨어로 구현한 것이다.
먼저, 상기 가상화 장치는 401단계에서 디바이스로부터 가상 머신 제어를 위한 명령어를 수신하는지 확인한다. 이때, 상기 가상 머신 제어를 위한 명령어는 가상 머신을 생성하는 명령어, 가상 머신을 삭제시키는 명령어, 가상 머신을 다른 디바이스로 이주시키는 명령어, 가상 머신을 이용하여 어플리케이션을 구동시키는 명령어 등이 될 수 있다.
만일, 상기 401단계에서 디바이스로부터 명령어를 수신하지 않음을 확인할 경우, 상기 가상화 장치는 대기 모드를 수행하면서 상기 401단계의 과정을 재수행한다.
한편, 상기 401단계에서 디바이스로부터 명령어를 수신함을 확인할 경우, 상기 가상화 장치는 403단계로 진행하여 상기 수신한 명령어에 해당하는 가상 머신을 확인한다. 여기에서, 상기 가상화 장치는 기 생성된 가상 머신 가운데 디바이스가 제어하고자 하는 가상 머신을 파악하는 것이다.
이후, 상기 가상화 장치는 405단계로 진행하여 상기 403단계에서 확인한 가상 머신과 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인한다. 여기에서, 상기 동일한 기종은 서로 동일한 아키텍처 형태를 지원하는 것을 의미한다.
만일, 상기 405단계에서 두 디바이스가 동일한 기종임을 확인할 경우, 상기 디바이스는 407단계로 진행하여 수신한 명령어를 해당 가상 머신으로 전송한다. 이는 상기 디바이스와 가상 머신이 동일한 인스트럭션 셋 아키텍처를 사용하기 때문이다.
한편, 상기 405단계에서 두 디바이스가 동일한 기종이 아님을 확인할 경우, 상기 디바이스는 417단계로 진행하여 수신한 명령어를 해당 가상 머신의 아키텍처에 해당하는 명령어 형식으로 변환한 후, 407단계로 진행하여 상기 변환한 명령어를 해당 가상 머신으로 전송한다. 이는 상기 디바이스와 가상 머신이 동일한 인스트럭션 셋 아키텍처를 사용하지 않음에 따라 해당 가상 머신에 해당하는 인스트럭션 셋 아키텍처 형식으로 변환하여 상기 디바이스의 명령어를 상기 가상 머신에서 처리하도록 한다.
상기와 같이 명령어를 가상 머신으로 전송한 가상화 장치는 409단계로 진행하여 상기 디바이스로부터 수신한 명령어를 이용하여 가상 머신을 구동시킨 후, 411단계로 진행하여 디바이스로의 명령어 전송을 수행할 것인지를 확인한다. 여기에서, 상기 가상 머신을 구동시키는 것은 가상 머신에 해당하는 운영체제를 구동시키거나 상기 운영체제에서 구동될 수 있는 어플리케이션(예; 메모장, 웹 브라우져, 게임, 문서 프로그램 등)을 구동시키는 것이며, 상기 411단계는 상기 가상 머신에서 전송되는 명령어를 디바이스로 전송할 것인지를 확인하는 과정이다.
만일, 상기 411단계에서 디바이스로의 명령어 전송을 수행하지 않을 경우, 상기 가상화 장치는 상기 411단계의 과정을 재수행한다.
한편, 상기 411단계에서 디바이스로의 명령어 전송을 수행함을 확인할 경우, 상기 가상화 장치는 413단계로 진행하여 명령어를 전송한 가상 머신이 상기 디바이스와 동일한 기종인지를 확인한다.
만일, 상기 413단계에서 디바이스와 가상 머신이 동일한 기종임을 확인할 경우, 상기 가상화 장치는 415단계로 진행하여 상기 가상 머신으로부터 수신한 명령어를 상기 디바이스로 전송한다.
한편, 상기 413단계에서 디바이스와 가상 머신이 동일한 기종이 아님을 확인할 경우, 상기 가상화 장치는 419단계로 진행하여 상기 가상 머신으로부터 수신한 명령어를 상기 디바이스에 해당하는 명령어 형식으로 변환한 후, 상기 415단계로 진행하여 상기 변환한 명령어를 상기 디바이스로 전송한다.
이후, 상기 가상화 장치는 본 알고리즘을 종료한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100: 임베디드 디바이스 120: 가상화 장치

Claims (16)

  1. 디바이스에서 가상 머신을 제어하는 장치에 있어서,
    가상 머신 제어를 위한 명령어를 입력받을 경우, 상기 입력받은 명령어를 독립된 가상화 장치로 전송하는 가상화 요청부와,
    상기 가상화 장치로부터 명령어를 수신할 경우, 상기 수신한 명령어에 해당하는 동작을 수행하는 제어부를 포함하되,
    상기 독립된 가상화 장치는,
    소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 하는 장치.
  2. 제 1항에 있어서,
    상기 가상 머신 제어를 위한 명령어는,
    가상 머신을 생성하는 명령어, 가상 머신을 삭제시키는 명령어, 가상 머신을 다른 디바이스로 이주시키는 명령어, 가상 머신을 이용하여 어플리케이션을 구동시키는 명령어 가운데 적어도 어느 한가지를 포함하는 것을 특징으로 하는 장치.
  3. 제 1항에 있어서,
    상기 가상화 장치는 가상 머신 생성 및 제어를 위한 가상화 계층에 해당하는 동작을 하드웨어 형식으로 구현한 것이고, 상기 디바이스는 상기 가상화 계층에 해당하는 프로그램이 설치되지 않은 상태임을 특징으로 하는 장치.
  4. 가상화 장치에서 가상 머신을 제어하는 장치에 있어서,
    디바이스로부터 가상 머신 제어를 위한 명령어를 수신할 경우, 상기 명령어를 처리할 가상 머신을 확인하고, 상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 가상 머신 관리부와,
    상기 디바이스와 가상 머신이 동일한 기종이 아닐 경우, 상기 수신한 명령어를 가상 머신의 명령어 형태로 변환하여 전송하는 명령어 처리부를 포함하는 것을 특징으로 하는 장치.
  5. 제 4항에 있어서,
    상기 명령어 처리부는,
    상기 디바이스와 가상 머신이 동일한 기종임을 확인할 경우, 상기 수신한 명령어를 그대로 상기 가상 머신으로 전송하는 것을 특징으로 하는 장치.
  6. 제 4항에 있어서,
    상기 가상 머신 관리부는,
    상기 디바이스와 가상 머신이 동일한 인스트럭션 셋 아키텍처를 사용하는지 확인하여 상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 것을 특징으로 하는 장치.
  7. 제 4항에 있어서,
    상기 가상화 장치는,
    가상 머신 생성 및 제어를 위한 가상화 계층에 해당하는 동작을 하드웨어 형식으로 구현한 것이고, 소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 하는 장치
  8. 제 4항에 있어서,
    상기 가상화 장치에서 가상 머신을 제어하는 장치는,
    상기 가상 머신으로부터 명령어를 수신할 경우, 상기 명령어를 수신한 가상 머신과 상기 디바이스가 서로 동일한 기종인지 확인하는 가상 머신 관리부와,
    상기 디바이스가 동일한 기종이 아닐 경우, 상기 수신한 명령어를 상기 디바이스의 명령어 형태로 변환하여 전송하고 상기 가상 머신과 상기 디바이스가 동일한 기종일 경우, 수신한 명령어를 그대로 상기 디바이스로 전송하는 명령어 처리부를 포함하는 것을 특징으로 하는 장치.
  9. 디바이스에서 가상 머신을 제어하는 방법에 있어서,
    가상 머신 제어를 위한 명령어를 입력받을 경우, 상기 입력받은 명령어를 독립된 가상화 장치로 전송하는 과정과,
    상기 가상화 장치로부터 명령어를 수신할 경우, 상기 수신한 명령어에 해당하는 동작을 수행하는 과정을 포함하되,
    상기 독립된 가상화 장치는,
    소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 하는 방법.
  10. 제 9항에 있어서,
    상기 가상 머신 제어를 위한 명령어는,
    가상 머신을 생성하는 명령어, 가상 머신을 삭제시키는 명령어, 가상 머신을 다른 디바이스로 이주시키는 명령어, 가상 머신을 이용하여 어플리케이션을 구동시키는 명령어 가운데 적어도 어느 한가지를 포함하는 것을 특징으로 하는 방법.
  11. 제 9항에 있어서,
    상기 가상화 장치는 가상 머신 생성 및 제어를 위한 가상화 계층에 해당하는 동작을 하드웨어 형식으로 구현한 것이고, 상기 디바이스는 상기 가상화 계층에 해당하는 프로그램이 설치되지 않은 상태임을 특징으로 하는 방법.
  12. 가상화 장치에서 가상 머신을 제어하는 방법에 있어서,
    디바이스로부터 가상 머신 제어를 위한 명령어를 수신할 경우, 상기 명령어를 처리할 가상 머신을 확인하는 과정과,
    상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 과정과,
    상기 디바이스와 가상 머신이 동일한 기종이 아닐 경우, 상기 수신한 명령어를 가상 머신의 명령어 형태로 변환하여 전송하는 과정을 포함하는 것을 특징으로 하는 방법.
  13. 제 12항에 있어서,
    상기 디바이스와 가상 머신이 동일한 기종임을 확인할 경우, 상기 수신한 명령어를 그대로 상기 가상 머신으로 전송하는 과정을 포함하는 것을 특징으로 하는 방법.
  14. 제 12항에 있어서,
    상기 확인한 가상 머신과 상기 명령어를 전송한 디바이스가 서로 동일한 기종인지 확인하는 과정은,
    상기 디바이스와 가상 머신이 동일한 인스트럭션 셋 아키텍처를 사용하는지 확인하는 과정임을 특징으로 하는 방법.
  15. 제 12항에 있어서,
    상기 가상화 장치는,
    가상 머신 생성 및 제어를 위한 가상화 계층에 해당하는 동작을 하드웨어 형식으로 구현한 것이고, 소켓 연결, 케이블 연결 가운데 적어도 어느 한가지 연결을 통해 상기 디바이스와 연결하는 것을 특징으로 하는 방법.
  16. 제 12항에 있어서,
    상기 가상화 장치에서 가상 머신을 제어하는 방법은,
    상기 가상 머신으로부터 명령어를 수신할 경우, 상기 명령어를 수신한 가상 머신과 상기 디바이스가 서로 동일한 기종인지 확인하는 과정과,
    상기 가상 머신과 상기 디바이스가 동일한 기종이 아닐 경우, 상기 수신한 명령어를 상기 디바이스의 명령어 형태로 변환하여 전송하는 과정과,
    상기 가상 머신과 상기 디바이스가 동일한 기종일 경우, 수신한 명령어를 그대로 상기 디바이스로 전송하는 과정을 포함하는 것을 특징으로 하는 방법.



KR1020110034726A 2011-04-14 2011-04-14 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법 KR101812145B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110034726A KR101812145B1 (ko) 2011-04-14 2011-04-14 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법
US13/446,988 US20120266172A1 (en) 2011-04-14 2012-04-13 Apparatus and method for controlling a virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110034726A KR101812145B1 (ko) 2011-04-14 2011-04-14 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120117150A true KR20120117150A (ko) 2012-10-24
KR101812145B1 KR101812145B1 (ko) 2018-01-26

Family

ID=47007381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110034726A KR101812145B1 (ko) 2011-04-14 2011-04-14 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법

Country Status (2)

Country Link
US (1) US20120266172A1 (ko)
KR (1) KR101812145B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021091197A1 (ko) * 2019-11-07 2021-05-14 김영수 소프트웨어 체계를 전환시키는 플랫폼을 포함하는 표시장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102187384B1 (ko) * 2020-07-31 2020-12-07 나무기술 주식회사 클라우드 인프라 기반의 컨테이너 가상os 통합 표준화 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10365935B1 (en) * 2008-09-23 2019-07-30 Open Invention Network Llc Automated system and method to customize and install virtual machine configurations for hosting in a hosting environment
US8732700B2 (en) * 2008-12-18 2014-05-20 Vmware, Inc. Virtualization system with a remote proxy
US8935436B2 (en) * 2009-02-18 2015-01-13 Qualcomm Incorporated Wakeup trigger to support multiple user interfaces, environments, and/or virtual machines
US20100251259A1 (en) 2009-03-31 2010-09-30 Howard Kevin D System And Method For Recruitment And Management Of Processors For High Performance Parallel Processing Using Multiple Distributed Networked Heterogeneous Computing Elements
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
WO2011103544A1 (en) * 2010-02-22 2011-08-25 Virtustream, Inc. Methods and apparatus for data center management independent of hypervisor platform
US8539484B1 (en) * 2010-05-26 2013-09-17 HotLink Corporation Multi-platform computer system management for virtualized environments
WO2011155941A1 (en) * 2010-06-10 2011-12-15 Hewlett-Packard Development Company, L.P. Virtual machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021091197A1 (ko) * 2019-11-07 2021-05-14 김영수 소프트웨어 체계를 전환시키는 플랫폼을 포함하는 표시장치

Also Published As

Publication number Publication date
KR101812145B1 (ko) 2018-01-26
US20120266172A1 (en) 2012-10-18

Similar Documents

Publication Publication Date Title
TWI537827B (zh) 應用軟體試用系統、方法及其伺服器與使用者裝置
KR20120117151A (ko) 디바이스에서 가상 머신 마이그레이션 과정을 수행하기 위한 장치 및 방법
US8407717B2 (en) Parallel processing method for dual operating system
JP5010492B2 (ja) 通信装置、方法及びプログラム
KR101007356B1 (ko) 가상화 시스템 상에서 입출력 디바이스 설정장치 및 방법
CN102546920B (zh) 一种运行进程的方法、系统及设备
KR20100078139A (ko) 휴대용 단말기의 위젯 제작 장치 및 방법
CN109308241B (zh) 监听应用程序启动流程方法、装置、终端设备和存储介质
JP2010218347A (ja) シンクライアントサーバシステム及びusbデバイスのドライバの管理方法
KR20130003863A (ko) 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법
CN104035683A (zh) 一种通讯终端分屏多任务交互方法
WO2015180124A1 (zh) 终端设备显示方法和终端设备
JP2012079084A (ja) リモートデスクトップシステムおよび業務アプリケーション移行システム
CN113393367B (zh) 图像处理方法、装置、设备和介质
US11979941B2 (en) Data transmission method and terminal
CN108401453B (zh) 一种控制显示屏的方法、装置和智能终端
CN110266701B (zh) 智能设备数据传输方法、装置、介质及电子设备
KR20120117150A (ko) 디바이스와 장착하여 가상 머신을 제어하기 위한 가상화 장치 및 방법
US9983839B2 (en) Image processing apparatus and non-transitory computer-readable recording medium encoded with mode switching program
CN110309462B (zh) 数据展示方法及系统
US8166105B2 (en) Portable terminal, server, and method for realizing function of portable terminal using network
CN115421846A (zh) 跨设备控制方法、控制装置、电子设备和可读存储介质
US20170142245A1 (en) Electronic apparatus with shareable input devices and input device sharing method thereof
US9107024B2 (en) Communication system, information processing apparatus, mobile terminal, and input method
CN111880870B (zh) 控制电子设备的方法、装置和电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant