KR20120013074A - 사용자 단말장치 및 멀티 가상머신 전환 방법 - Google Patents

사용자 단말장치 및 멀티 가상머신 전환 방법 Download PDF

Info

Publication number
KR20120013074A
KR20120013074A KR1020100075236A KR20100075236A KR20120013074A KR 20120013074 A KR20120013074 A KR 20120013074A KR 1020100075236 A KR1020100075236 A KR 1020100075236A KR 20100075236 A KR20100075236 A KR 20100075236A KR 20120013074 A KR20120013074 A KR 20120013074A
Authority
KR
South Korea
Prior art keywords
application
user
virtual machine
link
unit
Prior art date
Application number
KR1020100075236A
Other languages
English (en)
Other versions
KR101122962B1 (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 KR1020100075236A priority Critical patent/KR101122962B1/ko
Publication of KR20120013074A publication Critical patent/KR20120013074A/ko
Application granted granted Critical
Publication of KR101122962B1 publication Critical patent/KR101122962B1/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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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

Abstract

사용자 단말장치 및 멀티 가상머신 전환 방법이 개시된다. 본 발명의 일 실시예에 따르면, 복수의 가상머신, 및 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 유지하고, 사용자로부터 요청이 있는 경우에 어플리케이션 목록을 제공하는 전환 관리부를 포함하는 사용자 단말장치가 제공된다. 이에 의해, 가상 머신 전환의 편리성을 제공할 수 있다.

Description

사용자 단말장치 및 멀티 가상머신 전환 방법{User terminal device and switching multi virtual machines thereof}
본 발명은 사용자 단말장치 및 멀티 가상머신 전환 방법에 관한 것으로, 보다 상세하게는 사용자의 선택에 따라 여러 운영체제를 이동하면서 어플리케이션을 사용할 수 있는 사용자 단말장치 및 멀티 가상머신 전환 방법에 관한 것이다.
IT(Information Technology) 자원의 폭발적인 증가로 인한 복잡성 증가, TCO(Total Cost of Ownership) 상승과 같은 문제로 인하여 가상화(Virtualization) 기술이 주목받고 있다. 가상화는 실제 하드웨어 기반하에서 동작하는 장치를 소프트웨어적으로 구현 및 처리하는 것을 의미한다.
가상화 기술이 주목받음에 따라, Bare-metal 기반의 클라이언트 하이퍼바이저(client hypervisor)가 발표되었으며, 일반 사용자의 컴퓨터, 노트북뿐만 아니라, 스마트폰과 같은 모바일 기기에도 클라이언트 하이퍼바이저가 설치되고 있는 추세이다.
또한, 사용자 환경에 멀티 코어가 채용되고, 하드웨어 사양이 높아짐에 따라, 유휴자원 관리에 있어 더욱 효율적인 가상화 환경이 채용되고 있으며, 가상화 기술을 사용한 소프트웨어 배포 서비스가 성장할 것으로 예상된다.
이에 따라, 클라이언트 하이퍼바이저를 기반으로 다수의 가상머신(Virtual machine)에 다수의 서로 다른 기종의 운영체제(Operating system)가 설치될 수 있다. 이 경우, 사용자는 특정 운영체제에 특화된 어플리케이션을 사용하기 위해서는 현재 사용하고 있는 운영체제를 사용하고자 하는 운영체제로 전환한 이후에 원하는 어플리케이션을 실행시켜야 한다.
이를 위해, 사용자는 어떤 운영체제에 어떤 어플리케이션이 설치되어 있는지를 인지하고 있어야 한다. 하지만, 운영체제 및 어플리케이션의 개수가 증가할수록 사용자가 이를 일일이 인지한다는 것은 매우 어려운 일이다.
본 발명은 여러 가상머신 상에 설치된 어플리케이션에 대한 목록을 제공하여 사용자가 선택하도록 함으로써, 어플리케이션을 실행시키는 것과 유사한 방법으로 가상머신 및 어플리케이션의 동작이 가능한 사용자 단말장치 및 멀티 가상머신 전환 방법을 제공함을 목적으로 한다.
본 발명의 일 실시예에 따르면, 복수의 가상머신; 및 상기 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 유지하고, 사용자로부터 요청이 있는 경우에 상기 어플리케이션 목록을 제공하는 전환 관리부; 를 포함하는 것을 특징으로 하는 사용자 단말장치가 제공된다.
상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크 관리부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크 관리부를 포함하며, 상기 제1 링크 관리부와 상기 제2 링크 관리부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 제1 링크 관리부와 상기 제2 링크 관리부는 서로 통신하여 각자의 어플리케이션 목록을 동기화시킬 수 있다.
상기 제1 링크 관리부는,상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우, 상기 선택한 특정 어플리케이션이 상기 제1 가상머신 상에서 동작하는 어플리케이션이라면, 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 제1 링크 관리부는, 상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우, 상기 선택한 특정 어플리케이션이 상기 제2 가상머신 상에서 동작하는 어플리케이션이라면 상기 복수의 가상머신을 제어하는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 클라이언트 하이퍼바이저부는, 상기 제2 링크관리부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하고, 상기 제2 링크관리부는 그러한 요청에 의해서 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 클라이언트 하이퍼바이저부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당하고, 상기 제2 링크관리부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하며, 상기 제2 링크관리부는 그러한 요청에 의해서 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부와 어플리케이션 관리부를 포함하며, 상기 어플리케이션 관리부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 어플리케이션 관리부는 상기 가상머신들을 제어하는 클라이언트 하이퍼바이저부에 설치될 수 있다.
상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 수 있다.
상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 어플리케이션 관리부에 요청하며, 상기 어플리케이션 관리부는 상기 제1 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청할 수 있다.
상기 어플리케이션 관리부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청할 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 관리 가상머신에 설치되는 어플리케이션부와, 상기 복수의 가상머신 중 제1 가상머신에 설치되는 제1 링크부와, 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부를 포함하며, 상기 어플리케이션부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 관리 가상머신은 백그라운드에서 항상 동작할 수 있다.
상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 수 있다.
상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 클라이언트 하이퍼바이저부로 요청하며, 상기 클라이언트 하이퍼바이저부는 상기 제2 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청할 수 있다.
상기 클라이언트 하이퍼바이저부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 상기 어플리케이션 관리부로 요청하며, 상기 어플리케이션 관리부는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청할 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 마스터 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제1 슬레이브 가상머신에 설치되는 제2 링크부와, 상기 복수의 가상머신 중 제2 슬레이브 가상머신에 설치되는 제3 링크부를 포함하며, 상기 제1 링크부는 상기 제2 링크부와 상기 제3 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제2 링크부와 상기 제3 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 제1 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 마스터 가상머신은 백그라운드에서 항상 동작할 수 있다.
상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행시킬 수 있다.
상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 클라이언트 하이퍼바이저부로 요청하며, 상기 클라이언트 하이퍼바이저부는 상기 제3 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청할 수 있다.
상기 클라이언트 하이퍼바이저부는, 상기 제2 슬레이브 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 슬레이브 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 슬레이브 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 수 있다.
상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 상기 제1 링크부로 요청하며, 상기 제1 링크부는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청할 수 있다.
본 발명의 일 실시예에 따르면, 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 유지하는 단계; 및 사용자로부터 요청이 있는 경우에 상기 어플리케이션 목록을 전환 관리부가 제공하는 단계;를 포함하는 사용자 단말장치의 멀티 가상머신 전환 방법이 제공된다.
본 발명의 일 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법은, 상기 사용자에게 제공한 어플리케이션 목록으로부터, 상기 사용자로부터 실행할 어플리케이션을 선택받는 단계;를 더 포함할 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크 관리부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크 관리부를 포함하며, 상기 제1 링크 관리부와 상기 제2 링크 관리부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 제1 링크 관리부는, 상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우, 상기 선택한 특정 어플리케이션이 상기 제1 가상머신 상에서 동작하는 어플리케이션이라면, 상기 사용자가 선택한 특정 어플리케이션을 실행시키고, 상기 선택한 특정 어플리케이션이 상기 제2 가상머신 상에서 동작하는 어플리케이션이라면 상기 복수의 가상머신을 제어하는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청할 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부와 어플리케이션 관리부를 포함하며, 상기 어플리케이션 관리부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 관리 가상머신에 설치되는 어플리케이션부와, 상기 복수의 가상머신 중 제1 가상머신에 설치되는 제1 링크부와, 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부를 포함하며, 상기 어플리케이션부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
상기 전환 관리부는 상기 복수의 가상머신 중 마스터 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제1 슬레이브 가상머신에 설치되는 제2 링크부와, 상기 복수의 가상머신 중 제2 슬레이브 가상머신에 설치되는 제3 링크부를 포함하며, 상기 제1 링크부는 상기 제2 링크부와 상기 제3 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며, 상기 제2 링크부와 상기 제3 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받을 수 있다.
본 발명의 실시예에 따른 사용자 단말장치 및 멀티 가상머신 전환 방법은, 복수의 운영체제가 설치되는 클라이언트 하이퍼바이저 기반의 사용자 단말장치에서 사용자가 현재 사용하고 있는 운영체제를 종료하지 않고도 다른 운영체제 상에 설치되어 있는 어플리케이션의 종류를 쉽게 확인할 수 있는 효과가 있다. 이로 인하여, 사용자는 기존의 어플리케이션을 실행시키는 것과 같은 간단한 동작만으로도 가상머신이 전환되고, 원하는 어플리케이션이 실행되므로, 사용상의 편리함을 제공하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 사용자 단말장치의 블럭도,
도 2는 본 발명의 다른 실시예에 따른 사용자 단말장치의 블럭도,
도 3은 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 블럭도,
도 4는 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 블럭도,
도 5는 본 발명의 일 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도,
도 6은 본 발명의 다른 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도, 그리고,
도 7은 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
용어의 정의
본원 명세서에서의 '전환 관리부'라고 함은 '링크 관리부'와 '링크부'를 포전부 포함하는 의미로 사용하거나, 또는 '링크 관리부'만을 의미하거나 또는 '링크부'만을 의미하기도 한다. 예를 들면, 도 1의 실시예에서 '전환 관리부'는 '링크 관리부'를 의미하며, 도 2와 도 3의 실시예에서 '전환 관리부'는 '링크부'와 '어플리케이션 관리부'를 통칭하며, 도 4의 실시예에서 '전환 관리부'는 '링크부'를 의미한다. 이러한 '전환 관리부'는 어플리케이션의 목록을 유지 및 관리하며 사용자에게 어플리케이션의 목록을 제공하고, 사용자가 그러한 어플리케이션 목록을 보고 선택한 특정 어플리케이션을 실행시키는 동작을 수행한다. 또한, '전환 관리부'는 사용자가 선택한 어플리케이션의 실행을 위해서 필요한 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청할 수도 있다.
또한, 본원 명세서에서 "가상 머신에 설치된 어플리케이션"이라고 함은 '가상머신상에 설치된 운영체제상에서 동작하는 어플리케이션"을 의미하며, 이하에서는 설명의 편의를 위해서 어플리케이션이 가상머신에 설치되었다고 설명하거나, 또는 어플리케이션이 가상머신 상에서 동작한다고 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 사용자 단말장치의 블럭도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 사용자 단말장치(100)는 클라이언트 하이퍼바이저부(110), 제1 사용자 모듈(120), 및 제2 사용자 모듈(130)을 포함할 수 있다. 여기서, 제1 사용자 모듈(120) 및 제2 사용자 모듈(130)은 설명의 편의를 위하여 그 개수를 임의로 예시한 것으로, 제3 내지 제N의 사용자 모듈이 더 포함될 수 있다.
클라이언트 하이퍼바이저부(110)는 다수의 운영체제(Operating System : OS)를 동시에 실행하기 위한 가상 플랫폼(platform)에 해당하는 것으로, 사용자 단말장치(100)에서 메인 OS의 역할을 하고, 클라이언트 하이퍼바이저부(110) 상에서 동작하는 복수의 가상머신들이 게스트 OS 역할을 한다.
본 실시예에서의 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 포함할 수 있다. 가상머신 스위칭부(111)는 복수의 가상머신에 부여되는 자원의 사용권한을 스위칭한다. 여기서, 자원의 사용권한은 각 가상머신이 물리적 하드웨어를 사용할 수 있도록 하는 것으로, 입출력 제어권을 포함한다. 즉, 가상머신 스위칭부(111)는 복수의 가상머신 중 적어도 하나의 가상머신에 자원의 사용권한을 부여 혹은 회수할 수 있으며, 이때 자원의 사용권한에는 필요에 따라 입출력 제어권이 포함될 수도 혹은 포함되지 않을 수도 있다.
클라이언트 하이퍼바이저부(110)는 가상머신 #1(121) 혹은 가상머신 #2(131)로부터 타 가상머신으로의 전환을 요청하면, 가상머신 스위칭부(111)를 통해 전환대상 가상머신으로 자원의 사용권한을 부여한다.
제1 사용자 모듈(120)은 가상머신 #1(121), 운영체제 #1(122), 어플리케이션 A(123), 어플리케이션 B(124), 및 링크 관리부 #1(125)을 포함할 수 있다. 또한, 제2 사용자 모듈(130)은 가상머신 #2(131), 운영체제 #2(132), 어플리케이션 C(133), 어플리케이션 D(134), 어플리케이션 E(135), 및 링크 관리부 #1(125)을 포함할 수 있다.
클라이언트 하이퍼바이저부(110) 상에는 적어도 하나의 가상머신이 설치되고, 그 가상머신 상에 각각의 운영체제가 설치된다. 또한, 그 각각의 운영체제 상에는 적어도 하나의 어플리케이션이 설치될 수 있다. 이와 같이, 클라이언트 하이퍼바이저부(110) 상에는 가상머신, 운영체제, 및 어플리케이션이 순차적으로 설치되는 것으로, 이에 따라 본 실시예에서는 이들을 사용자 모듈이라 칭한다.
도시한 바와 같이, 본 실시예에서는 클라이언트 하이퍼바이저부(110) 상에 2개의 가상머신 즉, 가상머신 #1(121)과 운영체제 #1(122) 및 가상머신 #2(131)와 운영체제 #2(132) 설치되고, 운영체제 #1(122)에는 2개의 어플리케이션 즉, 어플리케이션 A(123)와 어플리케이션 B(124)가 설치되며, 운영체제 #2(132)에는 3개의 어플리케이션 즉, 어플리케이션 C(133)와 어플리케이션 D(134), 어플리케이션 E(135)가 설치되었음을 예시하였다.
이외에도, 운영체제 상에는 링크 관리부가 더 설치될 수 있다. 링크 관리부는 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 제공하고, 이 어플리케이션 목록을 통해 선택된 어플리케이션의 실행을 요청하는 것으로, 단독 어플리케이션 형태로 운영체제 상에 설치될 수 있다. 본 실시예에서는, 운영체제 #1(122) 상에는 링크 관리부 #1(125)이 설치되고, 운영체제 #2(132) 상에는 링크 관리부 #2(136)가 설치되었음을 예시하였다. 다만, 링크 관리부 #1(125) 및 링크 관리부 #2(136)는 각각이 설치된 위치는 상이하나, 그 기능면에서는 서로 동일한 기능을 수행한다.
링크 관리부 #1(125) 및 링크 관리부 #2(136)는 클라이언트 하이퍼바이저부(110) 상의 모든 가상머신에 설치된 어플리케이션에 대한 어플리케이션 목록을 제공하기 위하여, 상대방이 속한 사용자 모듈 상의 어플리케이션 정보를 동기화하여야 한다. 어플리케이션에 대한 정보를 동기화하는 방법으로는 다음과 같은 두 가지 경우가 있을 수 있다.
첫째로, 사용자 모듈 중 어느 하나가 항상 동작하여 다른 사용자 모듈 상의 어플리케이션에 대한 정보를 가져와 보유하고 있는 경우가 있을 수 있다. 만약, 제1 사용자 모듈(120)이 항상 동작하도록 설정되어 있다면, 링크 관리부 #1(125)는 제2 사용자 모듈(130)에 포함되어 있는 어플리케이션에 변경이 발생하였을 경우 즉, 어플리케이션이 설치되거나 삭제되었을 경우, 링크 관리부 #2(136)로부터 어플리케이션 정보를 가져온다.
둘째로, 사용자 모듈 중 적어도 두개가 동작하고 있을 경우에 동작하고 있는 사용자 모듈이 상호간에 어플리케이션 정보를 서로 동기화하는 경우가 있을 수 있다. 만약, 제1 사용자 모듈(120)과 제2 사용자 모듈(130)이 모두 동작하고 있다면, 제1 사용자 모듈(120)은 제2 사용자 모듈(130)로부터 제2 사용자 모듈(130)의 어플리케이션 정보를 가져오고, 제2 사용자 모듈(130)은 제1 사용자 모듈(120)로부터 제1 사용자 모듈(120)의 어플리케이션 정보를 가져온다.
상기와 같은 방법에 의해, 사용자로부터 어플리케이션 목록 제공 요청을 받으면 링크 관리부 #1(125) 혹은 링크 관리부 #2(136)는 기보유하고 있는 자신이 속해 있는 사용자 모듈의 어플리케이션 정보와 타 사용자 모듈의 어플리케이션 정보에 의해 어플리케이션 목록을 제공할 수 있다. 여기서, 어플리케이션 목록은 사용자가 실행시키고자 하는 어플리케이션을 선택할 수 있는 형태로 제공될 수 있다.
이하에서는, 사용자로부터 링크 관리부 #1를 통해서 특정 어플리케이션이 선택되는 경우를 예로 들어서 링크 관리부의 동작을 설명하기로 한다. 우선, 사용자가 선택하는 어플리케이션은 링크 관리부 #1과 같은 사용자 모듈에 포함된 경우와, 다른 사용자 모듈(예를 들면 사용자 모듈(130))에 포함된 어플리케이션인 경우가 있으므로 이들 각각에 대하여 순차적으로 설명하기로 한다.
첫 번째 경우, 즉 사용자가 선택한 어플리케이션이 링크 관리부 #1과 같은 사용자 모듈 #1(120)에 포함된 경우는, 링크 관리부 #1은 사용자가 선택한 어플리케이션을 바로 실행시킬 수 있다. 물론 이 경우 가상 머신 #1이 상기 사용자가 선택한 어플리케이션이 동작할 수 있을 정도로 충분한 자원을 할당받은 것을 전제로 하며, 만약 충분한 자원을 할당받지 못하였다면, 사용자 모듈(120)은 클라이언트 하이퍼바이저부로 충분한 자원을 할당하여 줄 것을 요청할 것이다.
두 번째 경우, 즉, 사용자가 선택한 어플리케이션이 사용자 모듈 #2에 포함된 경우(예를 들면 어플리케이션 C(133)를 선택한 경우)는, 링크 관리부 #1(125)은 클라이언트 하이퍼 바이저(110)로 상기 사용자가 선택한 어플리케이션 C(133)의 실행을 요청한다. 클라이언트 하이퍼 바이저(110)는 링크 관리부 #1(125)의 요청에 따라서 어플리케이션 C(133)의 실행을 위한 동작을 수행한다. 구체적으로, 클라이언트 하이퍼 바이저(110)는, 어플리케이션 C(133)가 속한 사용자 모듈 #2에 이미 자원이 할당된 경우에는 바로 링크 관리부 #2로 어플리케이션 C(133)를 실행할 것을 요청하며, 만약 사용자 모듈 #2에 어플리케이션 C(133)가 동작할 수 있을 정도로 충분한 자원이 할당되지 않았다면 가상 머신 스위칭부(111)에 사용자 모듈 #2에 자원할당을 요청한다. 이후, 사용자 모듈 #2에 자원할당이 되면 링크 관리부 #2로 어플리케이션 C(133)의 실행을 요청한다.
도 2는 본 발명의 다른 실시예에 따른 사용자 단말장치의 블럭도이다.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 사용자 단말장치(100)는 클라이언트 하이퍼바이저부(110), 제1 사용자 모듈(120), 및 제2 사용자 모듈(130)을 포함할 수 있다. 즉, 본 실시예에서의 사용자 단말장치(100)는 도 1에 도시한 사용자 단말장치(100)와 유사한 구성을 가진다. 이에 따라, 동일한 구성에 대하여는 동일한 참조부호를 표기하였으며, 동일한 구성에 대한 설명은 생략하고 차이가 나는 구성에 대하여만 설명한다.
클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)와 어플리케이션 관리부(112)를 포함할 수 있다. 어플리케이션 관리부(112)는 도 1에 도시한 링크 관리부의 일부 기능을 가지는 것으로, 클라이언트 하이퍼바이저부(110) 내에 포함된다. 어플리케이션 관리부(112)가 클라이언트 하이퍼바이저부(110)에 포함되는 구성은 사용자 단말장치(100)가 동작하는 동안 어플리케이션 관리부(112)가 계속 동작할 수 있는 장점이 있다. 한편, 가상머신 스위칭부(111)는 어플리케이션 관리부(112)로부터 가상 머신의 전환 요청이 오면, 해당 가상 머신에 자원을 할당하여 활성화시킬 수 있다.
어플리케이션 관리부(112)는 사용자 모듈들이 가지는 모든 어플리케이션에 대한 정보를 포함하고 있으며, 사용자 모듈로부터 요청이 있거나 또는 주기적 또는 비주기적으로 모든 어플리케이션에 대한 목록을 사용자 모듈로 제공한다.
즉, 제1 사용자 모듈(120) 혹은 제2 사용자 모듈(130)로부터 어플리케이션 목록 제공 요청이 들어오면, 기보유하고 있는 어플리케이션 정보에 의해 클라이언트 하이퍼바이저부(110) 상의 모든 사용자 모듈에 포함되어 있는 모든 어플리케이션에 대한 정보를 포함하는 어플리케이션 목록을 어플리케이션 목록 제공을 요청한 사용자 모듈로 제공한다.
또한, 어플리케이션 관리부(112)는, 제 1 사용자 모듈(120)로부터 제2 사용자 모듈에 포함된 어플리케이션의 실행 요청이 오면, 링크부 #2(136)로 대상 어플리케이션 실행 요청을 하며, 반대로, 제 2 사용자 모듈(130)로부터 제1 사용자 모듈에 포함된 어플리케이션의 실행 요청이 오면, 링크부 #1(126)로 대상 어플리케이션 실행 요청을 할 수 있다.
사용자 모듈 내의 어플리케이션의 변경이 발생하면, 이에 따른 변경 사항은 클라이언트 하이퍼바이저부(110)로 통보될 수 있다.
제1 사용자 모듈(120)에는 가상머신 #1(121), 운영체제 #1(122), 어플리케이션 A(123), 어플리케이션 B(124)가 포함될 수 있으며, 어플리케이션 A(123), 어플리케이션 B(124)와 동일 레벨 상에 링크부 #1(125)이 포함될 수 있다.
링크부는 자신이 속한 사용자 모듈의 가상머신이 자원의 사용권한을 가지고 동작하고 있을 때, 사용자로부터 어플리케이션 목록 요청이 들어오면 자신이 가지고 있던 어플리케이션 목록을 사용자에게 제공(사용자가 인지할 수 있는 형태로 제공함)하거나, 또는 어플리케이션 관리부(112)로 어플리케이션 목록 요청을 하고, 어플리케이션 관리부(112)로부터 어플리케이션 목록을 제공받아서 사용자에게 제공할 수 있다.
이하에서는, 사용자로부터 링크부 #1를 통해서 특정 어플리케이션이 선택되는 경우를 예로 들어서 링크부의 동작을 설명하기로 한다. 우선, 사용자가 선택하는 어플리케이션은 링크부 #1과 같은 사용자 모듈에 포함된 경우와, 다른 사용자 모듈(예를 들면 사용자 모듈(130))에 포함된 어플리케이션인 경우가 있으므로 이들 각각에 대하여 순차적으로 설명하기로 한다.
첫 번째 경우, 즉 사용자가 선택한 어플리케이션이 링크부 #1과 같은 사용자 모듈 #1에 포함된 경우는, 링크부 #1은 사용자가 선택한 어플리케이션을 바로 실행시킬 수 있다. 물론 이 경우 가상 머신 #1이 상기 사용자가 선택한 어플리케이션이 동작할 수 있을 정도로 충분한 자원을 할당받은 것을 전제로 하며, 만약 충분한 자원을 할당받지 못하였다면, 사용자 모듈(120)은 클라이언트 하이퍼바이저부로 충분한 자원을 할당하여 줄 것을 요청할 것이다.
두 번째 경우, 즉, 사용자가 선택한 어플리케이션이 사용자 모듈 #2에 포함된 경우(예를 들면 어플리케이션 C(133)를 선택한 경우)는, 링크부 #1(125)은 어플리케이션 관리부(112)로 상기 사용자가 선택한 어플리케이션 C(133)의 실행을 요청한다. 어플리케이션 관리부(112)는 링크부 #1(125)의 요청에 따라서 어플리케이션 C(133)의 실행을 위한 동작을 수행한다. 구체적으로, 어플리케이션 관리부(112)는, 어플리케이션 C(133)가 속한 사용자 모듈 #2에 이미 자원이 할당된 경우에는 바로 링크부 #2로 어플리케이션 C(133)를 실행할 것을 요청하며, 만약 사용자 모듈 #2에 어플리케이션 C(133)가 동작할 수 있을 정도로 충분한 자원이 할당되지 않았다면 가상 머신 스위칭부(111)로 사용자 모듈 #2에 자원할당을 요청한다. 이후, 사용자 모듈 #2에 자원할당이 되면 링크부 #2로 어플리케이션 C(133)의 실행을 요청한다.
본 실시예에서는, 클라이언트 하이퍼바이저부(110) 내에 어플리케이션 관리부(112)가 포함되고, 각 운영체제 상에는 링크부가 설치되는 것을 예시하였다. 즉, 도 1에 도시한 링크 관리부의 기능이 어플리케이션 관리부(112)와 링크부로 분리되어 구성된 것을 예시한 것이다.
도 3은 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 블럭도이다.
도 3을 참조하면, 본 발명의 또 다른 실시예에 따른 사용자 단말장치(100)는 클라이언트 하이퍼바이저부(110), 제1 사용자 모듈(120), 제2 사용자 모듈(130), 및 관리 모듈(140)을 포함할 수 있다. 본 실시예에 따른 사용자 단말장치(100)는 도 2에 도시한 사용자 단말장치(100)와 유사한 구성을 가지므로, 여기에서는 동일한 구성에 대하여는 동일한 참조부호를 표기하였으며, 동일한 구성에 대한 설명은 생략하고 차이가 나는 구성에 대하여만 설명한다.
클라이언트 하이퍼바이저부(110)는 도 1에서 도시한 바와 같이 가상머신 스위칭부(111)를 포함한다. 클라이언트 하이퍼바이저부(110) 상에는 제1 사용자 모듈(120), 및 제2 사용자 모듈(130)이 설치되는데, 본 실시예에서는 제1 사용자 모듈(120) 및 제2 사용자 모듈(130)과 동일 레벨 상에 관리 모듈(140)이 더 설치될 수 있다.
관리 모듈(140)은 관리 가상머신(141), 관리 운영체제(142), 및 어플리케이션 관리부(143)를 포함할 수 있다. 관리 가상머신(141)은 클라이언트 하이퍼바이저부(110) 상에서 가상머신 #1(121) 및 가상머신 #2(131)와 동일 레벨 상에 설치된다. 또한, 관리 운영체제(142)는 관리 가상머신(141) 상에 운영체제 #1(122) 및 운영체제 #2(132)와 동일 레벨 상에 설치된다.
관리 운영체제(142) 상에는 어플리케이션 관리부(143)가 설치될 수 있다. 어플리케이션 관리부(143)는 도 2에 도시한 클라이언트 하이퍼바이저부(110) 내의 어플리케이션 관리부(112)와 동일한 기능을 수행하는 것으로, 다만 그 설치 위치가 상이한 차이가 있다. 이전 실시예에서도 언급한 바와 같이, 어플리케이션부 관리부(143)는 해당 기능을 수행하는 단독 어플리케이션으로 구현될 수 있다.
관리 모듈(140)은 클라이언트 하이퍼바이저부(110)가 동작을 시작하면, 백그라운드에서 동작하도록 설정된 모듈로, 클라이언트 하이퍼바이저부(110) 상에 설치되어 있는 사용자 모듈 내의 어플리케이션이 변동사항이 발생하면, 이 변동사항을 클라이언트 하이퍼바이저부(110)를 통해 통보받는다. 이에 의해, 관리 모듈(140)에 포함된 어플리케이션 관리부(143)는 항상 최신의 어플리케이션 정보를 보유하고 있을 수 있다.
즉, 어플리케이션 관리부(143)는 사용자 모듈들이 가지는 모든 어플리케이션에 대한 정보를 포함하고 있으며, 사용자 모듈로부터 요청이 있거나 또는 주기적 또는 비주기적으로 모든 어플리케이션에 대한 목록을 사용자 모듈들의 링크부들로 제공할 수 있다.
사용자로부터 링크부 #1를 통해서 특정 어플리케이션이 선택되는 경우를 예로 들어서 링크부의 동작을 설명하기로 한다. 도 2의 실시예와 마찬가지로, 사용자가 선택하는 어플리케이션은 링크부 #1과 같은 사용자 모듈에 포함된 경우와, 다른 사용자 모듈(예를 들면 사용자 모듈(130))에 포함된 어플리케이션인 경우가 있으므로 이들 각각에 대하여 순차적으로 설명하기로 한다.
첫 번째 경우, 즉 사용자가 선택한 어플리케이션이 링크부 #1과 같은 사용자 모듈 #1에 포함된 경우는, 링크부 #1은 사용자가 선택한 어플리케이션을 바로 실행시킬 수 있다. 물론 이 경우 가상 머신 #1이 상기 사용자가 선택한 어플리케이션이 동작할 수 있을 정도로 충분한 자원을 할당받은 것을 전제로 하며, 만약 충분한 자원을 할당받지 못하였다면, 사용자 모듈(120)은 클라이언트 하이퍼바이저부로 충분한 자원을 할당하여 줄 것을 요청할 수 있다.
두 번째 경우, 즉, 사용자가 선택한 어플리케이션이 사용자 모듈 #2에 포함된 경우(예를 들면 어플리케이션 C(133)를 선택한 경우)는, 링크부 #1(125)은 어플리케이션 관리부(143)로 상기 사용자가 선택한 어플리케이션 C(133)의 실행을 요청한다. 어플리케이션 관리부(143)는 링크부 #1(125)의 요청에 따라서 어플리케이션 C(133)의 실행을 위한 동작을 수행한다. 구체적으로, 어플리케이션 관리부(143)는, 어플리케이션 C(133)가 속한 사용자 모듈 #2에 이미 자원이 할당된 경우에는 바로 링크부 #2로 어플리케이션 C(133)를 실행할 것을 요청하며, 만약 사용자 모듈 #2에 어플리케이션 C(133)가 동작할 수 있을 정도로 충분한 자원이 할당되지 않았다면 가상 머신 스위칭부(111)로 사용자 모듈 #2에 자원할당을 요청한다. 이후, 사용자 모듈 #2에 자원할당이 되면 링크부 #2로 어플리케이션 C(133)의 실행을 요청한다.
한편, 상술한 두 번째의 경우는, 다음과 같이 변형도 가능하다. 예를 들면, 사용자가 선택한 어플리케이션이 사용자 모듈 #2에 포함된 경우(예를 들면 어플리케이션 C(133)를 선택한 경우)는, 링크부 #1(125)은 클라이언트 하이퍼바이저부로 어플리케이션 C(133)의 실행을 요청하며, 클라이언트 하이퍼바이저부는 사용자 모듈 #2에 충분한 자원이 할당되었는지 확인한 후 링크부 #2(136)로 상기 사용자가 선택한 어플리케이션 C(133)의 실행을 요청한다. 만약, 사용자 모듈 #2에 충분한 자원이 할당되지 않았다면 사용자 모듈 #2에 충분한 자원을 할당한 후에 링크부 #2(136)로 어플리케이션 C(133)의 실행을 요청한다.
도 4는 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 블럭도이다.
도 4를 참조하면, 본 발명의 또 다른 실시예에 따른 사용자 단말장치(100)는 클라이언트 하이퍼바이저부(110), 및 마스터 사용자 모듈(150), 및 복수의 슬레이브 사용자 모듈 즉, 제1 슬레이브 사용자 모듈(160)과 제2 슬레이브 사용자 모듈(170)을 포함할 수 있다.
클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 포함하는 구성으로, 도 1 및 도 3에 예시한 실시예에서와 동일한 구조이다. 이에 따라, 이들의 참조부호는 이전 실시예에서와 동일하게 표기하였다.
마스터 사용자 모듈(150)은 마스터 가상머신(151), 마스터 운영체제(152), 어플리케이션 F(153), 어플리케이션 G(154), 및 링크부 #3(155)을 포함할 수 있다. 클라이언트 하이퍼바이저부(110)가 동작되면, 클라이언트 하이퍼바이저부(110)는 마스터 가상머신(151)에 자원의 사용권한을 부여함으로써, 마스터 사용자 모듈(150)이 항상 동작하는 상태를 유지하도록 한다. 이때, 마스터 가상머신(151)에 부여되는 자원의 사용권한은 마스터 사용자 모듈(150)이 백그라운드에서 동작하도록 입출력 제어권을 제외한 자원의 사용권한일 수 있다.
본 실시예에서, 마스터 사용자 모듈(150)은 이전 실시예에서 설명한 어플리케이션 관리부(112)의 기능을 포함한다. 즉, 마스터 사용자 모듈(150)은 어플리케이션 목록을 제공하고, 사용자로부터 특정 어플리케이션의 실행이 요청되면, 클라이언트 하이퍼바이저부(110)로 기실행 요청된 어플리케이션이 속한 슬레이브 가상머신으로의 전환을 요청한다. 일 실시예를 들면, 마스터 사용자 모듈(150)의 링크부 #3(155)는 어플리케이션 목록을 다른 링크부들로부터 요청이 있는 경우 또는 주기적 또는 비주기적으로 어플리케이션 목록을 전송할 수 있다.
링크부 #3(155)은 마스터 가상머신(151) 상의 마스터 운영체제(152) 상에서 어플리케이션 F(153)와 어플리케이션 G(154)와 동일 레벨 상에 설치될 수 있다. 링크부 #3(155)은, 마스터 가상머신(151)이 자원의 사용권한을 가지고 있는 상태에서 어플리케이션의 실행 요청을 받고, 어플리케이션의 목록을 제공할 수 있으며, 또한 사용자에게 어플리케이션 목록을 제공하여 사용자로부터 어플리케이션 목록 중 실행시키고자 하는 어플리케이션의 선택신호를 입력받을 수 있다.
본 실시예에 따른 링크부 #3(155)은, 상술한 도 3에서의 어플리케이션 관리부가 가지는 기능을 모두 포함할 수 있다. 따라서, 링크부 #3(155)는 다른 사용자 모듈에 속하는 링크부들에게 어플리케이션 목록을 주기적 또는 비주기적으로 전송하거나, 그러한 링크부들로부터 요청이 있는 경우에 전송할 수 있다. 링크부 #3(155)이 가지는 어플리케이션 목록은 클라이언트 하이퍼바이저부로부터 수신할 수 있다.
또한, 링크부 #3(155)은 사용자에게 어플리케이션 목록을 제공할 수 있고, 사용자로부터 특정 어플리케이션의 선택 신호를 입력 받을 수 있다. 만약, 사용자가 어플리케이션 F를 선택한 경우라면, 링크부 #3(155)은 어플리케이션 F를 바로 실행할 수 있다. 하지만, 사용자가 어플리케이션 H와 같이 다른 사용자 모듈에 포함된 어플리케이션을 선택한 경우라면, 링크부 #3(155)은 클라이언트 하이퍼바이저부로 어플리케이션 H의 실행을 요청할 수 있다. 이러한 경우, 클라이언트 하이퍼바이저부는 사용자 모듈(160)에 자원이 할당된 경우라면 바로 어플리케이션 H의 실행을 링크부 #4로 요청하지만, 만약 사용자 모듈(160)에 자원이 할당되지 않은 경우라면 가상머신 스위칭부(111)가 사용자 모듈(160)에 자원을 할당한 후에 어플리케이션 H의 실행을 링크부 #4로 요청한다.
한편, 링크부 #3(155)은 클라이언트 하이퍼바이저부(110)로부터 어플리케이션 F(153)와 어플리케이션 G(154) 중 어느 하나에 대한 실행 요청이 들어오면, 실행 요청된 어플리케이션을 실행시킬 수 있다.
제1 슬레이브 사용자 모듈(160)은 슬레이브 가상머신 #1(161), 슬레이브 운영체제 #1(162), 어플리케이션 H(163), 어플리케이션 I(164), 및 링크부 #4(165)를 포함할 수 있다.
제2 슬레이브 사용자 모듈(170)은 슬레이브 가상머신 #2(171), 슬레이브 운영체제 #2(172), 어플리케이션 J(173), 어플리케이션 K(174), 어플리케이션 L(175) 및 링크부 #5(176)를 포함할 수 있다.
본 실시예에서, 마스터 사용자 모듈(150) 및 제1 및 제2 슬레이브 사용자 모듈(160, 170)에 포함되어 있는 어플리케이션 F 내지 L(153 내지 155, 163 및 164, 173 내지 175)은 각 어플리케이션이 포함되는 사용자 모듈의 명칭이 다름에 따라 구별을 위한 것일 뿐, 이전 실시예에서의 어플리케이션 A 내지 E(123, 124, 133, 134, 135)와 동일한 어플리케이션일 수 있다.
또한, 링크부 #3 내지 #5(155, 165, 176)도 각각이 마스터 사용자 모듈(150) 및 제1 및 제2 슬레이브 사용자 모듈(160, 170)에 포함되어 있는 것임에 따라 이전 실시예에서의 사용자 모듈과 구별을 위한 것일 뿐, 실제의 동작은 서로 동일할 수 있다.
다만, 링크부 #3(155)은 마스터 사용자 모듈(150)에 포함되어 있는 것이기 때문에, 제1 및 제2 슬레이브 사용자 모듈(160, 170)로부터 각각의 어플리케이션에 변동사항이 발생할 경우에 이를 통지받을 수 있다. 즉, 링크부 #3(155)은 항상 제1 및 제2 슬레이브 사용자 모듈(160, 170) 내의 어플리케이션에 대하여 최신의 정보를 보유한 상태를 유지하고 있을 수 있다.
사용자로부터 링크부 #4를 통해서 특정 어플리케이션이 선택되는 경우를 예로 들어서 링크부의 동작을 설명하기로 한다. 도 3의 실시예와 마찬가지로, 사용자가 선택하는 어플리케이션은 링크부 #4와 같은 사용자 모듈에 포함된 경우와, 다른 사용자 모듈(예를 들면 사용자 모듈(170) 또는 (150))에 포함된 어플리케이션인 경우가 있으므로 이들 각각에 대하여 순차적으로 설명하기로 한다.
첫 번째 경우, 즉 사용자가 선택한 어플리케이션이 링크부 #4와 같은 사용자 모듈(160)에 포함된 경우는, 링크부 #4는 사용자가 선택한 어플리케이션을 바로 실행시킬 수 있다. 물론 이 경우 슬레이브 가상 머신 #1이 상기 사용자가 선택한 어플리케이션이 동작할 수 있을 정도로 충분한 자원을 할당받은 것을 전제로 하며, 만약 충분한 자원을 할당받지 못하였다면, 사용자 모듈(160)은 클라이언트 하이퍼바이저부로 충분한 자원을 할당하여 줄 것을 요청할 수 있다.
두 번째 경우, 즉, 사용자가 선택한 어플리케이션이 사용자 모듈(170)에 포함된 경우(예를 들면 어플리케이션 J를 선택한 경우)는, 링크부 #4(165)는 링크부 #3(155)로 상기 사용자가 선택한 어플리케이션 J(173)의 실행을 요청한다. 링크부 #3(155)는 링크부 #4(165)의 요청에 따라서 어플리케이션 J(173)의 실행을 위한 동작을 수행한다. 구체적으로, 링크부 #3(155)는, 클라이언트 하이퍼바이저부로 어플리케이션 J(173)의 실행을 요청할 수 있다. 클라이언트 하이퍼바이저부는 그러한 요청에 의해 링크부 #5(176)로 어플리케이션 J(173)의 실행을 요청할 수 있다. 이때, 클라이언트 하이퍼바이저부는 슬레이브 가상머신 #2에 자원이 할당되었는지 사전 확인한 후 자원이 할당되지 않은 경우에는 슬레이브 가상머신 #2에 자원을 할당한 후, 링크부 #5(176)로 어플리케이션 J(173)의 실행을 요청할 수 있다.
한편, 상기 두 번째 경우의 변형 예를 들면, 사용자가 선택한 어플리케이션이 사용자 모듈(170)에 포함된 경우(예를 들면 어플리케이션 J(173)를 선택한 경우)는, 링크부 #4(125)는 클라이언트 하이퍼바이저부로 어플리케이션 J(173)의 실행을 요청하며, 클라이언트 하이퍼바이저부는 슬레이브 가상머신 #2에 충분한 자원이 할당되었는지 확인한 후 링크부 #5(176)로 상기 사용자가 선택한 어플리케이션 J(173)의 실행을 요청한다. 만약, 슬레이브 가상머신 #2에 자원이 할당되지 않았다면 클라이언트 하이퍼바이저부는 슬레이브 가상머신 #2에 자원을 할당한 후에 링크부 #5(176)로 어플리케이션 J(173)의 실행을 요청한다.
이상 설명한 마스터 사용자 모듈(150)은 슬레이브 사용자 모듈에 대하여 마스터의 개념으로 동작하기는 하나, 이전 실시예에서의 일반적인 사용자 모듈에 해당하는 기능도 포함할 수 있다.
상술한 도 1 내지 도 4의 실시예에서, 각 구성요소는 하나의 기능 블록 안에 포함된 것으로 도시되었으나 이는 설명의 편의를 위한 것으로 반드시 하나의 장치에 구현되는 것을 의미하는 것이 아니다. 따라서, 이러한 구성에만 본원 발명이 한정되는 것이 아니며, 예를 들면, 이들 구성요소의 적어도 하나 이상은 별도의 기능 블록으로 구현되는 것도 가능하다. 여기서, 별도라고 함은 논리적으로 구분되거나, 위치적으로 구분되거나, 또는 서로 다른 소프트웨어나 하드웨어로 구분되는 것을 포함하는 의미이다.
도 5는 본 발명의 일 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도이다.
여기에서는 도 1에 도시한 바와 같이, 각 사용자 모듈에 각각의 링크 관리부가 포함되어 있는 구조의 사용자 단말장치(100)에서 멀티 가상머신을 전환하는 방법을 설명한다.
사용자의 선택에 의해 가상머신 #1(121)에 자원의 사용권한이 부여되었거나, 혹은 가상머신 #1(121)이 디폴트로 항상 동작하도록 설정된 경우에, 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 통해 가상머신 #1(121)에 자원의 사용권한을 부여한다. 이에 의해, 가상머신 #1(121)이 동작하면, 운영체제 #1(122)과 링크 관리부 #1(125)이 동작된다(S201). 운영체제는 가상머신에 자원이 사용권한이 부여되면 가상머신 상에서 동작되는 것으로, 본 실시예에서는 설명의 편의상 운영체제는 도시하지 않았다.
링크 관리부 #1(125)은 기보유하고 있는 어플리케이션 정보에 의해 어플리케이션 목록을 제공한다(S203). 이때, 링크 관리부 #1(125)은 사용자로부터 어플리케이션 목록 요청을 입력받은 상태일 수 있다. 또한, 링크 관리부 #1(125)에서 제공하는 어플리케이션 목록은 자신이 속한 사용자 모듈을 포함하여 클라이언트 하이퍼바이저부(110) 상에 설치된 모든 사용자 모듈 내의 어플리케이션에 대한 목록이다. 또한, 어플리케이션 목록에 표시된 복수의 어플리케이션 중 사용자가 적어도 하나를 선택할 수 있는 형태로 제공될 수 있다.
S203 단계에서 링크 관리부 #1(125)은 어플리케이션 목록을 제공한 후, 사용자로부터 타 가상머신 상의 어플리케이션 실행 요청을 입력받는다(S205). 이에 의해, 링크 관리부 #1(125)은 클라이언트 하이퍼바이저부(110)로 전환대상 가상머신으로의 전환을 요청한다(S207).
링크 관리부 #1(125)로부터 전환대상 가상머신으로의 전환을 요청받은 클라이언트 하이퍼바이저부(110)는 전환대상 가상머신의 동작 상태를 확인한다(S209). 여기서, 전환대상 가상머신의 동작 상태는 전환대상 가상머신에 기부여된 자원의 사용권한에 대한 여부를 확인하는 것일 수 있다.
클라이언트 하이퍼바이저부(110)는 전환대상 가상머신이 동작하고 있는 상태일 경우(S211-Y), 가상머신 스위칭부(111)를 제어하여 가상머신 #2(131)에 입출력 제어권을 부여한다(S213). 그 이유는 전환대상 가상머신이 동작하고 있는 상태라면 이미 자원의 사용권한이 부여되었으나, 입출력 제어권은 가지고 있지 않은 경우로 판단할 수 있기 때문이다.
클라이언트 하이퍼바이저부(110)는 가상머신 #2(131)를 통해 링크 관리부 #2(136)로 실행 요청된 어플리케이션의 실행을 지시한다(S215). 여기서, S213 및 S215 단계는 서로 순차적으로 수행되는 것으로 도시하였지만, 경우에 따라서는 두 단계가 동시에 수행될 수도 있다.
이에 의해, 링크 관리부 #2(136)는 해당 어플리케이션을 실행시킨다(S217). S217 단계에서 실행되는 어플리케이션은 어플리케이션 C 내지 E(133 내지 135) 중 적어도 하나일 수 있다.
S211 단계에서, 전환대상 가상머신이 동작 상태가 아닐 경우(S211-N), 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 제어하여 가상머신 #2(131)에 입출력 제어권을 포함한 자원의 사용권한을 부여한다(S219). 이에 의해, 제2 사용자 모듈(130) 즉, 가상머신 #2(131), 운영체제 #2(132), 및 링크 관리부 #2(136)가 동작된다.
클라이언트 하이퍼바이저부(110)는 가상머신 #2(131)를 통해 링크 관리부 #2(136)에 실행 요청된 어플리케이션의 실행을 지시하고(S221), 링크 관리부 #2(136)는 해당 어플리케이션을 실행시킨다(S223). S223 단계에서 실행되는 어플리케이션은 어플리케이션 C 내지 E(133 내지 135) 중 적어도 하나일 수 있다.
상술한 실시예에서는 사용자가 타 가상머신 상의 어플리케이션 실행 요청을 입력받는 것으로 설명하였으나, 링크 관리부 #1(125)가 속한 가상머신 상의 어플리케이션 실행을 요청받는 경우도 있을 것이다. 이러한 경우는 링크 관리부 #1(125)은, 사용자로부터 요청받은 어플리케이션을 바로 실행시킬 수 있다.
도 6은 본 발명의 다른 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도이다.
여기에서는 도 2에 도시한 바와 같이, 어플리케이션 관리부(112) 및 링크부가 별도로 존재하되, 어플리케이션 관리부(112)기 클라이언트 하이퍼바이저부(110) 내에 포함되어 있는 구성일 때의 멀티 가상머신 전환 방법을 설명한다.
사용자가 제1 사용자 모듈(120)의 동작을 요청한 것으로 가정한다. 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)에 의해 가상머신 #1(121)에 자원의 사용권한을 부여한다(S301). 이에 의해, 가상머신 #1(121), 운영체제 #1(122), 및 링크부 #1(125)이 동작된다(S303).
링크부 #1(125)은 사용자로부터 어플리케이션 목록 표시 요청을 입력받고(S305), 어플리케이션 관리부(112)로 어플리케이션 목록을 요청한다(S307). 이에 의해, 어플리케이션 관리부(112)는 기보유하고 있는 어플리케이션 정보에 의해 선택 가능한 형태로 어플리케이션 목록을 제공한다(S309).
어플리케이션 관리부(112)로부터 어플리케이션 목록을 제공받은 링크부 #1(125)은 어플리케이션 목록을 표시하고(S311), 사용자로부터 어플리케이션 목록을 통해 특정 어플리케이션의 실행 요청을 입력받는다(S313).
링크부 #1(125)은 사용자로부터 어플리케이션의 실행 요청을 입력받으면, 어플리케이션 관리부(112)로 실행 요청된 어플리케이션의 실행을 요청한다(S315).
링크부 #1(125)로부터 특정 어플리케이션에 대한 실행 요청을 받은 어플리케이션 관리부(112)는 클라이언트 하이퍼바이저부(110)로 기실행 요청된 어플리케이션을 포함하고 있는 전환대상 가상머신으로의 전환을 요청한다(S317).
어플리케이션 관리부(112)로부터 전환대상 가상머신으로의 전환을 요청받은 클라이언트 하이퍼바이저부(110)는 전환대상 가상머신의 동작 상태를 확인한다(S319).
클라이언트 하이퍼바이저부(110)는 전환대상 가상머신이 동작하고 있는 상태일 경우(S321-Y), 가상머신 스위칭부(111)를 제어하여 가상머신 #2(131)에 입출력 제어권을 부여한다(S323). 클라이언트 하이퍼바이저부(110)는 가상머신 #2(131)를 통해 링크부 #2(136)로 실행 요청된 어플리케이션의 실행을 지시한다(S325). 이에 의해, 링크부 #2(136)는 해당 어플리케이션을 실행시킨다(S327).
S321 단계에서, 전환대상 가상머신이 동작 상태가 아닐 경우(S321-N), 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 제어하여 가상머신 #2(131)에 입출력 제어권을 포함한 자원의 사용권한을 부여한다(S329). 클라이언트 하이퍼바이저부(110)는 가상머신 #2(131)를 통해 링크부 #2(136)에 실행 요청된 어플리케이션의 실행을 지시하고(S331), 링크부 #2(136)는 해당 어플리케이션을 실행시킨다(S333).
S307, 및 S315 단계에서 링크부 #1(125)의 요청이 클라이언트 하이퍼바이저부(110)를 거쳐 어플리케이션 관리부(112)로 전달되는 것은 어플리케이션 관리부(112)가 클라이언트 하이퍼바이저부(110) 내에 포함되어 있는 구성의 경우를 예시하였기 때문이다. 만약, 어플리케이션 관리부(112)가 도 3에 도시한 바와 같이 관리 모듈(140) 내에 포함되는 경우에는 S307, 및 S315 단계에서 링크부 #1(125)의 요청은 클라이언트 하이퍼바이저부(110), 관리 가상머신(141), 및 관리 운영체제(142)를 거쳐 어플리케이션 관리부(112)로 전달될 것이다.
사용자 단말장치(100)가 도 3과 같은 구성일 경우에도 상술한 절차에 의해 멀티 가상머신의 전환이 이루어질 수 있다. 다만, 사용자 단말장치(100)의 구성이 도 3과 같을 경우, 어플리케이션 관리부(112)와 제1 및 제2 사용자 모듈(120, 130) 간의 신호 전달에 클라이언트 하이퍼바이저부(110), 관리 가상머신(141), 및 관리 운영체제(142)가 더 개재될 것이다. 여기서, 클라이언트 하이퍼바이저부(110), 관리 가상머신(141), 및 관리 운영체제(142)가 개재된다는 것은 이들이 직접 신호의 전달에 참여한다는 의미가 아니라, 신호 전달의 통로 역할을 한다는 의미이다.
상술한 실시예에서, 어플리케이션 관리부(112)는 가상머신 #1이 어플리케이션 목록을 요청한 경우에 전송하는 것으로 설명하였으나 이는 예시적인 것으로서, 어플리케이션 관리부(112)가 자발적으로 주기적 및 비주기적으로 가상머신 #1에게 전송하도록 구성하는 것도 가능할 것이다.
또한 상술한 실시예에서, S323 단계는 가상머신 #2에 입출력 제어권을 부여하는 것을 설명하였으나 이는 예시적인 것으로서, 해당 어플리케이션을 실행하는데 필요한 모든 자원을 부여하는 것으로 이해하여야 할 것이다.
도 7은 본 발명의 또 다른 실시예에 따른 사용자 단말장치의 멀티 가상머신 전환 방법을 설명하기 위한 흐름도이다.
여기에서는 사용자 단말장치(100)가 도 4에 도시한 바와 같이, 마스터 사용자 모듈(150)과 복수의 슬레이브 사용자 모듈을 포함하는 구성일 경우의 멀티 가상머신 전환 방법을 설명한다.
사용자가 슬레이브 가상머신 #1(161)의 실행을 요청하였다고 가정한다. 클라이언트 하이퍼바이저부(110)는 기본적으로 마스터 가상머신(151)에 자원의 사용권한을 부여하고, 사용자가 요청한 슬레이브 가상머신 #1(161)에도 자원의 사용권한을 부여한다(S401). 예를 들면, 클라이언트 하이퍼바이저부(110)는 마스터 가상머신(151)은 백그라운드에서 동작하도록 입출력 제어권은 제외한 자원의 사용권한을 부여할 수 있고, 슬레이브 가상머신 #1(161)은 메인에서 동작하도록 입출력 제어권을 포함한 자원의 사용권한을 부여할 수 있다.
S401 단계에 의해, 슬레이브 가상머신 #1(161), 슬레이브 운영체제 #1(162) 및 링크부 #4(165)가 동작된다(S403). 도시하지는 않았으나, 마스터 가상머신(151), 마스터 운영체제(152), 및 링크부 #3(155)도 동작하고 있는 상태이다.
링크부 #4(165)는 사용자로부터 어플리케이션 목록 표시 요청을 입력받고(S405), 마스터 가상머신(151)은 기보유하고 있는 어플리케이션의 정보를 이용하여 어플리케이션 목록을 제공한다(S409).
링크부 #4(165)는 마스터 가상머신(151)으로부터 제공받은 어플리케이션 목록을 표시하고(S411), 어플리케이션 목록을 통해 특정 어플리케이션의 실행 요청을 입력받는다(S413). 이에 의해, 링크부 #4(165)는 마스터 가상머신(151)으로 사용자로부터 실행 요청된 특정 어플리케이션의 실행을 요청한다(S415).
링크부 #4(165)로부터 특정 어플리케이션에 대한 실행 요청을 받은 마스터 가상머신(151)은 클라이언트 하이퍼바이저부(110)로 기실행 요청된 어플리케이션을 포함하고 있는 전환대상 가상머신으로의 전환을 요청한다(S417).
마스터 가상머신(151)으로부터 전환대상 가상머신으로의 전환을 요청받은 클라이언트 하이퍼바이저부(110)는 전환대상 가상머신의 동작 상태를 확인한다(S419).
클라이언트 하이퍼바이저부(110)는 전환대상 가상머신이 동작하고 있는 상태일 경우(S421-Y), 가상머신 스위칭부(111)를 제어하여 슬레이브 가상머신 #2(171)에 입출력 제어권을 부여한다(S423). 클라이언트 하이퍼바이저부(110)는 슬레이브 가상머신 #2(171)를 통해 링크부 #5(176)로 실행 요청된 어플리케이션의 실행을 지시한다(S425). 이에 의해, 링크부 #5(176)는 해당 어플리케이션을 실행시킨다(S427).
S421 단계에서, 전환대상 가상머신이 동작 상태가 아닐 경우(S421-N), 클라이언트 하이퍼바이저부(110)는 가상머신 스위칭부(111)를 제어하여 슬레이브 가상머신 #2(171)에 입출력 제어권을 포함한 자원의 사용권한을 부여한다(S429). 클라이언트 하이퍼바이저부(110)는 슬레이브 가상머신 #2(171)를 통해 링크부 #5(176)에 실행 요청된 어플리케이션의 실행을 지시하고(S431), 링크부 #5(176)는 해당 어플리케이션을 실행시킨다(S433).
상술한 실시예에서, 링크부 #3은 링크부 #4가 어플리케이션 목록을 요청한 경우에 전송하는 것으로 설명하였으나 이는 예시적인 것으로서, 링크부 #3이 자발적으로 주기적 및 비주기적으로 가상머신 #4에게 전송하도록 구성하는 것도 가능할 것이다. 또한 상술한 실시예에서, S423 단계는 슬레이브 가상머신 #2에 입출력 제어권을 부여하는 것을 설명하였으나 이는 예시적인 것으로서, 해당 어플리케이션을 실행하는데 필요한 모든 자원을 부여하는 것으로 이해하여야 할 것이다.
상술한 바와 같이, 도 1 내지 도 4에 도시한 구성을 가지는 사용자 단말장치(100)는 도 5 내지 도 7에 도시한 바와 같이 여러 절차에 의해 멀티 가상머신 전환이 가능하다. 도 5 내지 도 7과 같이 절차상에서 차이가 있는 여러 방법이 제공되지만, 사용자 입장에서는 어플리케이션 목록에서 실행시키고자 하는 적어도 하나의 어플리케이션을 선택하는 단순한 동작에 의해, 가상머신의 전환 및 어플리케이션의 실행이 이루어지는 것이므로, 사용상의 편리성을 제공할 수 있다.
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 사용자 단말장치 110 : 클라이언트 하이퍼바이저부
111 : 가상머신 스위칭부 120 : 제1 사용자 모듈
121 : 가상머신 #1 122 : 운영체제 #1
123 : 어플리케이션 A 124 : 어플리케이션 B
125 : 링크 관리부 #1 130 : 제2 사용자 모듈
131 : 가상머신 #2 132 : 운영체제 #2
133 : 어플리케이션 C 134 : 어플리케이션 D
135 : 어플리케이션 E 136 : 링크 관리부 #2

Claims (32)

  1. 복수의 가상머신; 및
    상기 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 유지하고, 사용자로부터 요청이 있는 경우에 상기 어플리케이션 목록을 제공하는 전환 관리부; 를 포함하는 것을 특징으로 하는 사용자 단말장치.
  2. 제 1 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크 관리부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크 관리부를 포함하며,
    상기 제1 링크 관리부와 상기 제2 링크 관리부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치.
  3. 제 2 항에 있어서,
    상기 제1 링크 관리부와 상기 제2 링크 관리부는 서로 통신하여 각자의 어플리케이션 목록을 동기화시키는 것을 특징으로 하는 사용자 단말장치.
  4. 제 2 항에 있어서,
    상기 제1 링크 관리부는,
    상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우,
    상기 선택한 특정 어플리케이션이 상기 제1 가상머신 상에서 동작하는 어플리케이션이라면, 상기 사용자가 선택한 특정 어플리케이션을 실행시키는 것을 특징으로 하는 사용자 단말장치.
  5. 제 2 항에 있어서,
    상기 제1 링크 관리부는,
    상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우,
    상기 선택한 특정 어플리케이션이 상기 제2 가상머신 상에서 동작하는 어플리케이션이라면 상기 복수의 가상머신을 제어하는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  6. 제 5 항에 있어서,
    상기 클라이언트 하이퍼바이저부는, 상기 제2 링크관리부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하고, 상기 제2 링크관리부는 그러한 요청에 의해서 상기 사용자가 선택한 특정 어플리케이션을 실행시키는 것을 특징으로 하는 사용자 단말장치.
  7. 제 5 항에 있어서,
    상기 클라이언트 하이퍼바이저부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당하고, 상기 제2 링크관리부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하며,
    상기 제2 링크관리부는 그러한 요청에 의해서 상기 사용자가 선택한 특정 어플리케이션을 실행시키는 것을 특징으로 하는 사용자 단말장치.
  8. 제 1 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부와 어플리케이션 관리부를 포함하며,
    상기 어플리케이션 관리부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치.
  9. 제 8 항에 있어서,
    상기 어플리케이션 관리부는 상기 가상머신들을 제어하는 클라이언트 하이퍼바이저부에 설치되는 것을 특징으로 하는 사용자 단말장치.
  10. 제 8 항에 있어서,
    상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행하는 것을 특징으로 하는 사용자 단말장치.
  11. 제 8 항에 있어서,
    상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 어플리케이션 관리부에 요청하며,
    상기 어플리케이션 관리부는 상기 제1 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  12. 제 11 항에 있어서,
    상기 어플리케이션 관리부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하는 것을 사용자 단말장치.
  13. 제 1 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 관리 가상머신에 설치되는 어플리케이션부와, 상기 복수의 가상머신 중 제1 가상머신에 설치되는 제1 링크부와, 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부를 포함하며,
    상기 어플리케이션부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치.
  14. 제 13 항에 있어서,
    상기 관리 가상머신은 백그라운드에서 항상 동작하는 것을 특징으로 하는 사용자 단말장치.
  15. 제 13 항에 있어서,
    상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행하는 것을 특징으로 하는 사용자 단말장치.
  16. 제 13 항에 있어서,
    상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 클라이언트 하이퍼바이저부로 요청하며,
    상기 클라이언트 하이퍼바이저부는 상기 제2 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  17. 제 16 항에 있어서,
    상기 클라이언트 하이퍼바이저부는, 상기 제2 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하는 것을 사용자 단말장치.
  18. 제 13 항에 있어서,
    상기 제1 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 상기 어플리케이션 관리부로 요청하며,
    상기 어플리케이션 관리부는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  19. 제 1 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 마스터 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제1 슬레이브 가상머신에 설치되는 제2 링크부와, 상기 복수의 가상머신 중 제2 슬레이브 가상머신에 설치되는 제3 링크부를 포함하며,
    상기 제1 링크부는 상기 제2 링크부와 상기 제3 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제2 링크부와 상기 제3 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치.
  20. 제 19 항에 있어서,
    상기 제1 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치.
  21. 제 19 항에 있어서,
    상기 마스터 가상머신은 백그라운드에서 항상 동작하는 것을 특징으로 하는 사용자 단말장치.
  22. 제 19 항에 있어서,
    상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제1 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행시키는 것을 특징으로 하는 사용자 단말장치.
  23. 제 19 항에 있어서,
    상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 클라이언트 하이퍼바이저부로 요청하며,
    상기 클라이언트 하이퍼바이저부는 상기 제3 링크부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  24. 제 23 항에 있어서,
    상기 클라이언트 하이퍼바이저부는, 상기 제2 슬레이브 가상머신이 동작할 수 있도록 자원이 할당되어 있는지 확인하고, 만약 제2 슬레이브 가상머신에 자원이 할당되어 있지 않은 경우에는 상기 제2 슬레이브 가상머신에 자원을 할당할 것을 가상머신 스위칭부로 요청하며, 그리고 상기 제2 링크부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하는 것을 사용자 단말장치.
  25. 제 24 항에 있어서,
    상기 제2 링크부는 상기 사용자가 선택한 어플리케이션이 상기 제2 슬레이브 가상머신상에서 동작하는 경우라면, 상기 사용자가 선택한 어플리케이션을 실행할 것을 상기 제1 링크부로 요청하며,
    상기 제1 링크부는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 어플리케이션을 실행할 것을 요청하는 것을 특징으로 하는 사용자 단말장치.
  26. 복수의 가상머신 상에 각각 설치된 적어도 하나의 어플리케이션 목록을 유지하는 단계; 및
    사용자로부터 요청이 있는 경우에 상기 어플리케이션 목록을 전환 관리부가 제공하는 단계;를 포함하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  27. 제 26 항에 있어서,
    상기 사용자에게 제공한 어플리케이션 목록으로부터, 상기 사용자로부터 실행할 어플리케이션을 선택받는 단계;를 더 포함하는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  28. 제 26 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크 관리부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크 관리부를 포함하며,
    상기 제1 링크 관리부와 상기 제2 링크 관리부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  29. 제 28 항에 있어서,
    상기 제1 링크 관리부는,
    상기 사용자로부터 특정 어플리케이션을 실행하라고 선택받은 경우,
    상기 선택한 특정 어플리케이션이 상기 제1 가상머신 상에서 동작하는 어플리케이션이라면, 상기 사용자가 선택한 특정 어플리케이션을 실행시키고,
    상기 선택한 특정 어플리케이션이 상기 제2 가상머신 상에서 동작하는 어플리케이션이라면 상기 복수의 가상머신을 제어하는 클라이언트 하이퍼바이저부로 상기 사용자가 선택한 특정 어플리케이션을 실행시킬 것을 요청하는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  30. 제 26 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 제 1 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부와 어플리케이션 관리부를 포함하며,
    상기 어플리케이션 관리부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  31. 제 26 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 관리 가상머신에 설치되는 어플리케이션부와, 상기 복수의 가상머신 중 제1 가상머신에 설치되는 제1 링크부와, 상기 복수의 가상머신 중 제2 가상머신에 설치되는 제2 링크부를 포함하며,
    상기 어플리케이션부는 상기 제1 링크부와 상기 제2 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제1 링크부와 상기 제2 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.
  32. 제 26 항에 있어서,
    상기 전환 관리부는 상기 복수의 가상머신 중 마스터 가상머신에 설치되는 제1 링크부와 상기 복수의 가상머신 중 제1 슬레이브 가상머신에 설치되는 제2 링크부와, 상기 복수의 가상머신 중 제2 슬레이브 가상머신에 설치되는 제3 링크부를 포함하며,
    상기 제1 링크부는 상기 제2 링크부와 상기 제3 링크부 각각에 대하여 상기 어플리케이션 목록을 제공하며,
    상기 제2 링크부와 상기 제3 링크부는 사용자에게 상기 어플리케이션 목록을 각각 제공하고, 상기 사용자로부터 실행할 어플리케이션을 선택받는 것을 특징으로 하는 사용자 단말장치의 멀티 가상머신 전환 방법.



KR1020100075236A 2010-08-04 2010-08-04 사용자 단말장치 및 멀티 가상머신 전환 방법 KR101122962B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100075236A KR101122962B1 (ko) 2010-08-04 2010-08-04 사용자 단말장치 및 멀티 가상머신 전환 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100075236A KR101122962B1 (ko) 2010-08-04 2010-08-04 사용자 단말장치 및 멀티 가상머신 전환 방법

Publications (2)

Publication Number Publication Date
KR20120013074A true KR20120013074A (ko) 2012-02-14
KR101122962B1 KR101122962B1 (ko) 2012-03-16

Family

ID=45836753

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100075236A KR101122962B1 (ko) 2010-08-04 2010-08-04 사용자 단말장치 및 멀티 가상머신 전환 방법

Country Status (1)

Country Link
KR (1) KR101122962B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140090707A (ko) * 2012-12-20 2014-07-18 에스케이플래닛 주식회사 동기화 서비스 시스템, 그 시스템에서의 앱 데이터 동기화 서비스를 위한 장치 및 방법
WO2014142553A1 (ko) * 2013-03-12 2014-09-18 삼성전자 주식회사 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
WO2015183919A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US9639691B2 (en) 2014-06-26 2017-05-02 Vmware, Inc. Dynamic database and API-accessible credentials data store
US9652211B2 (en) 2014-06-26 2017-05-16 Vmware, Inc. Policy management of deployment plans
US9712604B2 (en) 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101535792B1 (ko) * 2013-07-18 2015-07-10 포항공과대학교 산학협력단 운영체제 구성 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565062B2 (en) * 2003-11-10 2009-07-21 Panasonic Corporation Recording medium, reproduction device, program, reproduction method, and system integrated circuit

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140090707A (ko) * 2012-12-20 2014-07-18 에스케이플래닛 주식회사 동기화 서비스 시스템, 그 시스템에서의 앱 데이터 동기화 서비스를 위한 장치 및 방법
WO2014142553A1 (ko) * 2013-03-12 2014-09-18 삼성전자 주식회사 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
US9904639B2 (en) 2013-03-12 2018-02-27 Samsung Electronics Co., Ltd. Interconnection fabric switching apparatus capable of dynamically allocating resources according to workload and method therefor
WO2015183919A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US9712604B2 (en) 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
US9639691B2 (en) 2014-06-26 2017-05-02 Vmware, Inc. Dynamic database and API-accessible credentials data store
US9652211B2 (en) 2014-06-26 2017-05-16 Vmware, Inc. Policy management of deployment plans
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms

Also Published As

Publication number Publication date
KR101122962B1 (ko) 2012-03-16

Similar Documents

Publication Publication Date Title
KR101122962B1 (ko) 사용자 단말장치 및 멀티 가상머신 전환 방법
US10860362B2 (en) Methods and apparatus to deploy a hybrid workload domain
KR101952795B1 (ko) 자원 프로세싱 방법, 운영체제, 및 장치
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
KR101702729B1 (ko) 다중 환경 운영 시스템에서 환경을 전환하는 시스템 및 방법
US10263911B2 (en) System and method for resource management
KR101651202B1 (ko) 가상화 장치 및 가상화 장치의 동작 방법
US8924959B2 (en) Switching hardware devices in virtual machine systems using resource converting relationships
EP2605138B1 (en) Virtual computer system and control method of live migration of a virtual computer
KR101744689B1 (ko) 가상화 기능을 이용한 전투관리체계 및 그 운용방법
EP3358806A1 (en) Method, device and server for service migration during software upgrade under nfv architecture
CN107491354B (zh) 一种基于共享内存的虚拟机间通信方法及装置
KR20130088512A (ko) 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
JP6564838B2 (ja) インダストリアル・インターネットオペレーティングシステムに基づくマルチオペレーティングシステム運行方法および装置
CN101788845B (zh) 用于以降低功耗状态来执行计算机任务的方法和系统
US20110004687A1 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
JP2011048819A (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
JP2016541072A5 (ko)
KR20120097136A (ko) 가상화 환경에서의 메모리 풀 관리
CN101493781A (zh) 一种虚拟机系统及其启动方法
US20160328348A1 (en) Computer and computer i/o control method
CN103744716A (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
KR20110046719A (ko) 복수 코어 장치 및 그의 로드 조정 방법
KR101352699B1 (ko) 병렬 처리 기반의 가상 클러스터 컴퓨팅 시스템의 프로비저닝 방법 및 장치
WO2014181970A1 (ko) 휴대 단말의 어플리케이션 데이터 관리 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200121

Year of fee payment: 9