KR101826769B1 - 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들 - Google Patents

다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들 Download PDF

Info

Publication number
KR101826769B1
KR101826769B1 KR1020167017891A KR20167017891A KR101826769B1 KR 101826769 B1 KR101826769 B1 KR 101826769B1 KR 1020167017891 A KR1020167017891 A KR 1020167017891A KR 20167017891 A KR20167017891 A KR 20167017891A KR 101826769 B1 KR101826769 B1 KR 101826769B1
Authority
KR
South Korea
Prior art keywords
operating system
computing device
copying
response
receiving
Prior art date
Application number
KR1020167017891A
Other languages
English (en)
Other versions
KR20160094434A (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 KR20160094434A publication Critical patent/KR20160094434A/ko
Application granted granted Critical
Publication of KR101826769B1 publication Critical patent/KR101826769B1/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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

운영 체제들 사이에서의 전환을 위한 기술들은 메인 메모리 및 데이터 스토리지 디바이스를 갖는 컴퓨팅 디바이스를 포함한다. 이러한 컴퓨팅 디바이스는 제1 운영 체제를 실행하고, 운영 체제 토글 이벤트를 모니터링한다. 토글 이벤트는 소프트웨어 명령, 하드웨어 버튼누름, 또는 다른 사용자 명령일 수 있다. 토글 이벤트에 응답하여, 컴퓨팅 디바이스는 제1 운영 체제의 상태 데이터를 예약된 메모리 영역에 복사한다. 상태 데이터를 복사한 이후, 컴퓨팅 디바이스는 제2 운영 체제를 실행한다. 제2 운영 체제가 실행되는 동안, 컴퓨팅 디바이스는 제1 운영 체제의 상태 데이터를 예약된 메모리 영역으로부터 데이터 스토리지 디바이스에 복사한다. 컴퓨팅 디바이스는 제2 운영 체제의 실행 동안 운영 체제 토글 이벤트들을 모니터링하고, 유사하게 제1 운영 체제로 다시 실행을 토글할 수 있다. 다른 실시예들이 설명되고 청구된다.

Description

다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들{TECHNOLOGIES FOR OPERATING SYSTEM TRANSITIONS IN MULTIPLE-OPERATING-SYSTEM ENVIRONMENTS}
<관련된 미국 특허 출원에 대한 상호 참조>
본 출원은 2014년 2월 6일자 출원된 "DEEP CACHING OF TRANSITIONS IN DUAL OS ENVIRONMENTS"라는 제목의 미국 임시 출원 제61/936,610호 및 2014년 6월 26일자 출원된 "TECHNOLOGIES FOR OPERATING SYSTEM TRANSITIONS IN MULTIPLE-OPERATING-SYSTEM ENVIRONMENTS"라는 제목의 미국 실용신안 특허 출원 제14/316,370에 대한 우선권을 주장한다.
일부 컴퓨팅 디바이스들은 제조자에 의해 설치되는 다중 OS들(operating systems)을 탑재하고 있다. 예를 들어, 컴퓨팅 디바이스는 Microsoft® Windows™과 같은 범용 운영 체제 및 Android™과 같은 모바일 지향 운영 체제 양자 모두를 포함할 수 있다. 통상적인 컴퓨팅 디바이스들은 듀얼-부트 또는 멀티-부트 구성으로 다중 운영 체제들을 지원할 수 있다. 그러나, 멀티-부트 구성으로 운영 체제들 사이의 스위칭은 지루할 수 있고, 미사용된 운영 체제(들)이 셧 다운하여 상태를 잃을 것을 일반적으로 요구한다. 일부 컴퓨팅 디바이스들은 일부 이벤트(예를 들어, 시스템 이벤트 또는 하드웨어 버튼 누름이나 소프트웨어 명령 같은 사용자 시작 이벤트)에 기초하여 액티브 운영 체제들 상태를 잃지 않고도 운영 체제들 사이에서 "토글링(toggling)"할 수 있다. 이러한 컴퓨팅 디바이스들은, 예를 들어 액티브 운영 체제로 하여금 디스크에 대해 하이버네이트하게(hibernate) 함으로써(예를 들어, ACPI "S4" 전력 관리 상태에 진입함으로써), 전력 관리 특징들을 사용하여 운영 체제들 사이에서 토글링할 수 있다. 이러한 하이버네이션(hibernation) 기반의 운영 체제 토글링은 통상적으로 "S4 토글(toggle)"이라 한다.
ACPI "S3" 전력 관리 상태는 컴퓨팅 디바이스들이 휘발성 메모리의 콘텐츠들을 유지하면서 저전력 상태에 진입하게 한다. 많은 최근 프로세서들, 칩세트들 및 SoC들(systems-on-chips)은 ACPI S3 휴면 상태 대신에 접속-대기(connected-standby) 전력 관리 상태일 수 있다. 접속-대기 전력 관리 상태는 이러한 컴퓨팅 디바이스들이 저전력 상태에 있는 동안 특정 네트워크 작업들을 수행하게 할 수 있다. 많은 현재의 컴퓨팅 디바이스들은 S3 휴면 상태에 진입할 수 없다. 추가적으로, 컴퓨팅 디바이스가 S3 모드에 놓이면, 접속 대기의 전력 활용 이점들이 손실될 수 있다.
본 명세서에 설명되는 개념들은 첨부 도면들에서 예를 들기 위해 예시된 것이고 제한을 위한 것이 아니다. 도시의 간소함 및 명확함을 위해, 도면들에 도시된 엘리먼트들이 반드시 일정한 비율로 그려진 것은 아니다. 적절하다고 여겨지는 경우에, 대응하거나 유사한 엘리먼트들을 나타내기 위해서 도면들 간에 참조 레이블들이 반복되었다.
도 1은 운영 체제들 사이에서 전환하기 위한 컴퓨팅 디바이스의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 다양한 다중-운영-체제 환경에서 운영 체제 전환 성능을 도시하는 그래프이다.
도 3은 도 1의 컴퓨팅 디바이스의 환경의 적어도 하나의 실시예의 단순화된 블록도이다.
도 4는 도 1 및 도 3의 컴퓨팅 디바이스에 의해 실행될 수 있는 운영 체제들 사이에서 전환하기 위한 방법의 적어도 일 실시예의 단순화된 흐름도이다.
본 개시내용의 개념들은 다양한 수정사항들 및 대안적인 형태들을 허용하지만, 그 특정 실시예들이 도면들에서 예를 드는 식으로 도시되어 있으며 또한 본 명세서에 상세히 설명될 것이다. 그러나, 본 개시내용의 개념들을 개시된 특정 형태들로 제한하려는 의도는 없으며, 오히려, 그 의도는 본 개시내용 및 첨부된 청구항들에 부합하는 모든 수정사항들, 등가물들, 및 대안들을 포괄하려는 것임이 이해되어야 한다.
본 명세서에서 "일 실시예(one embodiment)", "실시예(an embodiment)", "예시적인 실시예(an illustrative embodiment)" 등에 대한 언급들은, 설명되는 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 그러한 특정 특징, 구조, 또는 특성을 포함할 수도 있고 또는 그렇지 않을 수도 있다는 점을 나타낸다. 또한, 이러한 문구들이 동일한 실시예를 반드시 지칭하는 것은 아니다. 더욱이, 특정 특징, 구조, 또는 특성이 실시예와 연관되어 설명될 때, 이러한 특징, 구조, 또는 특성을 명백히 설명되든지 아니든지 간에 다른 실시예들과 연관하여 실행하는 것은 이 기술분야의 통상 기술자의 지식 내에 있다는 점을 언급한다. 또한, "A, B, 및 C 중 적어도 하나의" 형태로 목록에 포함되는 아이템들은 (A); (B); (C); (A 및 B); (A 및 C); (B 및 C); 또는 (A, B, 및 C)를 의미할 수 있다는 점이 이해되어야 한다. 유사하게, "A, B, 또는 C 중 적어도 하나"의 형태로 목록화되는 아이템들은 (A); (B); (C); (A 및 B); (A 및 C); (B 및 C); 또는 (A, B, 및 C)를 의미할 수 있다.
개시된 실시예들은, 일부 경우들에서, 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 개시된 실시예들은 또한 하나 이상의 프로세서들에 의해 판독되고 실행될 수 있는, 일시적, 또는 비-일시적 머신 판독가능(예를 들어, 컴퓨터 판독가능) 저장 매체에 의해 전달되거나 또는 이러한 저장 매체상에 저장되는 명령어들로서 구현될 수 있다. 머신 판독가능 저장 매체는 머신에 의해 판독가능한 형태로 정보를 저장하거나 송신하기 위한 임의의 스토리지 디바이스, 메커니즘 또는 다른 물리적 구조체(예를 들어, 휘발성 또는 비휘발성 메모리, 매체 디스크(media disc) 또는 다른 매체 디바이스(media device))로서 구현될 수 있다.
도면들에서, 일부 구조적 또는 방법 특징들은 특정 배열들 및/또는 순서들로 도시될 수 있다. 그러나, 이러한 특정 배열들 및/또는 순서들은 요구되지 않을 수 있다는 점이 이해되어야 한다. 오히려, 일부 실시예들에서, 이러한 특징들은 예시적 도면들에 도시된 것과는 상이한 방식 및/또는 순서로 배열될 수 있다. 추가적으로, 특정 도면에 구조적 또는 방법적 특징을 포함시키는 것은 이러한 특징이 모든 실시예들에서 요구된다는 점을 암시하고자 하는 것이 아니며, 일부 실시예들에서는, 포함되지 않을 수도 있고 다른 특징들과 조합될 수도 있다.
이제 도 1을 참조하면, 다중 운영 체제들 사이에서 전환하기 위한 예시적 컴퓨팅 디바이스(100)는, 프로세서(120), I/O 서브시스템(122), 메모리(124), 및 데이터 스토리지 디바이스(130)를 포함한다. 사용시, 이하 설명되는 바와 같이, 컴퓨팅 디바이스(100)는 다중 운영 체제들을 실행하도록 구성된다. 운영 체제들 중 하나의 실행 동안, 컴퓨팅 디바이스(100)는 운영 체제 토글 이벤트들을 모니터링한다. 예를 들어, 사용자 선택(예를 들어, 소프트웨어 메뉴 선택, 사전 정의된 키누름, 하드웨어 버튼 누름, 또는 임의의 다른 사용자 액션)에 응답하여, 운영 체제 토글 이벤트가 생성될 수 있다. 운영 체제 토글 이벤트에 응답하여, 컴퓨팅 디바이스(100)는 액티브 운영 체제의 상태 데이터를 메모리(124)의 예약된 영역으로 복사하고, 후속하여 다른 운영 체제들을 착수한다. 후속 운영 체제가 실행되는 동안, 컴퓨팅 디바이스(100)는 상태 데이터를 메모리(124)의 예약된 영역으로부터 데이터 스토리지 디바이스(130)에 복사한다. 메모리(124)에 상태 데이터를 복사하는 것은 운영 체제들 사이에서 토글링할 때 요구되는 스토리지 I/O의 양을 감소시킬 수 있고, 따라서 상대적으로 느리거나 또는 저-대역폭인 데이터 스토리지 디바이스(130)를 갖는 디바이스들에 대해 특히, 성능을 향상시킬 수 있다. 추가적으로, 메모리(124)에 상태 데이터를 복사하는 것은 접속-대기 전력 관리 상태는 가능하지만 ACPI S3 휴면 상태는 불가능한 현재의 컴퓨팅 디바이스들에 의해 수행될 수 있다.
이제 도 2를 참조하면, 그래프(200)는 본 개시내용을 이용하여 달성될 수 있는 운영 체제 토글 성능 이득들을 도시한다. 커브(202)는 S4 토글을 사용하는 통상적인 컴퓨팅 디바이스에 의해 나타날 수 있는 토글 성능을 도시한다(즉, S4 ACPI 하이버네이션 상태에 진입함). 커브(202)는 여러 상이한 타입의 데이터 스토리지 디바이스들을 사용하는 메인 메모리의 2 기가바이트(2 GB)에 대한 S4 토글을 완료하는데 요구될 수 있는 시간을 도시한다. 통상적인 S4 토글 동안 저장되는데 및/또는 복원되는데 요구되는 데이터의 평균량은 500 메가바이트 미만일 수 있지만, 다를 수 있다. S4 토글 시간은 스토리지 I/O의 평균 속도, 및 토글 동안 초래되는 오버헤드 플러스 대략 2초의 스위칭 시간을 반영할 수 있다. 도시된 바와 같이, 평균 S4 토글 시간은 일부 실시예들에서 SSD들(solid-state disks)에 대해 9초, HDD들(hard disk drives)에 대해 15초, 그리고 eMMC(embedded flash media)에 대해 18초일 수 있다. 따라서, eMMC와 같은 더 느린 데이터 스토리지 디바이스를 사용하는 S4 토글링에 요구되는 시간은 사실상 SSD를 사용하는 것에 비해 2배일 수 있다. 그러나, 많은 활용되는 컴퓨팅 디바이스들은 비용을 줄이기 위해 더 느린 데이터 스토리지 디바이스들을 포함한다. 실제로, eMMC는 많은 현재의 태블릿 컴퓨팅 디바이스들에 사용된다.
커브(204)는 본 개시내용에 따른 컴퓨팅 디바이스(100)에 의해 달성될 수 있는 토글 성능을 도시한다. 커브(204)는 액티브 메인 메모리(124)의 2 GB 및 여러 상이한 타입의 데이터 스토리지 디바이스들(130)에 대한 운영 체제들 사이에서 토글하는데 요구될 수 있는 시간을 도시한다. S4 토글과 유사하게, 저장되는데 및/또는 복원되는데 요구되는 데이터의 평균량은 500 메가바이트 미만일 수 있지만, 다를 수 있다. 상술된 바와 같이, 운영 체제 토글 시간은 스토리지 I/O의 평균 속도, 및 토글 동안의 오버헤드 플러스 대략 2초의 스위칭 시간을 반영할 수 있다. 도시된 바와 같이, 본 개시내용에 대한 평균 토글 시간은 SSD들에 대해 7초, HDD들에 대해 10초, 그리고 eMMC에 대해 8초일 수 있다. 따라서, 도 2에 도시된 바와 같이, 본 개시내용에 따른 컴퓨팅 디바이스(100)는, 특히 eMMC와 같은 더 느린 데이터 스토리지 디바이스(130)를 사용할 때, 통상적 S4 토글에 비해 운영 체제 토글 성능을 향상시킬 수 있다.
다시 도 1을 참조하면, 컴퓨팅 디바이스(100)는 운영 체제들과 본 명세서에 설명되는 기능들을 달리 수행하는 것 사이에서 전환할 수 있는 임의 타입의 디바이스로서 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(100)는, 제한 없이, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 모바일 컴퓨팅 디바이스, 웨어러블 컴퓨팅 디바이스, 컴퓨터, 데스크탑 컴퓨터, 워크스테이션, 서버 컴퓨터, 분산형 컴퓨팅 시스템, 멀티프로세서 시스템, 소비자 가전 디바이스, 스마트 응용기기(smart appliance), 및/또는 운영 체제들 사이에서 전환할 수 있는 임의의 다른 컴퓨팅 디바이스로서 구현될 수 있다. 도 1에 도시된 바와 같이, 예시적인 컴퓨팅 디바이스(100)는, 프로세서(120), I/O 서브시스템(122), 메모리(124), 및 데이터 스토리지 디바이스(130)를 포함한다. 물론, 컴퓨팅 디바이스(100)가, 다른 실시예들에서는, 태블릿 컴퓨터에서 흔히 볼 수 있는 것들과 같은, 다른 또는 추가적인 컴포넌트들(예를 들어, 다양한 입력/출력 디바이스들)을 포함할 수 있다. 추가적으로, 일부 실시예들에서, 예시적 컴포넌트들 중 하나 이상은 다른 컴포넌트 내에 통합되거나, 달리 그 일부를 형성할 수 있다. 예를 들어, 메모리(124) 또는 그 일부분들은 일부 실시예들에서 프로세서(120)에 통합될 수 있다.
프로세서(120)는 본 명세서에 설명되는 기능들을 수행할 수 있는 임의의 타입의 프로세서로서 구현될 수 있다. 예를 들어, 프로세서는 싱글 또는 멀티-코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러, 또는 다른 프로세서나 처리/제어 회로로서 구현될 수 있다. 유사하게, 메모리(124)는 본 명세서에서 설명되는 기능들을 수행할 수 있는 임의의 타입의 휘발성 또는 비-휘발성 메모리 또는 데이터 스토리지로서 구현될 수 있다. 메모리(124)는 액티브 메모리 영역(126) 및 예약된 메모리 영역(128)으로 나뉜다. 동작시, 메모리(124)의 액티브 메모리 영역(126)은, 운영 체제들, 애플리케이션들, 프로그램들, 라이브러리들, 및 드라이버들과 같은, 컴퓨팅 디바이스(100)의 동작 동안 사용되는 다양한 데이터 및 소프트웨어를 저장할 수 있다. 예약된 메모리 영역(128)은 컴퓨팅 디바이스(100)에 의해 실행되는 운영 체제들, 애플리케이션들, 또는 다른 프로세스들에 의한 일반적 사용으로부터 분할되고, 보호되고, 고립되거나, 또는 달리 예약되는 메모리(124)의 임의의 부분으로서 구현될 수 있다. 일부 실시예들에서, 액티브 메모리 영역(126) 및 예약된 메모리 영역(128)은 각각 메모리(124)의 절반을 포함할 수 있다. 예를 들어, 4 기가바이트(4 GB)의 메인 메모리(124)를 갖는 실시예에서, 액티브 메모리 영역(126) 및 예약된 메모리 영역(128)은 각각 2 기가바이트(2 GB)를 차지할 수 있다. 다른 실시예들에서는 임의의 양의 메모리(124)가 예약될 수 있다. 예를 들어, 일부 실시예들에서 예약된 메모리 영역(128)은 메모리(124)의 절반 미만을 차지할 수 있다.
메모리(124)는, 모바일 컴퓨팅 디바이스(100)의 프로세서(120), 메모리(124), 및 다른 컴포넌트들과의 입력/출력 동작들을 용이하게 하기 위한 회로 및/또는 컴포넌트들로서 구현될 수 있는, I/O 서브시스템(122)을 통해 프로세서(120)에 통신가능하게 연결된다. 예를 들어, I/O 서브시스템(122)은, 메모리 제어기 허브들, 입력/출력 제어 허브들, 펌웨어 디바이스들, 통신 링크들(즉, 점-대-점 링크들, 버스 링크들, 배선들, 케이블들, 도광체들, 인쇄 회로 기판 트레이스들 등) 및/또는 입력/출력 동작을 용이하게 하기 위한 다른 컴포넌트들 및 서브시스템로서 구현될 수 있거나, 또는 달리 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(122)은 SoC(system-on-a-chip)의 일부를 형성할 수 있고, 프로세서(120), 메모리(124), 및 컴퓨팅 디바이스(100)의 다른 컴포넌트들과 함께, 단일 집적 회로 칩 상에 통합될 수 있다.
데이터 스토리지 디바이스(130)는, 예를 들어, 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, SSD들(solid state drives), 또는 다른 데이터 스토리지 디바이스들과 같은, 데이터의 단기간 또는 장기간 저장을 위해 구성되는 임의의 타입의 디바이스 또는 디바이스들로서 구현될 수 있다. 일부 실시예들에서, 데이터 스토리지 디바이스(130)는 eMMC와 같은 내장된 플래시 메모리 모듈로서 구현될 수 있다. 데이터 스토리지 디바이스(130)는, 컴퓨팅 디바이스(100)가 저-전력 하이버네이션 상태(예를 들어, ACPI S4 상태)에 있는 동안 디바이스 상태를 저장하는데 사용되는 데이터 스토리지 디바이스(130)의 임의의 파일, 파일 시스템, 블록, 파티션 또는 다른 세그멘트로서 구현될 수 있는, 하이버네이션 파일(132)을 포함할 수 있다. 예를 들어, 하이버네이션 파일(132)은 메모리(124)의 콘텐츠, 프로세서(120)의 상태, 및/또는 다른 디바이스 상태를 저장할 수 있다. 일부 실시예들에서, 디바이스 상태는 하이버네이션 파일(132)의 사이즈를 줄이기 위해 압축되거나, 중복 제거되거나(de-duplicated), 또는 달리 처리될 수 있다. 저-전력 하이버네이션 상태로부터 깨어날 때, 컴퓨팅 디바이스(100)는 동작을 재개하기 위해 하이버네이션 파일(132)의 콘텐츠를 메인 메모리(124)에 다시 복사할 수 있다.
일부 실시예들에서, 모바일 컴퓨팅 디바이스(100)는 하나 이상의 주변 디바이스들(134)을 또한 포함할 수 있다. 주변 디바이스들(134)은 임의의 수의 추가적 입력/출력 디바이스들, 인터페이스 디바이스들, 및/또는 다른 주변 디바이스들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 주변 디바이스들(134)은 디스플레이, 터치 스크린, 그래픽 회로, 키보드, 마우스, 스피커 시스템, 및/또는 다른 입력/출력 디바이스들, 인터페이스 디바이스들, 및/또는 주변 디바이스들을 포함할 수 있다. 특히, 일부 실시예들에서 주변 디바이스들(134)은 운영 체제들 사이에서 토글하기 위한 전용 하드웨어 버튼 또는 다른 제어를 포함할 수 있다.
이제 도 3을 참조하면, 예시적 실시예에서, 컴퓨팅 디바이스(100)는 동작 동안 환경(300)을 수립한다. 예시적 실시예(300)는 메모리 예약 모듈(302), 토글 이벤트 모듈(304), 및 다수의 운영 체제들(306)을 포함한다. 예시적 환경(300)은 2개의 운영 체제들(306a, 306b)을 포함하지만; 다른 실시예들에서는 임의의 수의 운영 체제들(306)이 포함될 수 있다. 환경(300)의 다양한 모듈들 및/또는 컴포넌트들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로서 구현될 수 있다.
메모리 예약 모듈(302)은 메모리(124)의 일부를 예약된 메모리 영역(128)으로서 예약하도록 구성된다. 예약된 후, 예약된 메모리 영역(128)은 운영 체제들(306) 중 어느 것에 의해도 사용되지 않을 수 있고, 일부 실시예들에서는 운영 체제들(306) 어느 것에 대해서도 가시적이거나 액세가능하지 않을 수 있다. 일부 실시예들에서, 메모리 예약 모듈(302)은, UEFI Forum에 의해 공개된, UEFI(Unified Extensible Firmware Interface) 사양에 따라서 구현되는 사전-부팅(pre-boot) 펌웨어 실행 환경과 같은, 컴퓨팅 디바이스(100)의 사전-부팅 펌웨어 실행 환경에 의해 수립될 수 있다.
토글 이벤트 모듈(304)은 운영 체제들(306) 중 임의의 것의 실행 동안 운영 체제 토글 이벤트들을 수신하도록 구성된다. 토글 이벤트 모듈(304)은 액티브 운영 체제(306)의 상태 데이터가 예약된 메모리 영역(128)에 복사된 이후 다른 운영 체제(306)를 실행하도록 더욱 구성된다. 예를 들어, 예시적 실시예에서 토글 이벤트 모듈(304)은 운영 체제(306a)의 상태 데이터가 예약된 메모리 영역(128)에 복사된 이후 운영 체제(306b)를 실행할 수 있다. 단일의 토글 이벤트 모듈(304)로서 도시되지만, 일부 실시예들에서 환경(300)은, 예를 들어, 각각의 운영 체제(306)에 대해 하나의 토글 이벤트 모듈(304)인, 여러 상보형 토글 이벤트 모듈들(304)을 포함할 수 있다.
각각의 운영 체제(306)은 컴퓨팅 디바이스(100)의 임의의 운영 체제, 가상 머신 모니터, 하이퍼바이저(hypervisor), 또는 다른 제어 구조로서 구현될 수 있다. 예를 들어, 운영 체제(306a)는 Microsoft® Windows™로서 구현될 수 있고, 운영 체제(306b)는 Android™로서 구현될 수 있다. 각각의 운영 체제(306)는 예약된 복사 모듈(308)과 라이트-아웃 모듈(310)을 포함한다. 예약된 복사 모듈(308) 및 라이트-아웃 모듈(310) 각각은 운영 체제(306)에 의해 실행되는 드라이버, 프로세스, 로딩가능한 모듈, 또는 다른 컴포넌트들로서 구현될 수 있다.
각각의 예약된 복사 모듈(308)은 관련된 운영 체제(306)의 상태 데이터를 예약된 메모리 영역(128)에 복사하도록 구성된다. 상태 데이터는 메모리(124)의 액티브 콘텐츠; 즉, 예약된 메모리 영역(128)에 포함되지 않는 메모리(124)의 부분을 포함할 수 있다. 각각의 라이트-아웃 모듈(310)은 예약된 메모리 영역(128)의 콘텐츠를 데이터 스토리지 디바이스(130)에 복사하도록 구성된다. 라이트-아웃 모듈(310)은 관련된 운영 체제(306)가 운영 체제 토글 이벤트에 응답하여 착수된 이후 데이터 스토리지 디바이스(130)에 기입할 수 있다. 라이트-아웃 모듈(310)은 관련된 운영 체제(306)가 사용자 애플리케이션들을 실행하는 동안 데이터 스토리지 디바이스(130)에 기입할 수 있다.
이제 도 4를 참조하면, 사용시, 컴퓨팅 디바이스(100)는 운영 체제들(306) 사이에서 전환하기 위한 방법(400)을 실행할 수 있다. 방법(400)은 블록 402에서 시작하고, 여기서 컴퓨팅 디바이스(100)는 운영 체제들(306) 중 임의의 것에 의해 사용되는 것으로부터 예약된 메모리 영역(128)을 예약한다. 컴퓨팅 디바이스(100)는 예약된 메모리 영역(128)을 사용하는 것으로부터 운영 체제들(306)을 보호하거나, 분할하거나, 고립시키거나, 또는 달리 예방하기 위한 임의의 기술을 사용할 수 있다. 일부 실시예들에서는, 컴퓨팅 디바이스(100)의 사전-부팅 펌웨어 환경이 예약된 메모리 영역(128)을 예약할 수 있다. 예를 들어, 사전-부팅 펌웨어는 컴퓨팅 디바이스(100)가 실제로 메모리(124)에 포함되는 양보다 적은 메모리를 포함하는 것을 나타내는 하나 이상의 시스템 테이블들을 운영 체제들(306)에 내보낼 수 있다. 그러한 예에서, 예약된 메모리 영역(128)은 시스템 테이블에 의해 설명되지 않은 메모리(124)의 상부 메모리 세그멘트로서 구현될 수 있다.
블록 404에서는, 컴퓨팅 디바이스(100)가 도면상으로 운영 체제(306a)로서 참조되는 운영 체제(306)들 중 하나를 실행한다. 실행될 특정 운영 체제(306a)는, 초기 부팅 프로세스 동안의 사용자 선택에 기초하여, 컴퓨팅 디바이스(100)의 디폴트 정책에 기초하여, 또는 임의의 다른 적절한 기준에 기초하여 결정될 수 있다. 운영 체제(306a)의 실행 동안, 컴퓨팅 디바이스(100)는 사용자에 의해 지시되는 바와 같이 하나 이상의 애플리케이션들을 실행할 수 있다. 액티브 운영 체제(306a), 애플리케이션들, 및 임의의 관련된 상태 데이터는 액티브 메모리 영역(126)에, 즉 예약된 메모리 영역(128)에 포함되지 않는 메모리(124)의 부분들에 상주한다.
블록 406에서는, 컴퓨팅 디바이스(100)가 운영 체제 토글 이벤트를 모니터링한다. 운영 체제 토글 이벤트는 컴퓨팅 디바이스(100)로 하여금 실행을 상이한 운영 체제(306)로 스위칭하게 하는 임의의 이벤트로서 구현될 수 있다. 일부 실시예들에서, 운영 체제 토글 이벤트는 사용자 선택에 의해 생성될 수 있다. 예를 들어, 사용자 선택은 소프트웨어 인터페이스, 사전정의된 키누름 또는 키 조합, 하드웨어 버튼누름, 또는 다른 사용자-생성 이벤트에서의 사용자 선택으로서 구현될 수 있다. 일부 실시예들에서, 운영 체제 토글 이벤트는 (예를 들어, 디바이스 드라이버, 백그라운드 소프트웨어 프로세스, 또는 다른 비-대화형 프로세스로부터의 요청에 응답하여) 사용자 개입 없이 시스템 이벤트에 의해 생성될 수 있다. 블록 408에서, 컴퓨팅 디바이스(100)는 운영 체제 토글 이벤트가 수신되었는지 결정한다. 그렇지 않다면, 방법(400)은 운영 체제 토글 이벤트들을 계속 모니터링하기 위해 블록 406으로 되돌아간다. 운영 체제 토글 이벤트가 수신되면, 방법(400)은 블록 410으로 진행한다.
블록 410에서는, 컴퓨팅 디바이스(100)가 액티브 운영 체제(306a)의 상태 데이터를 액티브 메모리 영역(126)으로부터 예약된 메모리 영역(128)에 복사한다. 일부 실시예들에서, 컴퓨팅 디바이스(100)는 (예를 들어, 액티브 메모리 영역(126) 및 예약된 메모리 영역(128) 각각이 전체 메모리(124)의 절반을 차지할 때) 액티브 메모리 영역(126) 모두를 예약된 메모리 영역(128)에 복사할 수 있다. 추가적으로 또는 대안적으로, 컴퓨팅 디바이스(100)는, 액티브 메모리 영역(126)의 일부만을, 예를 들어, 액티브 운영 체제(306a)의 상태를 정의하는 액티브 메모리 영역(126)의 콘텐츠만을 복사할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(100)는 액티브 운영 체제(306a)의 상태를 예약된 메모리 영역(128)에 복사하는데 요구되는 데이터의 양을 압축하거나, 중복 제거하거나, 또는 달리 줄일 수 있다. 컴퓨팅 디바이스(100)는 예약된 메모리 영역(128)의 콘텐츠를 교체할 수 있거나, 또는 일부 실시예들에서는, 액티브 운영 체제(306a)의 상태 데이터의 양, 예약된 메모리 영역(128)에서의 가용 공간, 또는 다른 인자들에 따라서, 예약된 메모리 영역(128)의 콘텐츠의 일부 또는 전부를 보존할 수 있다. 따라서, 일부 실시예들에서, 예약된 메모리 영역(128)은 하나 이상의 운영 체제들(306)에 대한 상태 데이터를 저장할 수 있고, 이는 토글 성능을 더욱 개선할 수 있다.
일부 실시예들에서는, 블록 412에서 컴퓨팅 디바이스(100)가 하이버네이션 파일(132)에 지향되는 하나 이상의 I/O 동작들을 인터셉트할 수 있다. 이러한 I/O 동작들은 저-전력 하이버네이션 전력 관리 상태(예를 들어, ACPI S4 상태)에 진입할 때 컴퓨팅 디바이스(100)에 의해 생성될 수 있다. I/O 동작을 인터셉트한 이후, 컴퓨팅 디바이스(100)는 하이버네이션 파일(132) 보다는 오히려 예약된 메모리 영역(128)에 I/O 동작들을 라우팅할 수 있다. 예를 들어, 일부 실시예들에서 운영 체제(306a)의 스토리지 드라이버 스택은 하이버네이션 파일(132)로부터 I/O 동작들을 인터셉트하여 예약된 메모리 영역(128)에 다시 라우팅하는 필터 드라이버를 포함할 수 있다. 추가적으로 또는 대안적으로, 일부 실시예들에서 컴퓨팅 디바이스(100)는 I/O 동작들을 인터셉트하기 위한 펌웨어 드라이버를 수립할 수 있다. 따라서, 통상적 하이버네이션 전력 관리 상태에서와 같이 데이터 스토리지 디바이스(130)에 운영 체제(306a)의 상태를 저장하는 것보다 오히려, 컴퓨팅 디바이스(100)는 예약된 메모리 영역(128)에 운영 체제(306a)의 상태를 명시적으로 저장할 수 있다. 따라서, 컴퓨팅 디바이스(100)는 운영 체제(306a)에 임의의 특정 수정들을 요구하지 않고도 운영 체제(306a)의 상태를 예약된 메모리 영역(128)에 저장할 수 있다.
블록 414에서는, 컴퓨팅 디바이스(100)가 다른 운영 체제(306b)를 로딩한다. 상술된 바와 같이, 실행될 특정 운영 체제(306b)는 사용자 선택에 기초하여, 컴퓨팅 디바이스(100)의 디폴트 정책에 기초하여, 또는 임의의 다른 적절한 기준에 기초하여 결정될 수 있다. 일부 실시예들에서는, 블록 416에서, 컴퓨팅 디바이스(100)가 하이버네이션 파일(132)로부터 이러한 다른 운영 체제(306b)를 로딩할 수 있다. 예를 들어, 다른 운영 체제(306b)가 컴퓨팅 디바이스(100)에 의해 이미 실행되었으면, 다른 운영 체제(306b)의 상태는 이전 운영 체제 토글 이벤트에 응답하여 하이버네이션 파일(132)에 저장되었을 수 있다. 하이버네이션 파일(132)로부터 다른 운영 체제(306b)의 상태를 로딩하는 것은 운영 체제 토글에 일부 레이턴시를 유입할 수 있다. 그러나, 많은 데이터 스토리지 디바이스들(130)은 데이터 기입 속도들에 비해 매우 더 높은 데이터 판독 속도를 갖기 때문에, 운영 체제 토글 성능은 수용가능하게 유지될 수 있다. 예를 들어, eMMC 내장형 플래시 메모리 모듈들은 기입 속도들보다 3배 더 빠른 판독 속도들을 통상적으로 지원할 수 있다. 상술된 바와 같이, 일부 실시예들에서 컴퓨팅 디바이스(100)는 또한 운영 체제(306b)의 상태 데이터를 예약된 메모리 영역(128)의 부분에 이미 저장하였을 수 있다. 예약된 메모리 영역(128)으로부터 다른 운영 체제(306b)의 상태를 로딩하는 것은, 사용가능하다면, 운영 체제 토글에 대한 레이턴시를 더욱 줄일 수 있다.
다른 운영 체제(306b)를 로딩한 이후, 방법(400)의 실행은 블록들 418 및 420으로 동시에 진행한다. 블록 418에서는, 컴퓨팅 디바이스(100)가 다른 운영 체제(306b)를 실행한다. 블록 404와 연관하여 상술된 바와 같이, 다른 운영 체제(306b)의 실행 동안, 컴퓨팅 디바이스(100)는 사용자에 의해 지시되는 바와 같이 하나 이상의 애플리케이션들을 실행할 수 있다. 다른 운영 체제(306b)는 운영 체제(306a)에 의해 이미 차지된 액티브 메모리 영역(126)의 전부 또는 일부를 차지할 수 있다.
블록 420에서는, 컴퓨팅 디바이스(100)가 예약된 메모리 영역(128)의 콘텐츠를 데이터 스토리지 디바이스(130)에 기입한다. 일부 실시예들에서는, 블록 422에서, 컴퓨팅 디바이스(100)는 예약된 메모리 영역(128)의 콘텐츠를 하이버네이션 파일(132)에 기입할 수 있다. 컴퓨팅 디바이스(100)는 다른 운영 체제(306b)의 실행과 동시에 데이터 스토리지 디바이스(130)에 기입한다. 예를 들어, 컴퓨팅 디바이스(100)는 다른 운영 체제(306b)에 의해 실행되는 다른 프로세스들과 동시에 실행할 수 있는 커널 드라이버, 커널 스레드, 사용자 프로세스, 사용자 스레드 또는 다른 엔티티를 사용하여 데이터 스토리지 디바이스(130)에 기입할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(100)는 백그라운드에서 또는 컴퓨팅 디바이스(100)가 달리 유휴일 때 데이터 스토리지 디바이스(130)에 기입할 수 있다. 예를 들어, 컴퓨팅 디바이스(100)는 (시스템 유휴 스레드 또는 유사한 유휴 스레드 이외에) 어떠한 다른 프로세스들 또는 스레드들도 액티브가 아닐 때에만 실행되는 저-우선순위 프로세스 또는 스레드에서 데이터 스토리지 디바이스(130)에 기입할 수 있다. 따라서, 데이터 스토리지 디바이스(130)에 기입하는 것은 컴퓨팅 디바이스(100)의 사용자에게 감지불가능할 수 있다. 따라서, 운영 체제 토글과 관련된 전달 시간 및 다른 레이턴시가 사용자로부터 숨겨질 수 있다. 상술된 바와 같이, 기입 레이턴시를 숨기는 것은 토글 성능을 매우 향상시킬 수 있는데 그 이유는 많은 데이터 스토리지 디바이스(130)가 판독 속도돌에 비해 느린 기입 속도들을 제공하기 때문이다. 일부 실시예들에서, 컴퓨팅 디바이스(100)는, 예약된 메모리 영역(128)의 콘텐츠가 데이터 스토리지 디바이스(130)에 복사되는 동안 추가적 운영 체제 토글 이벤트들을 디스에이블하거나, 마스킹하거나, 또는 달리 예방할 수 있다.
예약된 메모리 영역(128)의 콘텐츠를 데이터 스토리지 디바이스(130)에 복사한 이후, 방법(400)은 블록 404로 되돌아가고, 여기서 다른 운영 체제(306b)가 계속 실행된다. 따라서, 복사를 완료한 이후, 컴퓨팅 디바이스(100)는 추가적 운영 체제 토글 이벤트들을 모니터링하고 이에 응답할 수 있어, 사용자로 하여금 운영 체제들(306) 사이에서 전후로 토글하게 한다.
예들
본 명세서에 개시되는 기술들의 예시적 예들이 이하 제공된다. 이러한 기술들의 실시예는 이하 설명되는 예들 중 임의의 하나 이상, 및 이들의 임의의 조합을 포함할 수 있다.
예 1은 운영 체제들 사이에서의 전환을 위한 컴퓨팅 디바이스를 포함하고, 이러한 컴퓨팅 디바이스는, 예약된 메모리 영역을 포함하는 메인 메모리; 데이터 스토리지 디바이스; 및 컴퓨팅 디바이스에 의해, 제1 운영 체제로부터 제2 운영 체제로의 전환을 초래하는, 제1 운영 체제의 실행 동안의 운영 체제 토글 이벤트를 수신하는 토글 이벤트 모듈을 포함하고, 제1 운영 체제는 운영 체제 토글 이벤트의 수신에 응답하여 제1 운영 체제의 상태 데이터를 예약된 메모리 영역에 복사하는 제1 예약된 복사 모듈을 포함하고; 제2 운영 체제는 제2 운영 체제의 실행 동안 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 제1 라이트-아웃 모듈을 포함하고; 토글 이벤트 모듈은 또한 상태 데이터를 예약된 메모리 영역에 복사하는 것에 응답하여 제2 운영 체제를 실행한다.
예 2는 예 1의 대상을 포함하고, 토글 이벤트 모듈은 또한 제2 운영 체제의 실행 동안 제2 운영 체제 토글 이벤트를 수신하고; 제2 운영 체제는 제2 운영 체제 토글 이벤트의 수신에 응답하여 제2 운영 체제의 상태 데이터를 예약된 메모리 영역에 복사하는 제2 예약된 복사 모듈을 더 포함하고; 토글 이벤트 모듈은 또한 제2 운영 체제의 상태 데이터를 복사하는 것에 응답하여 제1 운영 체제를 다시 실행하고; 제1 운영 체제는 제1 운영 체제를 다시 실행하는 동안 제2 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 제2 라이트-아웃 모듈을 더 포함한다.
예 3은 예 1과 2 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 것은 시스템 이벤트에 응답하여 운영 체제 토글 이벤트를 수신하는 것을 포함한다.
예 4는 예 1-3 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 것은 사용자 선택에 응답하여 운영 체제 토글 이벤트를 수신하는 것을 포함한다.
예 5는 예 1-4 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 것은 하드웨어 토글 선택을 수신하는 것을 포함한다.
예 6은 예 1-5 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 것은 소프트웨어 토글 선택을 수신하는 것을 포함한다.
예 7은 예 1-6 중 임의의 것의 대상을 포함하고, 토글 이벤트 모듈은 또한 컴퓨팅 디바이스로 하여금 운영 체제 토글 이벤트의 수신에 응답하여 하이버네이션(hibernation) 전력 관리 상태에 진입하게 하는 것이다.
예 8은 예 1-7 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 예약된 메모리 영역에 복사하는 것은, 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 것; 및 예약된 메모리 영역에 하나 이상의 I/O 동작들을 라우팅하는 것을 포함한다.
예 9는 예 1-8 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하는 것은 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 것을 포함한다.
예 10은 예 1-9 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하는 것은 제1 운영 체제의 필터 드라이버를 사용하여 하나 이상의 I/O 동작들을 인터셉트하는 것을 포함한다.
예 11은 예 1-10 중 임의의 것의 대상을 포함하고, 제2 운영 체제를 실행하는 것은 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일로부터 제2 운영 체제를 로딩하는 것을 포함한다.
예 12는 예 1-11 중 임의의 것의 대상을 포함하고, 제2 운영 체제는 또한 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 것과 동시에 애플리케이션을 실행한다.
예 13은 예 1-12 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 것은 컴퓨팅 디바이스가 유휴일 때 상태 데이터를 복사하는 것을 더 포함한다.
예 14는 예 1-13 중 임의의 것의 대상을 포함하고, 데이터 스토리지 디바이스는 하드 디스크 드라이브, 고체-상태 드라이브, 또는 내장형 플래시 메모리 모듈을 포함한다.
예 15는 예 1-14 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 실행 이전에 메인 메모리의 일부를 예약된 메모리 영역으로서 예약하는 메모리 예약 모듈을 더 포함한다.
예 16은 예 1-15 중 임의의 것의 대상을 포함하고, 메모리의 일부를 예약하는 것은 컴퓨팅 디바이스의 펌웨어를 사용하여 메모리의 일부를 예약하는 것을 포함한다.
예 17은 운영 체제들 사이에서의 전환을 위한 방법을 포함하고, 이러한 방법은, 컴퓨팅 디바이스에 의해, 컴퓨팅 디바이스의 제1 운영 체제를 실행하는 단계; 컴퓨팅 디바이스에 의해, 제1 운영 체제를 실행하는 동안 운영 체제 토글 이벤트를 수신하는 단계; 컴퓨팅 디바이스에 의해, 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 컴퓨팅 디바이스의 예약된 메모리 영역에 제1 운영 체제의 상태 데이터를 복사하는 단계; 컴퓨팅 디바이스에 의해, 예약된 메모리 영역에 상태 데이터를 복사하는 단계에 응답하여 컴퓨팅 디바이스의 제2 운영 체제를 실행하는 단계; 및 컴퓨팅 디바이스에 의해, 제2 운영 체제를 실행하는 단계에 응답하여 컴퓨팅 디바이스의 데이터 스토리지 디바이스에 제1 운영 체제의 상태 데이터를 복사하는 단계를 포함한다.
예 18은 예 17의 대상을 포함하고, 컴퓨팅 디바이스에 의해, 제2 운영 체제를 실행하는 동안 제2 운영 체제 토글 이벤트를 수신하는 단계; 컴퓨팅 디바이스에 의해, 제2 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 예약된 메모리 영역에 제2 운영 체제의 상태 데이터를 복사하는 단계; 컴퓨팅 디바이스에 의해, 제2 운영 체제의 상태 데이터를 복사하는 단계에 응답하여 제1 운영 체제를 다시 실행하는 단계; 및 컴퓨팅 디바이스에 의해, 제1 운영 체제를 다시 실행하는 단계에 응답하여 데이터 스토리지 디바이스에 제2 운영 체제의 상태 데이터를 복사하는 단계를 더 포함한다.
예 19는 예 17 및 18 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 단계는 시스템 이벤트에 응답하여 운영 체제 토글 이벤트를 수신하는 단계를 포함한다.
예 20은 예 17-19 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 단계는 사용자 선택에 응답하여 운영 체제 토글 이벤트를 수신하는 단계를 포함한다.
예 21은 예 17-20 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 단계는 하드웨어 토글 선택을 수신하는 단계를 포함한다.
예 22는 예 17-21 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 단계는 소프트웨어 토글 선택을 수신하는 단계를 포함한다.
예 23은 예 17-22 중 임의의 것의 대상을 포함하고, 컴퓨팅 디바이스에 의해, 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 하이버네이션 전력 관리 상태에 진입하는 단계를 더 포함한다.
예 24는 예 17-23 중 임의의 것의 대상을 포함하고, 예약된 메모리 영역에 제1 운영 체제의 상태 데이터를 복사하는 단계는, 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 단계; 및 예약된 메모리 영역에 하나 이상의 I/O 동작들을 라우팅하는 단계를 포함한다.
예 25는 예 17-24 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하는 단계는 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 단계를 포함한다.
예 26은 예 17-25 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하는 단계는 제1 운영 체제의 필터 드라이버를 사용하여 하나 이상의 I/O 동작들을 인터셉트하는 단계를 포함한다.
예 27은 예 17-26 중 임의의 것의 대상을 포함하고, 제2 운영 체제를 실행하는 단계는 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일로부터 제2 운영 체제를 로딩하는 단계를 포함한다.
예 28은 예 17-27 중 임의의 것의 대상을 포함하고, 데이터 스토리지 디바이스에 제1 운영 체제의 상태 데이터를 복사하는 단계는 제2 운영 체제를 실행하는 단계와 동시에 제1 운영 체제의 상태 데이터를 복사하는 단계를 포함한다.
예 29는 예 17-28 중 임의의 것의 대상을 포함하고, 제2 운영 체제를 실행하는 단계는 데이터 스토리지 디바이스에 제1 운영 체제의 상태 데이터를 복사하는 단계와 동시에 애플리케이션을 실행하는 단계를 포함한다.
예 30은 예 17-29 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 단계는 컴퓨팅 디바이스가 유휴일 때 상태 데이터를 복사하는 단계를 더 포함한다.
예 31은 예 17-30 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 단계는 제1 운영 체제의 상태 데이터를 컴퓨팅 디바이스의 하드 디스크 드라이브, 고체-상태 드라이브, 또는 내장형 플래시 메모리 모듈에 복사하는 단계를 포함한다.
예 32는 예 17-31 중 임의의 것의 대상을 포함하고, 컴퓨팅 디바이스에 의해, 제1 운영 체제를 실행하는 단계 이전에 컴퓨팅 디바이스의 메모리의 일부를 예약된 메모리 영역으로서 예약하는 단계를 더 포함한다.
예 33은 예 17-32 중 임의의 것의 대상을 포함하고, 메모리의 일부를 예약하는 단계는 컴퓨팅 디바이스의 펌웨어를 사용하여 메모리의 일부를 예약하는 단계를 포함한다.
예 34는 컴퓨팅 디바이스를 포함하고, 이는 프로세서; 및 프로세서에 의해 실행될 때 컴퓨팅 디바이스로 하여금 예 17-33 중 임의의 것의 방법을 수행하게 하는 복수의 명령어들을 저장한 메모리를 포함한다.
예 35는 하나 이상의 머신 판독가능 저장 매체를 포함하고, 이는 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 예 17-33 중 임의의 것의 방법을 수행하게 하는 저장된 복수의 명령어들을 포함한다.
예 36은 컴퓨팅 디바이스를 포함하고, 이는 예 17-33 중 임의의 것의 방법을 수행하기 위한 수단을 포함한다.
예 37은 운영 체제들 사이에서의 전환을 위한 컴퓨팅 디바이스를 포함하고, 이 컴퓨팅 디바이스는, 컴퓨팅 디바이스의 제1 운영 체제를 실행하기 위한 수단; 제1 운영 체제를 실행하는 동안 운영 체제 토글 이벤트를 수신하기 위한 수단; 운영 체제 토글 이벤트를 수신하는 것에 응답하여 컴퓨팅 디바이스의 예약된 메모리 영역에 제1 운영 체제의 상태 데이터를 복사하기 위한 수단; 상태 데이터를 예약된 메모리 영역에 복사하는 것에 응답하여 컴퓨팅 디바이스의 제2 운영 체제를 실행하기 위한 수단; 및 제2 운영 체제를 실행하는 것에 응답하여 컴퓨팅 디바이스의 데이터 스토리지 디바이스에 제1 운영 체제의 상태 데이터를 복사하기 위한 수단을 포함한다.
예 38은 예 37의 대상을 포함하고, 제2 운영 체제를 실행하는 동안 제2 운영 체제 토글 이벤트를 수신하기 위한 수단; 제2 운영 체제 토글 이벤트를 수신하는 것에 응답하여 예약된 메모리 영역에 제2 운영 체제의 상태 데이터를 복사하기 위한 수단; 제2 운영 체제의 상태 데이터를 복사하는 것에 응답하여 다시 제1 운영 체제를 실행하기 위한 수단; 및 제1 운영 체제를 다시 실행하는 것에 응답하여 데이터 스토리지 디바이스에 제2 운영 체제의 상태 데이터를 복사하기 위한 수단을 더 포함한다.
예 39는 예 37 및 38 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하기 위한 수단은 시스템 이벤트에 응답하여 운영 체제 토글 이벤트를 수신하기 위한 수단을 포함한다.
예 40은 예 37-39 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하기 위한 수단은 사용자 선택에 응답하여 운영 체제 토글 이벤트를 수신하기 위한 수단을 포함한다.
예 41은 예 37-40 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하기 위한 수단은 하드웨어 토글 선택을 수신하기 위한 수단을 포함한다.
예 42는 예 37-41 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하기 위한 수단은 소프트웨어 토글 선택을 수신하기 위한 수단을 포함한다.
예 43은 예 37-42 중 임의의 것의 대상을 포함하고, 운영 체제 토글 이벤트를 수신하는 것에 응답하여 하이버네이션 전력 관리 상태에 진입하기 위한 수단을 더 포함한다.
예 44는 예 37-43 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 예약된 메모리 영역에 복사하기 위한 수단은 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하기 위한 수단; 및 예약된 메모리 영역에 하나 이상의 I/O 동작들을 라우팅하기 위한 수단을 포함한다.
예 45는 예 37-44 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하기 위한 수단은 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일에 지향되는 하나 이상의 I/O 동작들을 인터셉트하기 위한 수단을 포함한다.
예 46은 예 37-45 중 임의의 것의 대상을 포함하고, 하나 이상의 I/O 동작들을 인터셉트하기 위한 수단은 제1 운영 체제의 필터 드라이버를 사용하여 하나 이상의 I/O 동작들을 인터셉트하기 위한 수단을 포함한다.
예 47은 예 37-46 중 임의의 것의 대상을 포함하고, 제2 운영 체제를 실행하기 위한 수단은 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일로부터 제2 운영 체제를 로딩하기 위한 수단을 포함한다.
예 48은 예 37-47 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하기 위한 수단은 제2 운영 체제를 실행하는 것과 동시에 제1 운영 체제의 상태 데이터를 복사하기 위한 수단을 포함한다.
예 49는 예 37-48 중 임의의 것의 대상을 포함하고, 제2 운영 체제를 실행하기 위한 수단은 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하는 것과 동시에 애플리케이션을 실행하기 위한 수단을 포함한다.
예 50은 예 37-49 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하기 위한 수단은 컴퓨팅 디바이스가 유휴일 때 상태 데이터를 복사하기 위한 수단을 더 포함한다.
예 51은 예 37-50 중 임의의 것의 대상을 포함하고, 제1 운영 체제의 상태 데이터를 데이터 스토리지 디바이스에 복사하기 위한 수단은 제1 운영 체제의 상태 데이터를 컴퓨팅 디바이스의 하드 디스크 드라이브, 고체-상태 드라이브, 또는 내장형 플래시 메모리 모듈로 복사하기 위한 수단을 포함한다.
예 52는 예 37-51 중 임의의 것의 대상을 포함하고, 제1 운영 체제를 실행하기 이전에 예약된 메모리 영역으로서 컴퓨팅 디바이스의 메모리의 부분을 예약하기 위한 수단을 더 포함한다.
예 53은 예 37-52 중 임의의 것의 대상을 포함하고, 메모리의 부분을 예약하기 위한 수단은 컴퓨팅 디바이스의 펌웨어를 사용하여 메모리의 부분을 예약하기 위한 수단을 포함한다.

Claims (25)

  1. 운영 체제들 사이에서의 전환을 위한 컴퓨팅 디바이스로서,
    예약된 메모리 영역을 포함하는 메인 메모리;
    데이터 스토리지 디바이스; 및
    상기 컴퓨팅 디바이스에 의해, 제1 운영 체제로부터 제2 운영 체제로의 전환을 초래하는, 상기 제1 운영 체제의 실행 동안의 운영 체제 토글 이벤트를 수신하는 토글 이벤트 모듈
    을 포함하고,
    상기 제1 운영 체제는 상기 운영 체제 토글 이벤트의 수신에 응답하여 상기 제1 운영 체제의 상태 데이터를 상기 예약된 메모리 영역에 복사하는 제1 예약된 복사 모듈을 포함하고;
    상기 제2 운영 체제는 상기 제2 운영 체제의 실행 동안 상기 제1 운영 체제의 상태 데이터를 상기 데이터 스토리지 디바이스에 복사하는 제1 라이트-아웃 모듈(write-out module)을 포함하고;
    상기 토글 이벤트 모듈은 또한 상기 상태 데이터를 상기 예약된 메모리 영역에 복사하는 것에 응답하여 상기 제2 운영 체제를 실행하는
    컴퓨팅 디바이스.
  2. 제1항에 있어서,
    상기 토글 이벤트 모듈은 또한 상기 제2 운영 체제의 실행 동안 제2 운영 체제 토글 이벤트를 수신하고;
    상기 제2 운영 체제는 상기 제2 운영 체제 토글 이벤트의 수신에 응답하여 상기 제2 운영 체제의 상태 데이터를 상기 예약된 메모리 영역에 복사하는 제2 예약된 복사 모듈을 더 포함하고;
    상기 토글 이벤트 모듈은 또한 상기 제2 운영 체제의 상태 데이터를 복사하는 것에 응답하여 상기 제1 운영 체제를 다시 실행하고;
    상기 제1 운영 체제는 상기 제1 운영 체제를 다시 실행하는 동안 상기 제2 운영 체제의 상태 데이터를 상기 데이터 스토리지 디바이스에 복사하는 제2 라이트-아웃 모듈을 더 포함하는
    컴퓨팅 디바이스.
  3. 제1항에 있어서,
    상기 운영 체제 토글 이벤트를 수신하는 것은, 시스템 이벤트에 응답하여 운영 체제 토글 이벤트를 수신하는 것을 포함하는 컴퓨팅 디바이스.
  4. 제1항에 있어서,
    상기 운영 체제 토글 이벤트를 수신하는 것은, 사용자 선택에 응답하여 운영 체제 토글 이벤트를 수신하는 것을 포함하는 컴퓨팅 디바이스.
  5. 제4항에 있어서,
    상기 운영 체제 토글 이벤트를 수신하는 것은, 하드웨어 토글 선택을 수신하는 것을 포함하는 컴퓨팅 디바이스.
  6. 제1항에 있어서,
    상기 토글 이벤트 모듈은 또한 상기 컴퓨팅 디바이스로 하여금 상기 운영 체제 토글 이벤트의 수신에 응답하여 하이버네이션(hibernation) 전력 관리 상태에 진입하게 하는 것인 컴퓨팅 디바이스.
  7. 제1항에 있어서,
    상기 제1 운영 체제의 상태 데이터를 상기 예약된 메모리 영역에 복사하는 것은,
    상기 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 것; 및
    상기 예약된 메모리 영역에 상기 하나 이상의 I/O 동작들을 라우팅하는 것
    을 포함하는 컴퓨팅 디바이스.
  8. 제7항에 있어서,
    상기 하나 이상의 I/O 동작들을 인터셉트하는 것은 상기 데이터 스토리지 디바이스에 의해 저장되는 하이버네이션 파일에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 것을 포함하는 컴퓨팅 디바이스.
  9. 제1항에 있어서,
    상기 제2 운영 체제는 또한 상기 제1 운영 체제의 상태 데이터를 상기 데이터 스토리지 디바이스에 복사하는 것과 동시에 애플리케이션을 실행하는 컴퓨팅 디바이스.
  10. 제1항에 있어서,
    상기 제1 운영 체제의 상태 데이터를 상기 데이터 스토리지 디바이스에 복사하는 것은 상기 컴퓨팅 디바이스가 유휴(idle)일 때 상기 상태 데이터를 복사하는 것을 더 포함하는 컴퓨팅 디바이스.
  11. 제1항에 있어서,
    상기 컴퓨팅 디바이스의 펌웨어를 사용하여 상기 제1 운영 체제의 실행 이전에 상기 메인 메모리의 일부를 상기 예약된 메모리 영역으로서 예약하는 메모리 예약 모듈을 더 포함하는 컴퓨팅 디바이스.
  12. 운영 체제들 사이에서의 전환을 위한 방법으로서,
    컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스의 제1 운영 체제를 실행하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 제1 운영 체제를 실행하는 동안 운영 체제 토글 이벤트를 수신하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 상기 컴퓨팅 디바이스의 예약된 메모리 영역에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 예약된 메모리 영역에 상기 상태 데이터를 복사하는 단계에 응답하여 상기 컴퓨팅 디바이스의 제2 운영 체제를 실행하는 단계; 및
    상기 컴퓨팅 디바이스에 의해, 상기 제2 운영 체제를 실행하는 단계에 응답하여 상기 컴퓨팅 디바이스의 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 제2 운영 체제를 실행하는 동안 제2 운영 체제 토글 이벤트를 수신하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 제2 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 상기 예약된 메모리 영역에 상기 제2 운영 체제의 상태 데이터를 복사하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 제2 운영 체제의 상태 데이터를 복사하는 단계에 응답하여 상기 제1 운영 체제를 다시 실행하는 단계; 및
    상기 컴퓨팅 디바이스에 의해, 상기 제1 운영 체제를 다시 실행하는 단계에 응답하여 상기 데이터 스토리지 디바이스에 상기 제2 운영 체제의 상태 데이터를 복사하는 단계
    를 더 포함하는 방법.
  14. 제12항에 있어서,
    상기 운영 체제 토글 이벤트를 수신하는 단계는 하드웨어 토글 선택을 수신하는 단계를 포함하는 방법.
  15. 제12항에 있어서,
    상기 컴퓨팅 디바이스에 의해, 상기 운영 체제 토글 이벤트를 수신하는 단계에 응답하여 하이버네이션 전력 관리 상태에 진입하는 단계를 더 포함하는 방법.
  16. 제12항에 있어서,
    상기 예약된 메모리 영역에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계는,
    상기 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 단계; 및
    상기 예약된 메모리 영역에 상기 하나 이상의 I/O 동작들을 라우팅하는 단계
    를 포함하는 방법.
  17. 제12항에 있어서,
    상기 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계는 상기 제2 운영 체제를 실행하는 단계와 동시에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계를 포함하고;
    상기 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하는 단계는 상기 컴퓨팅 디바이스가 유휴일 때 상기 상태 데이터를 복사하는 단계를 더 포함하는
    방법.
  18. 제12항에 있어서,
    상기 메모리의 일부를 예약하는 것은 상기 컴퓨팅 디바이스의 펌웨어를 사용하여 상기 메모리의 일부를 예약하는 것을 포함하는 방법.
  19. 복수의 명령어들을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 복수의 명령어들은 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금,
    상기 컴퓨팅 디바이스의 제1 운영 체제를 실행하고;
    상기 제1 운영 체제를 실행하는 동안 운영 체제 토글 이벤트를 수신하고;
    상기 운영 체제 토글 이벤트를 수신하는 것에 응답하여 상기 컴퓨팅 디바이스의 예약된 메모리 영역에 상기 제1 운영 체제의 상태 데이터를 복사하고;
    상기 예약된 메모리 영역에 상기 상태 데이터를 복사하는 것에 응답하여 상기 컴퓨팅 디바이스의 제2 운영 체제를 실행하고;
    상기 제2 운영 체제를 실행하는 것에 응답하여 상기 컴퓨팅 디바이스의 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하게 하는,
    하나 이상의 컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    실행되는 것에 응답하여 상기 컴퓨팅 디바이스로 하여금,
    상기 제2 운영 체제의 실행 동안 제2 운영 체제 토글 이벤트를 수신하고;
    상기 제2 운영 체제 토글 이벤트를 수신하는 것에 응답하여 상기 제2 운영 체제의 상태 데이터를 상기 예약된 메모리 영역에 복사하고;
    상기 제2 운영 체제의 상태 데이터를 복사하는 것에 응답하여 상기 제1 운영 체제를 다시 실행하고;
    상기 제1 운영 체제를 다시 실행하는 것에 응답하여 상기 제2 운영 체제의 상태 데이터를 상기 데이터 스토리지 디바이스에 복사하게 하는
    복수의 명령어들을 더 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  21. 제19항에 있어서,
    상기 운영 체제 토글 이벤트를 수신하는 것은, 하드웨어 토글 선택을 수신하는 것을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  22. 제19항에 있어서,
    실행되는 것에 응답하여 상기 컴퓨팅 디바이스로 하여금 상기 운영 체제 토글 이벤트를 수신하는 것에 응답하여 하이버네이션 전력 관리 상태에 진입하게 하는 복수의 명령어들을 더 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  23. 제19항에 있어서,
    상기 제1 운영 체제의 상태 데이터를 상기 예약된 메모리 영역에 복사하는 것은,
    상기 데이터 스토리지 디바이스에 지향되는 하나 이상의 I/O 동작들을 인터셉트하는 것; 및
    상기 예약된 메모리 영역에 상기 하나 이상의 I/O 동작들을 라우팅하는 것
    을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  24. 제19항에 있어서,
    상기 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하는 것은 상기 제2 운영 체제를 실행하는 것과 동시에 상기 제1 운영 체제의 상태 데이터를 복사하는 것을 포함하고;
    상기 데이터 스토리지 디바이스에 상기 제1 운영 체제의 상태 데이터를 복사하는 것은 상기 컴퓨팅 디바이스가 유휴일 때 상기 상태 데이터를 복사하는 것을 더 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
  25. 제19항에 있어서,
    상기 메모리의 일부를 예약하는 것은 상기 컴퓨팅 디바이스의 펌웨어를 사용하여 상기 메모리의 일부를 예약하는 것을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체.
KR1020167017891A 2014-02-06 2015-01-30 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들 KR101826769B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461936610P 2014-02-06 2014-02-06
US61/936,610 2014-02-06
US14/316,370 2014-06-26
US14/316,370 US9645864B2 (en) 2014-02-06 2014-06-26 Technologies for operating system transitions in multiple-operating-system environments
PCT/US2015/013822 WO2015119860A1 (en) 2014-02-06 2015-01-30 Technologies for operating system transitions in multiple-operating-system environments

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003066A Division KR102219122B1 (ko) 2014-02-06 2015-01-30 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들

Publications (2)

Publication Number Publication Date
KR20160094434A KR20160094434A (ko) 2016-08-09
KR101826769B1 true KR101826769B1 (ko) 2018-02-07

Family

ID=53754894

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187003066A KR102219122B1 (ko) 2014-02-06 2015-01-30 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들
KR1020167017891A KR101826769B1 (ko) 2014-02-06 2015-01-30 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187003066A KR102219122B1 (ko) 2014-02-06 2015-01-30 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들

Country Status (6)

Country Link
US (3) US9645864B2 (ko)
EP (1) EP3103013A4 (ko)
JP (1) JP6152493B2 (ko)
KR (2) KR102219122B1 (ko)
CN (1) CN105874428B (ko)
WO (1) WO2015119860A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645864B2 (en) 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments
JP6189267B2 (ja) * 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
IN2015CH01317A (ko) * 2015-03-18 2015-04-10 Wipro Ltd
US10324773B2 (en) 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
US10756991B2 (en) 2015-09-17 2020-08-25 Salesforce.Com, Inc. Simplified entity engagement automation
US10437635B2 (en) 2016-02-10 2019-10-08 Salesforce.Com, Inc. Throttling events in entity lifecycle management
CN107491160A (zh) * 2017-06-22 2017-12-19 深圳天珑无线科技有限公司 一种双操作系统的使用方法、存储设备及智能终端
CN110780926B (zh) * 2018-07-30 2022-11-15 中兴通讯股份有限公司 一种操作系统的切换方法、终端和计算机存储介质
CN115543364A (zh) * 2021-06-30 2022-12-30 华为云计算技术有限公司 内核升级方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188887A1 (en) 2000-05-19 2002-12-12 Self Repairing Computers, Inc. Computer with switchable components
US20090287571A1 (en) 2008-03-26 2009-11-19 Robb Fujioka Hypervisor and virtual machine ware
WO2013062564A1 (en) 2011-10-28 2013-05-02 Intel Corporation Switching between operational contexts

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130024812A1 (en) * 2011-07-13 2013-01-24 Z124 Foreground/background assortment of hidden windows
JP2003196096A (ja) * 2001-12-07 2003-07-11 Internatl Business Mach Corp <Ibm> コンピュータシステム、その起動制御方法及びプログラム
CN100383744C (zh) * 2004-12-24 2008-04-23 联想(北京)有限公司 一种计算机多操作系统的切换方法
US8667418B2 (en) * 2007-06-08 2014-03-04 Apple Inc. Object stack
US8589706B2 (en) * 2007-12-26 2013-11-19 Intel Corporation Data inversion based approaches for reducing memory power consumption
US20100185667A1 (en) * 2009-01-12 2010-07-22 David Joseph O'Hanlon System and method appending internet command functions
US20100180185A1 (en) * 2009-01-12 2010-07-15 David Joseph O'Hanlon System and method appending internet command functions
CN101782861A (zh) 2009-12-24 2010-07-21 华为终端有限公司 在嵌入式系统中操作系统的管理方法及装置
US20110185142A1 (en) * 2010-01-26 2011-07-28 Tsuyoshi Nishida Information processing apparatus and data saving acceleration method of the information processing apparatus
US8433889B2 (en) * 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
CN102135910B (zh) * 2011-03-03 2014-05-14 威盛电子股份有限公司 切换操作系统的方法及使用此方法的电子装置
US9354900B2 (en) * 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
CN102810071B (zh) * 2011-05-30 2015-01-28 联想(北京)有限公司 控制方法、控制装置以及计算机
CN103136052A (zh) * 2011-11-25 2013-06-05 展讯通信(上海)有限公司 移动终端及安装有多个操作系统的移动终端的控制方法
TWI588747B (zh) * 2014-01-14 2017-06-21 仁寶電腦工業股份有限公司 切換作業系統的方法及電子裝置
US9645864B2 (en) 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188887A1 (en) 2000-05-19 2002-12-12 Self Repairing Computers, Inc. Computer with switchable components
US20090287571A1 (en) 2008-03-26 2009-11-19 Robb Fujioka Hypervisor and virtual machine ware
WO2013062564A1 (en) 2011-10-28 2013-05-02 Intel Corporation Switching between operational contexts

Also Published As

Publication number Publication date
EP3103013A4 (en) 2017-08-23
KR20160094434A (ko) 2016-08-09
US11182172B2 (en) 2021-11-23
JP2017501522A (ja) 2017-01-12
KR102219122B1 (ko) 2021-02-23
US9645864B2 (en) 2017-05-09
US20170242710A1 (en) 2017-08-24
EP3103013A1 (en) 2016-12-14
US20220100530A1 (en) 2022-03-31
US11609767B2 (en) 2023-03-21
CN105874428B (zh) 2019-06-25
WO2015119860A1 (en) 2015-08-13
US20150220353A1 (en) 2015-08-06
KR20180015755A (ko) 2018-02-13
JP6152493B2 (ja) 2017-06-21
CN105874428A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
KR101826769B1 (ko) 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들
US9417794B2 (en) Including performance-related hints in requests to composite memory
CN102272734B (zh) 使用非易失性存储器设备用于休眠或挂起的方法和系统
US8195929B2 (en) Controlling file systems sharing among two or more operating system
US8671241B2 (en) Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
US8495267B2 (en) Managing shared computer memory using multiple interrupts
US11422860B2 (en) Optimizing save operations for OS/hypervisor-based persistent memory
EP2771785B1 (en) Load boot data
CN109313604B (zh) 用于压缩虚拟存储器的动态配置的计算系统、装置和方法
US20120226849A1 (en) Virtual computer system, area management method, and program
WO2011155047A1 (ja) マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム
KR20110033066A (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US7117334B2 (en) Dynamic node partitioning utilizing sleep state
US11023139B2 (en) System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs
US9785448B2 (en) System suspending method, system resuming method and computer system using the same
US11016795B2 (en) System and method for virtualizing hot-swappable PCIe devices for virtual machines
CN105224399A (zh) 电子装置及其切换作业系统的方法
US20140189184A1 (en) Creating dynamic fixed functionality for a hardware device system
JP5862727B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
US8605565B2 (en) Information processing apparatus and operation control method of an information processing apparatus
CN117608493A (zh) 虚拟机磁盘缓存的处理方法、装置、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
GRNT Written decision to grant