KR20080076304A - 게스트 운영체제의 화면 출력 제어 방법 및 장치 - Google Patents

게스트 운영체제의 화면 출력 제어 방법 및 장치 Download PDF

Info

Publication number
KR20080076304A
KR20080076304A KR1020070016062A KR20070016062A KR20080076304A KR 20080076304 A KR20080076304 A KR 20080076304A KR 1020070016062 A KR1020070016062 A KR 1020070016062A KR 20070016062 A KR20070016062 A KR 20070016062A KR 20080076304 A KR20080076304 A KR 20080076304A
Authority
KR
South Korea
Prior art keywords
guest operating
operating system
screen output
frame buffer
granted
Prior art date
Application number
KR1020070016062A
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 KR1020070016062A priority Critical patent/KR20080076304A/ko
Publication of KR20080076304A publication Critical patent/KR20080076304A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1616Error detection by comparing the output signals of redundant hardware where the redundant component is an I/O device or an adapter therefor
    • G06F11/162Displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/4555Para-virtualisation, i.e. guest operating system has to be modified

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 가상 머신 상에서 동시 구동되는 복수의 게스트 운영체제의 화면 출력 제어 방법 및 장치에 관한 것이다.
본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법은, 소정의 선택 명령에 따라, 동시 구동되는 복수의 게스트 운영체제 중 선택된 적어도 하나의 게스트 운영체제에 대해 화면 출력 권한을 부여하는 단계; 및 상기 화면 출력 권한이 부여되지 아니한 나머지 게스트 운영체제에 대해서는 화면 출력과 관련된 일련의 그래픽 작업을 보류하는 단계를 포함한다.
운영체제(Operating System; OS), 가상 머신(virtual machine; VM), 호스트 운영체제(host OS), 게스트 운영체제(guest OS), 하이퍼바이저(Hypervisor)

Description

게스트 운영체제의 화면 출력 제어 방법 및 장치{Method and apparatus for controlling screen display of guest operating system}
도 1은 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 장치의 논리적인 계층 구조를 나타낸 블록도,
도 2는 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 권한의 변경 과정을 나타낸 흐름도,
도 3은 본 발명의 일 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법을 나타낸 흐름도,
도 4는 본 발명의 다른 실시에에 따른 게스트 운영체제의 화면 출력 제어 방법을 나타낸 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : 하이퍼바이저(hypervisor) 12a, 12b : 게스트 운영체제
14a, 14b : 어플리케이션 16a, 16b : 프레임 버퍼
18a, 18b : 프레임 버퍼 드라이버 20 : LCD 패널
22 : LCD 컨트롤러 24 : 입력부
본 발명은 게스트 운영체제의 화면 출력 제어 방법 및 장치에 관한 것으로서, 보다 상세하게는 불필요한 작업을 최소화하여 시스템 성능을 향상시킬 수 있는 게스트 운영체제의 화면 출력 제어 방법 및 장치에 관한 것이다.
운영체제(Operating System, OS)는 개인용 컴퓨터(personal computer; PC)와 같은 컴퓨터 장치에서, 사용자가 하드웨어를 보다 용이하게 사용할 수 있도록 인터페이스를 제공해 주는 프로그램들의 집합으로서, 프로세서, 기억 장치, 입출력 장치, 통신 장치, 데이터 등의 자원을 관리한다.
개인용 컴퓨터 장치에 탑재되는 운영체제는, 운영체제의 시초라 할 수 있는 IBM 시스템/360 이 개발된 이래, MS사의 도스(DOS), window 3.1, window 95, window 98 등을 거쳐 window XP 로 발전해오고 있다. 이에 비해 고성능의 마이크로프로세서가 탑재된 워크스테이션이나 서버용 컴퓨터 장치에는 window NT, window 2000, UNIX, UNIX가 변형된 운영체제인 Solaris나 LINUX 등이 널리 사용되고 있다.
한편, 사용자들은 목적이나 필요에 따라 하나의 기록 매체에 복수의 운영체제를 설치하여 사용하기도 한다. 예를 들면, 하나의 기록 매체에서 논리적으로 분할된 두 영역에 각각 window XP 및 LINUX를 설치하고, 각각의 운영체제 상에 해당 운영체제에서 지원하는 어플리케이션들을 설치한 후, 컴퓨터 장치가 원하는 운영체제로 부팅되도록 하여, 해당 운영체제에서의 작업을 수행한다.
이와 같이, 복수의 운영체제를 설치하고, 사용자에 의해 선택된 운영체제로 부팅되도록 하는 것을 멀티부팅이라고 한다. 그런데 멀티부팅에 있어, 소정 운영체 제에서 다른 운영체제로 전환하기 위해서는 컴퓨터 장치를 재부팅해야 한다는 번거로움이 있다.
이러한 문제를 해결하기 위해 종래에는 하나의 운영체제 내에서 다른 종류의 운영체제를 사용할 수 있도록 하는 가상화 기술(Virtualization Technology)이 제시되었다.
좀 더 구체적으로, 가상화 기술은, 호스트 운영체제(host OS) 상에 가상화 계층(Virtualization Layer)을 형성하거나 직접 가상화 계층을 제공하는 하이퍼바이저(Hypervisor)를 두고, 이 가상화 계층 상에 복수의 논리적인 가상 머신(virtual machine)이 생성되도록 한다. 복수의 가상 머신에는 각각 게스트 운영체제(guest OS)가 설치될 수 있으며, 각각의 게스트 운영체제 상에는 해당 게스트 운영체제에서 지원되는 어플리케이션(application)이 설치될 수 있다.
여기서, 복수의 가상 머신에 각각 설치된 게스트 운영체제 간에는 화면 전환이 가능하게 된다.
두 개의 게스트 운영체제가 설치된 경우, 각 게스트 운영체제를 "제 1 게스트 운영체제", "제 2 게스트 운영체제"라고 할 때, 제 1 게스트 운영체제의 화면 출력이 선택되면 제 1 게스트 운영체제의 화면이 출력되고, 제 2 게스트 운영체제의 화면은 출력되지 않는다.
여기서, 제 2 게스트 운영체제에서 동영상 플레이(play) 같은 많은 양의 그래픽 작업을 처리하는 어플리케이션이 동작하는 경우, 제 2 게스트 운영체제는 실제 출력되지도 않을 이미지 데이터를 생성하기 위해 시스템의 많은 리소 스(resource)를 사용하게 되며, 이는 하나의 플랫폼을 공유하는 가상 머신 상에서 결과적으로 다른 게스트 운영체제의 성능을 저하시키는 결과를 초래한다.
상기한 문제는, 가상 머신 상에서 동시에 동작하는 게스트 운영체제의 수가 늘어날수록, 그리고 그러한 게스트 운영체제 상에서 동작하는 어플리케이션의 그래픽 작업량이 많을수록 더욱 증가하게 된다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 불필요한 작업을 최소화하여 시스템 성능을 향상시킬 수 있는 게스트 운영체제의 화면 출력 제어 방법 및 장치를 제공하는 데 그 목적이 있다.
그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법은, 소정의 선택 명령에 따라, 동시 구동되는 복수의 게스트 운영체제 중 선택된 적어도 하나의 게스트 운영체제에 대해 화면 출력 권한을 부여하는 단계; 및 상기 화면 출력 권한이 부여되지 아니한 나머지 게스트 운영체제에 대해서는 화면 출력과 관련된 일련의 그래픽 작업을 보류하는 단계를 포함한다.
상기 목적을 달성하기 위하여 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 장치는, 소정의 선택 명령에 따라, 동시 구동되는 복수의 게스트 운영체제 중 선택된 적어도 하나의 게스트 운영체제에 대해 화면 출력 권한을 부여하는 화면 출력 권한 부여부; 및 상기 화면 출력 권한이 부여되지 아니한 나머지 게스트 운영체제에 대해서는 화면 출력과 관련된 일련의 그래픽 작업을 보류하는 그래픽 제어부를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있으며, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법 및 장치에 대해 설명하도록 한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 실시예에 따른 게스트 운영체제의 화면 출력 제어 장치의 논리적인 계층 구조를 나타낸 블록도이다.
게스트 운영체제의 화면 출력 제어 장치는, 복수의 게스트 운영체제가 동시 구동되는 컴퓨터장치 등의 전자장치에 포함될 수 있다. 이 때 게스트 운영체제의 화면 출력 제어 장치는 하나 또는 복수의 모듈로써 전자장치 내에 구현될 수 있다.
도시된 게스트 운영체제의 화면 출력 제어 장치는, 하이퍼바이저(hypervisor)(10)와, 하이퍼바이저(10) 상에서 동작하는 제 1 및 제 2 게스트 운영체제(12a, 12b)와, 제 1 및 제 2 게스트 운영체제(12a, 12b) 각각에서 동작하는 제 1 및 제 2 어플리케이션(14a, 14b)과, 제 1 및 제 2 게스트 운영체제(12a, 12b) 각각에서 동작하는 제 1 및 제 2 프레임 버퍼(16a, 16b)와, 제 1 및 제 2 게스트 운영체제(12a, 12b) 각각에서 동작하는 커널 레벨((kernel level)의 제 1 및 제 2 프레임 버퍼 드라이버(18a, 18b)와, LCD 패널(20)과, 제 1 및 제 2 프레임 버퍼(16a, 16b)에 저장된 내용을 독출하여 LCD 패널(20)에 출력하는 LCD 컨트롤러(22)와, 화면 전환을 선택 입력하기 위한 입력부(24)와, 제 1 및 제 2 게스트 운영체제(12a, 12b)의 화면 출력을 제어하는 화면 출력 권한 부여부(미도시) 및 그래픽 제어부(미도시)를 포함한다.
여기서, 제 1 어플리케이션(14a), 제 1 프레임 버퍼 드라이버(18a), 제 1 프레임 버퍼(16a)는 제 1 게스트 운영체제(12a) 환경에서 동작하며, 제 2 어플리케이션(14b), 제 2 프레임 버퍼 드라이버(18b), 제 2 프레임 버퍼(16b)는 제 2 게스트 운영체제(12b) 환경에서 동작한다.
물론, 본 실시예에서는 화면 출력을 위한 디스플레이 디바이스가 LCD 장치인 것으로 상술하였으나, 이에 한정되지는 않는다.
또한, 본 실시예에서는 게스트 운영체제가 2개 구동되는 것으로 상술하였으나, 이에 한정되지는 않는다.
하이퍼바이저(10)는 하드웨어와 게스트 운영체제(12a, 12b) 사이에 존재하며, 가상화된 CPU, 메모리를 복수 개 제공함으로써 제한된 자원으로 복수 개의 게스트 운영체제(12a, 12b)를 구동시키는 역할을 담당한다. 구체적으로, 하이퍼바이저(10)는 각각의 게스트 운영체제(12a, 12b)가 자신에게 할당된 메모리 어드레스를 사용할 수 있도록 페이지 테이블 엔트리(Page Table Entry)를 작성한다.
어플리케이션(14a, 14b)은 사용자 레벨의 그래픽 유저 인터페이스(Graphic User Interface: GUI) 어플리케이션을 포함하고, 각각 해당 프레임 버퍼 드라이버(18a, 18b)를 제어한다.
어플리케이션(14a, 14b)은 그래픽 작업을 수행할 때, 어플리케이션 레벨의 그래픽 라이브러리(graphic library), 드라이버 레벨의 그래픽 라이브러리, 하드웨어 레벨의 그래픽 라이브러리를 이용하게 된다.
어플리케이션(14a, 14b)이 드라이버 레벨 또는 하드웨어 레벨의 그래픽 라이브러리를 이용하는 경우에는 해당 프레임 버퍼 드라이버(18a, 18b)에 그 서비스를 요청한다.
그리고, 어플리케이션(14a, 14b)이 어플리케이션 레벨의 그래픽 라이브러리를 이용하는 경우에는 연산 작업을 수행한 후, 연산된 결과인 이미지 데이터를 프레임 버퍼(16a, 16b)를 액세스할 수 있는 가상 어드레스(virtual address)에 쓰게 된다. 그러면, 이미지 데이터는 메모리 맵핑(mapping)에 의하여 프레임 버퍼(16a, 16b)에 직접 쓰여지게 된다.
프레임 버퍼(16a, 16b)는 물리적인 메모리로서, 각 게스트 운영체제(12a, 12b)의 화면에 출력될 내용이 저장된다.
프레임 버퍼 드라이버(18a, 18b)는 어플리케이션(14a, 14b)의 요청에 따라, 내장된 그래픽 라이브러리를 통해 연산 작업을 수행한 후, 프레임 버퍼 드라이버(18a, 18b)와 프레임 버퍼(16a, 16b) 사이의 인터페이스를 통해 연산된 결과인 이미지 데이터를 프레임 버퍼(16a, 16b)에 저장하게 된다.
LCD 컨트롤러(22)는 일정한 주기로 프레임 버퍼(16a, 16b)의 이미지 데이터를 독출하여 LCD 패널(20)에 공급함으로써 실제 화면 출력을 컨트롤하게 된다. LCD 컨트롤러(22)가 이미지 데이터를 가져오기 위해서는 이미지 데이터가 저장되어 있는 프레임 버퍼(16a, 16b)의 물리적인 어드레스를 알아야 하는데 이 때 이용되는 것이 시작 스크린 어드레스(Starting Screen Address: SSA) 레지스터(이하, 'SSA 레지스터'라 함)의 값이다. SSA 레지스터에는 프레임 버퍼(16a, 16b) 드라이버에서 할당받은 프레임 버퍼(16a, 16b)의 물리적인 시작 어드레스가 입력되게 된다.
입력부(24)는 여러 가지 하드웨어 입력 장치 중에 하나가 될 수 있다. 가장 흔한 예로서 키보드나 키패드가 될 수 있으며, 게스트 운영체제(12a, 12b)의 화면 전환 선택 명령이 특정키가 눌려짐으로써 발생할 수 있다.
한편, 입력부(24)를 통한 사용자의 화면 전환 선택 명령뿐만 아니라 기설정된 시스템 요구 명령, 예컨대 특정 어플리케이션이 수행될 때 해당 게스트 운영체 제(12a, 12b)의 화면으로 전환하도록 할 수도 있다. 물론, 이에 국한되지는 않으며 다양한 화면 전환 선택 명령이 적용될 수 있다.
화면 출력 권한 부여부는 하나 또는 복수의 모듈로써 하이퍼바이저(10) 내에 구현될 수 있으며, 그래픽 제어부는 하나 또는 복수의 모듈로써 프레임 버퍼 드라이버(18a, 18b), 어플리케이션(14a, 14b) 중 적어도 하나에 구현될 수 있다.
화면 출력 권한 부여부는 화면 전환이 요구되는 것으로 판단되면, 선택된 게스트 운영체제(12a, 12b)에게 화면 출력 권한을 부여하고, 그 결과를 나머지 게스트 운영체제(12a, 12b)에게 통지한다.
그래픽 제어부는 화면 출력 권한이 없는 게스트 운영체제(12a, 12b)에 대해서는 일련의 그래픽 작업을 보류하도록 한다.
여기서, 그래픽 작업은 프레임 버퍼 드라이버(18a, 18b)가 드라이버 레벨의 그래픽 라이브러리를 통해 연산하는 제 1 작업, 프레임 버퍼 드라이버(18a, 18b)가 프레임 버퍼(16a, 16b)에 이미지 데이터를 기록하는 제 2 작업, 어플리케이션(14a, 14b)이 어플리케이션 레벨의 그래픽 라이브러리를 통해 연산하는 제 3 작업, 어플리케이션(14a, 14b)이 프레임 버퍼(16a, 16b)에 이미지 데이터를 기록하는 제 4 작업 중 적어도 하나를 포함한다.
한편, 화면 출력 권한이 없는 게스트 운영체제(12a, 12b)에 대해서 그래픽 작업이 보류되고 있는 중에, 다시 화면 출력 권한을 부여받게 되면, 재생되는 화면과 이전 화면과의 시간 상의 갭(gap)에 의해 화면 불일치 현상이 나타날 수 있다. 이 현상을 방지하기 위하여, 그래픽 제어부는 기설정된 시간 간격으로 그래픽 작업 을 재개한다.
이러한 구성에 의해 게스트 운영체제(12a, 12b)의 화면 출력 권한이 변경되는 과정을 도 2를 참조하여 설명하기로 한다. 설명하기에 앞서, 부팅시 최초로 화면 출력 권한을 가지는 게스트 운영체제가 제 1 게스트 운영체제(12a)인 것으로 하이퍼바이저(10)에 미리 셋팅되어 있다고 가정하자.
먼저, 플랫폼의 전원이나 리셋 스위치가 눌려지면(S10), 최초로 하이퍼바이저(10)가 동작된다(S12). 하이퍼바이저(10)가 구동되면서 하드웨어를 초기화시키고 리소스를 공유하기 위해 적절히 배분하는 작업을 수행한다(S14). 그 후, 게스트 운영체제(12a, 12b)가 차례로 부팅된다.
첫번째로 제 1 게스트 운영체제(12a)가 부팅되게 되는데, 제 1 게스트 운영체제(12a)는 구동시에 제 1 프레임 버퍼 드라이버(18a)를 초기화 시키고, 프레임 버퍼 드라이버(18a)가 초기화되면서 LCD 패널(20)에 출력될 이미지를 저장하는 공간으로서 제 1 프레임 버퍼(16a)가 할당된다(S16). 이 때, 제 1 프레임 버퍼 드라이버(18a)에는 출력될 이미지에 대한 해상도, 비트당 컬러수 등에 대한 정보가 저장된다.
그리고, LCD 컨트롤러(22)가 초기화 되는데, LCD 컨트롤러(22) 초기화는 LCD 컨트롤러(22) 레지스터에 특정값을 입력함으로써 이루어진다. 특히, SSA 레지스터에는 제 1 프레임 버퍼 드라이버(18a)에서 할당받은 제 1 프레임 버퍼(16a)의 물리적인 시작 어드레스가 입력된다(S18). 이에, 제 1 게스트 운영체제(12a)가 화면 출력 권한을 가지게 된다(S20).
그 다음, 두 번째 부팅되는 제 2 게스트 운영체제(12b) 또한 제 1 게스트 운영체제(12a)와 마찬가지의 과정으로 구동되는데(S22), 제 2 프레임 버퍼(16b)의 물리적인 시작 어드레스를 SSA 레지스터에 입력하는 것이 아니라, 화면 전환 요구를 위하여 특정 장소에 저장한다(S24).
이 후, 화면 전환 요청이 있는 경우(S26), 해당 프레임 버퍼(16a, 16b)의 물리적인 시작 어드레스를 SSA 레지스터에 기록하게 되고(S28), 이에 따라 선택된 게스트 운영체제(12a, 12b)에게 화면 출력 권한이 부여된다(S30).
또한, 하이퍼바이저(10)는 화면 출력 권한 변경 사실을 나머지 게스트 운영체제(12a, 12b)에게 통지한다(S32).
물론, 본 실시예에서 부팅 후 최초로 화면 전환 요구 명령이 있게 되면, S28 단계에서 제 2 프레임 버퍼(16b)의 시작 어드레스를 SSA 레지스터에 기록하고, S30 단계에서 제 2 게스트 운영체제(12b)에게 화면 출력 권한이 부여되며, S32 단계에서 화면 출력 권한 변경 사실을 제 1 게스트 운영체제(12a)에게 통지한다.
도 3은 본 발명의 일 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법을 프레임 버퍼 드라이버(18a, 18b) 단에서 구현한 것을 나타낸 흐름도로서, 어플리케이션(14a, 14b)이 프레임 버퍼 드라이버(18a, 18b) 레벨의 그래픽 라이브러리를 호출하여 사용하는 경우이다.
먼저, 프레임 버퍼 드라이버(18a, 18b)는 어플리케이션(14a, 14b)으로부터 드라이버 레벨의 그래픽 라이브러리 수행을 호출받게 되면(S40), 그 루틴을 수행하기에 앞서 먼저 자신이 속한 게스트 운영체제(12a, 12b)가 화면 출력 권한을 가진 게스트 운영체제인가를 확인한다(S42).
확인 결과, 화면 출력 권한을 가진 게스트 운영체제라면 정상적으로 그래픽 라이브러리 루틴을 수행하고(S44), 프레임 버퍼(16a, 16b)에 그 내용을 기록하여 화면이 출력되도록 한다(S46, S48). 그러나, 화면 출력 권한을 가지지 않은 게스트 운영체제라면 기설정된 시간이 만료되었는지를 체크한다(S50).
만약, 기설정된 시간이 만료된 경우에는 타이머를 리셋하고(S52), 그래픽 작업을 수행한다(S44, S46, S48). 그러나, 기설정된 시간이 만료되지 않은 경우에는 그래픽 작업을 수행하지 않고, S40 단계로 복귀하여 어플리케이션이 드라이버 레벨의 그래픽 라이브러리를 호출하는지 재확인한다.
예컨대, 현재 화면 출력 권한을 가진 게스트 운영체제가 제 1 게스트 운영체제(12a)이고, 드라이버 레벨의 그래픽 라이브러리 수행을 호출한 어플리케이션이 제 1 어플리케이션(14a)인 경우, 제 1 프레임 버퍼 드라이버(18a)는 정상적으로 그래픽 라이브러리 루틴을 수행하고 그 결과를 프레임 버퍼(16a)에 기록하여 화면에 출력되도록 한다.
그러나, 만약 현재 화면 출력 권한을 가진 게스트 운영체제가 제 1 게스트 운영체제(12a)이고, 드라이버 레벨의 그래픽 라이브러리 수행을 호출한 어플리케이션이 제 2 어플리케이션(14b)인 경우, 화면 출력 권한이 없으므로 기설정된 시간 간격으로 그래픽 작업을 재개한다.
도 4는 본 발명의 다른 실시예에 따른 게스트 운영체제의 화면 출력 제어 방법을 어플리케이션(14a, 14b) 단에서 구현한 것을 나타낸 흐름도로서, 어플리케이 션(14a, 14b)이 화면 출력을 위해 어플리케이션 레벨의 그래픽 라이브러리를 사용하여 이미지 데이터를 생성한 후, 메모리 맵핑을 이용하여 해당 프레임 버퍼(16a, 16b)에 기록하는 경우이다.
어플리케이션(14a, 14b)이 수행되면(S60), 어플리케이션(14a, 14b)은 프레임 버퍼 드라이버(18a, 18b)의 메모리 맵 함수의 도움을 받아 프레임 버퍼(16a, 16b)를 액세스할 수 있는 가상 어드레스를 인지한다(S62).
그리고, 하이퍼바이저(10)에게 현재 화면 출력 권한을 가진 게스트 운영체제(12a, 12b)의 ID(Identification)를 요청하게 된다(S64). 어플리케이션(14a, 14b)은 하이퍼바이저(10)로부터 받은 게스트 운영체제의 ID와 자신이 속한 게스트 운영체제의 ID를 비교하여 일치하면 그래픽 작업을 수행한다(S66, S68, S70, S72). 그러나 비교 결과, 일치하지 않으면 기설정된 시간이 만료되었는지 확인한다(S74). 기설정된 시간이 만료되면 타이머를 리셋하고(S76), 그래픽 작업을 재개한다(S68, S70, S72). 그러나, 기설정된 시간이 만료되지 않은 경우에는 그래픽 작업을 수행하지 않고, S64 단게로 복귀하여 하이퍼바이저(10)에게 현재 화면 출력 권한을 가진 게스트 운영체제(12a, 12b)의 ID(Identification)를 재요청하게 된다.
예를 들어, 현재 화면 출력 권한을 가진 게스트 운영체제가 제 1 게스트 운영체제(12a)이고, 수행된 어플리케이션이 제 1 어플리케이션(14a)인 경우, 제 1 어플리케이션(14a)은 어플리케이션 레벨의 그래픽 라이브러리를 정상적으로 수행하고, 제 1 프레임 버퍼(16a)에 그 결과를 기록한다.
그러나, 현재 화면 출력 권한을 가진 게스트 운영체제가 제 2 게스트 운영체 제(12b)이고, 수행된 어플리케이션이 제 1 어플리케이션(14a)인 경우 그래픽 작업을 수행하지 않고, 기설정된 시간 간격으로 그래픽 작업을 재개한다.
한편, 전술한 실시예들에서 기설정된 시간은 제조시 화면 불일치 현상을 방지하기 위한 시간으로 미리 셋팅되어 있는 것이 바람직하다. 물론, 사용자에 의해 기설정된 시간을 변경하도록 하는 것도 가능하다.
그리고, 전술한 실시예들에서는 제 1 작업, 제 2 작업을 동시에 보류 및 재개하고, 제 3 작업, 제 4 작업을 동시에 보류 및 재개하는 것으로 상술하였으나, 제 1 내지 제 4 작업 중 적어도 하나를 보류 및 재개하도록 하는 것도 가능하다.
한편, 도 3 및 도 4에서 기설정된 시간이 만료되지 않은 경우 S40 단계 및 S64 단계로 각각 복귀하는 것으로 상술하였으나, 기설정된 시간이 만료되지 않은 경우 기설정된 시간이 만료되었는지를 재확인하는 과정으로 구성할 수도 있음은 물론이다.
이와 같이, 본 발명은 화면 출력 권한이 없는 게스트 운영체제에 대해서는 그래픽 작업을 보류하는 한편, 일정 시간 간격으로 그래픽 작업을 재개함으로써 불필요한 작업을 최소화하여 시스템 성능을 향상시킬 수 있을 뿐 아니라, 화면 불일치 현상을 방지할 수 있다.
이상과 같이 예시된 도면을 참조로 하여, 본 발명에 따른 게스트 운영체제의 화면 출력 제어 방법 및 장치에 대하여 설명하였으나, 본 발명은 본 명세서에 개시된 실시예와 도면에 의해 한정되지 않으며, 그 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같이 본 발명에 의한 게스트 운영체제의 화면 출력 제어 방법 및 장치에 따르면, 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 불필요한 작업을 최소화하여 시스템 성능을 향상시킬 수 있다.
둘째, 화면 출력 권한이 없던 게스트 운영체제가 화면 출력 권한을 부여받을 때 나타나는 화면 불일치 현상을 방지할 수 있다.

Claims (5)

  1. 소정의 선택 명령에 따라, 동시 구동되는 복수의 게스트 운영체제 중 선택된 적어도 하나의 게스트 운영체제에 대해 화면 출력 권한을 부여하는 단계; 및
    상기 화면 출력 권한이 부여되지 아니한 나머지 게스트 운영체제에 대해서는 화면 출력과 관련된 일련의 그래픽 작업을 보류하는 단계를 포함하는, 게스트 운영체제의 화면 출력 제어 방법.
  2. 제 1 항에 있어서,
    상기 그래픽 작업을 보류하는 단계는,
    상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 프레임 버퍼 드라이버가 드라이버 레벨의 그래픽 라이브러리를 통해 연산하는 제 1 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 프레임 버퍼 드라이버가 프레임 버퍼에 이미지 데이터를 기록하는 제 2 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 어플리케이션이 어플리케이션 레벨의 그래픽 라이브러리를 통해 연산하는 제 3 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 어플리케이션이 프레임 버퍼에 이미지 데이터를 기록하는 제 4 작업 중 적어도 하나를 보류하는 단계를 포함하는, 게스트 운영체제의 화면 출력 제어 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    기설정된 시간 간격으로 상기 보류된 그래픽 작업을 재개시키는 단계를 더 포함하는, 게스트 운영체제의 화면 출력 제어 방법.
  4. 소정의 선택 명령에 따라, 동시 구동되는 복수의 게스트 운영체제 중 선택된 적어도 하나의 게스트 운영체제에 대해 화면 출력 권한을 부여하는 화면 출력 권한 부여부; 및
    상기 화면 출력 권한이 부여되지 아니한 나머지 게스트 운영체제에 대해서는 화면 출력과 관련된 일련의 그래픽 작업을 보류하는 그래픽 제어부를 포함하는, 게스트 운영체제의 화면 출력 제어 장치.
  5. 제 4 항에 있어서,
    상기 그래픽 제어부는,
    상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 프레임 버퍼 드라이버가 드라이버 레벨의 그래픽 라이브러리를 통해 연산하는 제 1 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 프레임 버퍼 드라이버가 프레임 버퍼에 이미지 데이터를 기록하는 제 2 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 어플리케이션이 어플리케이션 레벨의 그래픽 라이브러리를 통해 연산하는 제 3 작업, 상기 화면 출력 권한이 부여되지 아니한 게스트 운영체제에서 구동되는 어플리케이션이 프레임 버 퍼에 이미지 데이터를 기록하는 제 4 작업 중 적어도 하나를 보류하고, 기설정된 시간 간격으로 상기 보류된 그래픽 작업을 재개시키는, 게스트 운영체제의 화면 출력 제어 장치.
KR1020070016062A 2007-02-15 2007-02-15 게스트 운영체제의 화면 출력 제어 방법 및 장치 KR20080076304A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070016062A KR20080076304A (ko) 2007-02-15 2007-02-15 게스트 운영체제의 화면 출력 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070016062A KR20080076304A (ko) 2007-02-15 2007-02-15 게스트 운영체제의 화면 출력 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20080076304A true KR20080076304A (ko) 2008-08-20

Family

ID=39879589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070016062A KR20080076304A (ko) 2007-02-15 2007-02-15 게스트 운영체제의 화면 출력 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20080076304A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101335870B1 (ko) * 2011-02-04 2013-12-02 후지쯔 가부시끼가이샤 정보 처리 장치, 프로그램 및 화면 표시 방법
US8661360B2 (en) 2009-11-23 2014-02-25 Samsung Electronics Co., Ltd. Apparatus and method for switching between virtual machines
US11153450B2 (en) 2017-12-14 2021-10-19 Hewlett-Packard Development Company, L.P. Providing of user interface screen based on different user interface platforms

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8661360B2 (en) 2009-11-23 2014-02-25 Samsung Electronics Co., Ltd. Apparatus and method for switching between virtual machines
KR101335870B1 (ko) * 2011-02-04 2013-12-02 후지쯔 가부시끼가이샤 정보 처리 장치, 프로그램 및 화면 표시 방법
US11153450B2 (en) 2017-12-14 2021-10-19 Hewlett-Packard Development Company, L.P. Providing of user interface screen based on different user interface platforms

Similar Documents

Publication Publication Date Title
KR100746025B1 (ko) 운영체제 스위칭 장치 및 방법
JP4291964B2 (ja) 仮想計算機システム
JP5405799B2 (ja) 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US8613000B2 (en) Method and apparatus for dynamically assigning I/O device in virtual machine system
US8924703B2 (en) Secure virtualization environment bootable from an external media device
JP3659062B2 (ja) 計算機システム
US7434224B2 (en) Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
CN101714091B (zh) 用于在操作系统初始化期间显示平台图形的方法和系统
US7698706B2 (en) Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
US20070113227A1 (en) Efficient operating system operation on a hypervisor
JP4982347B2 (ja) 画像情報の更新を検出するプログラム、方法および画像処理装置
KR20080094952A (ko) 보안 운영 시스템 스위칭
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
WO2012001787A1 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
KR20080076304A (ko) 게스트 운영체제의 화면 출력 제어 방법 및 장치
US11263039B2 (en) High performance attachable writeable volumes in VDI desktops
KR101564293B1 (ko) 장치 가상화 방법 및 장치
JP2005182780A (ja) ランタイムデータ領域を設定するプラットフォーム独立方法
KR20220048311A (ko) 가상화 환경에서 사용자 가상머신의 화면을 미러링하는 방법
JP5584811B2 (ja) 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
KR101645341B1 (ko) 멀티 컴퓨터
JP4548514B2 (ja) 仮想計算機システムの制御方法
JP5637934B2 (ja) 仮想化装置、仮想化装置制御方法、仮想化装置制御プログラム
JP4292220B2 (ja) 仮想計算機システム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination