KR20200086212A - 가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법 - Google Patents

가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법 Download PDF

Info

Publication number
KR20200086212A
KR20200086212A KR1020190149416A KR20190149416A KR20200086212A KR 20200086212 A KR20200086212 A KR 20200086212A KR 1020190149416 A KR1020190149416 A KR 1020190149416A KR 20190149416 A KR20190149416 A KR 20190149416A KR 20200086212 A KR20200086212 A KR 20200086212A
Authority
KR
South Korea
Prior art keywords
virtual machine
virtual
command
data
control plane
Prior art date
Application number
KR1020190149416A
Other languages
English (en)
Other versions
KR102289307B1 (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 KR20200086212A publication Critical patent/KR20200086212A/ko
Application granted granted Critical
Publication of KR102289307B1 publication Critical patent/KR102289307B1/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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/54Interprogram 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/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/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
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 가상 머신, 전자 장치, 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법을 제공한다. 가상 머신 아키텍처에 적합한 가상 머신을 위한 통신 방법은, 공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 단계; 공유 구성 데이터베이스에서, 제2 가상 머신에 의해 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 단계; 및 명령어 데이터를 실행하고, 가상 제어 평면을 통해 제2 가상 머신에 의해 제1 가상 머신으로 결과 데이터를 전송하여, 가상 제어 평면을 통해 제1 가상 머신과 제2 가상 머신 사이에서 데이터를 교환하는 단계를 포함한다.

Description

가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법{COMMUNICATION METHOD FOR VIRTUAL MACHINES, ELECTRONIC DEVICE, AND NON-TRANSITORY COMPUTER READABLE STORAGE MEDIUM}
본 발명은 가상 머신 및 전자 장치를 위한 방법에 관한 것이다. 보다 구체적으로, 본 발명은 가상 머신 및 전자 장치를 위한 통신 방법에 관한 것이다.
홈 게이트웨이(HGW: home gateway) 및 기본 네트워크 서비스 유닛(basic network service unit)(오버더톱(OTT: over-the-top))을 갖는 통합 전자 장치에서, 전자 장치가 켜질 때, 전자 장치 상에 구성된 복수의 가상 머신이 켜질 것이다. 그러나, 가상 시스템 간에 동기화 메커니즘(synchronization mechanism)이 없고, 가상 시스템을 효율적으로 관리할 수 있는 방법이 없다. 또한, 공지된 방식은 OTT의 인터넷 프로토콜 주소(internet protocol addresses)를 관리하기 위한 효율적인 방법을 제공할 수 없어서, 전자 장치와 OTT 사이의 연결을 확립(establishing)하기가 더 어렵다.
본 발명의 일부 측면들은 가상 머신 아키텍처(virtual machine architecture)에 적합한 가상 머신(virtual machines)을 위한 통신 방법을 제공하는 것이고, 상기 방법은, 공유 링크(shared link)를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어(interrupt instruction)를 전송하는 단계; 공유 구성 데이터베이스(shared configuration database)에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터(instruction data)를 판독하는 단계; 및 상기 명령어 데이터를 실행하고, 가상 제어 평면(virtual control plane)을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터(result data)를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하도록 하는 단계를 포함한다.
본 발명의 일부 측면들은 전자 장치(electronic device)를 제공하는 것이고, 상기 전자 장치는, 복수의 프로그램 명령어(program instructions)를 저장하도록 구성되는 저장 매체(storage media); 및 상기 저장 매체에 연결된 프로세서(processor)를 포함하고, 상기 프로세서는, 가상 머신 아키텍처(virtual machine architecture)에서 제1 가상 머신 및 제2 가상 머신의 동작을 수행하기 위해 상기 프로그램 명령어를 실행하도록 구성되고, 상기 프로세서에 의해 수행되는 상기 동작은, 공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 동작; 공유 구성 데이터베이스에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 동작; 및 상기 명령어 데이터를 실행하고, 가상 제어 평면을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하도록 하는 동작을 포함한다.
본 발명의 일부 측면들은 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 포함하는 비 일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)를 제공하는 것이고, 상기 명령어가 프로세서에 로딩(loaded)될 때, 상기 프로세서는, 가상 머신 아키텍처를 동작시키고, 공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 단계; 공유 구성 데이터베이스에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 단계; 및 상기 명령어 데이터를 실행하고, 가상 제어 평면을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하는 단계를 수행하기 위해 상기 명령어를 실행한다.
본 발명은 다음과 같이 첨부 도면을 참조하여 이하의 실시예의 상세한 설명을 읽음으로써 보다 완전하게 이해될 수 있다.
도 1은 본 발명의 일부 실시예에 따른 가상 머신을 동작시키는 전자 장치를 도시한 개략도이다.
도 2는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시 한 흐름도이다.
도 3은 본 발명의 일부 실시예에 따른 가상 머신에 의해 원격 스크립트를 호출하는 절차를 도시한 흐름도이다.
도 4는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시한 흐름도이다.
도 5는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시한 흐름도이다.
이제 본 발명의 본 실시예를 참조할 것이며, 그 예는 첨부 도면에 도시되어 있다. 가능한 한, 동일한 참조 번호는 도면 및 설명에서 동일하거나 유사한 부분을 지칭하기 위해 사용된다.
도 1을 참조한다. 도 1은 본 발명의 일부 실시예에 따라 가상 머신을 동작시키는 전자 장치(electronic device)(100)를 도시하는 개략도이다. 도 1에 도시된 바와 같이, 전자 장치(100)는 하드웨어(hardware)(110)를 포함한다. 하드웨어(110)는 프로세서(processor)(111), 저장 매체(storage media)(113) 및 입력/출력 인터페이스(input/output interface)(115)를 포함한다. 일 실시예에서, 가상 머신 아키텍처는 전자 장치(100) 상에 배치되고, 예를 들어, 가상 머신 아키텍처는 Xen 아키텍처(Xen architecture)이다. 따라서, 전자 장치(100)는 가상 머신(130) 및 가상 머신(140)을 배치할 수 있다.
가상 머신(130)은 물리적 네트워크 인터페이스(physical network interface) eth0 및 물리적 네트워크 인터페이스 eth1를 포함한다. 물리적 네트워크 인터페이스 eth0 및 물리적 네트워크 인터페이스 eth1는 전자 장치(100)에서 실제 배치된 물리적 네트워크 인터페이스일 수 있다. 가상 머신(130)은 가상 네트워크 인터페이스(virtual network interface) vif1_0 및 가상 네트워크 인터페이스 vif1_1를 포함한다. 가상 머신(140)은 가상 네트워크 인터페이스 vif2_0 및 가상 네트워크 인터페이스 vif2_1를 포함한다.
가상 데이터 평면(virtual data plane)(151)은 가상 네트워크 인터페이스 vif1_0와 가상 네트워크 인터페이스 vif2_0 사이에 생성된다. 일 실시예에서, 가상 머신(130)은 물리적 네트워크 인터페이스 eth0 및/또는 물리적 네트워크 인터페이스 eth1를 통해 스트림 데이터(stream data)를 수신하고, 스트림 데이터가 가상 데이터 평면(151)을 통해 가상 머신(140)으로 전송되어, 가상 머신(140)은 스트림 데이터를 재생(plays)할 수 있다.
가상 제어 평면(153)은 가상 네트워크 인터페이스 vif1_1와 가상 네트워크 인터페이스 vif2_1 사이에 생성된다. 일 실시예에서, 가상 네트워크 인터페이스 vif1_1 및 가상 네트워크 인터페이스 vif2_1는 상이하고 고정된 인터넷 프로토콜 주소(IP 주소) 및 미디어 액세스 제어 주소(MAC 주소)로 구성되며, 가상 제어 평면(153)은 스트림 데이터(예를 들어, 멀티미디어 스트림 데이터)를 제외한 제어 데이터를 전송하기 위해 제공(dedicated)된다. 가상 머신 아키텍처에서의 가상 머신의 수는 제한되지 않으며, 각 가상 머신에서 가상 네트워크 인터페이스의 수 또한 제한되지 않는다. 또한, 각각의 가상 머신은 가상 제어 평면을 확립하기 위해 적어도 하나의 가상 네트워크 인터페이스를 가질 수 있다. 가상 제어 평면과 연관된 가상 네트워크 인터페이스의 설정은 사용자에 의해 수정될 수 없다. 사용자가 가상 네트워크 인터페이스의 상태를 확인하는 것이 허용되지 않는다. 일 실시예에서, 가상 제어 평면의 가상 네트워크 인터페이스는 가상 머신 아키텍처의 운영 체제(가상 머신 운영 체제), 예를 들어 인터넷 프로토콜 주소, 미디어 액세스 제어 주소 등에 의해 구성된다.
도 1에 도시된 바와 같이, 하이퍼바이저(hypervisor)(120)는 전자 장치(110)의 가상 머신에 대한 동작을 관리하도록 구성된다. 하이퍼바이저(120)는 공유 구성 데이터베이스(121)(예를 들어, XenStore)를 포함한다. 공유 구성 데이터베이스(121)는 식별자(identifiers) 및/또는 복수의 커맨드(commands)를 저장하도록 구성된다(각 커맨드는 예를 들어, 32-바이트 스트링(32-byte string)이다).
프로세서(111)는 전자 장치(100)에서 가상 머신(130) 및 가상 머신(140)을 개시하는 것에 응답하여 가상 머신(130) 및 가상 머신(140)의 식별자를 각각 무작위로 생성하고, 프로세서(111)는 공유 구성 데이터베이스(121)에 식별자를 저장한다. 일 실시예에서, 가상 머신(130)에 의해 가상 제어 평면(152)을 통해 전송된 패킷(packet)은 식별자를 포함한다. 패킷의 알 수 없는 식별자(unknown identifier)가 가상 머신(140)에 인식될 수 없기 때문에, 가상 머신(140)은 공유 구성 데이터베이스(121)에서 알 수 없는 식별자를 검색한다. 공유 구성 데이터베이스(121)가 알 수 없는 식별자에 대응하는 식별자를 포함하는 경우, 가상 머신(130)을 검증하는 절차가 완료된다.
가상 머신(130)이 인터럽트 명령어를 전송하기 전에, 인터럽트 명령어에 대응하는 커맨드 스트링(command strings)은 공유 구성 데이터베이스(121)에 기록될 수 있다. 가상 머신(130)은 공유 링크(123)(예를 들어, XenBus)를 통해 인터럽트 명령어를 가상 머신(140)에 전송하여, 공유 구성 데이터베이스(121)에 액세스(access)하도록 프롬프트(prompt)하고, 그 반대도 마찬가지이다. 일 실시예에서, 공유 구성 데이터베이스(121)는 각각 고정된 저장 위치 및 공간(예를 들어, 32-바이트)을 갖는 커맨드 스트링을 저장하므로, 가상 머신(130) 및 가상 머신(140)은 인터럽트 명령어를 수신하는 것에 응답하여 명령어 데이터를 직접 판독할 수 있다.
도 2를 참조한다. 도 2는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시한 흐름도이다. 도 1 및 도 2에 도시된 바와 같이, 단계(S210)에서, 가상 머신(130)은 공유 링크(123)를 통해 인터럽트 명령어를 가상 머신(140)으로 전송한다. 일 실시예에서, 가상 머신(140)에 의해 확인된 임의의 피드백 또는 결과는 가상 머신(130)이 인터럽트 명령어를 전송하는 것에 응답하여 가상 머신(130)에 필수적인 것은 아니며, 가상 머신(130)은 다른 동작을 계속할 수 있다. 단계(S220)에서, 가상 머신(140)은 공유 구성 데이터베이스(121)에서 인터럽트 명령어에 대응하는 커맨드 스트링을 판독한다. 단계(S230)에서, 가상 머신(140)은 명령어 데이터를 실행하여 결과 데이터를 생성한다. 일 실시예에서, 가상 머신(140)은 스크립트를 저장하고, 스크립트는 결과 데이터를 재전송하도록 지시하는 명령어를 포함한다. 단계(S240)에서, 가상 머신(140)은 스크립트의 명령어에 따라 가상 머신(130)으로 가상 제어 평면(153)을 통해 결과 데이터를 전송한다.
도 3을 참조한다. 도 3은 본 발명의 일부 실시예에 따른 가상 머신에 의해 원격 스크립트를 호출하는 절차를 도시한 흐름도이다. 가상 머신(130) 및 가상 머신(140)은 저장된 스크립트에 따라 자신의 작업을 실행한다. 도 3에 도시된 바와 같이, 가상 머신(130)은 호출 원격 스크립트(call remote script)(310) 및 스크립트(script)(320)를 저장한다. 스크립트(320)는 결과-파싱 커맨드(result-parsing command)(321) 및 함수 커맨드(function command)(323)를 포함한다. 가상 머신(140)은 스크립트(410)를 저장한다. 스크립트(410)는 커맨드(command)(411) 및 피드백 커맨드(feedback command)(413)을 포함한다. 일 실시예에서, 가상 머신(130)은 가상 머신(130)이 (인터넷을 재연결하는 이벤트와 같은) 트리거 이벤트를 수신한 후, 호출 원격 스크립트(310), 예를 들어 가상 머신(140)의 인터넷 상태를 재구성하는 커맨드(일 실시예에서, 동적 호스트 구성 프로토콜(dynamic host configuration protocol)은 인터넷 프로토콜 주소를 재분배한다)를 실행한다. 그 다음, (도 2의 단계(S210)과 같이) 인터럽트 명령어는 공유 링크를 통해 가상 머신(140)으로 전송된다. 가상 머신(140)은 (도 2의 단계(S220)와 같이) 명령어 데이터에 따라 스크립트(410)를 실행한다.
일 실시예에서, 스크립트(410)의 마지막 라인은 피드백 커맨드(413)를 포함한다. 가상 머신(140)이 피드백 커맨드(413)를 실행할 때, 가상 머신(140)은 가상 제어 평면을 통해 가상 머신(130)으로 결과 데이터를 전송하고, 가상 머신(130)이 인터럽트 명령어에 기초하여 스크립트(320)를 실행하게 한다. 가상 머신(130)은 결과 데이터가 정상인지 아닌지를 결정하기 위해, 스크립트(320)의 결과-파싱 커맨드(321)을 실행한다. 일 실시예에서, 가상 머신(130)이 가상 머신(140)의 네트워크 상태가 비정상이라고 결정하면(예를 들어, 도 1에서 가상 데이터 평면(151)이 연결되지 않거나, 또는 가상 네트워크 인터페이스 vif2_0에 임의의 IP 주소가 할당되지 않음), 가상 머신(130)은 함수 커맨드(323)를 실행하여 가상 머신(130)과 가상 머신(140) 사이의 인터넷 연결을 복구한다.
따라서, 가상 머신 간의 동기화 통신(synchronizing communication)은 데이터를 요청하는 송신가 수신기의 피드백을 기다리는 시간을 소비할 필요가 없고, 대기 시간이 제거되고 공유 링크(123)의 자원 사용이 보다 효율적이라는 점이 제공된다.
다른 실시예에서, 도 3에서, 가상 머신(130)(호출자(caller))과 가상 머신(140)(피 호출자(callee))은 서로 교환될 수 있으며, 가상 머신(130) 및 가상 머신(140)과 같은 호출자-피 호출자 관계에 한정되지 않음에 유의해야 한다.
도 4를 참조한다. 도 4는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시한 흐름도이다. 도 4에 도시된 바와 같이, 단계(S410)에서, 가상 제어 평면(153)에 의해, 프로토콜-전송 링크(protocol-transmission link)는 가상 머신(130)과 가상 머신(140) 사이에 확립된다. 프로토콜-전송 링크는 예를 들어 TCP/UDP 연결이다. 단계(S420)에서, 가상 머신(140)의 사용자 인터페이스는 설정 커맨드(setting command)와 같은 명령어 데이터를 가상 머신(130)으로 생성한다. 단계(S430)에서, 설정 커맨드는 가상 제어 평면을 통해 가상 머신(130)으로 전송된다. 단계(S440)에서, 가상 머신(130)은 설정 커맨드에 따라 스크립트의 대응되는 커맨드를 호출하여 관련 구성을 종료한다.
도 5를 참조한다. 도 5는 본 발명의 일부 실시예에 따른 가상 머신을 위한 통신 방법을 도시한 흐름도이다. 도 5에 도시된 바와 같이, 단계(S510)에서, 가상 제어 평면(153)에 의해, 프로토콜-전송 링크는 가상 머신(130)과 가상 머신(140) 사이에 확립된다. 단계(S520)에서, 가상 머신(140)의 사용자 인터페이스는 예를 들어 네트워크 상태를 요구하기 위한 명령어와 같은 명령어 데이터를 생성한다. 또한, 가상 머신(140)에 저장된 스크립트의 호출 원격 스크립트가 실행된다(이전에 언급된 바와 같이 도 3의 가상 머신(130)에 의해 실행되는 호출 원격 절차를 참조).
단계(S530)에서, 호출 원격 스크립트의 호출 커맨드(calling command)는 가상 머신(130)으로 전송된다. 단계(S540)에서, 가상 머신(130)은 호출 커맨드에 따라 가상 머신(130)에 저장된 일부 지시된 스크립트에 액세스한다. 일 실시예에서, 가상 머신(130)은 네트워크 상태 데이터를 수집하기 위해 사용된 스크립트에 액세스하고, 네트워크 관련 상태 데이터(network-related status data) 및/또는 통계 데이터(statistical data)에 관한 멀티미디어 데이터(multimedia data)가 탐색된다. 단계(S550)에서, 멀티미디어 데이터는 가상 제어 평면에 의해 전송된다. 멀티미디어 데이터는 네트워크 상태 데이터, 통계 데이터, 통계 그래프 등으로 제한되지 않을 수 있다. 단계(S560)에서, 가상 머신(140)은 멀티미디어 데이터를 저장한다. 단계(S570)에서, 가상 머신(140)의 디스플레이어(displayer)는 멀티미디어 데이터를 보여주거나 표현한다.
가상 제어 평면의 관련 구성이 사용자에 의해 직접 변경되는 것을 포기(abandoned)했기 때문에, 제어 데이터가 전송될 수 없는 네트워크 인터페이스는 사용자에 의해 셧다운(shut down)되지 않을 것이다.
일 실시예에서, 전술한 통신 방법은 비 일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)에 저장된 컴퓨터 프로그램에 의해 구현될 수 있고, 컴퓨터 또는 전자 장치는 가상 머신에 대한 통신 방법을 실행하기 위해 저장 매체에 액세스 할 수 있다.
일 실시예에서, 도 1의 전자 장치(100)는 멀티미디어 셋톱 박스(multimedia set-top-box) 일 수 있지만 이에 제한되지는 않는다. 가상 머신(130)은 네트워크 통신 태스크(network communication tasks)(예를 들어, 홈 게이트웨이(HGW))를 처리하도록 구성되고, 가상 머신(140)은 멀티미디어 스트림 태스크(multimedia stream tasks)(예를 들어, 기본 네트워크 서비스 유닛(오버더톱(OTT, over-the-top))를 처리하도록 구성된다. 사용자가 영화 또는 텔레비전 프로그램을 시청하지 않는 경우, 사용자는 가상 머신(140)을 선택적으로 끌 수 있으므로, 전자 장치(100)는 가상 머신(140)의 전력을 절약할 수 있다. 한편, 가상 머신(130)은 꺼져 있지 않기 때문에, 사용자는 여전히 네트워크 통신의 기능, 예를 들어 전자 장치(100)를 통해 인터넷 또는 인트라넷으로의 통신 링크를 동작시킬 수 있다.
상술한 바와 같이, 본 발명의 가상 머신 및 전자 장치(100)의 통신 방법은, 가상 머신 간에 작용하는 기능 또는 동작이 수정 또는 확장되어야 하는 경우, 가상 머신 아키텍처의 하이퍼바이저 또는 코어 프로그램을 변경할 필요가 없으며, 가상 머신의 스크립트를 편집하여 가상 머신 간에 교환되는 데이터를 제공될 수 있다. 따라서, 가상 머신 간에 데이터를 교환하기 위한 동기화 메커니즘(synchronization mechanism)은 다른 새로운 인터럽트 명령어를 생성하지 않고도 구현할 수 있다.
본 발명이 특정 실시예를 참조하여 상당히 상세하게 설명되었지만, 다른 실시예가 가능하다. 그러므로, 첨부된 청구 범위의 사상 및 범위는 본원에 포함된 실시예의 설명으로 제한되어서는 안된다.
본 발명의 범위 또는 사상을 벗어나지 않고 본 발명의 구조에 대해 다양한 수정 및 변형이 이루어질 수 있음이 당업자에게 명백할 것이다. 전술한 내용을 고려하여, 본 발명은 본 발명의 수정 및 변형이 다음의 청구 범위의 범주 내에 속하는 경우를 포함하는 것으로 의도된다.

Claims (10)

  1. 가상 머신 아키텍처에 적합한 가상 머신을 위한 통신 방법에 있어서,
    공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 단계;
    공유 구성 데이터베이스에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 단계; 및
    상기 명령어 데이터를 실행하고, 가상 제어 평면을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하도록 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 가상 머신의 제1 가상 인터페이스와 상기 제2 가상 머신의 제1 가상 인터페이스 사이의 상기 가상 제어 평면을 통해 상기 결과 데이터를 전송하는 단계; 및
    상기 제1 가상 머신의 제2 가상 인터페이스와 상기 제2 가상 머신의 제2 가상 인터페이스 사이의 가상 데이터 평면을 통해, 상기 제2 가상 머신으로 스트림 데이터를 전송하여, 상기 제2 가상 머신과 연결된 디스플레이 상에서 상기 스트림 데이터를 재생하도록 하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제1 가상 머신을 초기화 할 때 상기 제1 가상 머신의 식별자를 생성하고, 상기 식별자를 상기 공유 구성 데이터베이스에 저장하는 단계;
    상기 제2 가상 머신에 의해 알 수 없는 식별자를 포함하는 패킷을 수신하는 것에 응답하여 상기 알 수 없는 식별자를 검증하기 위해 상기 공유 구성 데이터베이스에서 상기 알 수 없는 식별자를 검색하는 단계; 및
    상기 제2 가상 머신에 의해, 상기 식별자와 일치하는 상기 알 수 없는 식별자에 응답하여 상기 제1 가상 머신에 대한 검증 절차를 종료하는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 제1 가상 머신에 의해, 상기 가상 제어 평면을 통해 상기 인터럽트 명령어를 전송하는 것에 응답하여 상기 제2 가상 머신의 응답을 기다리는 것을 중지하는 단계
    를 더 포함하고,
    상기 제2 가상 머신에 의해 상기 명령어 데이터를 실행하는 단계는,
    상기 제2 가상 머신에 의해, 상기 명령어 데이터의 대응하는 스크립트를 호출하고, 상기 결과 데이터를 생성하기 위해 상기 대응하는 스크립트를 실행하는 단계; 및
    상기 가상 제어 평면을 통해, 상기 제1 가상 머신으로 상기 결과 데이터를 전송하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 제2 가상 머신에 의해 상기 명령어 데이터를 실행하는 단계는,
    상기 제2 가상 머신의 사용자 인터페이스에 의해, 상기 명령어 데이터의 설정 커맨드를 생성하는 단계;
    상기 가상 제어 평면을 통해, 상기 제1 가상 머신으로 상기 설정 커맨드를 전송하는 단계;
    상기 제1 가상 머신에 의해, 상기 설정 커맨드에 따라 상기 제1 가상 머신의 기능 설정을 종료하는 단계;
    상기 제2 가상 머신에 의해 판독되는 상기 명령어 데이터에 응답하여, 상기 제1 가상 머신으로 호출 원격 스크립트를 포함하는 상기 호출 원격 스크립트의 호출 커맨드를 전송하는 단계;
    상기 제1 가상 머신에 의해, 상기 호출 커맨드에 따라 대응하는 스크립트를 실행하는 단계;
    상기 제1 가상 머신에 의해, 멀티미디어 데이터를 생성하기 위해 상기 대응하는 스크립트의 커맨드를 실행하는 단계; 및
    상기 가상 제어 평면을 통해, 상기 대응하는 스크립트의 피드백 커맨드에 따라 상기 제2 가상 머신으로 상기 멀티미디어 데이터를 전송하여, 상기 제2 가상 머신의 디스플레이 상에 상기 멀티미디어 데이터를 디스플레이하는 단계
    를 더 포함하는 방법.
  6. 전자 장치에 있어서,
    복수의 프로그램 명령어를 저장하도록 구성되는 저장 매체; 및
    상기 저장 매체에 연결된 프로세서
    를 포함하고,
    상기 프로세서는,
    가상 머신 아키텍처에서 제1 가상 머신 및 제2 가상 머신의 동작을 수행하기 위해 상기 프로그램 명령어를 실행하도록 구성되고,
    상기 프로세서에 의해 수행되는 상기 동작은,
    공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 동작;
    공유 구성 데이터베이스에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 동작; 및
    상기 명령어 데이터를 실행하고, 가상 제어 평면을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하도록 하는 동작
    을 포함하는 전자 장치.
  7. 상기 가상 제어 평면은,
    상기 제1 가상 머신의 제1 가상 인터페이스와 상기 제2 가상 머신의 제1 가상 인터페이스 사이에서 확립되고,
    상기 가상 제어 평면은,
    상기 결과 데이터를 전송하도록 구성되고,
    가상 데이터 평면은,
    상기 제1 가상 머신의 제2 가상 인터페이스와 상기 제2 가상 머신의 제2 가상 인터페이스 사이에서 확립되고,
    상기 제1 가상 머신은,
    상기 가상 데이터 평면을 통해 상기 제2 가상 머신으로 스트림 데이터를 전송하여, 상기 제2 가상 머신과 연결된 디스플레이가 상기 스트림 데이터를 재생하도록 하는
    전자 장치.
  8. 제6항에 있어서,
    상기 제1 가상 머신의 식별자는,
    초기화된 상기 제1 가상 머신에 응답하여 생성되고,
    상기 식별자는,
    상기 공유 구성 데이터베이스에 저장되고,
    상기 공유 구성 데이터베이스는,
    상기 제2 가상 머신에 의해 알 수 없는 식별자를 포함하는 패킷을 수신하는 것에 응답하여 상기 알 수 없는 식별자를 검증하기 위해 검색되고,
    상기 제2 가상 머신은,
    상기 알 수 없는 식별자가 상기 식별자와 일치하였음을 결정하는 것에 응답하여 상기 제1 가상 머신에 대한 검증 절차를 종료하는
    전자 장치.
  9. 제6항에 있어서,
    상기 제1 가상 머신은 상기 제1 가상 머신이 상기 가상 제어 평면을 통해 상기 인터럽트 명령어를 전송하는 것에 응답하여 상기 제2 가상 머신의 응답을 기다리는 것을 중단하고,
    상기 제2 가상 머신은 상기 대응하는 스크립트를 실행하기 위해 상기 명령어 데이터의 대응하는 스크립트를 호출하고, 상기 결과 데이터를 생성하고, 상기 제2 가상 머신은 상기 가상 제어 평면을 통해 상기 제1 가상 머신으로 상기 결과 데이터를 전송하고,
    상기 제2 가상 머신의 사용자 인터페이스는 상기 명령어 데이터의 설정 커맨드를 생성하고 상기 가상 제어 평면을 통해 상기 제1 가상 머신으로 상기 설정 커맨드를 전송하고, 상기 제1 가상 머신은 상기 설정 커맨드에 따라 상기 제1 가상 머신의 기능 설정을 완료하고,
    상기 제2 가상 머신의 사용자 인터페이스는 상기 명령어 데이터의 설정 커맨드를 생성하고 상기 가상 제어 평면을 통해 상기 제1 가상 머신으로 상기 설정 커맨드를 전송하고, 상기 제1 가상 머신은 상기 설정 커맨드에 따라 제1 가상 머신의 기능 설정을 완료하고,
    상기 호출 원격 스크립트의 호출 커맨드는 상기 제2 가상 머신에 의해 판독되는, 호출 원격 스크립트를 포함하는, 상기 명령어 데이터에 응답하여 상기 제1 가상 머신으로 전송되어, 상기 제1 가상 머신이 상기 호출 커맨드에 따라 상기 대응하는 스크립트를 실행하도록 하고, 및
    상기 제1 가상 머신은 멀티미디어 데이터를 생성하기 위해 상기 대응하는 스크립트의 커맨드를 실행하고, 상기 제1 가상 머신은 상기 가상 제어 평면을 통해 상기 대응하는 스크립트의 피드백 커맨드에 따라 상기 제2 가상 머신으로 상기 멀티미디어 데이터를 전송하고, 상기 제2 가상 머신의 디스플레이는 상기 멀티미디어 데이터를 재생하는
    전자 장치.
  10. 비 일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 포함하고,
    상기 명령어가 프로세서에 로딩될 때,
    상기 프로세서는,
    가상 머신 아키텍처를 동작시키고,
    공유 링크를 통해, 제1 가상 머신에 의해 제2 가상 머신으로 인터럽트 명령어를 전송하는 단계;
    공유 구성 데이터베이스에서, 상기 제2 가상 머신에 의해 상기 인터럽트 명령어에 대응하는 명령어 데이터를 판독하는 단계; 및
    상기 명령어 데이터를 실행하고, 가상 제어 평면을 통해 상기 제2 가상 머신에 의해 상기 제1 가상 머신으로 결과 데이터를 전송하여, 상기 가상 제어 평면을 통해 상기 제1 가상 머신과 상기 제2 가상 머신 사이에서 상기 데이터를 교환하는 단계
    를 수행하기 위해 상기 명령어를 실행하는,
    비 일시적 컴퓨터 판독 가능 저장 매체.
KR1020190149416A 2019-01-07 2019-11-20 가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법 KR102289307B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108100579A TWI694699B (zh) 2019-01-07 2019-01-07 虛擬機器的通訊方法、電子裝置以及非暫態電腦可讀取記錄媒體
TW108100579 2019-01-07

Publications (2)

Publication Number Publication Date
KR20200086212A true KR20200086212A (ko) 2020-07-16
KR102289307B1 KR102289307B1 (ko) 2021-08-13

Family

ID=71405123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190149416A KR102289307B1 (ko) 2019-01-07 2019-11-20 가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법

Country Status (3)

Country Link
US (1) US11144370B2 (ko)
KR (1) KR102289307B1 (ko)
TW (1) TWI694699B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136373A1 (ko) * 2022-01-13 2023-07-20 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237878B2 (en) * 2019-09-09 2022-02-01 Microsoft Technology Licensing, Llc Transforming system calls in a distributed architecture

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288921A1 (en) * 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
KR20130107298A (ko) * 2010-10-12 2013-10-01 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 가상 머신을 이용한 공유 데이터 관리
KR101387971B1 (ko) * 2013-08-05 2014-04-22 주식회사 파이오링크 가상 머신 사이의 통신을 지원하기 위한 방법, 가상 머신, 시스템 및 컴퓨터 판독 가능한 기록 매체
US20150249712A1 (en) * 2012-10-26 2015-09-03 European Aeronautic Defence And Space Company Eads France Method and system enabling the interaction of virtual machines hosted by heterogeneous virtualization systems
CN105162667A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 虚拟机配置方法和装置
US20180349162A1 (en) * 2015-06-26 2018-12-06 Intel Corporation Apparatus and method for efficient communication between virtual machines

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276953B2 (en) * 2011-05-13 2016-03-01 International Business Machines Corporation Method and apparatus to detect and block unauthorized MAC address by virtual machine aware network switches
CN102467637A (zh) * 2011-07-28 2012-05-23 中标软件有限公司 一种虚拟化环境下的反病毒系统及其反病毒方法
JP5700009B2 (ja) * 2012-09-18 2015-04-15 横河電機株式会社 フォールトトレラントシステム
US10503442B2 (en) * 2015-01-28 2019-12-10 Avago Technologies International Sales Pte. Limited Method and apparatus for registering and storing virtual machine unique information capabilities
US10360598B2 (en) * 2017-04-12 2019-07-23 Engine Media, Llc Efficient translation and load balancing of openrtb and header bidding requests

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288921A1 (en) * 2006-06-13 2007-12-13 King Steven R Emulating a network-like communication connection between virtual machines on a physical device
KR20130107298A (ko) * 2010-10-12 2013-10-01 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 가상 머신을 이용한 공유 데이터 관리
US20150249712A1 (en) * 2012-10-26 2015-09-03 European Aeronautic Defence And Space Company Eads France Method and system enabling the interaction of virtual machines hosted by heterogeneous virtualization systems
KR101387971B1 (ko) * 2013-08-05 2014-04-22 주식회사 파이오링크 가상 머신 사이의 통신을 지원하기 위한 방법, 가상 머신, 시스템 및 컴퓨터 판독 가능한 기록 매체
US20180349162A1 (en) * 2015-06-26 2018-12-06 Intel Corporation Apparatus and method for efficient communication between virtual machines
CN105162667A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 虚拟机配置方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136373A1 (ko) * 2022-01-13 2023-07-20 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Also Published As

Publication number Publication date
TW202027473A (zh) 2020-07-16
KR102289307B1 (ko) 2021-08-13
US20200218562A1 (en) 2020-07-09
US11144370B2 (en) 2021-10-12
TWI694699B (zh) 2020-05-21

Similar Documents

Publication Publication Date Title
US10552348B2 (en) USB device access method, apparatus and system, a terminal, and a server
JP4882036B1 (ja) 電化製品の種別を決定する情報処理装置、方法、サーバ
US9253192B1 (en) Pluggable login architecture and dynamic resource recognition
CN109395400B (zh) 跨游戏的聊天信息处理方法及装置、电子设备、存储介质
US7554931B2 (en) System and method for remote dynamic network configuration
US20130254361A1 (en) Server system and management method thereof
US20100192214A1 (en) Information processing apparatus, information processing method, and recording medium including computer program
JP2015007996A (ja) 構成可能な実行可能アプリケーションを用いて遠隔技術サポートを提供する方法、および装置
US11809882B2 (en) Interface calling method and apparatus, and computer-readable storage medium
KR102289307B1 (ko) 가상 머신, 전자 장치 및 비 일시적 컴퓨터 판독 가능 저장 매체를 위한 통신 방법
US20230013371A1 (en) Data communication method, apparatus, and device, storage medium, and computer program product
CN106569737A (zh) 云控制台服务器的动态网络存储
CN112316417B (zh) 控制设备连接方法、装置、设备及计算机可读存储介质
KR20180100371A (ko) 데이터 전송 방법 및 디바이스
US7996524B2 (en) Controlling external communication of embedded device using proxy server
CN112272190B (zh) 一种数据访问方法和装置
CA3126777A1 (en) System and method to control a media client using a message service
TWI501090B (zh) 伺服器系統與節點偵測方法
JP4293169B2 (ja) ネットワーク機器制御システム
US9191445B2 (en) Systems and methods for managing emulation sessions
CN113596197B (zh) 一种地址切换方法、装置、电子设备及存储介质
CN111443982B (zh) 虚拟机器的通讯方法、电子装置以及非暂态电脑可读取记录媒体
JP6443059B2 (ja) 情報処理装置、情報処理方法、および、プログラム
KR102095674B1 (ko) 다중화 스트리밍 및 네트워크 장치 및 그 동작 방법
KR102357031B1 (ko) 클라우드 컴퓨터 구동 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)