KR20110094764A - 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 - Google Patents

트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 Download PDF

Info

Publication number
KR20110094764A
KR20110094764A KR1020100014372A KR20100014372A KR20110094764A KR 20110094764 A KR20110094764 A KR 20110094764A KR 1020100014372 A KR1020100014372 A KR 1020100014372A KR 20100014372 A KR20100014372 A KR 20100014372A KR 20110094764 A KR20110094764 A KR 20110094764A
Authority
KR
South Korea
Prior art keywords
transaction
operating system
hardware
operating systems
device driver
Prior art date
Application number
KR1020100014372A
Other languages
English (en)
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 KR1020100014372A priority Critical patent/KR20110094764A/ko
Priority to US12/985,926 priority patent/US20110202918A1/en
Priority to EP11150587A priority patent/EP2375324A3/en
Publication of KR20110094764A publication Critical patent/KR20110094764A/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/45541Bare-metal, i.e. hypervisor runs directly on hardware

Abstract

가상 머신 모니터상에 동작하는 복수 개의 운영 시스템이 하드웨어에 액세스할 때 발생되는 입출력 성능 저하를 개선하기 위한 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법이 제공된다. 가상화 장치는 하드웨어와, 하드웨어가 복수 개의 운영 시스템에 이용될 수 있도록 지원하는 가상 머신 모니터와, 가상 머신 모니터상에서 동작하는 복수 개의 운영 시스템으로부터 병렬적으로 하드웨어 입출력을 요청받음에 따라, 하드웨어 입출력을 위한 트랜잭션을 실행하여, 하드웨어에 대한 입출력 동작을 수행하기 위한 인터페이스를 제공하는 트랜잭션 디바이스 드라이버를 포함한다.

Description

트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법{Virtualization apparatus for providing transactional input and output interface and method thereof}
가상화 시스템에 관한 것으로, 가상 머신 모니터(Virtual Machine Monitor)를 사용하는 환경에서, 복수 개의 도메인이 공유하는 하드웨어에 대한 액세스 동작을 처리하는 장치 및 방법에 관한 것이다.
운영 시스템(Operating System)은 개인용 컴퓨터와 같은 컴퓨팅 장치에서 사용자가 하드웨어를 보다 용이하게 사용할 수 있도록 인터페이스를 제공해주는 프로그램들의 집합으로서, 프로세서, 기억 장치, 입출력 장치, 통신 장치, 데이터 등의 자원을 관리한다.
한편, 복수 개의 운영 시스템를 지원하는 시스템이 가상화 기술을 통해 제공되고 있다. 가상화 기술은 호스트 운영 시스템 상에 가상화 계층을 형성하거나 직접 가상화 계층을 제공하는 하이퍼바이저(hypervisor)를 두고, 이 가상화 계층 상에 복수의 논리적인 가상 머신(virtual machine)이 생성되도록 한다. 복수의 가상 머신에는 각각 게스트 운영 시스템이 설치될 수 있으며, 각각의 게스트 운영 시스템 상에는 해당 게스트 운영 시스템에서 지원되는 애플리케이션이 설치될 수 있다.
가상 머신 모니터상에 동작하는 복수 개의 운영 시스템이 하드웨어에 액세스할 때 발생되는 입출력 성능 저하를 개선하기 위한 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법이 제공된다.
일 측면에 따른 가상화 장치는, 하드웨어와, 하드웨어가 복수 개의 운영 시스템에 이용될 수 있도록 지원하는 가상 머신 모니터와, 가상 머신 모니터상에서 동작하는 복수 개의 운영 시스템으로부터 병렬적으로 하드웨어 입출력을 요청받음에 따라, 하드웨어 입출력을 위한 트랜잭션을 실행하여, 하드웨어에 대한 입출력 동작을 수행하기 위한 인터페이스를 제공하는 트랜잭션 디바이스 드라이버를 포함한다.
트랜잭션 디바이스 드라이버는, 복수 개의 운영 시스템에 의해 공유되며, 하드웨어에 대한 입출력 동작에 대한 트랜잭션이 실행되도록 구성된 공유 디바이스 드라이버와, 복수 개의 운영 시스템별로 구성되며, 트랜잭션 실행시 발생되는 데이터를 저장하는 도메인 결합 공유 메모리와, 복수 개의 운영 시스템이 트랜잭션을 실행한 상태를 나타내는 상태 정보를 포함하는 상태 로그와, 복수 개의 운영 시스템간 트랜잭션 실행의 우선 순위를 나타내는 우선 순위 정보를 포함할 수 있다.
공유 디바이스 드라이버는 하드웨어의 종류별로 존재할 수 있다. 상태 정보는, 운영 시스템 식별 정보, 트랜잭션 시작 시간, 트랜잭션에 대한 시작 코드의 주소를 포함할 수 있다.
가상 머신 모니터는, 트랜잭션 실행될 때마다, 상태 정보를 상태 로그에 저장하고, 실행중인 트랜잭션이 종료하면 종료된 트랜잭션에 대한 상태 정보를 삭제할 수 있다.
복수 개의 운영 시스템이 트랜잭션 디바이스 드라이버를 이용하여 하드웨어에 대한 입출력 동작을 실행할 때, 2 이상의 운영 시스템이 동일한 트랜잭션 구간의 코드를 실행하여 충돌이 발생하는 경우, 가상 머신 모니터는 2 이상의 운영 시스템 중 후순위의 운영 시스템으로 트랜잭션 중단을 요청할 수 있다.
도메인 결합 공유 메모리는, 복수 개의 운영 시스템별로 이용되는 복수 개의 영역으로 구분되며, 구분된 복수 개의 영역은 각각 대응하는 운영 시스템에 의해서만 접근이 허용되도록 설정될 수 있다.
트랜잭션 디바이스 드라이버는, 가상 머신 모니터와 복수 개의 운영 시스템 사이에 위치할 수 있다. 트랜잭션 디바이스 드라이버는, 가상 머신 모니터와 일체화되도록 구성될 수 있다.
다른 측면에 따른 가상 머신 모니터를 하드웨어가 복수 개의 운영 시스템에 이용될 수 있도록 지원하는 가상화 환경에서, 하드웨어 입출력 인터페이스를 제공하는 방법은, 복수 개의 운영 시스템은, 병렬적으로 하드웨어 입출력을 요청하는 동작과, 요청에 따라, 트랜잭션 디바이스 드라이버는 하드웨어 입출력을 위한 트랜잭션을 실행하여, 하드웨어에 대한 입출력 동작을 수행하기 위한 인터페이스를 제공하는 동작을 포함한다.
복수 개의 운영 시스템 중 제1 운영 시스템으로부터 제1 하드웨어에 대한 입출력 동작이 요청되면, 트랜잭션 디바이스 드라이버는, 복수 개의 운영 시스템에 의해 공유되는 공유 디바이스 드라이버에 포함된 제1 하드웨어에 대한 입출력 동작에 대한 트랜잭션 구간의 코드를 제1 운영 시스템으로 제공하고, 제1 운영 시스템은 트랜잭션을 실행한 상태를 나타내는 상태 정보를 상태 로그에 저장하고, 제1 운영 시스템은 제공된 트랜잭션 구간의 코드를 이용하여 트랜잭션을 실행할 수 있다.
제1 운영 시스템은 복수 개의 운영 시스템별로 구성되는 도메인 결합 공유 메모리에서, 제1 운영 시스템에 의해 이용되는 구분된 영역에 트랜잭션 실행시 발생되는 데이터를 저장할 수 있다. 도메인 결합 공유 메모리는, 복수 개의 운영 시스템별로 이용되는 복수 개의 영역으로 구분되며, 복수 개의 운영 시스템은 각각, 구분된 복수 개의 영역에 접근하는데 이용되는 페이지 테이블을 다른 운영 시스템에 의한 접근이 제한되도록 설정할 수 있다.
제1 운영 시스템이 제1 하드웨어에 대한 트랜잭션을 실행하는 중, 제2 운영 시스템이 제1 운영 시스템과 동일한 트랜잭션 구간의 코드를 이용하여 트랜잭션을 실행하려고 시도하면, 가상 머신 모니터는, 복수 개의 운영 시스템간 트랜잭션 실행의 우선 순위를 나타내는 우선 순위 정보를 이용하여, 제1 운영 시스템과 제2 운영 시스템간의 우선 순위를 결정하고, 결정된 우선 순위에 따라 후순위의 운영 시스템은 트랜잭션을 중단할 수 있다.
가상 머신 모니터상에서 동작하는 복수 개의 운영 시스템은 트랜잭션 실행을 통해서 하드웨어에 병렬적으로 액세스할 수 있으므로, 복수 개의 운영 시스템이 이용되는 가상화 환경에서 하드웨어에 대한 입출력 처리 성능을 향상시킬 수 있다.
도 1은 트랜잭션 방식의 가상화 장치의 구조의 일 예를 나타내는 도면이다.
도 2는 트랜잭션 디바이스 드라이버의 구조의 일 예를 나타내는 도면이다.
도 3은 트랜잭션 기반 입출력 인터페이스를 제공하는 방법의 일 예를 나타내는 순서도이다.
도 4는 트랜잭션에 대한 운영 시스템간 충돌 발생시의 처리 과정의 일 예를 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 트랜잭션 방식의 가상화 장치의 구조의 일 예를 나타내는 도면이다.
가상화 장치(100)는 하드웨어(110), 가상 머신 모니터(120), 트랜잭션 디바이스 드라이버(130) 및 복수개의 운영 시스템(142, 144, 146)을 포함할 수 있다. 가상화 장치(100)는 가상 머신 모니터(120)를 이용하여, 하드웨어(110)가 복수개의 운영 시스템(142, 144, 146)에 의해 이용될 수 있는 환경을 지원한다. 가상화 장치(100)는 개인용 컴퓨터, 모바일 폰, MID(Mobile Internet Device), DTV(Digital Television), PDA(Personal Digital Assistants), UMPC(Ultra Mobile PC) 등 각종 단말 장치 및 네트워크 컴퓨터 등으로 구현될 수 있으며, 그 종류나 형태에 제한되지 않는다.
하드웨어(110)는 CPU(central processing unit), MMU(memory management unit), 메모리, 통신 모듈, 플래시 메모리, 출력 장치, 입력 장치 등 각종 하드웨어 모듈을 포함할 수 있다.
가상 머신 모니터(120)는 Xen, 하이퍼바이저(Hypervisor), L4 등의 소프트웨어를 포함할 수 있다.
복수개의 운영 시스템(142, 144, 146)은 하나의 하드웨어(110)를 이용하지만, 운영 시스템별로 개별적인 하드웨어상에서 있는 것처럼 동작하게 된다. 도 1에는 3개의 운영 시스템(142, 144, 146)이 도시되고 있으나, 하나의 시스템상에서 동작할 수 있는 운영 시스템(또는 도메인)의 수는 하드웨어 자원에 의해서만 제한된다.
도메인은 각 운영 시스템이 동작하는 환경을 가리킨다. 운영 시스템(142, 144, 146)은 각각 운영 시스템이 동작하는 환경인 도메인에 존재하며 실행되는 애플리케이션을 실행할 수 있다.
이러한 많은 운영 시스템 중에서 하나의 운영 시스템은 다른 운영 시스템을 제어하는 역할을 수행할 수 있는데, 이를 컨트롤 도메인이라 부른다. 예를 들어, 운영 시스템(142)은 다른 운영 시스템(144, 146)을 제어하는 컨트롤 도메인으로 동작할 수 있다. 이하에서는 운영 시스템(142)이 컨트롤 도메인인 것으로 가정하고 설명한다.
트랜잭션 디바이스 드라이버(130)는 복수 개의 운영 시스템(142, 144, 146)이 병렬적으로 하드웨어에 대한 입출력 동작을 트랜잭션 기법을 이용하여 수행하기 위한 인터페이스를 제공한다. 복수 개의 운영 시스템(142, 144, 146)으로부터 트랜잭션 디바이스 드라이버(130)로 병렬적으로 하드웨어 입출력을 요청받음에 따라, 트랜잭션 디바이스 드라이버(130)는 하드웨어 입출력을 위한 트랜잭션을 실행하여, 하드웨어에 대한 입출력 동작을 수행하기 위한 인터페이스를 제공할 수 있다.
일반적으로, 트랜잭션 실행은, 주로 다수의 인스트럭션 또는 동작을 트랜잭션 즉, 원자적 코드 부분(atomic section of code) 또는 결정적 코드 부분(a critical section of code)로 그룹화하는 것을 포함한다. 트랜잭션은 통상적으로, 액세스가 충돌(conflict)하지 않는 한, 예를 들면, 액세스가 공유 자원의 상이한 부분으로 향하는 한, 메모리에 저장된 데이터 구조와 같은 공유 자원을 동시에 액세스할 수 있게 하는 동기화 모델을 말한다. 트랜잭션 디바이스 드라이버(130)는 디바이스 드라이버의 하드웨어 입출력 동작이 트랜잭션 단위로 수행되도록 구성된다.
따라서, 복수 개의 운영 시스템(142, 144, 146)은 병렬적으로 동시에 트랜잭션 디바이스 드라이버(130)에게 하드웨어 입출력 요청을 할 수 있다. 또한, 복수 개의 운영 시스템(142, 144, 146)은 충돌이 발생하지 않는 한, 트랜잭션 디바이스 드라이버(130)를 이용하여, 병렬적으로 하드웨어에 액세스할 수 있게 된다. 트랜잭션 디바이스 드라이버(130)에 의해 하드웨어 입출력 동작이 트랜잭션 단위로 처리될 수 있으므로, 운영 시스템(142, 144, 146)의 하드웨어 입출력 요청을 트랜잭션 I/O라 부를 수 있다.
일반적인 가상화 시스템은, 컨트롤 도메인이 통상의 운영 시스템들이 가지는 물리적 디바이스 드라이버와 유사한 백엔드 디바이스 드라이버를 포함하고, 나머지 게스트 운영 시스템들은 백엔드 디바이스 드라이버를 이용하기 위한 프론트엔드 디바이스 드라이버를 가진다. 따라서, 컨트롤 도메인이 아닌 게스트 운영 시스템이 하드웨어를 이용하기 위해서는, 컨트롤 도메인에 네트워크 또는 IDC(Inter-Domain Communication)을 통해 연결하며 하드웨어 사용을 요청하고, 컨트롤 도메인은 백엔드 디바이스 드라이버를 이용하여, 요청을 처리하여 게스트 운영 시스템이 하드웨어를 사용할 수 있도록 한다. 이와 같은 하드웨어 입출력 방식을 스플릿 드라이버(split driver) 방식이라고 한다. 스플릿 드라이버 방식을 이용하면, 모든 운영 시스템들이 컨트롤 도메인의 백엔드 디바이스를 통해서 하드웨어 입출력을 하게 되므로, 하드웨어 입출력 성능이 저하된다.
충돌의 빈도는 통상적으로 높지 않다. 따라서, 트랜잭션 디바이스 드라이버(130)는 복수 개의 운영 시스템(142, 144, 146)이 동시에 병렬적으로 하드웨어 입출력 동작을 수행하는 것에 의하여, 통상적인 운영 시스템이 하드웨어에 직접 액세스하는 네이티브 디바이스 드라이버를 이용하는 경우와 동등하게 하드웨어 입출력 성능이 개선될 수 있다.
트랜잭션 디바이스 드라이버(130)는 공유 디바이스 드라이버(132), 도메인 결합 공유 메모리(134), 우선 순위 정보(136) 및 상태 로그(138)를 포함할 수 있다.
공유 디바이스 드라이버(132)는 하드웨어에 대한 입출력 동작에 대한 트랜잭션이 실행되도록 구성되며, 복수 개의 운영 시스템(142, 144, 146)에 의해 공유된다. 공유 디바이스 드라이버(132)는 도메인 간 공유된 하드웨어 사용을 위해 트랜잭션 입출력을 실행한다. 공유 디바이스 드라이버(132)는 각 도메인들이 서로 공유하는 디바이스 드라이버들이다. 공유 디바이스 드라이버(132)는 하드웨어(110)에 포함된 각 하드웨어의 종류별로 존재할 수 있다.
각각의 공유 디바이스 드라이버(132)에는 트랜잭션 실행 단위로 변형된 드라이버 코드가 포함될 수 있다. 각 트랜잭션 실행 단위는 원자적(atomic) 구간(section)으로, 쪼개서 실행될 수 없는 업무 처리 단위로서, 이하에서는 트랜잭션 구간이라고 한다. 트랜잭션 구간에는 하드웨어를 직접 액세스하는 명령어가 포함될 수 있다. 각 트랜잭션 구간에는 트랜잭션의 시작을 통지하는 트랜잭션 시작 명령어와 트랜잭션의 종료를 통지하는 트랜잭션 종료 명령어가 포함될 수 있다. 공유 디바이스 드라이버(132)에는 트랜잭션 실행 단위로 수행되지 않은 일반적인 정보나 코드도 포함될 수 있다.
도메인 결합 공유 메모리(134)는 복수 개의 운영 시스템별로 구성되며, 트랜잭션 실행시 발생되는 변수 등의 데이터 및 기타 정보를 저장한다. 트랜잭션 실행시 발생되는 정보는 소정의 운영 시스템이 실행하던 소정의 트랜잭션이 취소된 경우, 취소된 트랜잭션 시작 전의 상태로 되돌아가기 위하여, 트랜잭션 구간마다 구분되어 저장될 수 있다. 예를 들어, 제1 운영 시스템(142)은 트랜잭션 I/O 동작을 실행할 때, 각 원자적 구간을 실행이 완료 단위로, 해당 구간의 처리과정에서 발생된 데이터 및 관련 정보를 도메인 결합 공유 메모리(134)로 저장할 수 있다.
특정 운영 시스템(또는 도메인)이 트랜잭션 디바이스 드라이버(130)를 통해, 트랜잭션 I/O 실행시, 다른 운영 시스템의 공유 메모리를 침해하지 않도록 하기 위하여, 또는 침해당하지 않도록 하기 위해 메모리 보호 방법이 필요하다.
도메인 결합 공유 메모리(134)는, 복수 개의 운영 시스템별로 이용되도록 복수 개의 영역으로 구분될 수 있다. 구분된 복수 개의 영역은 각각 대응하는 운영 시스템에 의해서만 접근이 허용되도록 설정될 수 있다. 운영 시스템이 도메인 결합 공유 메모리를 할당받을 때, 가상 머신 모니터(120)에 의해서 도메인 결합 공유 메모리에 접근하는데 이용되는 페이지 테이블은 해당 운영 시스템만 접근할 수 있도록 설정될 수 있다. 예를 들어, 도메인 결합 공유 메모리(134)에서 제1 운영 시스템(142)에 할당된 영역을 관리하는 페이지 테이블은 제1 운영 시스템(142)에 의해서만 접근되도록 설정될 수 있다. 따라서, 제1 운영 시스템(142)에 할당된 영역은 제1 운영 시스템(142)에 의해서만 수정될 수 있다.
새로운 운영 시스템이 가상 머신 모니터(120)상에 설치되면, 가상 머신 모니터(120)는 생성된 운영 시스템에 대응하는 공유 디바이스 드라이버(132)의 동작에 따라 생성되는 데이터를 저장하기 위하여, 도메인 결합 공유 메모리(134)에 새로 생성된 도메인에 대한 공유 메모리 영역을 할당할 수 있다. 공유 메모리 영역의 할당은 구현예에 따라 컨트롤 도메인인 제1 운영 시스템(142)에 의해 수행될 수도 있다.
우선 순위 정보(136)는 복수 개의 운영 시스템(142, 144, 146)간 트랜잭션 실행의 우선 순위를 나타낸다. 우선 순위 정보(136)는 미리 설정될 수도 있고, 사용자나 시스템 요청에 따라 변경 설정될 수 있다. 실시간 실행이 요구되는 운영 시스템이 높은 우선 순위를 가지도록 우선 순위가 설정될 수 있다.
상태 로그(138)는 복수 개의 운영 시스템(142, 144, 146)이 트랜잭션을 실행한 상태를 나타내는 상태 정보를 포함한다. 상태 정보는 운영 시스템 식별 정보, 트랜잭션 시작 시간, 트랜잭션에 대한 시작 코드의 주소를 포함할 수 있다. 상태 정보는 복수 개의 운영 시스템(142, 144, 146)별로, 트랜잭션을 실행할 때마다 생성될 수 있으며, 해당 트랜잭션이 완료되면, 생성된 상태 정보가 삭제될 수 있다.
가상 머신 모니터(120)는 트랜잭션을 시작할 때, 상태 로그(138)에 상태 정보를 저장하고, 트랜잭션이 완료되는 해당 상태 정보를 삭제할 수 있다. 이와 같은 상태 정보의 저장 및 관리는 가상 머신 모니터(120)에 의해 수행될 수 있으나, 각각의 운영 시스템(142, 144, 146)에 의해 수행될 수도 있으며, 컨트롤 도메인인 운영 시스템(142)에서 총괄적으로 수행될 수 있는 등 여러가지 방식으로 수행될 수 있다.
일 예로, 제1 운영 시스템(142)의 트랜잭션 동작은 다음과 같이 수행될 수 있다. 제1 운영 시스템(142)으로부터 하드웨어(110)에 대한 입출력 동작이 요청된다. 트랜잭션 디바이스 드라이버(130)는, 복수 개의 운영 시스템(142, 144, 146)에 의해 공유되는 공유 디바이스 드라이버(132)에 포함된 하드웨어(110)에 대한 입출력 동작에 대한 트랜잭션 구간의 코드를 제1 운영 시스템(142)으로 제공한다. 제1 운영 시스템(142)은 제공된 코드의 실행으로 트랜잭션 시작시에 트랜잭션을 실행한 상태를 나타내는 상태 정보를 상태 로그(138)에 저장한다. 제1 운영 시스템(142)은 제공된 트랜잭션 구간의 코드를 이용하여 트랜잭션을 실행할 수 있다. 제1 운영 시스템(142)는 트랜잭션 실행 결과를 도메인 결합 공유 메모리(134)에 저장한다.
트랜잭션 디바이스 드라이버(130)는 도 1에 도시된 바와 같이, 가상 머신 모니터(120)와 복수 개의 운영 시스템(142, 144, 146) 사이에 위치될 수 있다. 또는, 트랜잭션 디바이스 드라이버(130)는 가상 머신 모니터(120)에 포함되어, 가상 머신 모니터(120)와 일체화되도록 구성될 수 있다.
가상 머신 모니터(120)는 복수 개의 운영 시스템(142, 144, 146)의 트랜잭션 I/O에 대한 스케줄링을 할 수 있다. 가상 머신 모니터(120)는 트랜잭션 I/O가 실행되면, 복수 개의 운영 시스템(142, 144, 146)의 트랜잭션 실행의 우선 순위를 나타내는 우선 순위 정보(136)를 이용하여, 우선순위가 높은 운영 시스템이 우선적으로 트랜잭션 I/O를 실행할 수 있도록 할 수 있다. 구현예에 따라, 컨트롤 도메인인 제1 운영 시스템(142)이 우선 순위 정보(136)를 이용하여 트랜잭션 I/O의 스케줄링을 수행하도록 구성될 수 있다.
가상 머신 모니터(120)는 트랜잭션 I/O가 스케줄링되었을 때, I/O의 충돌 여부를 모니터링한다. 가장 머신 모니터(120)는 새로운 운영 시스템이 특정 트랜잭션 구간을 수행하려고 할 때, 다른 운영 시스템이 해당 트랜잭션 구간을 이미 실행중인 상태라면, 충돌 이벤트를 발생시킬 수 있다. 또한, 가상 머신 모니터(120)는 후순위의 운영 시스템에 충돌이 발생된 트랜잭션 중단을 요청할 수 있다. 트랜잭션 중단 요청은 가상 머신 모니터(120)의 요청에 의해 제1 운영 시스템(142)에 의해 수행될 수도 있다.
예를 들어, 제1 운영 시스템(142)이 트랜잭션 I/O을 수행하고 있는 상황에서, 제2 운영 시스템(144)이 제1 운영 시스템(142)이 수행하고 있는 트랜잭션 구간을 실행하려고 시도하는 경우를 가정한다. 가상 머신 모니터(120)는 우선 순위 정보(136)를 이용하여, 우선순위를 확인한다.
만일 제1 운영 시스템(142)이 선순위를 가지는 경우에는, 제1 운영 시스템(142)이 계속 해당 구간의 트랜잭션을 수행할 수 있도록 하고, 제2 운영 시스템(144)에는 제1 운영 시스템(142)의 트랜잭션이 종료될 때까지 대기하도록 요청할 수 있다. 제2 운영 시스템(144)이 선순위를 가지는 경우에는, 가상 머신 모니터(120)는 제2 운영 시스템(144)이 트랜잭션을 수행하도록 하고, 제1 운영 시스템(142)이 트랜잭션을 취소하도록 할 수 있다. 그러면, 제1 운영 시스템(142)은, 해당 구간의 트랜잭션 이전의 상태로 되돌아가서, 제2 운영 시스템(144)의 동작이 종료된 후 다시 트랜잭션을 재개할 수 있다.
도 1에는 도시되지 않았으나, 각 운영 시스템(142, 144, 146)은 해당 도메인에서 미리 설정된 특정 하드웨어를 제어하기 위한 도메인 특정 디바이스 드라이버(도시되지 않음)을 포함하여, 직접 특정 하드웨어에 접근할 수 있다. 또는, 특정 디바이스 드라이버는 트랜잭션 디바이스 드라이버(130) 영역에 포함되어, 해당 드라이버에 대해 소유권을 가진 운영 시스템이 직접 특정 하드웨어를 접근하도록 구성될 수도 있다.
도 2는 트랜잭션 디바이스 드라이버(130)의 구조의 일 예를 나타내는 도면이다.
도 2에서, 공유 디바이스 드라이버(132)는 하드웨어 1(112)를 제어하기 위한 공유 디바이스 드라이버 #1(210) 및 하드웨어 2(114)를 제어하기 위한 공유 디바이스 드라이버 #2(212)를 포함하고 있다. 도 2는 제1 운영 시스템(142)과 제2 운영 시스템(144)이 공유 디바이스 드라이버(134) 중 공유 디바이스 드라이버 #1(210)을 실행하고 있는 상태를 나타낸다. 공유 디바이스 드라이버 #1(210)는 도 2에 도시된 바와 같이 3개의 트랜잭션 구간 즉, 트랜잭션 A, 트랜잭션 B 및 트랜잭션 C를 포함할 수 있다.
도메인 결합 공유 메모리(134)는 도메인 0에 대한 구분된 영역을 나타내는 공유 결합 공유 메모리 #1(220) 및 도메인 1에 대한 구분된 영역을 나타내는 공유 결합 공유 메모리 #2(222)를 포함할 수 있다. 도메인별 구분된 영역을 나타내는 공유 결합 공유 메모리들(220, 222)은 각각, 공유 디바이스 드라이버의 종류에 따라 복수 개의 저장 영역으로 추가적으로 구분될 수 있다. 예를 들어, 도메인 결합 공유 메모리 #1(220)는 공유 디바이스 드라이버 #1(210)의 트랜잭션 실행시 발생되는 데이터를 저장하는 영역(230) 및 공유 디바이스 드라이버 #2(212)의 트랜잭션 실행시 발생되는 데이터를 저장하는 영역(232)을 포함할 수 있다. 영역(230)에서 "버퍼 00 및 버퍼 01"에는 제1 운영 시스템(142)이 공유 디바이스 드라이버 #1(210)의 트랜잭션 A를 실행하는 과정에서 발생되는 데이터가 저장될 수 있다.
제1 운영 시스템(142)이 공유 디바이스 드라이버 #1(210)의 트랜잭션 A를 실행하면, 제1 운영 시스템(142)은 상태 로그(138)에 수행할 트랜잭션 A의 시작 코드의 주소, 도메인 식별 정보, 및 트랜잭션 시작 시간을 포함하는 상태 정보(240)를 저장한다. 그리고, 제1 운영 시스템(142)은 도메인 결합 공유 메모리(210)에 공유 디바이스 드라이버 #1(210)의 수행과정에서 발생한 데이터를 저장할 수 있다.
제1 운영 시스템(142)은 트랜잭션 A를 종료한 후, 트랜잭션 B를 실행하기 시작한다. 그러면, 제1 운영 시스템(142)은 상태 로그(138)에 수행할 트랜잭션 B의 주소, 도메인 식별 정보, 및 트랜잭션 시작 시간을 포함하는 상태 정보(242)를 저장한다. 그리고, 제1 운영 시스템(142)은 도메인 결합 공유 메모리(210)에 공유 디바이스 드라이버 #1(210)의 수행과정에서 발생한 데이터를 저장할 수 있다.
제1 운영 시스템(142)의 드라이버 #1(210) 트랜잭션 B를 시작하던 중에, 제2 운영 시스템(144)이 제1 운영 시스템(142)이 수행중인 드라이버 #1(210) 트랜잭션 B를 수행하려고 시작하면, 가상 머신 모니터(120)는 상태 로그(138)의 정보를 보고, 드라이버 #1(210) 트랜잭션 B가 수행중임을 결정하고, 충돌 이벤트를 발생시킬 수 있다.
가상 머신 모니터(120)는 우선 순위 정보(138)를 이용하여 제1 운영 시스템(142)과 제2 운영 시스템(144)간의 트랜잭션 I/O의 우선 순위를 확인할 수 있다. 우선 순위 정보(138)에서, "2", "0", "1"의 정보는 도메인 식별 정보일 수 있고, 우선 순위 큐에서 우측에 있을수록 높은 우선 순위를 가짐을 나타낼 수 있다. 도 2의 우선 순위 정보(138)에서는, 도메인 0인 제1 운영 시스템(142)이 제2 운영 시스템(144)에 비하여 선순위이므로, 제1 운영 시스템(142)이 계속하여, 드라이버 #1(210) 트랜잭션 B를 실행하도록 할 수 있다. 제2 운영 시스템(144)은 제1 운영 시스템(142)이 드라이버 #1(210) 트랜잭션 B의 실행을 종료할 때까지 대기하였다가, 드라이버 #1(210) 트랜잭션 B를 실행할 수 있다.
도 3은 트랜잭션 기반 입출력 인터페이스를 제공하는 방법의 일 예를 나타내는 순서도이다.
이하에서, 제1 운영 시스템(142)이 이용할 하드웨어의 공유 디바이스 드라이버(132)는 복수 개의 트랜잭션 구간으로 구성되고, 제1 운영 시스템(142)이 트랜잭션 I/O를 수행하는 것으로 가정하고 설명한다.
제1 운영 시스템(142)은 트랜잭션 I/O를 수행하기 위하여, 트랜잭션 초기화 동작을 수행한다(310). 예를 들어, 가상 머신 모니터(120)는 제1 운영 시스템(142)에 대한 도메인 결합 공유 메모리(134)에 트랜잭션에 이용할 메모리 영역을 할당하고, 트랜잭션이 취소되어 롤백이 발생되는 경우를 대비하여, 제1 운영 시스템(142)에서 트랜잭션 시작 전에 발생된 데이터를 할당된 메모리 영역에 저장할 수 있다.
제1 운영 시스템(142)은 공유 디바이스 드라이버(132)에서 첫 번째 트랜잭션 구간의 트랜잭션 시작 명령어를 실행하여 트랜잭션을 시작한다(320). 제1 운영 시스템(142)은 트랜잭션을 시작하면, 상태 로그(138)에 해당 트랜잭션의 상태 정보를 저장할 수 있다.
제1 운영 시스템(142)은 트랜잭션 실행 과정에서 발생되는 데이터를 도메인 결합 공유 메모리(134)에 저장한다(330).
제1 운영 시스템(142)이 첫 번째 트랜잭션 구간의 트랜잭션 종료 명령어를 실행하면, 첫 번째 트랜잭션 구간의 트랜잭션이 종료된다(340).
이용중인 공유 디바이스 드라이버(132)에 다음 트랜잭션이 있는 경우, 동작 320으로 되돌아간다. 다음 트랜잭션이 없는 경우, 제1 운영 시스템(142)은 하드웨어 입출력 동작을 종료한다(360).
도 4는 트랜잭션에 대한 운영 시스템간 충돌 발생시의 처리 과정의 일 예를 나타내는 순서도이다.
공유 디바이스 드라이버(134) 중 드라이버 C는 C-1, C-2 및 C-3의 3개의 트랜잭션 구간으로 구성된다고 가정한다. 제1 운영 시스템(142)이 드라이버 C의 트랜잭션 C-3 구간을 시작하여, 제1 운영 시스템의 식별 정보, 트랜잭션 C-3의 시작 코드의 주소 및 시작 시간을 포함하는 상태 정보를 상태 로그(138)에 저장하고, 트랜잭션 C-3 구간의 동작을 수행하고 있다고 가정한다.
제1 운영 시스템(142)이 공유 디바이스 드라이버(134) 중 드라이버 C의 트랜잭션 C-3 구간을 수행하는 상황에서(410), 시스템 요청 또는 사용자 입력에 따라, 가상 머신 모니터(120)는 포그라운드로 실행되고 있던 제1 운영 시스템(142)을 제2 운영 시스템(144)으로 도메인 스위칭을 할 수 있다(412).
이 경우, 제2 운영 시스템(144)이 드라이버 C의 트랜잭션 C-3 구간을 시작하려고 시도한다(414). 가상 머신 모니터(120)는 상태 로그(138)를 이용하여 충돌을 감지하고, 우선 순위 정보(136)를 이용하여, 제2 운영 시스템(144)이 선순위인지 결정한다(416). 가상 머신 모니터(120)는 제2 운영 시스템(144)이 선순위인지에 따라 운영 시스템간 트랜잭션 I/O를 스케줄링한다.
제2 운영 시스템(144)이 선순위이면, 가상 머신 모니터(120)는 제2 운영 시스템(144)이 공유 디바이스 드라이버 C의 트랜잭션 C-3 구간을 진행하도록 한다(418).
또한, 가상 머신 모니터(120)는 제1 운영 시스템(142)에 예외 이벤트 처리가 수행되도록 요청한다. 그러면, 제1 운영 시스템(142)은 예외 이벤트 처리에 따라 트랜잭션 C-3 구간의 수행을 중단한다(420). 제2 운영 시스템(144)의 트랜잭션 C-3 구간의 수행이 완료되면, 제1 운영 시스템(142)은 상태 로그(138)에 저장했던 상태 정보를 이용하여, 트랜잭션 C-3 구간 시작 이전의 상태로 되돌아가서 C-3 구간을 다시 실행할 수 있다. 이때, 제1 운영 시스템(142)은 각 원자적 구간의 실행 완료 단위로 도메인 결합 공유 메모리(134)에 저장한, 해당 구간의 처리과정에서 발생된 데이터 및 관련 정보를 복원하여, 트랜잭션 C-3 구간 이전의 상태로 되돌아갈 수 있다.
제2 운영 시스템(144)이 후순위이면, 제2 운영 시스템(144)는 대기 모드로 들어간다(424). 선순위인 제1 운영 시스템(142)이 트랜잭션 C-3 구간의 실행을 완료하면(426), 제2 운영 시스템(144)는 트랜잭션 C-3 구간을 진행한다(428).
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.

Claims (15)

  1. 하드웨어;
    상기 하드웨어가 복수 개의 운영 시스템에 이용될 수 있도록 지원하는 가상 머신 모니터; 및
    상기 가상 머신 모니터상에서 동작하는 복수 개의 운영 시스템으로부터 병렬적으로 하드웨어 입출력을 요청받음에 따라, 상기 하드웨어 입출력을 위한 트랜잭션을 실행하여, 상기 하드웨어에 대한 입출력 동작을 수행하기 위한 인터페이스를 제공하는 트랜잭션 디바이스 드라이버를 포함하는 가상화 장치.
  2. 제1항에 있어서,
    상기 트랜잭션 디바이스 드라이버는,
    상기 복수 개의 운영 시스템에 의해 공유되며, 상기 하드웨어에 대한 입출력 동작에 대한 트랜잭션이 실행되도록 구성된 공유 디바이스 드라이버;
    복수 개의 운영 시스템별로 구성되며, 상기 트랜잭션 실행시 발생되는 데이터를 저장하는 도메인 결합 공유 메모리;
    상기 복수 개의 운영 시스템이 트랜잭션을 실행한 상태를 나타내는 상태 정보를 포함하는 상태 로그; 및
    상기 복수 개의 운영 시스템간 트랜잭션 실행의 우선 순위를 나타내는 우선 순위 정보를 포함하는 가상화 장치.
  3. 제2항에 있어서,
    상기 공유 디바이스 드라이버는 하드웨어의 종류별로 존재하는 가상화 장치.
  4. 제2항에 있어서,
    상기 상태 정보는, 운영 시스템 식별 정보, 상기 트랜잭션 시작 시간, 상기 트랜잭션에 대한 시작 코드의 주소를 포함하는 가상화 장치.
  5. 제2항에 있어서,
    상기 가상 머신 모니터는, 트랜잭션 실행될 때마다, 상기 상태 정보를 상기 상태 로그에 저장하고, 실행중인 트랜잭션이 종료하면 종료된 트랜잭션에 대한 상태 정보를 삭제하는 가상화 장치.
  6. 제1항에 있어서,
    상기 복수 개의 운영 시스템이 상기 트랜잭션 디바이스 드라이버를 이용하여 상기 하드웨어에 대한 입출력 동작을 실행할 때, 2 이상의 운영 시스템이 동일한 트랜잭션 구간의 코드를 실행하여 충돌이 발생하는 경우, 상기 가상 머신 모니터는 상기 2 이상의 운영 시스템 중 후순위의 운영 시스템으로 트랜잭션 중단을 요청하는 가상화 장치.
  7. 제2항에 있어서,
    상기 도메인 결합 공유 메모리는, 상기 복수 개의 운영 시스템별로 이용되는 복수 개의 영역으로 구분되며,
    상기 구분된 복수 개의 영역은 각각 대응하는 운영 시스템에 의해서만 접근이 허용되도록 설정된 가상화 장치.
  8. 제1항에 있어서,
    상기 트랜잭션 디바이스 드라이버는, 상기 가상 머신 모니터와 상기 복수 개의 운영 시스템 사이에 위치하는 가상화 장치.
  9. 제1항에 있어서,
    상기 트랜잭션 디바이스 드라이버는, 상기 가상 머신 모니터와 일체화되도록 구성되는 가상화 장치.
  10. 가상 머신 모니터가 하드웨어가 복수 개의 운영 시스템에 이용될 수 있도록 지원하는 가상화 환경에서, 하드웨어 입출력 인터페이스를 제공하는 방법으로서,
    상기 복수 개의 운영 시스템은, 병렬적으로 하드웨어 입출력을 요청하는 단계; 및
    상기 요청에 따라, 상기 트랜잭션 디바이스 드라이버는 상기 하드웨어 입출력을 위한 트랜잭션을 실행하여, 상기 하드웨어에 대한 입출력 동작을 병렬적으로 수행하기 위한 인터페이스를 제공하는 단계를 포함하는 방법.
  11. 제10항에 있어서,
    상기 복수 개의 운영 시스템 중 제1 운영 시스템으로부터 제1 하드웨어에 대한 입출력 동작이 요청되면,
    상기 트랜잭션 디바이스 드라이버는, 상기 복수 개의 운영 시스템에 의해 공유되는 공유 디바이스 드라이버에 포함된 상기 제1 하드웨어에 대한 입출력 동작에 대한 트랜잭션 구간의 코드를 제1 운영 시스템으로 제공하는 단계;
    제1 운영 시스템은 트랜잭션을 실행한 상태를 나타내는 상태 정보를 상태 로그에 저장하고, 제1 운영 시스템은 상기 제공된 트랜잭션 구간의 코드를 이용하여 트랜잭션을 실행하는 단계를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 상태 정보는 운영 시스템 식별 정보, 상기 트랜잭션 시작 시간, 상기 트랜잭션에 대한 시작 코드의 주소를 포함하는 방법.
  13. 제10항에 있어서,
    상기 제1 운영 시스템은 복수 개의 운영 시스템별로 구성되는 도메인 결합 공유 메모리에서, 상기 제1 운영 시스템에 의해 이용되는 구분된 영역에 상기 트랜잭션 실행시 발생되는 데이터를 저장하는 단계를 더 포함하는 방법.
  14. 제13항에서,
    상기 도메인 결합 공유 메모리는, 상기 복수 개의 운영 시스템별로 이용되는 복수 개의 영역으로 구분되며, 상기 구분된 복수 개의 영역에 접근하는데 이용되는 각 운영 시스템별로 존재하는 페이지 테이블에 대해 다른 운영 시스템에 의한 접근이 제한되도록 설정되는 방법.
  15. 제11항에 있어서,
    상기 제1 운영 시스템이 상기 제1 하드웨어에 대한 트랜잭션을 실행하는 중, 상기 제2 운영 시스템이 제1 운영 시스템과 동일한 트랜잭션 구간의 코드를 이용하여 트랜잭션을 실행하려고 시도하면,
    상기 가상 머신 모니터는, 상기 복수 개의 운영 시스템간 트랜잭션 실행의 우선 순위를 나타내는 우선 순위 정보를 이용하여, 제1 운영 시스템과 제2 운영 시스템간의 우선 순위를 결정하는 단계; 및
    상기 결정된 우선 순위에 따라 후순위의 운영 시스템은 상기 트랜잭션을 중단하는 단계를 더 포함하는 방법.
KR1020100014372A 2010-02-17 2010-02-17 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 KR20110094764A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100014372A KR20110094764A (ko) 2010-02-17 2010-02-17 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US12/985,926 US20110202918A1 (en) 2010-02-17 2011-01-06 Virtualization apparatus for providing a transactional input/output interface
EP11150587A EP2375324A3 (en) 2010-02-17 2011-01-11 Virtualization apparatus for providing a transactional input/output interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100014372A KR20110094764A (ko) 2010-02-17 2010-02-17 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20110094764A true KR20110094764A (ko) 2011-08-24

Family

ID=44123143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100014372A KR20110094764A (ko) 2010-02-17 2010-02-17 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법

Country Status (3)

Country Link
US (1) US20110202918A1 (ko)
EP (1) EP2375324A3 (ko)
KR (1) KR20110094764A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013123563A1 (en) * 2012-02-24 2013-08-29 Remasys Pty Ltd Router-based end-user performance monitoring
US9830178B2 (en) 2014-03-06 2017-11-28 Intel Corporation Dynamic reassignment for multi-operating system devices
KR20230022427A (ko) * 2020-11-10 2023-02-15 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8813021B1 (en) 2006-02-16 2014-08-19 Cypress Semiconductor Corporation Global resource conflict management for an embedded application design
US10102018B2 (en) * 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US9262232B2 (en) * 2012-02-29 2016-02-16 Red Hat, Inc. Priority build execution in a continuous integration system
WO2014016845A1 (en) * 2012-07-25 2014-01-30 Hewlett-Packard Development Company L.P. Computer device and method for converting gesture
US9465673B2 (en) * 2014-02-27 2016-10-11 International Business Machines Corporation Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling
WO2017107053A1 (en) * 2015-12-22 2017-06-29 Intel Corporation Isolated remotely-virtualized mobile computing environment
US10788990B2 (en) * 2017-02-16 2020-09-29 Toyota Jidosha Kabushiki Kaisha Vehicle with improved I/O latency of ADAS system features operating on an OS hypervisor
WO2020133413A1 (zh) * 2018-12-29 2020-07-02 深圳市欢太科技有限公司 应用分组调整方法、装置、存储介质及电子设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622212B1 (en) * 1999-05-24 2003-09-16 Intel Corp. Adaptive prefetch of I/O data blocks
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US7047337B2 (en) * 2003-04-24 2006-05-16 International Business Machines Corporation Concurrent access of shared resources utilizing tracking of request reception and completion order
EP1678617A4 (en) * 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US7454756B2 (en) * 2004-03-05 2008-11-18 Intel Corporation Method, apparatus and system for seamlessly sharing devices amongst virtual machines
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability
US8014413B2 (en) * 2006-08-28 2011-09-06 Intel Corporation Shared input-output device
KR101321369B1 (ko) * 2007-03-21 2013-10-28 삼성전자주식회사 디스크 블록 액세스 처리 방법 및 시스템
US8099274B2 (en) * 2007-03-30 2012-01-17 International Business Machines Corporation Facilitating input/output processing of one or more guest processing systems
US8645974B2 (en) * 2007-08-02 2014-02-04 International Business Machines Corporation Multiple partition adjunct instances interfacing multiple logical partitions to a self-virtualizing input/output device
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US7979869B2 (en) * 2007-09-28 2011-07-12 Oracle America, Inc. Method and system for performing I/O operations using a hypervisor
US8819675B2 (en) * 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
KR101489244B1 (ko) * 2007-12-24 2015-02-04 삼성전자 주식회사 가상 머신 모니터 기반의 프로그램 실행 시스템 및 그 제어방법
KR20110086690A (ko) * 2008-10-30 2011-07-29 인터내셔널 비지네스 머신즈 코포레이션 저장 장치에 데이터 쓰기를 실행하는 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013123563A1 (en) * 2012-02-24 2013-08-29 Remasys Pty Ltd Router-based end-user performance monitoring
US9830178B2 (en) 2014-03-06 2017-11-28 Intel Corporation Dynamic reassignment for multi-operating system devices
KR20230022427A (ko) * 2020-11-10 2023-02-15 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Also Published As

Publication number Publication date
EP2375324A3 (en) 2012-01-04
EP2375324A2 (en) 2011-10-12
US20110202918A1 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US10691363B2 (en) Virtual machine trigger
US10073711B2 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US10191759B2 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
CN105579961B (zh) 数据处理系统及操作方法、用于数据处理系统的硬件单元
US9081612B2 (en) Virtual machine control method and virtual machine
JP5648544B2 (ja) スケジューリングプログラム、および情報処理装置
US8499010B2 (en) Garbage collection in a multiple virtual machine environment
JP6029550B2 (ja) 計算機の制御方法及び計算機
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
US9542112B2 (en) Secure cross-process memory sharing
US20190377612A1 (en) VCPU Thread Scheduling Method and Apparatus
WO2014209361A1 (en) Binary translation for multi-processor and multi-core platforms
KR20110095051A (ko) 가상화 환경에서의 데이터 처리 방법 및 드라이버
CN105677481A (zh) 一种数据处理方法、系统及电子设备
WO2015122007A1 (ja) 計算機、及び、ハイパバイザによる資源スケジューリング方法
KR20210007417A (ko) 멀티-코어 시스템 및 그 동작 제어 방법
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
US20140053162A1 (en) Thread processing method and thread processing system
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
CN117311833B (zh) 一种存储控制方法、装置、电子设备及可读存储介质
US20200218459A1 (en) Memory-mapped storage i/o
CN114138451A (zh) 集群部署方法、装置、磁盘分配方法、电子设备和介质
CN115756742A (zh) 直通i/o虚拟化的性能优化设计方法、系统、介质及设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid