KR20060048597A - 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이 - Google Patents

게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이 Download PDF

Info

Publication number
KR20060048597A
KR20060048597A KR1020050056152A KR20050056152A KR20060048597A KR 20060048597 A KR20060048597 A KR 20060048597A KR 1020050056152 A KR1020050056152 A KR 1020050056152A KR 20050056152 A KR20050056152 A KR 20050056152A KR 20060048597 A KR20060048597 A KR 20060048597A
Authority
KR
South Korea
Prior art keywords
privilege level
control
virtual machine
machine monitor
privilege
Prior art date
Application number
KR1020050056152A
Other languages
English (en)
Other versions
KR100726317B1 (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 KR20060048597A publication Critical patent/KR20060048597A/ko
Application granted granted Critical
Publication of KR100726317B1 publication Critical patent/KR100726317B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

게스트 소프트웨어의 현재 특권 레벨이 특권 레벨 탈출 기준에 맞는 경우, 가상 머신 모니터가 시스템의 제어를 맡게 하는 시스템 및 방법에 관한 것이다. 프로세서는 현재 특권 레벨이 기준에 맞는지를 검출하고, 그 후 게스트 소프트웨어로부터 가상 머신 모니터로 제어를 전송한다. 가상 머신 모니터는 특정 특권 레벨 변경 또는 값에 대한 제어를 맡는 것을 거절할 수 있다.
특권 레벨, 게스트 소프트웨어, 가상 머신 모니터

Description

게스트 소프트웨어의 특권 레벨에 기초한 가상 머신 모니터로의 전이{SUPPORT FOR TRANSITIONING TO A VIRTUAL MACHINE MONITOR BASED UPON THE PRIVILEGE LEVEL OF GUEST SOFTWARE}
도 1은 본 발명의 실시예가 구현될 수 있는 프로세싱 시스템의 일 실시예를 도시하는 블록도.
도 2는 본 발명의 실시예에 따라 특권 레벨의 증가 및 감소에 대하여 별도의 제어를 갖는 특권 레벨 탈출 제어를 위한 프로세스를 도시하는 흐름도.
도 3은 본 발명의 실시예에 따라 특권 레벨의 증가 및 감소에 대하여 결합된 제어를 갖는 특권 레벨 탈출 제어를 위한 프로세스를 도시하는 흐름도.
도 4는 본 발명의 실시예에 따라 특권 레벨의 변경을 검출하기 위한 프로세스를 도시하는 흐름도.
도 5는 본 발명의 일 실시예에 따른 비동기식 이벤트 처리를 위한 프로세스를 플로우차트로 도시한 것이다.
도 6은 가상 머신 환경에서 게스트 소프트웨어의 특권 레벨에 기반하여 게스트 소프트웨어로부터 가상 머신 모니터로의 전이를 위한 프로세스의 일 실시예를 나타낸 플로우차트.
도 7은 가상 머신 환경에서 게스트 소프트웨어의 특권 레벨에 기반하여 게스 트 소프트웨어로부터 가상 머신 모니터에게로의 전이를 위한 프로세스의 일 실시예를 나타낸 플로우차트.
도 8은 가상 머신 환경에서 선점 스케쥴링을 수행하기 위한 프로세스의 일 실시예를 나타낸 플로우차트.
< 도면의 주요 부분에 대한 부호 설명 >
100 : 가상 머신 환경
102 : 가상 머신
106 : 게스트 OS
108 : 게스트 소프트웨어 애플리케이션
112 : 가상 머신 모니터
114 : 가상 머신
116 : 베어 플랫폼 하드웨어
본 발명의 실시예들은 가상 머신에 관한 것이다. 보다 구체적으로는, 본 발명의 실시예들은, 가상 머신(vertual machine; VM)에서 실행되고 있는 게스트 소프트웨어의 특권 레벨이 특권 레벨 탈출 기준에 맞는 경우, 프로세서의 제어를 가상 머신 모니터(virtual machine monitor; VMM)가 재획득하게 하는 것에 관한 것이다.
전통적인 VMM은 컴퓨터 상에서 실행되며 다른 소프트웨어에 하나 이상의 가 상 머신의 추상화를 제시할 수 있다. 각각의 VM은 "게스트 운영 체제"와 같은 각자의 운영 체제(operating system; OS) 및 애플리케이션(집합적으로 "게스트 소프트웨어"로서 알려짐)을 실행하며, 독립 플랫폼(self-contained platform)으로서 기능할 수 있다. 게스트 소프트웨어는 VM 내에서 또는 VM 상에서 실행되고 있는 것을 말한다. 게스트 소프트웨어는 VM이 아닌 전용 컴퓨터 상에서 실행되고 있는 것처럼 동작하길 기대한다. 즉, 게스트 소프트웨어는 다양한 컴퓨터 동작들을 제어하고 이러한 동작들 동안 하드웨어 자원에 대한 액세스를 갖기를 기대한다. 하드웨어 자원은 제어 레지스터와 같은 프로세서 상주 자원 및 디스크립터 테이블(descriptor tables)과 같은 메모리 내에 있는 자원을 포함할 수 있다. 그러나, 가상 머신 환경에서, VMM은 VM들의 적합한 동작 및 VM들로부터의 보호 및 VM들 간의 보호를 제공하기 위하여 이러한 자원들에 대한 궁극적인 제어를 가질 수 있어야 한다. 이를 달성하기 위하여, VMM은 전형적으로 게스트 소프트웨어에 의해 만들어진 하드웨어 자원에의 모든 액세스들을 가로채고 중재한다.
대부분의 명령어 집합 구조들(instruction set architectures; ISAs)은 다수의 특권 레벨을 정의하여 낮은 특권을 가진 애플리케이션들을 높은 특권을 가진 운영 체제 기능으로부터 격리시킨다. 예컨대, 한 종래 기술 32비트 구조는, 가장 높은 특권을 가진 링 0부터 가장 낮은 특권을 가진 링 4까지, 4개의 특권 레벨을 가진다. 프로세서는 상이한 특권 레벨들 간을 스위치시키는 제어된 방식을 제공한다. 스위치는 특별 명령어를 발동(invoking)하는 것과 같이 명시적이거나, 인터럽트와 같은 외부 이벤트에 의해서 또는 예외나 장애를 일으킴으로써 암시적일 수 있 다. 예컨대, 특권 레벨 변경은 호출(CALL), 소프트웨어 인터럽트(INT) 또는 인터럽트 리턴(IRET)과 같은 명령어의 실행 동안 발생할 수 있다. 또한, 특권 레벨 변경은 예컨대, 예외, 외부 인터럽트, 장애, 태스크 스위치, 트랩 및 기타 유사 이벤트들과 같은 동기 또는 비동기 이벤트의 결과로서 발생할 수 있다.
멀티 프로세서 또는 멀티 스레드 시스템(multi-threaded systems)을 위한 운영 체제는, 상호 배제를 보장하는 잠금(locks)이 구현된 소프트웨어로, 둘 이상의 스레드 또는 프로세서로부터 동시에 액세스될 수 있는 데이터를 보호한다. 잠금이 일반적으로 짧은 시간 동안 유지되는 경우, 소위 스핀 잠금(spin locks)이라는 것이 사용될 수 있다. 하나의 프로세서 또는 스레드 상에서 동작하는 소프트웨어가 다른 프로세서 또는 스레드 상에서 동작하는 소프트웨어에 의해 이미 취해진 잠금을 획득하려고 시도하는 경우, 소프트웨어는 타이트 코드 루프(tight code loop)로 그 잠금을 재획득하려고 시도한다. 이 타이트 루프에서 실행하는 동안, 소프트웨어는 어떠한 유용한 작업도 수행하지 않으며, 하드웨어 프로세서 스레드는 아무런 이익도 제공하지 않는다. 멀티 스레드 프로세서(multi-threaded processors) 또는 다중 프로세서 시스템 상에서, 하나의 스레드 또는 프로세서의 실행은 소비 대역폭, 실행 유닛 또는 전력과 같은, 다른 스레드 또는 프로세서의 자원을 뺏을 수 있다. 따라서, 스피닝 기간(spinning period)은 가능한 짧아야만 한다.
멀티 프로세서 또는 멀티 스레드 시스템을 가상화하는 VMM은, 별개의 VM 또는 가상 프로세서(virtual processor; VP)에서 게스트 소프트웨어의 각 인스턴스 상에서 실행되는 소프트웨어를 실행할 수 있다. VM 시스템이 아닌 경우, 게스트 소프트웨어의 이러한 인스턴스들은 별개의 프로세서 또는 스레드 상에서 실행될 것이다. 집합적으로, VP 및 게스트 소프트웨어의 모든 인스턴스들을 가상 시스템으로서 칭한다. 이러한 VMM은 게스트 잠금 동작을 고려하지 않는 경우, 심각한 성능 저하를 경험할 수 있다. 따라서, VMM은 그 가상 시스템에 대한 모든 VP를 선점하고 있지 않는 한, 잠금을 갖는 VP를 선점해서는 안 된다. 잠금이 소프트웨어에 의해 구현된 경우, 잠금 프리미티브(locking primitives)는 하드웨어에 의해 직접적으로 검출될 수는 없기 때문에, 발견적(heuristics) 또는 간접적 관측 기술이 사용될 수 있다.
이러한 발견적 방법 중 하나는 공통 OS 행동에 기초한다. OS가 특권 모드에서 실행되고 있는 않는 동안 또는 저전력 상태에 있는 동안, OS는 잠금을 갖지 않는다. VMM은 단지 비특권 모드에서 또는 저전력 상태에서 실행되고 있는 가상 프로세서를 선점함으로써 그 지식을 이용할 수 있다. 특권 모드에서 실행되고 있는 게스트 소프트웨어의 선점은 게스트 소프트웨어가 비특권 모드로 스위치될 때까지 연기된다.
가상 머신(VM)에서 실행 중인 게스트 소프트웨어의 특권 레벨이 소정의 특권 레벨 탈출 기준을 만족시키는 경우, 가상 머신 모니터(VMM)가 시스템의 제어를 책임지도록 허가하기 위한 시스템 및 방법이 제공된다. 프로세서는 게스트 소프트웨어의 특권 레벨이 상기 조건을 만족시키는지 탐지한 다음, VMM으로 제어를 전이시 킨다. 특권 레벨 탈출 조건에는 특권 레벨에서의 증가, 특권 레벨에서의 감소, 특권 레벨에서의 임의의 변경, 소정의 레벨에 부합되는 특권 레벨, 소정의 레벨을 초과하는 특권 레벨, 소정의 레벨 미만인 특권 레벨, 또는 특권 레벨에서의 특정 전이가 포함될 수 있다. VMM은 특정 특권 레벨 값들 또는 값의 변경들에 있어서, 제어 책임을 거부할 수 있다. VMM으로의 전이는 VM에서 임의의 명령어를 실행하기 이전 또는 이후에 발생할 수 있다.
본 발명의 실시예들은 또한, 본 명세서의 동작들을 수행하기 위한 장치에 관련되어 있다. 이 장치는 요구되는 목적들을 위하여 특별히 제작되거나 또는, 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성된 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은 플로피 디스크, 광 디스크, CD-ROM 및 자기 광 디스크를 포함하는 임의의 유형의 디스크, ROM, RAM, EPROM, EEPROM, 자기나 광 카드, 또는 전자 명령어를 저장하기에 적당한 임의의 유형의 매체 및 그 각각에 컴퓨터 시스템 버스가 연결된 것과 같은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 명령어는 하나 이상의 처리 장치(즉, CPU 등)들을 이용하여 실행가능하다. 다른 실시예들에서, 본 발명의 단계들은 그 단계들을 수행하기 위하여 재구성가능한(reconfigurable) 또는 배선된(hardwired) 로직을 포함하는 특정 하드웨어 컴포넌트들에 의하여 또는 프로그램된 컴퓨터 컴포넌트들 및 주문형 하드웨어 컴포넌트들의 임의의 조합에 의하여 수행될 수 있을 것이다.
나아가, 설계는 창작에서 시작하여 제작으로의 시뮬레이션에 이르기까지 다양한 단계들을 거쳐서 이루어질 것이다. 설계를 표시하는 데이터는 다양한 방식으 로 설계를 표시할 수 있다. 먼저, 시뮬레이션에서 유용한 바와 마찬가지로, 하드웨어는 하드웨어 기술 언어나 다른 기능적 기술 언어를 이용하여 표시될 수 있다. 또, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델은 설계 프로세스의 일부 단계들에서 생성될 수 있다. 나아가, 일부 단계에서 대부분의 설계들은 하드웨어 모델에서 다양한 장치들의 물리적 위치를 표시하는 데이터 레벨에까지 이른다. 종래의 반도체 제작 기술들이 사용되는 경우, 하드웨어 모델을 표시하는 데이터는, 집적 회로를 생산하는데 사용되는 마스크들에 있어서 상이한 마스크층들 상에 다양한 형태들의 유무를 특정시키는 데이터가 될 수 있다. 임의의 설계 표시에 있어서, 데이터는 임의의 머신 판독가능 매체의 형태로 저장될 수 있다. 그러한 정보를 전송하기 위하여 변조되거나 아니면 형성된 광 또는 전자파, 메모리, 또는 디스크와 같은 자기나 광 저장장치가 머신 판독가능 매체일 수 있다. 임의의 이러한 매체들은 설계나 소프트웨어 정보를 "운반(carry)" 또는 "지시(indicate)"할 수 있다. 코드나 설계를 지시 또는 운반하는 전자 반송파(electrical carrier wave)가 전송되는 경우, 전자 신호의 복사, 버퍼링 또는 재전송이 수행되기까지 새로운 복사가 이루어진다. 그러므로 통신 제공자 또는 네트워크 제공자는 본 발명의 기술들을 구체화시키는 물품(반송파)의 사본들을 만들 수 있다.
도 1은 본 발명이 동작할 수 있는 가상 머신 환경(100)의 일 실시예를 도시한다. 본 발명의 상이한 실시예들이 도 1의 VM 환경에 의해서, 또 하드웨어, 소프트웨어 또는 양자의 결합을 포함할 수 있는 처리 로직에 의해서 수행될 수 있다. 이 실시예에서, 베어 플랫폼 하드웨어(bare platform hardware; 116)는 예를 들면, 표준 운영 체제(OS)나 VMM(112)을 실행할 수 있는 컴퓨팅 플랫폼을 포함한다.
VMM(112)은 비록 통상 소프트웨어로 구현되지만, 높은 레벨의 소프트웨어로 베어 머신 인터페이스를 내보내기(export)할 수 있다. 그러한 높은 레벨의 소프트웨어는 표준 또는 실시간 OS를 포함할 수 있으나 본 발명이 이 관점에서 그 범위로 제한되는 것은 아니다. 또한 예를 들면, VMM은 다른 VMM 내에서 또는 그 상위에서 실행될 수 있다. VMM 및 그의 전형적인 특징과 기능은 당업자에게 공지되어 있으며, 예를 들면, 소프트웨어, 펌웨어로 또는 다양한 기술들의 결합으로써 구현될 수 있다.
플랫폼 하드웨어(116)는 퍼스널 컴퓨터(PC), 메인프레임, 핸드헬드 장치, 휴대용 컴퓨터, 셋탑 박스 또는 임의의 다른 컴퓨팅 시스템이 될 수 있다. 플랫폼 하드웨어(116)는 프로세서(118), 메모리(120) 및 특권 레벨 모니터링 로직(124)을 포함한다.
프로세서(118)는 마이크로프로세서, DSP, 마이크로컨트롤러 등과 같은 소프트웨어를 실행할 수 있는 임의의 유형의 프로세서가 될 수 있다. 프로세서(118)는 본 발명의 방법 실시예들의 실행을 수행하기 위한 마이크로코드, 재구성가능한 로직, 프로그램가능한 로직 또는 하드코딩된 로직을 포함할 수 있다. 비록 도 1에는 그러한 프로세서(118)가 하나만 도시되어 있으나, 시스템 내에 하나 이상의 프로세서가 있을 수 있다.
메모리(120)는 하드 디스크, 플로피 디스크, RAM, ROM, 플래시 메모리, 상기 장치들의 임의의 조합 또는 프로세서(118)가 판독가능한 임의의 다른 유형의 머신 매체일 수 있다. 메모리(120)는 본 발명의 방법 실시예들의 실행을 수행하기 위한 명령어 및/또는 데이터를 저장할 수 있다.
VMM(112)은 다른 소프트웨어(예컨대, "게스트" 소프트웨어)에게 하나 이상의 가상 머신(VM)들의 추상화(abstraction)를 제공하는데, 상기 추상화는 다양한 게스트들에게 동일하거나 또는 상이한 추상화를 제공할 수 있다. 하나 이상의 VM는 시스템 내에 존재할 수 있다. 예를 들면, 도 1은 두 개의 VM(102 및 114)을 도시한다. 각 VM 상에서 실행중인 게스트 소프트웨어는 게스트 OS(104 또는 106)와 같은 게스트 OS와 다양한 게스트 소프트웨어 애플리케이션들(108 및 110)을 포함할 수 있다. VM(102 및 114)에서 실행중인 게스트 소프트웨어는 그 게스트 소프트웨어가 실행되고 있는 VM(102 및 114) 내에 있는 물리적 자원들(예컨대, 프로세서 레지스터들, 메모리 및 I/O 장치들)로의 액세스, 및 시스템 장치들과 예외 상황들 등으로 발생된 인터럽트들을 포함하는 다양한 이벤트들의 핸들을 예상한다. 가상 머신 환경에서, VMM(112)은 VM(102 및 114)의 적절한 운영 및 VM(102 및 114)들 사이 및 그로부터의 보호를 제공하기 위해 물리적 자원들에 대한 궁극적인 제어를 할 수 있어야 한다. VMM(112)은 필요한 경우, 게스트 소프트웨어의 컴퓨터 내 물리적 자원들로의 액세스를 인터셉트함으로써 이러한 목적을 달성한다.
게스트 소프트웨어가 액세스할 수 있는 자원들은 "특권 부여된(privileged)" 또는 "특권 없는(non-privileged)"중 하나로 분류될 수 있다. 특권 부여된 자원들에 있어서, VMM(112)은 이러한 특권 부여된 자원들에 대한 궁극적인 제어를 유지하면서, 게스트 소프트웨어가 요구하는 기능을 촉진시킨다. 특권 없는 자원들은 VMM(112)에 의한 제어를 요하지 않으며, 게스트 소프트웨어에 의해 액세스될 수 있다.
나아가 각 게스트 OS(104 및 106)는 예외 상황들(예컨대, 페이지 장애, 일반 보호 장애, 트랩, 중지 등), 인터럽트들(예컨대, 하드웨어 인터럽트, 소프트웨어 인터럽트) 및 플랫폼 이벤트들(예컨대, 초기화(INIT))과 같은 다양한 장애 이벤트들 및 시스템 관리 인터럽트들(SMIs)의 핸들을 예상한다. 이러한 장애 이벤트들 중 일부는, 그들이 VM(102 및 114)들의 적절한 운영 및 VM(102 및 114)들 사이 및 그로부터의 보호를 보장하기 위해 VMM(112)에 의해 취급되어야 하기 때문에, "특권 부여"된다.
특권 부여된 장애 이벤트가 발생하거나, 게스트 소프트웨어가 특권 부여된 자원에 액세스를 시도하는 경우, VMM(112)으로 제어가 전달될 수 있다. 게스트 소프트웨어로부터 VMM(112)으로의 제어 전달은 본 명세서에서 VM 탈출로 지칭된다. 상기 VM 탈출에 후속하는 제어가 수신된 다음, VMM(112)은 게스트 소프트웨어로 제어를 반환한 후, 다양한 처리를 수행할 수 있다. VMM으로부터 게스트 소프트웨어로의 제어 전달은 본 명세서에서 VM 엔트리로 지칭된다.
특권 부여된 OS 기능을 시동하기 위하여, 애플리케이션들은 INT나 SYSTENTER와 같은 특별한 명령어를 사용한다. 시스템은 식별자를 호출하고, 파라미터들은 보통 그 동작을 시동하기 이전에 프로세서의 레지스터들로 로딩된다. 인터셉트 시스템을 호출하는 것은 다수의 사용 시나리오를 가능하게 한다. 예를 들면, 시스템 호출들을 추적함으로써, 침입 검출 시스템은 보안 침해의 기점을 도출해 낼 수 있 다. 다른 시나리오는 시스템 호출 시동들의 시간적 패턴에 기반하여 실행 주기들을 검출함으로써 주기적인 실시간 작업들에 대해서 스케쥴링 패턴을 도출해 내는 것이다.
일 실시예에서, 프로세서(118)는 VM 제어 구조(VM Control Structure; VMCS; 122)에 저장된 데이터에 따라 VM(102 및 114)의 동작을 제어한다. 일 실시예에서, VMCS(122)는 메모리(120)에 저장된다. 다른 실시예에서, VMCS(122)는 프로세서(118)에 저장된다. 소정의 실시예에서, 다중 VMCS 구조가 다중 VM을 지원하기 위하여 사용된다.
VMCS(122)는, 게스트 소프트웨어(guest software)의 상태, VMM(112)의 상태, 어떻게 VMM(112)가 게스트 소프트웨어 및 기타 정보의 동작을 제한하거나 또는 제어하기를 희망하는지를 나타내는 실행 제어 정보를 포함할 수 있는 구조이다. 게스트 소프트웨어로의 및 그로부터의 변환 및 VM에서의 게스트 소프트웨어의 동작은 VMCS에 저장된 VM 제어의 그룹을 사용하여 제어된다. 실행 제어(execution control)는, 제어가 게스트 소프트웨어로부터 VMM으로 전달되어야 하는 환경을 명시한다. 탈출 제어(exit control)는 VM 탈출에서의 게스트 상태의 저장 및 VMM 상태의 로딩을 제어한다. 가장 최근의 VM 탈출을 설명하는 정보가 VM 탈출 정보 데이터 필드의 그룹에 제공된다. VM 탈출이 발생하는 경우, 게스트 소프트웨어에 의해 사용되는 프로세서 상태의 컴포넌트가 VMCS(122)로부터 로딩된다. 엔트리 제어(entry control)는 VM 엔트리에서의 VMM 상태의 저장 및 게스트 상태의 로딩을 제어한다. VM 엔트리가 발생하는 경우, VMCS(122)에 저장된 데이터를 사용하여 게 스트 상태가 회복되고, 제어는 게스트 소프트웨어로 반환된다.
일 실시예에서, 프로세서(118)는 게스트의 현재 특권 레벨을 평가하여서, VMM(112)에 의해 명시된 특권 레벨 탈출 기준에 기초하여 VM 탈출이 생성되어야 하는지를 결정하는 것을 담당하는 특권 레벨 감시 로직(privilege level monitoring logic; PLML; 124)를 포함한다. 일 실시예에서, 이러한 특권 레벨 탈출 기준은 VMCS(122)에 저장된다. 상기 특권 레벨 탈출 기준의 구체적인 실시예가 이하 설명된다. PLML(124)이 현재의 게스트 특권 레벨이 특권 레벨 탈출 기준을 만족한다고 결정하는 경우, 프로세싱 로직은 게스트 소프트웨어로부터 VMM(112)로 VM 탈출을 원조한다.
다양한 ISA에서, 특권 레벨은 수치 값이 할당될 수 있으며, 낮은 수치 값은 감소된 특권을 나타내는 반면, 높은 수치 값은 증가된 특권을 나타낸다. 다른 실시예에서, 높은 수치 값이 감소된 특권을 나타낼 수 있다. 본 명세서에서의 설명에서, 부여된 수치 값에 상관없이, 특권 레벨이 "증가"로서 참조되는 경우, 이는 게스트 소프트웨어가 더욱 특권을 부여받는다는 것을 의미하고, "감소"는 특권을 덜 부여받는다는 것을 의미한다. 동일하게, 부여된 수치 값에 상관없이, 다른 특권 레벨 "보다 작은" 특권 레벨은 감소된 특권을 갖는 레벨이다.
VM 제어에 제어가 추가될 수 있어서 특권 레벨 탈출 기준을 표현한다. 일 실시예에서, 특권 레벨 증가 탈출 제어가 활성화된 값으로 설정되는 경우, 이는 게스트 소프트웨어의 동작 동안에 특권 레벨의 증가가 발생할 때 VM 탈출이 생성되어야 한다는 것을 나타낸다. 이러한 제어는, 특권 레벨을 증가시키는 이벤트의 전달 또는 명령어의 실행이 VM 탈출을 유도하여야 하는지를 결정한다. 일 실시예에서, 특권 레벨에서의 그러한 증가로 인한 VM 탈출은 특권 레벨 변경을 유도한 명령어의 실행이 완료(즉, 철회 이후)된 이후에 발생한다. 일 실시예에서, VM 탈출 정보의 일부로서 VMM으로 보고될 수 있는 게스트 명령어 포인터값은 새로운 특권 레벨에서 실행될 최초 명령어를 지시할 수 있다. 일 실시예에서, 특권 레벨 변경을 유도하는 명령어의 주소를 보고하기 위해 어떤 것도 명시적으로 준비되지 않는다.
다른 실시예에서, 특권 레벨 감소 제어가 활성화된 값으로 설정되는 경우, 이는 게스트 소프트웨어의 동작 동안에 특권 레벨의 감소가 발생할 때 VM 탈출이 생성되어야 한다는 것을 나타낸다. 이러한 제어는, 특권 레벨을 증가시키는 이벤트 또는 명령어가 VM 탈출을 유도하여야 하는지를 결정한다. 일 실시예에서, 특권 레벨에서의 그러한 감소로 인한 VM 탈출은 특권 레벨 변경을 유도한 명령어의 실행이 완료(즉, 철회 이후)된 이후에 발생한다. VM 탈출 정보의 일부로서 VMM으로 보고될 수 있는 게스트 명령어 포인터값은 새로운 특권 레벨에서 실행될 최초 명령어를 지시할 수 있다. 일 실시예에서, 특권 레벨 변경을 유도하는 명령어의 주소를 보고하기 위해 어떤 것도 명시적으로 준비되지 않는다.
특권 레벨 증가 및 특권 레벨 감소 제어를 지원하는 방법의 일 실시예가 도 2의 흐름도에 도시된다. 도 2는 게스트 특권 레벨에서의 변경에 대하여 특권 레벨 증가 및 특권 레벨 감소 탈출 제어의 테스트를 도시한다. 도 2에서, 특권 레벨에서의 변경으로 인한 VM 탈출이 기타 VM 탈출 원인보다 상위로 우선시된다. 이것은 도면을 단순화하기 위하여 수행되고, 실제로는, 소정의 기타 VM 탈출 원인이 우선 순위가 높을 수 있고 일부는 낮을 수 있다. 도 2에 도시된 일 실시예에서, 특권 레벨 증가 및 특권 레벨 감소 제어가 도시되며, 그 밖의 실시예에서 본 명세서에 설명된 다른 특권 레벨 탈출 제어와 함께 또는 그와 독립적으로 제어가 지원될 수 있다.
도 2에서, VM 엔트리 요청이 VMM(112)으로부터 수신된 때(블록(210)) 프로세스가 시작된다(블록(205)). 시스템의 상태를 로딩하는 것 등과 같은, VM 엔트리 검사들이 수행된다(블록(215)). 게스트 명령문이 실행된다(블록(220)). 명령문의 실행이 VM 탈출을 유발하는 경우(블록(225)), VM 탈출은 제어로 하여금 VMM(112)으로 전이하도록 하며, 그 VM 탈출의 원인을 VMM(112)에게 보고하여(블록(230)), 프로세스를 끝낸다(블록(235)). VM 탈출이 명령문의 실행 동안 발생하지 않는 경우에는(블록(225)), 게스트 명령문이 철회된다(블록(240)). 게스트 소프트웨어의 현재 특권 레벨을 평가한 후에, 그 게스트 소프트웨어의 특권 레벨이 증가해온 것으로 결정되고(블록(245)), 특권 레벨 증가(PLI) 제어가 작동되면(블록(250)), VM 탈출은 제어로 하여금 VMM(112)으로 전이하도록 하며, 그 VM 탈출이 PLI에 의해 유발되었음을 VMM(112)에게 보고한다(블록(230)). 게스트 소프트웨어의 특권 레벨이 증가해온 것으로 결정되고(블록(245)), 특권 레벨 증가(PLI) 제어가 작동되지 않은 경우에는(블록(250)), 처리 로직은 다음 게스트 명령문을 실행한다(블록(220)).
게스트 소프트웨어의 특권 레벨이 증가해온 것으로 결정되지 않은 경우에는(블록(245)), 처리 로직은 특권 레벨 감소(PLD)에 대해 검사한다. 게스트 소프트웨어의 현재 특권 레벨을 평가한 후에, 그 게스트 소프트웨어의 특권 레벨이 감소해 온 것으로 결정되고(블록(245)), PLD 제어가 작동되면(블록(250)), VM 탈출은 제어로 하여금 VMM(112)으로 전이하도록 하며, 그 VM 탈출이 PLD에 의해 유발되었음을 VMM(112)에게 보고한다(블록(230)). 게스트 소프트웨어의 특권 레벨이 감소해온 것으로 결정되지 않고(블록(255)), PLD 제어가 작동되지 않은 경우에는(블록(260)), 다음 게스트 명령문이 실행된다(블록(220)).
특권 레벨 탈출 기준(privilege level exit criteria)은 선택적 탈출을 가능하게 하도록 작동되거나 작동 해제될 수 있고, 이러한 선택적 탈출은 멀티프로세서 스케쥴링에 대해 특히 유용한데, 이는 일반적으로 특권 레벨 변경들로 인한 VM 탈출들이 간헐적으로만 요구되기 때문이다. 또한, 예를 들어, VMM은 OS 커널로부터 VM 내의 사용자-레벨 코드로의 전이들에 대하여만 반응(react)할 수 있다.
대안적인 실시예에서, 앞서 설명된 특권 레벨 증가 및 특권 레벨 감소 실행 제어들에 의해 제공되는 기능성(functionality)은 단일한 특권 레벨 변경 탈출 제어(privilege level change exiting control)로 결합될 수 있는데, 이는 도 3에서 도시된 바와 같이, 특권 레벨에서의 임의의 변경이 VM 탈출을 유발할 것임을 규정한다. 도 3에서, VM 엔트리 요청이 VMM(112)으로부터 수신된 때(블록(310)) 프로세스가 시작된다(블록(305)). 시스템의 상태를 로딩하는 것 등과 같은 VM 엔트리 검사들이 수행된다(블록(315)). 게스트 명령문이 실행된다(블록(320)). 명령문의 실행이 VM 탈출을 유발하는 경우(블록(325)), VM 탈출은 제어로 하여금 VMM(112)으로 전이하도록 하며, 그 VM 탈출의 원인을 VMM(112)에게 보고하여(블록(330)), 프로세스를 끝낸다(블록(335)). VM 탈출이 명령문의 실행 동안 발생하지 않는 경우 에는(블록(325)), 게스트 명령문이 철회된다(블록(340)). 게스트 소프트웨어의 현재 특권 레벨을 평가한 후에, 그 게스트 소프트웨어의 특권 레벨이 변경된 것으로 결정되고(블록(345)), 특권 레벨 변경(PLC) 탈출 제어가 작동되면(블록(350)), VM 탈출은 제어로 하여금 VMM(112)으로 전이하도록 하며, 그 VM 탈출이 PLC에 의해 유발되었음을 VMM(112)에게 보고한다(블록(330)). PLC 조건(PLC condition)이 충촉되지 않거나(블록(345)), PLC 탈출 제어가 작동되지 않은 경우에는(블록(350)), 다음 게스트 명령문이 실행된다(블록(320)).
도 4는 본 발명의 일 실시예에 따른, 특권 레벨에서의 변경들을 검출하기 위한 하나의 방법을 흐름도로 도시한다. 이 도면에서, 구 특권 레벨(old privilege level; OPL)을 나타내는 변수를 현재 특권 레벨(current privilege level; CPL)로 설정하여 그 변수를 초기화함으로써(블록(410)) 프로세스가 시작된다(블록(405)). 인터럽트와 같은, 하나의 명령문 또는 하나의 비동기 이벤트가 처리되거나 실행된다(블록(415)). 명령문 실행 또는 이벤트 처리(블록(415)) 후에, 특권 레벨이 그 명령문 또는 이벤트 처리 전과 상이한 경우에는(블록(420)), 도 2 및 도 3에 도시된 바와 같이, 특권 레벨이 변경되고 동작(action)이 취해진 것이다(블록(425)). 그렇지 않은 경우에는, 다음 명령문 또는 프로세스 이벤트가 실해된다(블록(415)).
도 2 및 도 3에서, 평가(evaluation)는, VM 탈출이 발생해야 하는지 여부를 결정하기 위해, 명령문의 실행 후에, 그러나 명령문의 철회 전에 발생한다는 점에 유념하자. 실제로, 이러한 평가는 명령문의 시도된 실행의 일부로서 발생할 수도 있다. 예를 들어, 제어 레지스터(예컨대, CR0)에의 접근은 장애가 있는 시맨틱 (faulting semantic)을 갖는 VM 탈출을 유발할 수 있다. 다시 말해, 그 VM 탈출은 명령문에 의해 임의의 아키텍처 상태가 수정되기 전에 발생한다. 다른 VM 탈출들은 어떤 아키텍처 상태가 수정된 후에, 그러나 명령문의 철회 전에 발생할 수 있는데, 이 명령문은, 이를테면, 이어서 VM 탈출들을 유발하는 태스크 스위치들을 유발하는 명령문들이다. 어떤 VM 탈출들은 명령문의 철회 후에 발생할 수도 있다. 특권 레벨의 평가는 철회-후(post retirement)에 평가되는 하나의 조건이 될 수 있다. 다른 VM 탈출들은 다른 원인에 기해, 그리고 다른 환경에서 발생할 수 있다.
도 5는 명령어를 변경하는 특권 레벨의 실행과 같은 동기 이벤트 및 게스트 소프트웨어의 실행 중에 인터럽트의 도착과 같은 비동기 이벤트를 모두 인지하는 방법의 흐름도를 도시한다. 도 5에서, VM 엔트리 요청이 VMM(112)로부터 수신시(블록(510))에 프로세스는 시작된다(블록(505)). 시스템 등의 상태를 로딩하는 것과 같은 VM 엔트리 검사가 수행된다(블록(515)). 비동기 이벤트가 계류중이 아니면(블록(520)), 게스트 명령어가 실행된다(블록(525)). 명령어의 실행이 VM 탈출을 생기게 하면(블록(530)), VM 탈출은 VMM(112)로의 전이에 대한 제어를 생기게 하고, VM 탈출의 원인을 VMM(112)에 보고하고(블록(535)), 프로세스를 종료한다(블록(540)). 명령어의 실행이 VM 탈출을 생기게 하지 않으면(블록(530)), 게스트 명령어는 철회된다(블록(545)). 특권 레벨 증가(PLI) 조건이 충족되고(블록(540)), PLI 제어가 작동되면(블록(555)), VM 탈출은 VMM(112)로의 전이에 대한 제어를 생기게 하고, VM 탈출이 PLI에 의해 생겼음을 VMM(112)에 보고한다(블록(535)). PLI 조건이 충족되지 않거나(블록(535)) 또는 PLI 제어가 작동되지 않으 면(블록(555)), 프로세싱 로직은 특권 레벨 감소(PLD)에 관해 검사한다. PLD 조건이 충족되고(블록(560)) PLI 제어가 작동되면(블록(565)), VM 탈출은 VMM(112)로의 전이에 대한 제어를 생기게 하고, VM 탈출이 PLD에 의해 생겼음을 VMM(112)에 보고한다(블록(535)). PLD 조건이 충족되지 않거나(블록(560)) 또는 PLI 제어가 작동되지 않으면(블록(565)), 프로세싱 로직은 이 시점에서 비동기 이벤트가 계류중인지를 알기 위해 검사한다(블록(520)). 비동기 이벤트가 계류중이고(블록(520)) 이벤트가 VM 탈출을 생기게 하면(블록(570)), VM 탈출은 VMM(112)로의 전이에 대한 제어를 생기게 하고, VM 탈출이 상기 이벤트가 생겼음을 VMM(112)에 보고한다(블록(535)). 비동기 이벤트가 계류중이고(블록(520)) 이벤트가 VM 탈출을 생기게 하지 않으면(블록(570)), 이벤트는 게스트 소프트웨어로 주입되고(블록(575)) 상술한 특권 레벨 검사가 수행된다.
다른 실시예에서, 실행 제어는 특권 레벨 타깃 값을 지시한다. 특권 레벨 타깃 값은 VMM 제어하에 VMCS내에 저장될 수 있다. VMM은 특권 레벨 타깃 값을 임의의 유효한 특권 레벨로 설정할 수 있다. 다른 실시예에서, 특권 레벨 타깃 값은 고정된 값일 수 있다. 일부 실시예에는 하나 이상의 그런 특권 레벨 타깃 값을 제공할 수 있다. 예컨대, 일 실시예는 각각 특정치에 고정된 두 개의 다른 특권 레벨 타깃 값을 가질 수 있다.
일 실시예에서, 특권 레벨 타깃 값은 작동되기 전에는 효과가 없다. 특권 레벨 타깃 값 제어는 VMCS 내의 부합 특권 레벨 타깃 작동 제어를 1과 같은 작동된 값으로 설정해서 작동될 수 있다. 게스트 소프트웨어의 실행 동안에 게스트 소프 트웨어의 특권 레벨이 이 특권 레벨 타깃 값에 부합되면, 이 제어는 VM 탈출이 생성되어야만 한다는 것을 지시한다. 실행 제어는 복수의 특권 레벨 타깃 값 및 각각 하나의 특권 레벨 타깃 값 제어에 해당하는 복수의 부합 타깃 특권 작동 제어를 가질 수 있다.
일 실시예에서, 현재 특권 레벨과 특권 레벨 타깃 값의 그런 부합으로 인한 VM 탈출은 부합된 특권 레벨 내에서 실행되는 제1 명령어의 실행 전에 생길 수 있다. 일 실시예에서 VM 탈출 정보의 일부로서 VMM에 보고될 수 있는 게스트 명령어 포인터값은 부합된 특권 레벨 내에서 실행되는 제1 명령어를 가리킬 수 있다. 일 실시예에서, 특권 레벨을 부합 값으로 변경하기 위해 생기게 한 명령어의 주소를 보고하기 위한 명시적 준비가 없다.
도 6은 가상 기계 환경 내의 게스트 소프트웨어의 특권 레벨에 기초해 게스트 소프트웨어로부터 VMM으로의 전이하기 위한 프로세스의 실시예의 흐름도이다. 도시된 실시예에서, VM 탈출은 게스트 소프트웨어의 특권 레벨 및 특권 레벨 타깃 값 제어(PLTVC)의 값에 기초해 VM 탈출이 생긴다. 도 6에서, VM 엔트리 요청이 VMM(112)로부터 수신되면(블록(620)), 프로세스가 시작된다(블록(610)). 시스템 등의 상태를 로딩하는 것과 같은 VM 엔트리 검사가 수행된다(블록(630)). PLTVC가 작동되지 않으면(블록(640)), 게스트 명령어가 실행된다(블록(650)). 게스트 소프트웨어의 현재 특권 레벨(CPL)의 평가 후에, PLTVC가 작동되고(블록(640)), CPL이 특권 레벨 타깃 값(PLTV)과 같다면(블록(660)), VM 탈출은 VMM(112)로의 전이에 대한 제어를 생기게 하고(블록(670)) 프로세스를 종료한다(블록(680)). CPL이 PLTV 와 같지 않다면(블록(660)), 게스트 명령어가 수행된다(블록(650)).
다른 실시예에서, 특권 레벨 타깃 값 제어는 특권 레벨 상한값 제어로 증가한다. 이 제어가 작동된 값(예컨대, 1)으로 설정되어 있으면, 이것은 게스트 소프트웨어의 실행 중에, 게스트 소프트웨어의 특권 레벨이 특권 레벨 타깃 값보다 크면, VM 탈출이 생성되어야만 한다는 것을 가리킨다. 일 실시예에서, 실행 제어가 복수의 특권 레벨 타깃 값 및 해당 특권 레벨 상한값 제어를 가질 수 있다. 다른 실시예에서, 특권 레벨 타깃 값이 최대 특권 레벨로 설정되어 있으면, 더 큰 특권 상태로의 전이는 생기지 않고 따라서, 제어가 작동된 제어의 사용 없이 효과적으로 작동 해제된다.
또 다른 실시예에서, 특권 레벨 타깃 실행 제어는 특권 레벨 하한값 제어로 증가하는데, 이는 게스트 소프트웨어의 실행 중에, 게스트 소프트웨어의 특권 레벨이 특권 레벨 타깃 값보다 작으면, VM 탈출이 생성되어야만 한다는 것을 가리킨다. 일 실시예에서, 실행 제어는 복수의 특권 레벨 타깃 값 및 해당 특권 레벨 하한값 제어를 가질 수 있다. 다른 실시예에서, 특권 레벨 타깃 값이 최소 특권 레벨로 설정되어 있으면, 더 작은 특권 상태로의 전이는 생기지 않고 따라서, 제어가 작동된 제어의 사용 없이 효과적으로 작동 해제된다.
도 7은 가상 머신 환경에서 게스트 소프트웨어의 특권 레벨에 기초하여 VMM을 게스트 소프트웨어로부터 전이시키기 위한 프로세스의 실시예를 나타낸 흐름도이다. 도시된 실시예에서, 현재 특권 레벨이 PLTV 보다 큰 경우, 게스트 소프트웨어의 특권 레벨 및 특권 레벨 최고값 제어(Privilege Level Ceiling Value Control; PLCVC)에 기초하여 VM 탈출이 발생한다. 도 7에서, VMM(11)로부터 VM 엔트리 요청을 수신한 경우에(단계 720), 프로세스가 시작한다(단계 710). 시스템 기타 장치들의 상태를 로딩하는 작업과 같은 VM 엔트리 검사가 수행된다(단계 730). PLCVC가 작동되지 않으면(단계 740), 게스트 명령이 실행된다(단계 750). 게스트 소프트웨어의 CPL을 평가한 후에, PLCVC가 작동되고(단계 740), CPL이 PLTV를 초과하면(단계 770), VM 탈출로 인해 제어권이 VMM(112)로 전이되어(단계 770) 프로세스를 종료한다(단계 780). CPL이 PLTV를 초과하지 않으면(단계 760), 게스트 명령이 실행된다(단계 750).
실질적으로, 다중 드라이버 스레드들을 실행하는 확장 시간 동안 운영 시스템이 커널 모드에 존재하므로, 감시 타이머(watchdog timer)를 사용할 필요가 있다. 도 8은 가상 머신 환경에서 선점형 스케쥴링을 수행하기 위한 프로세스의 일 구현예에 대한 흐름도이다. 도 8에서, 프로세싱 로직이 현재 VM(CVM)이 선점될 필요가 있다고 결정하면(단계 810), 프로세스가 시작된다(단계 805). 프로세싱 로직은 CVM이 가상 시스템의 일부인지를 판단한다(단계 815). CVM이 특권 모드(Privilege Mode; PM)에 존재하지 않으면(단계 820), CVM은 선점되고(단계 825), 프로세스가 종료된다(단계 830). CVM이 PM에 있으면(단계 820), 감시 타이머(Watch Dog Timer; WDT)가 셋업된다(단계 835). 특권 레벨 탈출 제어(Privilege Level Exiting Control; PLEC)가 적절히 셋팅되어, CVM이 특권 모드에 있지 않은 경우에는 VM이 탈출하도록 한다(단계 840). 다음으로, 프로세싱 로직은 제어권을 CVM으로 전이시킨다(단계 845). CVM으로부터 VM 탈출이 있은 후에, VMM(112)은 제 어권을 받는다(단계 850). VM 탈출이 WDT에 의한 것이면(단계 855), CVM이 선점되어(단계 825) 프로세스가 종료된다(단계 830). VM 탈출이 WDT에 의한 것이 아니면(단계 855), VM 탈출이 처리되고(단계 860), 프로세싱 로직은 CVM이 PM에 존재하는지를 판단한다(단계 865). CVM이 PM에 존재하지 않으면(단계 865), CVM이 선점되어(단계 825), 프로세스가 종료된다(단계 830). CVM이 PM에 존재하면(단계 865), PLEC가 셋팅되고(단계 840),제어권이 CVM으로 전이되며(단계 845), WDT 및 PLEC는 유효 상태로 존재한다.
대안적인 실시예에서, 제어권이 제공됨으로써, 제1레벨에서 제4레벨로 그리고 제3레벨에서 제2 레벨로 전이하는 경우와 같이 특권 레벨들 사이의 특정 전이들 상에서 VM 탈출이 발생한다. 예컨대, 4개의 특권 레벨을 갖는 ISA에서, VMM이 VM 탈출을 발생시키도록하는 원인 및 목적지 특권 레벨의 12가지 가능한 조합 중의 임의의 것을 선택할 수 있도록 제공되는 12개의 제어권이 존재할 수 있다. 일 실시예에서, 특권 레벨 조합들의 전체 교차 곱을 한 갯수 미만의 제어권만이 제공될 수도 있다. 본 명세서에서는 제어권을 특권 레벨 원인 목적지 탈출 제어(Privilege Level Source Destination Exiting Controls; PLSDEC)로 지칭한다.
일 실시예에서, VMM(122)이 특권 레벨 내의 모든 변화들에 대한 제어권을 재획득하도록 하는 특권 레벨 내의 전이를 발생시키는 모든 이벤트 및 명령들에 대한 실행 제어권이 제공된다. 이러한 대안은, 특정 명령 실행이 특권 레벨 변화를 실질적으로 발생시키는지를 판단하기 위하여 VMM(122) 내의 부가적인 지원을 필요로 할 수도 있다. 예컨대, 하나의 ISA에서, 인터럽트 반환 명령(Interrupt Return Instruction; IRET)은 모든 경우가 아닌, 특권 레벨 내의 변화를 야기할 수 있다. IRET 명령의 수행으로, 명령의 실행이 특권 레벨을 변경시키는지와 무관하게 무조건적인 VM 탈출이 발생한다면, VMM이 에뮬레이팅할 필요가 있거나, 명령의 실행이 특권 레벨 변화를 야기하는지를 판단하기 위해 명령을 수행하는 단계를 포함할 필요가 있다. 장애 명령으로 인해 특권 레벨 변경이 대기하게 되는지를 판단하기 위하여, IRET를 에뮬레이팅하는 것과 같은 부가적인 요구 사항이 VMM 소프트웨어에 부과될 수도 있다.
특권 레벨 변경을 야기하는 일부 동작 또는 이벤트들은 다른 이유로 VM 탈출을 야기할 수도 있다. 이러한 다른 VM 탈출 원인은 우선순위에서 보다 높거나, 명령 실행에 후속하여 특권 레벨 탈출 기준의 평가 이전에 평가될 수 있다. 이러한 경우에, VMM은, 이벤트 또는 명령을 야기하는 VM 탈출이 또한 특권 레벨 내의 변화를 야기한다고 판단할 수 있다 예컨대, 가상화 구조(virtualization architecture)로 인해, VMM은 실행 제어권을 셋팅하여 소프트웨어 인터럽트 명령의 실행에 대해 VM 탈출이 가능하도록 한다. 사용자 수준 코드에서, 소프트웨어 인터럽트 명령의 실행으로 인해 특권 레벨의 변화가 발생할 수 있다. 특권 레벨의 변화가 VM 탈출을 야기하도록 셋팅됨과 동시에 소프트웨어 인터럽트 명령들이 실행되는 경우에, VM 탈출이 발생하도록 실행 제어권을 구성할 수 있다. 이러한 상황이 발생하면, 소프트웨어 인터럽트 명령의 실행 동안 소프트웨어 인터럽트 유발 VM 탈출이 우선적으로 평가되고, 따라서 특권 레벨의 변화에 우선하여 VM 탈출이 발생한다. 이러한 경우에, 소프트웨어 인터럽트 탈출 조건은 본질적으로 장애에 해당하 고, 명령의 실행 완료 이전에 평가되는 반면, 특권 레벨 변화는 본질적으로 트랩핑되고 명령의 완료 이후에 평가된다. 일 실시예에 있어서, 본질적으로 다중 VM 탈출 원인이 트랩핑되고, 다중 VM 탈출 원인이 장애에 해당할 수 있다. 특권 레벨 탈출 기준의 평가는 다른 또는 모든 VM 탈출 원인들보다 높거나 낮은 우선순위를 가질 수 있다.
본원 발명에 의하면, 가상 머신에서 실행 중인 게스트 소프트웨어의 특권 레벨이 소정의 특권 레벨 탈출 기준을 만족시키는 경우, 가상 머신 모니터가 시스템의 제어를 책임지도록 허가하기 위한 시스템 및 방법을 제공할 수 있다.
이상의 설명에 있어서, 본 발명의 완전한 이해를 제공할 목적으로 다수의 구체적인 사항들이 설명을 위해 제시되었다. 그러나, 당업자에게는 이러한 구체적인 사항들 없이 본 발명을 실시할 수 있음이 명확하다.

Claims (58)

  1. 가상 머신(virtual machine)에서 실행되고 있는 게스트 소프트웨어에 관한 현재 특권 레벨(current privilege level)을 평가하는 단계와,
    상기 현재 특권 레벨이 특권 레벨 탈출 기준(privilege level exiting criteria)을 충족하는 경우 가상 머신 모니터로 제어를 전이시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 특권 레벨 탈출 기준을 가상 머신 제어 구조에 저장하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 변경 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨과 다른 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 증가 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 감소 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    초기 특권 레벨을 판정하는 단계와,
    상기 초기 특권 레벨로부터 상기 현재 특권 레벨로의 전이와 연관된 특권 레벨 원인 목적지 탈출 제어(privilege level source destination exiting control)가 작동되는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    타겟 특권 레벨을 저장하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서,
    특권 레벨 부합 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨과 동일한 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  9. 제7항에 있어서,
    특권 레벨 상한(ceiling) 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  10. 제7항에 있어서,
    특권 레벨 하한(floor) 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  11. 제7항에 있어서,
    상기 타겟 특권 레벨이 가변적인 방법.
  12. 제7항에 있어서,
    상기 타겟 특권 레벨이 고정된 방법.
  13. 제1항에 있어서,
    상기 게스트 소프트웨어의 명령어를 실행하기 전에 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  14. 제1항에 있어서,
    상기 게스트 소프트웨어의 명령어를 실행한 후에 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 방법.
  15. 프로세서에 의하여 실행되어 데이터 처리 방법을 구현할 수 있는 기록 매체에 저장된 명령어 세트로서, 상기 데이터 처리 방법은
    가상 머신에서의 게스트 소프트웨어 실행에 관한 현재 특권 레벨을 평가하는 단계와,
    상기 현재 특권 레벨이 특권 레벨 탈출 기준을 충족하는 경우 가상 머신 모니터로 제어를 전이시키는 단계를 포함하는
    명령어 세트.
  16. 제15항에 있어서,
    상기 데이터 처리 방법은
    상기 특권 레벨 탈출 기준을 가상 머신 제어 구조에 저장하는 단계를 더 포 함하는 명령어 세트.
  17. 제15항에 있어서,
    상기 데이터 처리 방법은
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 변경 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨과 다른 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  18. 제15항에 있어서,
    상기 데이터 처리 방법은
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 증가 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  19. 제15항에 있어서,
    상기 데이터 처리 방법은
    초기 특권 레벨을 판정하는 단계와,
    특권 레벨 감소 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특 권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  20. 제15항에 있어서,
    상기 데이터 처리 방법은
    초기 특권 레벨을 판정하는 단계와,
    상기 초기 특권 레벨로부터 상기 현재 특권 레벨로의 전이와 연관된 특권 레벨 원인 목적지 탈출 제어가 작동되는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  21. 제15항에 있어서,
    상기 데이터 처리 방법은
    타겟 특권 레벨을 저장하는 단계를 더 포함하는 명령어 세트.
  22. 제21항에 있어서,
    상기 데이터 처리 방법은
    특권 레벨 부합 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨과 동일한 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  23. 제21항에 있어서,
    상기 데이터 처리 방법은
    특권 레벨 상한 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  24. 제21항에 있어서,
    상기 데이터 처리 방법은
    특권 레벨 하한 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  25. 제21항에 있어서,
    상기 타겟 특권 레벨이 가변적인 명령어 세트.
  26. 제21항에 있어서,
    상기 타겟 특권 레벨이 고정된 명령어 세트.
  27. 제15항에 있어서,
    상기 데이터 처리 방법은
    상기 게스트 소프트웨어의 명령어를 실행하기 전에 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  28. 제15항에 있어서,
    상기 데이터 처리 방법은
    상기 게스트 소프트웨어의 명령어를 실행한 후에 상기 가상 머신 모니터로 제어를 전이시키는 단계를 더 포함하는 명령어 세트.
  29. 가상 머신에서의 게스트 소프트웨어 실행에 관한 현재 특권 레벨을 평가하고 상기 현재 특권 레벨이 특권 레벨 탈출 기준을 충족하는 경우 가상 머신 모니터로 제어를 전이시키는 제1 로직
    을 포함하는 프로세서.
  30. 제29항에 있어서,
    상기 제1 로직은 초기 특권 레벨을 판정하고, 특권 레벨 변경 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨과 다른 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  31. 제29항에 있어서,
    상기 제1 로직은 초기 특권 레벨을 판정하고, 특권 레벨 증가 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  32. 제29항에 있어서,
    상기 제1 로직은 초기 특권 레벨을 판정하고, 특권 레벨 감소 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 초기 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  33. 제29항에 있어서,
    상기 제1 로직은 초기 특권 레벨을 판정하고, 상기 초기 특권 레벨로부터 상기 현 특권 레벨로의 전이와 연관된 특권 레벨 원인 목적지 탈출 제어가 작동되는 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  34. 제29항에 있어서,
    상기 제1 로직은 타깃 특권 레벨을 저장하고, 특권 레벨 부합 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨과 동일하다면, 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  35. 제29항에 있어서,
    상기 제1 로직은 타깃 특권 레벨을 저장하고, 특권 레벨 상한 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  36. 제29항에 있어서,
    상기 제1 로직은 타깃 특권 레벨을 저장하고, 특권 레벨 하한 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 프로세서.
  37. 게스트 소프트웨어(guest software)를 실행시키는 가상 머신을 구현하기 위한 프로세서;
    상기 게스트 소프트웨어의 제1 명령어를 저장하기 위해 상기 프로세서에 결합된 메모리; 및
    가상 머신에서 실행되는 게스트 소프트웨어의 현 특권 레벨을 평가하고, 상기 현 특권 레벨이 특권 레벨 탈출 기준을 충족시키는 경우 가상 머신 모니터로 제어를 전이시키기 위한 상기 프로세서
    를 포함하는 시스템.
  38. 제37항에 있어서,
    상기 메모리는 가상 머신 제어 구조에 상기 특권 레벨 탈출 기준을 저장하는 시스템.
  39. 제37항에 있어서,
    상기 프로세서는 초기 특권 레벨을 판정하고, 특권 레벨 변경 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 초기 특권 레벨과 상이하다면, 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  40. 제37항에 있어서,
    상기 프로세서는 초기 특권 레벨을 판정하고, 특권 레벨 증가 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 초기 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  41. 제37항에 있어서,
    상기 프로세서는 초기 특권 레벨을 판정하고, 특권 레벨 감소 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 초기 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  42. 제37항에 있어서,
    상기 프로세서는 초기 특권 레벨을 판정하고, 상기 초기 특권 레벨로부터 상기 현 특권 레벨로의 전이와 연관된 특권 레벨 원인 목적지 탈출 제어가 작동되는 경우 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  43. 제37항에 있어서,
    상기 메모리는 타깃 특권 레벨을 저장하는 시스템.
  44. 제43항에 있어서,
    상기 프로세서는, 특권 레벨 부합 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨과 동일하다면, 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  45. 제43항에 있어서,
    상기 프로세서는, 특권 레벨 상한 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  46. 제43항에 있어서,
    상기 프로세서는, 특권 레벨 하한 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 타깃 특권 레벨보다 더 낮은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  47. 제43항에 있어서,
    상기 타깃 특권 레벨은 가변적인 시스템.
  48. 제43항에 있어서,
    상기 타깃 특권 레벨은 고정된 시스템.
  49. 제37항에 있어서,
    상기 게스트 소프트웨어에서의 명령어 실행 전에 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  50. 제37항에 있어서,
    상기 게스트 소프트웨어에서의 명령어 실행 후에 상기 가상 머신 모니터로 제어를 전이시키는 시스템.
  51. 가상 머신에서 실행되는 게스트 소프트웨어의 현 특권 레벨을 평가하기 위한 제1 수단; 및
    상기 현 특권 레벨이 특권 레벨 탈출 기준을 총족시키는 경우 가상 머신 모니터로 제어를 전이시키기 위한 제2 수단
    을 포함하는 장치.
  52. 제51항에 있어서,
    초기 특권 레벨을 판정하기 위한 제3 수단; 및
    특권 레벨 변경 탈출 제어가 작동되고 상기 현 특권 레벨이 상기 초기 특권 레벨과 상이한 경우, 상기 가상 머신 모니터로 제어를 전이시키기 위한 제4 수단을 포함하는 장치.
  53. 제51항에 있어서,
    초기 특권 레벨을 판정하기 위한 제3 수단; 및
    특권 레벨 증가 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
  54. 제51항에 있어서,
    초기 특권 레벨을 판정하기 위한 제3 수단; 및
    특권 레벨 감소 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 초기 특권 레벨보다 더 낮은 특권 레벨을 갖는 경우 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
  55. 제51항에 있어서,
    초기 특권 레벨을 판정하기 위한 제3 수단; 및
    상기 초기 특권 레벨로부터 상기 현재 특권 레벨로의 전이와 연관된 특권 레벨 원인 목적지 탈출 제어가 작동되면, 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
  56. 제51항에 있어서,
    타겟 특권 레벨을 저장하기 위한 제3 수단; 및
    특권 레벨 부합 탈출 제어가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨과 동일하면, 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
  57. 제51항에 있어서,
    타겟 특권 레벨을 저장하기 위한 제3 수단; 및
    특권 레벨 상한 탈출 제어(privilege level ceiling exiting control)가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 높은 특권을 갖는 경우 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
  58. 제51항에 있어서,
    타겟 특권 레벨을 저장하기 위한 제3 수단; 및
    특권 레벨 하한 탈출 제어(privilege level floor exiting control)가 작동되고 상기 현재 특권 레벨이 상기 타겟 특권 레벨보다 더 낮은 특권 레벨을 갖는 경우 상기 가상 머신 모니터로 제어를 전이하기 위한 제4 수단
    을 더 포함하는 장치.
KR1020050056152A 2004-06-28 2005-06-28 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이 KR100726317B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/880,057 US7802250B2 (en) 2004-06-28 2004-06-28 Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US10/880,057 2004-06-28

Publications (2)

Publication Number Publication Date
KR20060048597A true KR20060048597A (ko) 2006-05-18
KR100726317B1 KR100726317B1 (ko) 2007-06-11

Family

ID=35115791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050056152A KR100726317B1 (ko) 2004-06-28 2005-06-28 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이

Country Status (5)

Country Link
US (1) US7802250B2 (ko)
EP (1) EP1612669A3 (ko)
JP (1) JP4291301B2 (ko)
KR (1) KR100726317B1 (ko)
CN (2) CN100481009C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160014647A (ko) * 2013-05-23 2016-02-11 에이알엠 리미티드 인터럽트 핸들링 방법 및 장치

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
DE602004027516D1 (de) * 2004-12-03 2010-07-15 St Microelectronics Srl Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7761674B2 (en) * 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
CN101283332A (zh) * 2005-10-04 2008-10-08 日本电气株式会社 信息处理装置、信息处理方法及程序
US8042109B2 (en) * 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
DE102006029756A1 (de) 2006-06-27 2008-01-03 Deutsche Telekom Ag Verfahren zum Delegieren von Privilegien an eine niedriger-priviligierte Instanz durch eine höher-priviligierte Instanz
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
US8949826B2 (en) * 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8458695B2 (en) * 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8752045B2 (en) 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
CN101206582B (zh) * 2006-12-22 2010-10-06 联想(北京)有限公司 一种虚拟机系统及其处理方法
US7996836B1 (en) * 2006-12-29 2011-08-09 Symantec Corporation Using a hypervisor to provide computer security
US7765374B2 (en) * 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
JP4987555B2 (ja) * 2007-04-27 2012-07-25 株式会社東芝 情報処理装置、および情報処理システム
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US8078827B2 (en) * 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
US8739156B2 (en) * 2007-07-24 2014-05-27 Red Hat Israel, Ltd. Method for securing the execution of virtual machines
US8146098B2 (en) * 2007-09-07 2012-03-27 Manageiq, Inc. Method and apparatus for interfacing with a computer user via virtual thumbnails
US8099718B2 (en) 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8407688B2 (en) 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US8418173B2 (en) 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
WO2009097610A1 (en) * 2008-02-01 2009-08-06 Northeastern University A vmm-based intrusion detection system
US8910169B2 (en) 2008-09-30 2014-12-09 Intel Corporation Methods and systems to perform a computer task in a reduced power consumption state
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US7970963B2 (en) * 2009-06-29 2011-06-28 Oracle America, Inc. Efficient buffer management in a multi-threaded network interface
CN101710301B (zh) * 2009-10-20 2011-08-31 中国电信股份有限公司 评估crm系统物理服务器虚拟化能力的方法及系统
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US10521231B2 (en) * 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US8819677B2 (en) 2010-11-23 2014-08-26 International Business Machines Corporation Virtual machine data structures corresponding to nested virtualization levels
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9396011B2 (en) 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
US9652631B2 (en) * 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9772868B2 (en) * 2014-09-16 2017-09-26 Industrial Technology Research Institute Method and system for handling interrupts in a virtualized environment
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9921984B2 (en) * 2014-12-23 2018-03-20 Intel Corporation Delivering interrupts to user-level applications
US9934061B2 (en) * 2015-12-28 2018-04-03 International Business Machines Corporation Black box techniques for detecting performance and availability issues in virtual machines
US10740134B2 (en) 2018-08-20 2020-08-11 Interwise Ltd. Agentless personal network firewall in virtualized datacenters
US11726811B2 (en) * 2021-06-18 2023-08-15 Vmware, Inc. Parallel context switching for interrupt handling
US11652800B1 (en) 2022-10-03 2023-05-16 Uab 360 It Secure connections between servers in a virtual private network

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
JP4316882B2 (ja) 2000-12-21 2009-08-19 マイクロソフト コーポレーション エミュレートされるコンピューティング環境におけるプロセッサ制御の論理的置換のためのシステムおよび方法
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
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
US7818808B1 (en) * 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7210144B2 (en) * 2002-08-02 2007-04-24 Microsoft Corporation Method for monitoring and emulating privileged instructions of programs in a virtual machine
US20040117532A1 (en) 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160014647A (ko) * 2013-05-23 2016-02-11 에이알엠 리미티드 인터럽트 핸들링 방법 및 장치

Also Published As

Publication number Publication date
KR100726317B1 (ko) 2007-06-11
US7802250B2 (en) 2010-09-21
EP1612669A3 (en) 2007-11-07
CN100481009C (zh) 2009-04-22
CN101493785A (zh) 2009-07-29
CN101493785B (zh) 2014-06-18
EP1612669A2 (en) 2006-01-04
US20050289542A1 (en) 2005-12-29
CN1716206A (zh) 2006-01-04
JP2006024207A (ja) 2006-01-26
JP4291301B2 (ja) 2009-07-08

Similar Documents

Publication Publication Date Title
KR100726317B1 (ko) 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이
EP1524596B1 (en) Systems and methods for using synthetic instructions in a virtual machine
KR102116571B1 (ko) 가상 머신을 나가자 마자 현재 프로세서 명령의 결과를 노출하기 위한 시스템 및 방법
JP6130612B1 (ja) ハイパーバイザーを有するシステム
US9244712B2 (en) Virtualizing performance counters
JP4564536B2 (ja) 仮想マシンモニタに関連するタイマへのサポートを提供する方法及び装置
US9171159B2 (en) Performing security operations using binary translation
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
US10140448B2 (en) Systems and methods of asynchronous analysis of event notifications for computer security applications
Kiszka Towards Linux as a real-time hypervisor
US9465617B1 (en) Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode
US10963280B2 (en) Hypervisor post-write notification of control and debug register updates
US10963250B2 (en) Selectively suppressing time intensive instructions based on a control value
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
Poon et al. Bounding the running time of interrupt and exception forwarding in recursive virtualization for the x86 architecture
Mitake et al. Towards co-existing of Linux and real-time OSes
Araújo LLTZVisor: A Lightweight Trustzone-Assisted Hypervisor for Low-End ARM Devices
US20240070260A1 (en) Process Credential Protection
CN113268726A (zh) 程序代码执行行为的监控方法、计算机设备

Legal Events

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

Payment date: 20130603

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140602

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 13