KR101505209B1 - 미디어 장치에서의 다중 운영 체제의 지원 - Google Patents

미디어 장치에서의 다중 운영 체제의 지원 Download PDF

Info

Publication number
KR101505209B1
KR101505209B1 KR1020097016093A KR20097016093A KR101505209B1 KR 101505209 B1 KR101505209 B1 KR 101505209B1 KR 1020097016093 A KR1020097016093 A KR 1020097016093A KR 20097016093 A KR20097016093 A KR 20097016093A KR 101505209 B1 KR101505209 B1 KR 101505209B1
Authority
KR
South Korea
Prior art keywords
operating system
digital media
idle state
memory
format
Prior art date
Application number
KR1020097016093A
Other languages
English (en)
Other versions
KR20090115131A (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 KR20090115131A publication Critical patent/KR20090115131A/ko
Application granted granted Critical
Publication of KR101505209B1 publication Critical patent/KR101505209B1/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
    • 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/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/46Multiprogramming arrangements

Abstract

가전 제품 장치에서 다중 운영 체제를 지원하는 기법 및 도구. 예를 들어, 대기 시간을 감소시키고 사용자 경험에 대한 부정적 영향의 가능성을 완화시키면서, 서로 다른 미디어 유형을 지원하는 비디오 디스크 플레이어에서 운영 체제들 간의 신속한 전환을 가능하게 해주는 기법 및 도구에 대해 기술되어 있다.
미디어 장치, 다중 운영 체제, 무리없는 핸드오프, 웜-부트 핸드오프, 펌웨어

Description

미디어 장치에서의 다중 운영 체제의 지원{SUPPORTING MULTIPLE OPERATING SYSTEMS IN MEDIA DEVICES}
가전 제품 장치에 대한 미디어 형식이 점점 더 복잡해지는 반면, 또한 그 장치의 고급 기능 중 많은 부분을 하드웨어에서 소프트웨어로 이동시키고 있다. 그 결과, 가전 제품 장치의 소프트웨어 환경도 점점 더 복잡해지고 있다.
그에 부가하여, 비록 DVD와 같은 보다 오래되고 보다 간단한 형식(format)이 그의 처리의 많은 부분을 보다 저렴하고 보다 간단한 하드웨어로 넘기고 있지만, 이들 형식이 여전히 그의 처리의 일부를 소프트웨어에 맡기고 있다. 예를 들어, 오디오 및 비디오 스트림이 전용 하드웨어에 의해 디코딩될 수도 있지만, 메뉴 처리(즉, "탐색(navigation)") 기능은 소프트웨어로 구현될 수 있다. 기본적인 탐색 소프트웨어가 비교적 간단할 수 있지만, 시간이 경과함에 따라 DVD 시장이 발전하였다. DVD 플레이어는 더 많은 기능들을 갖는 DVD를 제대로 처리하기 위해 복잡한 메뉴 처리 논리로 대응을 한다. 그 결과, 비교적 간단한 DVD 형식이 발전하게 됨으로써 그의 재생 소프트웨어가 이제 아주 복잡하게 되었다. 많은 플레이어 제조업체는 이 소프트웨어에 상당한 투자를 하였으며, 시간이 지남에 따라 이 소프트웨어가 발전하여 그의 운영 환경에 의존하게 되었다.
서로 다른 미디어 형식들이 이용가능한 경우, 다수의 형식들을 지원하는 가 전 제품 장치가 필요하게 된다. 예를 들어, 사용자들이 일반적으로 자신의 DVD 플레이어가 아주 다른 미디어 형식인 CD 오디오 디스크도 재생할 것으로 기대한다는 것을 고려할 때, 다수의 형식들을 지원하는 것이 바람직하다는 것은 명백하게 된다. 그러면, 해결해야 될 문제는 그 자신의 운영 체제를 필요로 할지도 모르는 다수의 소프트웨어 애플리케이션들을 어떻게 비용-효과적인 방식으로 실행하느냐이다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념들을 간략화된 형태로 소개한다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 제한하는 데 사용되기 위한 것도 아니다. 요약하면, 상세한 설명은 가전 제품 장치에서 다중 운영 체제를 지원하는 다양한 기법 및 도구에 관한 것이다. 예를 들어, 대기 시간을 감소시키고 사용자 경험에 대한 부정적 영향의 가능성을 완화시키면서, 서로 다른 미디어 유형을 지원하는 비디오 디스크 플레이어에서 운영 체제들 간의 신속한 전환을 가능하게 해주는 기법 및 도구가 기술되어 있다. 부가의 특징들 및 이점들이 첨부 도면을 참조하여 기술되는 다양한 실시예들에 대한 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 기술된 실시예들 중 몇몇 실시예가 구현될 수 있는 적합한 컴퓨팅 환경의 일반화된 예를 나타낸 블록도.
도 2는 하나 이상의 기술된 구현예에 따른, 서로 다른 운영 체제들 간의 특징 변화(feature change)를 처리하는 "무리없는 핸드오프(graceful-handoff)" 모델에 대한 예시적인 기법을 나타낸 플로우차트.
도 3은 하나 이상의 기술된 구현예에 따른, 서로 다른 운영 체제들 간의 특징 변화를 처리하는 "웜-부트(warm-boot)" 모델에 대한 예시적인 기법을 나타낸 플로우차트.
도 4는 하나 이상의 기술된 구현예에 따른, 디스크 형식 변화의 무리없는 핸드오프 처리를 하는 예시적인 기법을 나타낸 플로우차트.
도 5는 하나 이상의 기술된 구현예에 따른, 디스크 형식 변화를 처리하는 부트 로더(boot loader) 및 BIOS 서비스를 갖는 펌웨어를 나타낸 시스템도.
도 6은 하나 이상의 기술된 구현예에 따른, 디스크 형식 변화의 웜-부트 처리를 하는 예시적인 기법을 나타낸 플로우차트.
도 7은 하나 이상의 기술된 구현예에 따른, 웜-부트 미디어 형식의 전환 동작을 병렬로 수행하는 예시적인 기법을 나타낸 플로우차트.
예를 들어, 미디어 플레이어와 같은 내장된 장치에서 다중 운영 체제를 지원하는 기법들 및 도구들이 본 명세서에 기술되어 있다.
본 명세서에 기술된 구현예들에 대한 다양한 대안들이 가능하다. 예를 들어, 플로우차트 도면들을 참조하여 기술된 어떤 기법들은, 동일한 결과를 달성하면서도, 그 플로우차트에 도시된 단계들의 순서를 변화시킴으로써, 어떤 단계들을 반 복하거나 생략함으로써, 기타 등등에 의해 변경될 수 있다. 서로 다른 실시예들은 기술된 기법들 및 도구들 중 하나 이상을 구현한다. 본 명세서에 기술된 기법들 및 도구들 중 몇몇은 배경 기술에서 언급된 문제점들 중 하나 이상을 해결한다. 그렇지만, 통상적으로, 주어진 기법/도구가 이러한 문제들을 전부 해결하지는 못한다.
II. 컴퓨팅 환경
도 1은 기술된 실시예들 중 몇몇 실시예가 구현될 수 있는 적합한 컴퓨팅 환경(100)의 일반화된 예를 나타낸 것이다. 이들 기법 및 도구가 다양한 범용(general-purpose) 또는 전용(special-purpose) 컴퓨팅 환경에서 구현될 수 있기 때문에, 컴퓨팅 환경(100)은 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 예를 들어, 컴퓨팅 환경(100)은 휴대용 오디오 플레이어, 휴대용 비디오 플레이어, 휴대용 오디오 및 비디오 플레이어, 콘솔 오디오 플레이어, 콘솔 비디오 플레이어, 또는 콘솔 오디오 및 비디오 플레이어와 같은 미디어 장치를 구비하고 있을 수 있다. 이러한 미디어 장치는 독립형 유닛(stand-alone unit)이거나 다른 장치(예를 들어, 통신 장치 또는 디스플레이 유닛) 내에 포함되어 있을 수 있다.
도 1을 참조하면, 컴퓨팅 환경(100)은 적어도 2개의 처리 장치(110, 115) 및 관련 메모리(120, 125)를 포함하고 있다. 처리 장치(110, 115)는 CPU, 비디오 가속을 위한 GPU, 또는 기타 코프로세서(co-processing unit)를 포함할 수 있다. 도 1에서, 이러한 가장 기본적인 구성(130)은 점선 안에 포함되어 있다. 다른 대안으 로서, 컴퓨팅 환경은 단일의 처리 장치를 포함하고 있다. 처리 장치(110, 115)는 컴퓨터-실행가능 명령어들을 실행하고, 실제 프로세서(real processor) 또는 가상 프로세서(virtual processor)일 수 있다. 멀티프로세싱 시스템에서는, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터-실행가능 명령어들을 실행한다. 인코딩 또는 디코딩 시나리오에서, 호스트 인코더 또는 디코더 프로세스는 인코딩 또는 디코딩 동작을 수행하기 위해 이용가능한 처리 장치(110, 115)를 사용한다. 어떤 동작들은 GPU와 같은 전용 처리 장치(specialized processing unit)에 의해 수행될 수 있다. 메모리(120, 125)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타), 또는 이 둘의 어떤 조합일 수 있다. 메모리(120, 125)는 한 프로세서와 관련되어 있거나, 2개 이상의 프로세서에 의해 공유되어 있을 수 있다. 메모리(120, 125)는 다중 운영 체제를 지원하는 전략을 구현하는 장치에 대한 소프트웨어(180)를 저장하고 있다.
컴퓨팅 환경은 부가의 특징들을 가질 수 있다. 예를 들어, 컴퓨팅 환경(100)은 저장 장치(140), 하나 이상의 입력 장치(150), 하나 이상의 출력 장치(160), 및 하나 이상의 통신 접속(170)을 포함하고 있다. 버스, 컨트롤러 또는 네트워크와 같은 상호접속 메카니즘(도시 생략)은 컴퓨팅 환경(100)의 컴포넌트들을 상호접속시킨다. 통상적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(100)에서 실행 중인 다른 소프트웨어에 대한 운영 환경을 제공하고, 컴퓨팅 환경(100)의 컴포넌트들의 활동을 조정한다.
저장 장치(140)는 이동식 또는 비이동식일 수 있고, 정보를 저장하는 데 사용될 수 있고 컴퓨팅 환경(100) 내에서 액세스될 수 있는 자기 디스크, 자기 테이프나 카세트, CD-ROM, DVD, 또는 임의의 다른 매체를 포함한다. 저장 장치(140)는 소프트웨어(180)에 대한 명령어들을 저장하고 있다.
입력 장치(들)(150)는 키보드, 마우스, 펜, 터치 스크린, 또는 트랙볼 등의 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(100)에 입력을 제공하는 다른 장치일 수 있다. 오디오 또는 비디오의 경우, 입력 장치(들)(150)는 아날로그 또는 디지털 형태로 오디오 또는 비디오 입력을 받는 사운드 카드, 비디오 카드, TV 튜너 카드 또는 유사한 장치, 또는 컴퓨팅 환경(100) 내로 인코딩된 오디오 또는 비디오를 읽어들이는 DVD, CD-ROM 또는 CD-RW일 수 있다. 출력 장치(들)(160)는 컴퓨팅 환경(100)으로부터 출력을 제공하는 디스플레이, 프린터, 스피커, CD-라이터(CD-writer)나 DVD-라이터(DVD-writer), 또는 다른 장치일 수 있다.
통신 접속(들)(170)은 통신 매체를 통한 다른 컴퓨팅 개체와의 통신을 가능하게 해준다. 이 통신 매체는 컴퓨터-실행가능 명령어, 오디오/비디오 입력/출력, 또는 기타 데이터와 같은 정보를 피변조 데이터 신호(modulated data signal)로 전달한다. 피변조 데이터 신호란 그의 특성들 중 하나 이상이 정보를 그 신호 내에 인코딩하도록 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, 무선 주파수(RF), 적외선(IR), 음향, 또는 기타 반송파로 구현되는 유선 또는 무선 기술을 포함한다.
이들 기법 및 도구는 일반적으로 컴퓨터-판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터-판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 매체라면 어느 것이라도 이용될 수 있다. 제한이 아닌 예로서, 컴퓨팅 환경(100)의 경우, 컴퓨터-판독가능 매체는 메모리(120), 저장 장치(140), 통신 매체, 및 이들 중 임의의 것의 조합을 포함한다.
이들 기법 및 도구는 일반적으로 대상이 되는 실제 또는 가상 프로세서 상에서의 컴퓨팅 환경에서 실행되는 프로그램 모듈에 포함되어 있는 것과 같은 컴퓨터-실행가능 명령어들과 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예들에서 원하는 바에 따라 프로그램 모듈들 간에 결합되거나 분할될 수 있다. 프로그램 모듈들에 대한 컴퓨터-실행가능 명령어들은 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
표현을 위해, 상세한 설명에서는 컴퓨팅 환경에서의 컴퓨터 동작을 설명하기 위해 "검사(check)" 및 "깨우기(wake)"와 같은 용어를 사용하고 있다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 고수준 추상화이며, 사람에 의해 수행되는 동작과 혼동해서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작은 구현에 따라 다르다.
II. 가전 제품 장치에서 다중 운영 체제를 지원하기 위한 전략
가전 제품 장치는 점점 더 복잡하게 되고 그의 기능의 많은 부분에 대한 지원을 하드웨어에서 소프트웨어로 이동시키고 있다. 비록 DVD와 같은 보다 오래되 고 보다 간단한 형식(format)이 통상적으로 그의 처리의 많은 부분을 보다 저렴하고 보다 간단한 하드웨어로 넘기고 있지만, 이들 형식이 종종 그의 처리의 일부를 소프트웨어에 맡기고 있다. 예를 들어, 오디오 및 비디오 스트림이 전용 하드웨어에 의해 디코딩될 수도 있지만, 메뉴 처리(즉, "탐색(navigation)") 기능은 소프트웨어로 구현될 수 있다. 그 결과, DVD와 같은 비교적 간단한 형식을 지원하는 어떤 가전 제품 장치가 그럼에도 불구하고 발전하여 복잡한 소프트웨어를 갖게 되었다.
그에 부가하여, 서로 다른 미디어 형식들에 대한 재생 도구들이 서로 다른 운영 체제 요구사항들을 가질 수 있고 그 미디어 형식들을 처리하는 장치들의 소프트웨어 환경을 더욱 복잡하게 만들지도 모른다. 예를 들어, HD DVD 비디오 디스크 표준(때때로 본 명세서에서 HD DVD 형식이라고 함)에 따라 인코딩된 고선명도 비디오 컨텐츠는 제1 운영 체제(Microsoft Corporation의 Windows
Figure 112009046894431-pct00001
CE 운영 체제 또는 기타 운영 체제 등)에 의해 지원되는 재생 애플리케이션을 사용하여 디코딩될 수 있고, 블루-레이(Blu-ray) 비디오 디스크 표준(때때로 본 명세서에서 블루-레이 형식이라고 함)에 따라 인코딩된 고선명도 비디오 컨텐츠는 제2 운영 체제(리눅스-기반 운영 체제, 기타 유닉스 계열(Unix-like) 또는 유닉스 변형(Unix variant) 운영 체제, 또는 기타 운영 체제 등)에 의해 지원되는 재생 애플리케이션을 사용하여 디코딩될 수 있다. 듀얼-형식 디스크(dual-format disc)(예를 들어, 블루-레이 형식으로 된 컨텐츠와 HD DVD 형식으로 된 컨텐츠를 갖는 디스크)는 또 다른 운영 체제 요구사항들을 가질지도 모른다. 특정의 운영 환경용으로 설계된 어떤 소프트웨어 는 시간이 지남에 따라 발전하여 그 운영 환경에 의존하게 된다. 이들 및 기타 인자의 결과로서, 가전 제품 장치는 점점 더 복잡한 소프트웨어 환경을 갖는다.
가전 제품 장치에서 해결되어야 할 문제점은 다수의 소프트웨어 애플리케이션(각각의 애플리케이션이 그 자신의 운영 체제를 필요로 할 수도 있음)을 어떻게 비용-효과적인 방식으로 실행하느냐이다. 한가지 해결 방안은 지원되는 각각의 유형의 미디어 형식에 대한 운영 체제 및 소프트웨어 애플리케이션을 갖춘 프로세서를 포함하는 것이다. 더욱 비용-효과적인 해결 방안은 다수의 운영 체제 및 소프트웨어 애플리케이션(미디어 형식마다 최대 하나의 운영 체제 및 소프트웨어 애플리케이션)을 저장하고 상이한 유형의 미디어가 처리될 때 플레이어를 재부팅시키는 것이다. 예를 들어, 플레이어가 HD DVD에 대한 한 운영 체제를 갖고, DVD에 대한 다른 운영 체제를 가지며, CD 오디오에 대한 다른 운영 체제를 가질 수 있다. 운영 체제들과 지원되는 애플리케이션들 간의 매핑이 일대일일 필요는 없다. 예를 들어, DVD 및 CD 오디오 재생은 한 운영 체제 상에서 실행될 수 있는 반면, HD DVD 재생은 다른 운영 체제 상에서 실행된다.
그렇지만, 다수의 운영 체제를 실행하는 것과 연관된 잠재적인 문제점들이 있다. 제1 운영 체제 상에서 실행되는 HD DVD 형식 및 제1 운영 체제와 아주 다른 제2 운영 체제 상에서 실행되는 블루-레이 형식(때때로 블루-레이 디스크 형식이라고 함)의 2개의 디지털 비디오 디스크 미디어 형식을 지원하는 장치를 생각해보자. 고려되어야 할 한가지 문제는 한 형식에서 다른 형식으로(예를 들어, 제2 운영 체제를 사용하여 지원되는 블루-레이 재생에서 제1 운영 체제를 사용하여 지원되는 HD DVD 비디오 재생으로) 전환할 때의 디스크 로딩 시간이다. 고려되어야 할 또 하나의 문제는, 사용자 경험에 대한 부정적 영향의 가능성을 감소시키기 위해 운영 체제들 간의 전환이 사용자에게 보이지 않게 하면서, 어떻게 사용자로 하여금 다수의 소프트웨어 애플리케이션들(그 자신의 운영 체제를 필요로 함) 간의 전환을 할 수 있게 해주느냐이다.
기술된 "멀티-부트(multi-boot)" 기법 및 도구는 장치들이 저렴한 비용으로 또한 사용자 경험에 대한 부당한 간섭 없이 운영 체제들 간에 전환할 수 있게 해준다. 본 명세서의 설명에서, 용어 "듀얼-부트(dual-boot)"는 때때로 2개의 운영 체제 간에 전환을 하는 장치를 기술하는 데 사용되지만, 본 명세서에서 언급되는 개념들이 3개 이상의 운영 체제를 실행시킬 수 있는 장치들로 확장될 수 있다. 2개의 이용가능한 운영 체제를 갖는 듀얼-부트 장치는 2개 이상의 이용가능한 운영 체제를 가질 수 있는 멀티-부트 장치의 부분집합이다. 용어 '멀티-부트'와 '듀얼-부트'는, 이하에서 상세히 설명하는 바와 같이, 장치가 운영 체제들 간에 전환하기 위해 재부팅해야만 한다는 요건을 말하는 것이 아니다.
멀티-부트 설계를 위한 옵션들로는 다음과 같은 것들이 있다.
1. 운영 체제 전환이 2개 이상의 운영 체제가 동시에 동작하고 있는 협업적 핸드오프(cooperative handoff)(즉, 무리없는 핸드오프(graceful handoff)) 메카니즘에 의해 처리된다. 예를 들어, 기술된 구현예에서, 제1 운영 체제와 제2 운영 체제 간의 핸드오프(handoff)는 제1 및 제2 운영 체제 둘다가 계속 실행되고 있는 동안에 수행된다. 이 핸드오프 이후에, 한 운영 체제는 유휴 상태(idle state)에 있다.
2. 운영 체제 전환이 운영 체제들 중 하나에 대한 웜-부트(warm-boot)를 포함하는 핸드오프 메카니즘에 의해 처리된다. 본 명세서에서, 용어 "웜-부트"는 장치가 이미 전원이 켜진 후에 운영 체제가 로드된 상태에서 일어나는 장치 상에서의 운영 체제의 부트를 말하는 데 사용된다.
멀티-부트 설계 옵션들 간의 선택은 칩 선택(예를 들어, 싱글 코어 또는 듀얼 코어), 구현 비용 및 외부 의존성 등의 다수의 인자들에 의존할 수 있다. 많은 칩 설계는 단일의 프로세서 코어(processor core)를 가지며 (저레벨 하드웨어 쓰레딩(low-level hardware threading) 또는 기타 기술이 다수의 운영 체제를 동시에 실행시키는 것을 지원하지 않는 한) 한번에 하나의 운영 체제를 지원한다. 다른 칩 설계는 2개의 프로세서 코어를 가지며, 단일의 대칭형 멀티프로세싱-인지 운영 체제(single symmetric multiprocessing-aware operating system)는 통상적으로 이들 둘다를 사용하지는 않는다. 어쨋든, 시스템-온-칩 설계 선택 사항들은 종종 단지 프로세서 코어(들)만이 아니라 그 이상의 것들에 의존하며, 오디오/비디오 디코딩, 2D 그래픽 가속, 복호화, 기타 등등에 대한 유닛과 같은 칩 상의 다른 기능 유닛들도 고려한다.
A. 여러 예들
이하의 예들은 운영 체제들 간의 전환을 처리하는 기법들을 예시하고 전환 시간 및 사용자 경험에 대한 영향 가능성 등의 인자들을 설명한다. 이 섹션에서의 여러 예들이 2개의 운영 체제 간의 전환에 대해 기술하고 있지만, 3개 이상의 운영 체제들 간의 전환이 가능하다. 대안의 구현예들에서, 이하의 예들에서 설명되는 단계들이 순서 변경되거나, 생략되거나, 다른 단계들로 대체될 수 있다. 예를 들어, 운영 체제 A에서 운영 체제 B로의 전환에 대해 설명하는 예들이, 운영 체제 B의 요청된 기능이 더 이상 사용되지 않게 된 후에 또는 운영 체제 A 내의 기능을 사용하는 차후의 사용자 동작에 응답하여, 기본적으로 운영 체제 A로 되돌아가는 것으로 확장될 수 있다. 운영 체제들 간의 전환은, 필요하게 되거나 요망되는 한, 계속될 수 있다. 운영 체제 A가 초기의 1차 운영 체제인 예들은 운영 체제 B가 초기의 1차 운영 체제이도록 수정될 수 있거나, 그 역도 마찬가지이다.
이들 예는 독립형 장치이거나 다른 장치의 일부로서 포함되어 있을 수 있는 디지털 미디어 플레이어로 구현된다. 다른 대안으로서, 이들 예는 다른 가전 제품 장치 또는 다른 컴퓨팅 장치로 구현된다.
1. 무리없는 핸드오프 예들
예 1: 이러한 무리없는 핸드오프 시나리오에서, 가전 제품 장치는 운영 체제 A와 운영 체제 B가 동시에 실행될 수 있도록 구성되어 있다. 이 예에서, 운영 체제 A는 1차 운영 체제이고 현재 장치의 대부분의 측면들을 제어하고 있다. 운영 체제 A는 사용자가 (예를 들어, 특정의 형식의 비디오 디스크를 장치에 집어 넣음으로써) 운영 체제 B에 의해 제공되는 기능을 사용하려고 시도한다는 것을 탐지한다. 예 1의 프로세스는 이하의 단계들을 포함한다.
1. 식별된 기능의 요구사항(들)을 (예를 들어, 비휘발성 저장 장치에) 저장한다.
2. (필요한 경우) 운영 체제 B에 의해 사용될 하드웨어 자원들의 제어를 해제한다.
3. 운영 체제 B로 제어를 이전한다.
4. 상기 단계 1에서 저장된 데이터를 판독함으로써 요구되는 기능을 (운영 체제 B에서) 결정한다.
5. 그 기능의 요구사항들을 충족시키는 데 필요한 하드웨어 자원을 (운영 체제 B에서), 필요한 경우, 활성화시키고 사용한다. 한 운영 체제로부터 다른 운영 체제로의 전환은 어떤 하드웨어 자원(예를 들어, 디스플레이)에 대해 무리없이 수행될 수 있으며, 그에 따라 전환 시간을 줄이고 및/또는 사용자 경험에 대한 부정적 영향을 완화시키기 위해 그 자원의 상태(예를 들어, 현재 메뉴를 디스플레이하고 있음)가 운영 체제 A로부터 운영 체제 B로의 핸드오프에 걸쳐 전체적으로 또는 부분적으로 지속된다.
6. (운영 체제 B에서) 원하는 기능을 제공한다.
예 1의 단계 3에서, 하나 이상의 메시지를 운영 체제 B로 전송함으로써 제어가 운영 체제 B로 이전된다. 이들 메시지는 몇가지 방식으로 구현될 수 있다. 예를 들어, 어떤 구현예들에서, 각각의 운영 체제/프로세서 코어(여기서, 운영 체제 A는 프로세서 코어 A 상에서 실행되고, 운영 체제 B는 프로세서 코어 B 상에서 실행됨)는 그 안에 하드웨어 우편함 큐(hardware mailbox queue)를 구현하는 드라이버를 갖는다. 이 우편함 큐는 운영 체제 A와 운영 체제 B 간의 메시징을 위해 사용되는 간단한 FIFO(first-in-first-out) 큐일 수 있다. (예를 들어, 드라이버에 있는) 운영 체제에 대한 제어 컴포넌트는 그의 운영 체제 및 코어를 슬립 상태에 두도록 지시하는 메시지가 그의 큐에 도착하기를 기다린다. 이 메시지는 운영 체제들 간의 무리없는 핸드오프(graceful handoff)를 위해 예약되어 있는 값을 갖는 한 워드분의 메모리(a word of memory)일 수 있다(예를 들어, 값 1은 제어 컴포넌트가 그의 운영 체제/코어를 슬립 상태에 두어야 함을 나타내고, 값 2는 제어 컴포넌트가 그의 운영 체제/코어를 슬립 상태로부터 깨워야 한다는 것을 나타내며, 기타 값들은 다른 목적을 위해 예약되어 있다). 다른 대안으로서, 이 메시징은 다른 프로토콜 및/또는 다른 유형의 데이터 구조로 구현된다.
예시적인 우편함 큐 구현예에서, 운영 체제 A는, 자신이 재생하지 못하는 형식으로 된 디스크를 검출하는 경우, 메시지(예를 들어, 2의 값을 가짐)를 그의 메시징 드라이버로 전송하고, 이 드라이버는 그 메시지를 운영 체제 B의 드라이버의 우편함 큐로 전달한다. 운영 체제 B의 드라이버는 메시지들이 그의 우편함 큐에 들어오기를 기다리고, 운영 체제 A로부터 메시지를 수신하며, 메시지("깨우기(wake up)"를 나타내는 값을 가짐)를 해석하고, 운영 체제 B 및 코어 B를 깨우기 위한 조치들을 취한다(예를 들어, 드라이버들을 적절히 재활성화(re-enabling)시킨다). 운영 체제 A는 운영 체제 B로 깨우기 메시지(wake-up message)를 전송한 후에 운영 체제 B가 성공적으로 깨어날 것으로 가정하여 그 자신을 슬립 상태에 둔다. 다른 대안으로서, 운영 체제 A는 운영 체제 A에게 그 자신을 슬립 모드에 두라고 지시하는 운영 체제 B로부터의 메시지(예를 들어, 1의 값을 가짐)를 기다린다. 운영 체제 B가 성공적으로 깨어난 후에 운영 체제 B로 하여금 이러한 메시지를 전송하게 하는 것은 더 나은 에러 처리를 가능하게 해주며, 운영 체제 A가 어떤 기간 후에 이러한 슬립 메시지를 받지 못한 경우, 운영 체제 A는 사용자에게 통보하는 것, 전체 시스템을 재부팅시키는 것, 및/또는 다른 조치를 취하는 것에 의해 에러 처리를 개시할 수 있다.
운영 체제 B가 자신이 재생하지 못하는 형식으로 된 디스크를 만나는 경우, 이 메시징 프로세스는 반대로 된다. 운영 체제 B는 메시지(예를 들어, 2의 값을 가짐)를 그의 메시징 드라이버로 전송하고, 이 메시징 드라이버는 그 메시지를 운영 체제 A의 드라이버의 우편함 큐로 전달한다. 운영 체제 A의 드라이버는 메시지가 그의 우편함 큐에 들어오기를 기다리고, 운영 체제 B로부터 메시지를 수신하며, 메시지("깨우기"를 나타내는 값을 가짐)를 해석하고, 운영 체제 A 및 코어 A를 깨우기 위해 조치들을 취한다. 운영 체제 B는 깨우기 메시지를 운영 체제 A로 전송한 후에 그 자신을 슬립 모드에 두거나, 다른 대안으로서, 운영 체제 A로부터의 슬립 메시지를 기다린다.
예 2: 도 2는 동시에 실행 중인 운영 체제들에서의 기능들을 사용하는 무리없는 핸드오프 모델에 따른 예시적인 기법(200)을 나타낸 플로우차트이다. 도 2에 도시된 기법(200)은 몇몇 측면에서 상기 예 1에서의 단계들과 다르지만, 여전히 2개의 운영 체제 간의 원만한 전환을 달성한다.
기법(200)에서, 부트 로더(boot loader)가 활성화되고(205), 운영 체제 A 및 운영 체제 B가 부팅된다(210, 255). 도 2에서, 운영 체제는 유휴 상태에서 시작한다(210, 255). 운영 체제들 중 어느 한쪽이 다른쪽 운영 체제로부터의 깨우기 메 시지(wake-up message)(220, 265)에 의해 유휴 상태(215, 260)로부터 깨어날 수 있다. 이것은, 예를 들어, 사용자가 동작을 요청하거나, 탐색 동작(navigation action)을 수행하거나, 구성 설정을 검사 또는 변경하거나, (예를 들어, 디스크를 바꿈으로써) 미디어 컨텐츠를 변경할 때 일어날 수 있다.
깨어난 후에, 기동된 운영 체제는 그 운영 체제를 사용하여 활성화된 특징 기능(feature functionality)을 수행한다(225 또는 270). 특징 변화를 검출할 때(230 또는 275), 기동된 운영 체제는 자신이 새로운 특징을 수행할 수 있는지 여부를 검사한다(235 또는 280). 수행할 수 없는 경우, 운영 체제는 다른쪽 운영 체제로의 전환을 위해 필요에 따라 하드웨어 자원을 준비하고(240 또는 285), 다른쪽 운영 체제로 깨우기 메시지(wake-up message)를 전송한다(245 또는 290). 이어서, 이 깨우기 메시지를 전송하는 운영 체제는 있을 수 있는 깨우기 메시지를 기다리기 위해 유휴 상태로 되돌아갈 수 있다.
도 2에 도시된 예에서, 운영 체제 A 및 운영 체제 B는, 부팅(210, 255)된 후에, 처음에 유휴 상태(215, 260)에 들어간다. 다른 대안으로서, 운영 체제들 중 하나 이상이 처음에 활성 상태(active state)에 있다. 예를 들어, 예를 들어, 블루-레이 디스크 및 HD DVD 디스크 둘다를 재생하는 비디오 디스크 플레이어에서, 플레이어가 켜질 때 HD DVD 디스크가 그 플레이어에 있는 경우, 제1 운영 체제는 처음에 활성인 상태에 들어간다. 처음에 유휴인 상태에 들어가 깨우기 메시지가 있는지 검사하는 대신에, 제1 운영 체제는, 다른 운영 체제가 활성으로 되는 것을 필요로 하는 이벤트(예를 들어, 사용자가 블루-레이 디스크를 삽입하는 일)가 있을 때까지, 제1 운영 체제 상에서 실행 중인 소프트웨어를 사용하여 활성화된 특징 기능을 수행한다(예를 들어, HD DVD 메뉴를 기동시키거나 HD DVD 재생을 시작한다). 또는, 시동 시에 한 운영 체제가 기본적으로 활성이도록 장치가 구성될 수 있다.
2. 여러 웜-부트 예들
예 3: 이러한 웜-부트 시나리오에서, 운영 체제 A 및 운영 체제 B는 동시에 실행되지 않고 개별적으로 실행되도록 구성되어 있다. 이 예에서, 운영 체제 A는 1차 운영 체제이고, 현재 장치의 대부분의 측면들을 제어한다. 운영 체제 A는 사용자가 운영 체제 B에 의해 제공되는 특징을 사용하려고 시도한다는 것을 탐지한다. 예 3의 프로세스는 이하의 단계들을 포함한다.
1. 식별된 기능의 요구사항을 비휘발성 저장 장치에 저장한다.
2. 운영 체제의 요구사항을 비휘발성 저장 장치에 저장한다.
3. 운영 체제 A를 종료시킨다.
4. 재부팅한다.
5. (부트 로더에서) 상기 단계 2에서 저장된 데이터를 판독함으로써 요구되는 운영 체제를 결정한다. 이 예에서, 이것은 운영 체제 B이다.
6. 운영 체제 B를 부팅시킨다.
7. (운영 체제 B에서) 상기 단계 1에서 저장된 데이터를 판독함으로써 요구되는 특징을 결정한다.
8. (운영 체제 B에서) 상기 특징의 요구사항들을 충족시키는 데 필요한 하드웨어 자원을, 필요한 경우, 활성화시키고 사용한다. 어떤 하드웨어 자원(예를 들 어, 디스플레이)의 경우 한 운영 체제로부터 다른 운영 체제로의 전환이 무리없이 수행될 수 있으며, 따라서 전환 시간을 줄이고 및/또는 사용자 경험에 대한 부정적 영향을 완화시키기 위해, 그 자원의 상태(예를 들어, 현재 메뉴를 디스플레이하고 있음)가 운영 체제 A로부터 운영 체제 B로의 핸드오프에 걸쳐 전체적으로 또는 부분적으로 지속된다.
9. (운영 체제 B에서) 원하는 특징을 제공한다.
예 4: 도 3은 장치 상의 서로 다른 운영 체제들(여기서, 이들 운영 체제는 동시에 실행되지 않음)에서의 특징들을 사용하는 웜-부트 모델에 따른 예시적인 기법(300)을 나타낸 플로우차트이다. 도 3에 도시된 기법(300)은 어떤 측면들에서 상기 예 3에서의 단계들과 다르지만, 여전히 2개의 운영 체제들 간의 원만한 전환을 달성한다.
기법(300)에서, 부트 로더가 활성화되고(305), 운영 체제 B가 부팅되어야 하는지 여부를 나타내는 플래그가 검사된다(310). 이 플래그가 세트되어 있는 경우, 장치는 운영 체제 B를 부팅하고(315), 운영 체제 B를 사용하여 활성화된 특징 기능을 수행한다(320). 다른 대안으로서, 수행될 기능 및/또는 어느 운영 체제가 사용되어야 하는지를 나타내기 위해 플래그 이외의 표시자가 사용된다.
특징 변화가 검출되는 경우(325), 운영 체제는 자신이 새로운 특징을 지원하는지 여부를 결정한다(330). 운영 체제가 새로운 특징을 지원하지 않는 경우, 그 특징에 관한 정보가 비휘발성 저장 장치에 저장된다(335). 다른쪽 운영 체제가 사용되어야 한다는 것을 나타내기 위해 부트 플래그가 리셋되고, 재부팅(340)이 일어 난다.
재부팅(340) 시에, 부트 로더가 활성화되고(305), 부트 플래그는 운영 체제 A가 부팅되어야 한다는 것을 나타낸다(310). 장치는 운영 체제 A를 부팅시키고(350), 운영 체제 A를 사용하여 활성화된 특징 기능을 수행한다(355). 특징 변화가 검출되는 경우(360), 운영 체제는 자신이 새로운 특징을 지원하는지 여부를 결정한다(365). 운영 체제가 새로운 특징을 지원하지 않는 경우, 그 특징에 관한 정보가 비휘발성 저장 장치에 저장되고(370), 장치는 운영 체제 B로 재부팅(375)될 수 있다.
재부팅(340, 375)은 웜-부트인데, 그 이유는 장치가 켜진 후에 일어나기 때문이다. 운영 체제의 웜-부트의 한가지 전형적인 특징은 운영 체제 내의 모든 것이 재초기화되는 것은 아니라는 것이다. 웜-부트 기능의 예들로는, 랩톱 컴퓨터에서의 "대기(standby)" 또는 "최대 절전(hibernate)" 특징들이 있으며, 랩톱 컴퓨터가 대기 또는 최대 절전 모드에 들어갈 때 어떤 상태들이 저장되고, 따라서 랩톱 컴퓨터가 다시 깨어날 때, 중단된 곳으로부터 보다 신속하게 정상 동작을 재개할 수 있다.
B. 설명
상기 예 1, 예 2, 예 3 및 예 4는 1차 운영 체제에 의해 하나 이상의 운영 체제 환경이 호스팅되고 모든 환경들이 필요한 하드웨어 자원에의 액세스를 공유하는 기법들(때때로 가상화 기법이라고 함)과 다르다. 예를 들어, 상기 예 1, 예 2, 예 3 및 예 4에서의 운영 체제 전환이 꼭 사용자에 의한 의식적인 운영 체제 전환 동작으로 인한 것은 아니며, 한 운영 체제가 다른 운영 체제를 호스팅하거나 다른 운영 체제가 실행되는 플랫폼을 에뮬레이트하는 것을 수반하지도 않는다. 사용자는 장치 상에서 다수의 운영 체제가 이용가능한지를 알 필요가 없다.
기술된 구현예들의 어떤 이점들 및 개선점들은 특정의 기능에 필요한 운영 체제들 간의 전환을 수행하는 시간의 절감은 물론, 운영 체제 전환이 사용자를 방해하지 않게 하는 것을 포함한다.
일정 범위의 특징들을 포함하도록 2개의 운영 체제를 사용하는 예시적인 장치를 생각해보자. 이 예시적인 장치에서, 운영 체제 A는 광 디스크 미디어 재생을 지원하는 반면, 운영 체제 B는 인터넷 브라우징을 지원한다. 사용자가 인터넷을 브라우징하고 있는 동안, 운영 체제 B가 장치를 제어하고 있다. 사용자가 광 디스크를 삽입하고 장치 상의 "재생" 버튼을 누르면, 사용자는 통상적으로 운영 체제 B에서 운영 체제 A로 전환하기 위한 사용자의 특정의 동작 없이도 광 미디어 재생이 일어날 것으로 예상한다. 기술된 구현예들은 운영 체제 전환 및 선택이 사용자에게 보이지 않게 해줄 수 있다.
통상적으로, 운영 체제가 부팅되고 장치 드라이버가 로드될 때, 장치 드라이버는 하드웨어를 기지의 상태로 초기화하게 된다. 사용자가 볼 수 있는 화면 또는 외부 디스플레이의 경우에, 이러한 초기화로 인해 사용자가 인지가능한 플리커가 발생될 수 있거나, 외부 디스플레이가 순간적으로 장치의 신호와의 동기화를 상실하게 될 수도 있다. 각각의 운영 체제 인스턴스(operating system instance)에 대한 장치 드라이버 구현을 변경함으로써, 이 초기화 단계는 현재의 디스플레이 상태 를 나타내게 해주고, 플리커, 오염 또는 신호 손실(loss-of-signal)을 야기하게 될 불필요한 초기화 단계를 수행하지 않게 해줄 수 있다. 이것은 운영 체제들 간의 전환이 사용자에게 덜 인지되도록 하기 위해 재부팅 시퀀스가 어떻게 설계될 수 있는지의 일례이다.
III. 오디오 및 비디오 재생 장치의 예시적인 구현예들
이 섹션은 오디오 및 비디오 재생을 위해 서로 다른 미디어 형식(예를 들어, 비디오 디스크 형식(video disc format))을 처리하는 미디어 장치의 운영 체제 전환을 처리하는 기법 및 도구의 특정의 예들을 포함하고 있다. 대안의 구현예들에서, 이하의 예들에서 설명하는 단계들이 순서 변경되거나, 생략되거나, 다른 단계들로 대체될 수 있다.
예를 들어, 제2 운영 체제로부터 제1 운영 체제로의 전환에 대해 설명하는 예들이, 제1 운영 체제에서 지원되는 요청된 특징이 더 이상 사용되지 않게 된 후에 또는 제2 운영 체제에서 지원되는 특징을 사용하는 차후의 사용자 동작에 응답하여, 기본적으로 제2 운영 체제로 다시 되돌아가는 것으로 확장될 수 있다. 운영 체제들 간의 전환은, 필요하게 되거나 요망되는 한, 계속될 수 있다. 제2 운영 체제를 초기의 1차 운영 체제로 지정하는 예들이 제1 운영 체제를 초기의 1차 운영 체제로 지정하도록 수정될 수 있거나, 그 역도 마찬가지이다. 다른 대안으로서, 장치들은 다른 미디어 형식들을 지원하기 위해 처음 2개의 운영 체제 이외의 운영 체제를 사용할 수 있다. 이 섹션에서의 예들은 재생 동작(예를 들어, HD DVD, 블루-레이 또는 DVD 비디오 재생 또는 CD 오디오 재생)을 수행하는 것에 대해 기술하 고 있지만, 이들 운영 체제가 특정의 운영 체제에 특유한 또는 2개 이상의 운영 체제들에 공통적인 다른 동작들을 수행할 수 있다. 이 섹션에서의 예들은 디스크 변경을 운영 체제들 간의 전환을 트리거할 수 있는 이벤트로서 기술하고 있지만, 특정의 운영 체제에서 지원되는 특징의 사용자 선택과 같은 기타 이벤트들도 운영 체제들 간의 전환을 트리거할 수 있다. 이 섹션에서의 예들은 2개의 운영 체제들 간의 전환에 대해 기술하고 있지만, 3개 이상의 운영 체제들 간의 전환도 가능하다.
A. 미디어 형식 변화에 대한 무리없는 핸드오프
어떤 구현예들에서, 미디어 형식 변화에 대한 무리없는 핸드오프 모델(graceful-handoff model)은 2개 이상의 처리 코어(processing core) 각각이 서로 다른 미디어 형식을 지원하는 서로 다른 운영 체제를 실행하는 멀티-코어 선택 프로세스(multi-core selection process)를 포함한다. 무리없는 핸드오프 모델로 인해 서로 다른 형식으로 된 컨텐츠에 대한 로드 시간이 더 짧아질 수 있다.
도 4는 HD DVD 디스크를 재생하는 데 제1 운영 체제를 사용하고 기타 디스크 형식의 디스크를 재생하는 데 제2 운영 체제를 사용하는 장치에서의 전환의 무리없는 핸드오프 처리(graceful-handoff handling)를 위한 예시적인 기법(400)을 나타낸 플로우차트이다. 도 4에 도시된 예에서, 부트 로더가 활성화되고(405), 운영 체제 A 및 운영 체제 B가 부팅된다(410, 455). 운영 체제 B는 처음에 디스크가 장치에 존재하는지 여부를 검사한다(460). 디스크가 존재하는 경우, 운영 체제 B는 디스크가 HD DVD 디스크인지 여부를 결정한다(465). 디스크가 HD DVD 디스크가 아닌 경우, 운영 체제 B는 그 운영 체제를 사용하여 지원되는 특징 기능(예를 들어, 블루-레이, DVD 또는 CD 오디오 재생(470))을 수행할 수 있다. 디스크 변화(475)를 검출할 시에, 운영 체제는 새로운 디스크가 HD DVD 디스크인지 여부를 결정한다(465).
운영 체제 B가, 시동 시에 또는 디스크 변화 후에, 디스크가 있는지 검사할 때, 디스크가 HD DVD 디스크인 경우, 운영 체제는 운영 체제 A로의 전환을 위해 필요에 따라 하드웨어 자원을 준비하고(480), 깨우기 메시지(485)를 운영 체제 A로 전송한다. 운영 체제 B는 유휴 상태(490)에 들어가고, 운영 체제 A로부터의 깨우기 메시지가 있는지 검사를 한다(495). 운영 체제 B는, 깨어난 후에, 또다시 그 운영 체제를 사용하여 지원되는 특징 기능(예를 들어, 블루-레이, DVD 또는 CD 오디오 재생(470))을 수행할 수 있다.
도 4에 도시된 예에서, 운영 체제 A는, 부팅될 때, 처음에 유휴 상태(415)에 들어간다. 운영 체제 A는 운영 체제 B로부터의 깨우기 메시지가 있는지 검사를 한다(420). 운영 체제 A는, 깨어난 후에, 그 운영 체제를 사용하여 지원되는 특징 기능(예를 들어, HD DVD 비디오 재생(425))을 수행할 수 있다.
디스크 변화(430)를 검출할 시에, 운영 체제는 새로운 디스크가 HD DVD 디스크인지 여부를 검사한다(435). HD DVD 디스크가 아닌 경우, 운영 체제는 운영 체제 B로의 전환을 위해 필요에 따라 하드웨어 자원을 준비하고(440), 깨우기 메시지(445)를 운영 체제 B로 전송한다. 이어서, 운영 체제 A는 있을지도 모를 깨우기 메시지를 기다리기 위해 유휴 상태(415)로 되돌아갈 수 있다.
어떤 구현예들에서, 각각의 운영 체제에 대한 유휴 상태의 목표는 각자의 운 영 체제가 유휴 상태일 때 장치 내의 하드웨어에 액세스하는 것을 피하는 것이다. 예를 들어, 한 운영 체제가 광 드라이브 유닛에 액세스하는 동안, 유휴 상태에 있는 다른 운영 체제들은 그 드라이브에 액세스하지 못하도록 되어 있을 수 있다. 유휴 상태들이 서로 다른 방식으로 처리될 수 있다. 예를 들어, 운영 체제 내의 장치 드라이버들이 유휴 모드를 지원하도록 코딩될 수 있다. 또는, 운영 체제가 장치 드라이버를 동적으로 로드(load) 및 언로드(unload)하는 것을 지원하는 경우, 운영 체제가 하부의 하드웨어에 액세스하지 못하도록 하기 위해 드라이버가 언로드될 수 있다. 또는, 운영 체제가 슬립 상태에 놓여질 수 있고, 이 경우 어떤 운영 체제는 자신의 상태를 메모리에 저장한 다음에 정지될 수 있게 해주고, 나중에 신속하게 재시동된다. 이러한 슬립 기능들은 Microsoft Corporation의 Windows
Figure 112009046894431-pct00002
운영 체제에서의 최대 절전 기능들을 포함한다.
장치 상의 각각의 운영 체제에서 유휴 상태를 구현하는 데 동일한 메카니즘이 사용될 필요는 없다. 예를 들어, 최대 절전(hibernation)이 한 운영 체제에 의해 지원될 수 있는 반면, 다른 운영 체제는 드라이버를 로드 및 언로드하는 것만 지원한다. 최대 절전을 지원하는 운영 체제는 최대 절전 상태에 들어감으로써 유휴 모드(idle mode)를 구현할 수 있는 반면, 다른 운영 체제는 장치 드라이버를 언로드함으로써 유휴 모드를 구현할 수 있다. 예를 들어, 운영 체제 상의 장치 드라이버들의 서브세트만이 언로드될 수 있는 경우에, 장치 드라이버를 언로드하는 것과 드라이버가 직접 유휴 모드를 지원하는 것의 조합이 사용될 수도 있다.
이 모델의 대안은 장치 내의 하드웨어 컴포넌트를 펌웨어 계층을 거치도록 추상화하는 것이다. 운영 체제 내의 드라이버들은, 하드웨어와 직접 통신하는 대신에, 추상화된 컴포넌트들과 통신할 수 있다. 이것은 BIOS 개념, 운영 체제 가상화 환경, 또는 (예를 들어, 네트워킹 드라이버가 USB 버스의 저쪽편(far side)에 있는 네트워크 카드와 통신할 수 있도록) 물리 버스가 다른 메카니즘을 통해 터널링될 수 있게 해주는 계층을 통해 장치 액세스가 추상화되는 시스템에서 사용되는 모델과 유사하다. 그러면, 유휴 모드 기능이 장치들에의 액세스를 추상화하는 중간 계층에 구현될 수 있다.
도 5는 펌웨어(530) 및 공유 하드웨어 자원(540)을 갖는 듀얼 코어 설계를 갖는 듀얼-부트 장치(500)의 일례를 나타낸 것이다. 도 5를 참조하면, 제2 운영 체제(510)(리눅스-기반 운영 체제, 기타 유닉스-계열 또는 유닉스 변형 운영 체제, 또는 기타 운영 체제 등)는 제2 운영 체제(510)에 특유한 블루-레이 플레이어 스택(514) 및 드라이버(512)를 지원한다. 제1 운영 체제(520)(Windows
Figure 112009046894431-pct00003
CE 운영 체제 또는 기타 운영 체제 등)는 제1 운영 체제(520)에 특유한 HD DVD 플레이어 스택(524) 및 드라이버(522)를 지원한다. 펌웨어(530)는 부트 로더 데몬(boot loader daemon)(532)을 포함하고 입/출력 서비스(534)를 노출시킨다. 펌웨어(530)는 어떤 특정의 운영 체제와도 제휴 관계가 없으며, 부트 로딩 및 디스크 ID 검출 상태 기계를 중재하는 데 사용된다. 입/출력 서비스(534)는 양 운영 체제(510, 520)에 대한 장치 하드웨어(550)의 공유 하드웨어 자원(540)에의 단일의 진입점을 가능하게 해준다. 입/출력 서비스(534)는 기존의 BIOS 서비스와 유사하다. 입/출력 서비스(534)는 간단하지만, 성능을 그다지 희생시키지 않고 또 기존의 드라이버 에 대한 근본적인 변경을 그다지 하지 않고, 서로 다른 운영 체제-관련 드라이버(512, 522)가 포팅될 수 있게 해줄 정도로 강력하다. 유닉스 시스템에서 발견되는 "ioctl" 시스템 호출(system call)(이는 애플리케이션이 장치 드라이버를 제어하거나 그와 통신할 수 있게 해줌)과 연관된 것 등의 간단한 읽기/쓰기/열기/닫기 의미가 사용된다.
무리없는 핸드오프 모델은 부가의 메모리, 하드웨어 자원 공유를 처리하기 위한 운영 체제에 대한 수정, 및/또는 핸드오프를 조정하기 위한 운영 체제들 간의 통신 오버헤드를 사용할 수 있지만, 전환 시간을 감소시키고 사용자 경험을 향상시킬 수 있다. 엔지니어링 비용을 감소시키기 위해, 종종 운영 체제에서 가능한 한 적은 일을 하는 것이 바람직하다. 표준의 장치 드라이버를 사용하는 것이 종종 선호된다.
B. 미디어 형식 변화에 대한 웜-부트 모델
도 6은 웜-부트 모델(운영 체제들이 동시에 실행되지 않음)에 따라 이용가능한 제1 및 제2 운영 체제를 갖는 장치에서의 디스크 형식 변화를 처리하는 예시적인 기법(600)을 나타낸 플로우차트이다. 기법(600)에서, 부트 로더가 활성화되고(605), HD DVD 재생이 수행될 것인지 여부를 나타내는 플래그가 검사된다(610). 이 플래그가 세트되어 있는 경우, 장치는 제1 운영 체제를 부팅시키고(615), 제1 운영 체제에 의해 지원되는 기능(예를 들어, HD DVD 재생(620))을 수행한다. 다른 대안으로서, 수행될 기능 및/또는 어느 운영 체제가 사용될 것인지를 나타내기 위해 플래그 이외의 표시자가 사용된다. 디스크 변화가 검출되는 경우(625), 운영 체제는 자신이 새로운 디스크를 지원하는지 여부를 결정한다(630). 운영 체제가 새로운 디스크를 지원하지 않는 경우, HD DVD 플래그가 클리어되고(635), 재부팅(640) 시에, 부트 로더가 활성화되고(605), 클리어된 HD DVD 플래그는 제2 운영 체제가 부팅되어야 한다는 것을 나타낸다(610).
재부팅(640) 후에 또는 HD DVD 플래그가 처음에 세트되어 있지 않은 경우, 장치는 제2 운영 체제를 부팅시킨다(655). 제2 운영 체제는 처음에 디스크가 장치에 존재하는지 여부를 검사한다(660). 디스크가 존재하는 경우, 제2 운영 체제는 디스크가 HD DVD 디스크인지 여부를 결정한다(665). 디스크가 HD DVD 디스크가 아닌 경우, 제2 운영 체제는 그 운영 체제에 특유한 특징 기능(예를 들어, 블루-레이, DVD 또는 CD 오디오 재생(670))을 수행할 수 있다. 디스크 변화(675)를 검출할 시에, 운영 체제는 새로운 디스크가 HD DVD 디스크인지 여부를 결정한다(665).
제2 운영 체제가, 시동 시에 또는 디스크 변화 후에, 디스크에 대한 검사를 할 때, 디스플레이가 HD DVD 디스크인 경우, 운영 체제는 HD DVD 플래그를 세트시키고(680), 재부팅(685) 시에, 부트 로더가 활성화되며(605), HD DVD 플래그는 제1 운영 체제가 부팅되어야 함을 나타낸다(610).
재부팅(640, 685)은 웜-부트인데, 그 이유는 장치가 켜진 후에 일어나기 때문이다. 다른 대안으로서, 부트 로더를 통해 다시 순환하기보다는, 운영 체제를 직접 로드하고 기동시키는 논리가 사용될 수 있다.
재부팅 시에 또는 서로 다른 운영 체제의 기타 로드 및 기동 시에, 사용자 경험에 대한 부정적 영향을 완화시키기 위해 어떤 하드웨어 자원들의 상태가 서로 다른 운영 체제의 제어에 걸쳐 전체적으로 또는 부분적으로 지속될 수 있다. 예를 들어, HDMI(High-Definition Multimedia Interface) 제어기의 상태가 리셋되지 않을 수 있거나, 프런트-패널 디스플레이(front-panel display)의 상태가 리셋되지 않을 수 있다.
상기한 웜-부트 모델에 대한 몇가지 대안 및 확장이 가능하다. 예를 들어, 디스크 유형 ID가 한번 기록되고 장치에 대한 부트 로더에 존재할 수 있다. 부트 로더는 디스크 유형 ID에 기초하여 올바른 운영 체제를 선택할 수 있다. 디스크 변화는 부트 로더 논리(boot loader logic)를 가져오기 위해 종료(shut-down) 및 재부팅으로 처리될 수 있으며, 이는 장치를 구축하기 위한 엔지니어링 노력을 간단화할 수 있다.
다른 예로서, 시간이 많이 걸리는 동작들이 병렬화될 수 있다. 예를 들어, 운영 체제 및 재생 애플리케이션을 메모리로부터 로드하는 일 및 미디어 유형을 식별하는 프로세스는 상당한 시간이 걸릴 수 있다.
도 7은 웜-부트 미디어 형식 전환 동작을 병렬로 수행하는 예시적인 기법(700)을 나타낸 플로우차트이다. 도 7에 도시된 예에서, 현재의 운영 체제에 의해 지원되는 재생 애플리케이션이 처음에 실행 중이다. 디스크 트레이(disc tray)가 열리고(710), 장치가 현재의 재생 프로세서를 정지(halt)시켜, 재생 애플리케이션을 중지시킨다(720). (이 단계는 선택적이지만, 그 다음 단계를 위해 어떤 메모리를 해방시키는 데 바람직할 수도 있다.) 이 장치는 (충분한 자유 메모리(free memory)가 있는 경우) 다른 운영 체제를 메모리에 로드(730)하기 시작한다. 새로 운 미디어가 삽입될 때(740), 이 시스템은 미디어 유형을 식별한다(750). 운영 체제의 로딩(730)은 시간이 오래 걸리는 동작일 수 있으며, 따라서 이 장치는 운영 체제의 로딩(730)을 계속 차단하지는 않고, 운영 체제의 로딩이 하나 이상의 다른 단계들(예를 들어, 미디어 유형의 식별(750))과 병렬로 진행될 수 있게 해준다. 미디어 유형의 식별(750)도 시간이 오래 걸리는 동작일 수 있으며, 따라서 하나 이상의 다른 단계들(예를 들어, 운영 체제 로딩(730))과 동시에 진행된다.
이 장치는 현재의 운영 체제가 새로운 미디어를 지원하는지 여부를 검사한다(760). 새로운 미디어 유형이 이미 실행 중인 현재의 운영 체제를 사용하게 되는 경우, 새로운 운영 체제의 로딩(730)이 중지되고(770), 새로운 미디어에 대해 적절한 플레이어 애플리케이션이 기동된다. 새로운 미디어 유형이 로드 중인 운영 체제를 사용하게 되는 경우, 이 장치는, 필요한 경우, 운영 체제의 로딩이 완료되기를 기다리고(780), 재부팅하여 메모리에 있는 새로운 운영 체제를 재시동시킨다.
어떤 웜-부트 구현예는, 어떤 무리없는 핸드오프(graceful-handoff) 구현예와 비교할 때, 특정의 하드웨어 플랫폼에 의존하지 않고, 하드웨어 자원을 덜 필요로 하며, 전체적인 복잡성이 덜하다. 어떤 웜-부트 구현예는 서로 다른 컨텐츠 형식에 대해 증가된 컨텐츠 로드 시간의 비용을 포함할 수 있다.
IV. 확장 및 대안
장치 설정 애플리케이션은(device setup application)은 복잡할 수도 있는 소프트웨어 애플리케이션으로서, 보통은 어떤 레코딩된 미디어와도 연계되어 있지 않다. 비디오 디스크 플레이어의 경우, 장치 설정 기능들은 종종 설정 디스 크(setup disc)를 삽입하는 것에 의하기보다는 리모콘 상의 버튼을 통해 액세스된다. 장치에서 한번에 하나의 운영 체제가 실행 중인 경우, 설정이 각각의 운영 체제 상에서 구현될 수 있고, 이는 장치를 개발하는 엔지니어링 노력을 복잡하게 하지만, 더 나은 사용자 경험을 가져올 수 있다. 또는, 설정이 단일의 운영 체제 상에서 구현될 수 있고, 이는 엔지니어링 노력을 간단화시키지만, 설정에 들어가기 위해서 그 설정을 지원하는 운영 체제로 장치를 재부팅해야만 하는 경우, 그 대가로 사용자 경험을 악화시킬 수 있다. 감소된 엔지니어링 노력과 향상된 사용성의 혼합을 달성하기 위해 복합 방식이 사용될 수 있다. 빈번하게 액세스되는 동작들은 2개 이상의 운영 체제 상에서 구현될 수 있고(예를 들어, 재생 동안에 자막을 활성화/비활성화하는 것), 덜 빈번한 동작들은 단일의 운영 체제 상에서 구현될 수 있다(예를 들어, 네트워크 접속을 설정하는 것). 다수의 운영 체제가 장치 상에서 동시에 실행되고 있을 때, 설정이 단일의 운영 체제 상에서 구현될 수 있고 현재 장치에 있는 미디어 유형에 상관없이 여전히 동작할 수 있다. 예를 들어, 설정이 CPU 코어 상에서 실행 중인 제2 운영 체제 상에서 구현될 수 있고, 이는 HD DVD 재생을 제어하는 제1 운영 체제로 핸드오프되는 사용자 인터페이스를 생성한다. 이 사용자 인터페이스는 비디오 재생 대신에 또는 그에 부가하여[예를 들어, 서로 혼합되어 또는 별도의 온스크린 창(on-screen window)에] 디스플레이될 수 있다.
장치는 웜-부트 운영 체제 전환 기법과 무리없는 핸드오프 운영 체제 전환 기법의 조합을 구현할 수 있다. 예를 들어, 장치는 자원 사용량, 전환 시간, 및 사용자 경험에 대한 잠재적인 영향 등의 인자들에 기초하여 무리없는 핸드오프 전 환을 사용할지 웜-부트 전환을 사용할지를 결정할 수 있다. 이와 같이, 장치는 운영 체제들 간의 전환을 처리함에 있어서 유연성을 가질 수 있다.
어떤 미디어 형식에서는 재생 및 메뉴 탐색에 대한 지원에 부가하여 XML(Extensible Markup Language) 지원, ECMAScript(표준화된 스크립팅 언어)에 대한 지원, 또는 Java 지원 등의 고급 기능 지원을 요구한다. 이러한 종류의 고급 기능에 대한 지원을 필요로 하는 특징들의 선택도 역시 운영 체제 전환을 주도할 수 있다.
듀얼-형식 디스크(dual-format disc)의 사용으로 인해, 디스크 변화와 연관된 이벤트와 유사하게 운영 체제 전환을 트리거하는 이벤트가 일어날 수 있다. 본 명세서에 기술된 기법들 및 도구들이 듀얼-형식 디스크와 관련하여 사용될 수 있다.
다양한 실시예들을 참조하여 본 발명의 원리들을 설명하고 예시하였지만, 이 다양한 실시예들이 이러한 원리들을 벗어나지 않고 구성 및 상세에 있어서 수정될 수 있다는 것을 잘 알 것이다. 본 명세서에 기술된 프로그램, 프로세서, 또는 메서드가, 달리 언급하지 않는 한, 임의의 특정의 유형의 컴퓨팅 환경과 관련되거나 그것으로 제한되지 않는다는 것을 잘 알 것이다. 다양한 유형의 범용 또는 전용 컴퓨팅 환경이 본 발명에서 사용될 수 있거나 본 발명에 따라 동작들을 수행할 수 있다. 소프트웨어로 나타내어져 있는 본 발명의 구성요소들이 하드웨어로 구현될 수 있고, 그 역도 마찬가지이다.
개시된 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 살펴보면, 예시된 실시예들이 단지 본 발명의 양호한 예들에 불과하고 본 발명의 범위를 제한하는 것으로 보아서는 안된다는 것을 잘 알 것이다. 오히려, 본 발명의 범위는 이하의 청구항들에 의해 정의된다. 따라서, 이들 청구항의 범위 및 정신 내에 속하는 모든 것을 본 발명으로 보아야 한다.

Claims (36)

  1. 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식(format)에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원하며, 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는, 상기 활성 상태에 있는 상기 제2 운영 체제로부터 상기 제1 유휴 상태에 있는 상기 제1 운영 체제로 깨우기 메시지(wakeup message)를 전송하는 단계를 포함함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  2. 제1항에 있어서,
    상기 제1 유휴 상태로부터 깨우는 단계 후에, 상기 제1 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제2 운영 체제를 제2 유휴 상태에 두는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  3. 제2항에 있어서,
    상기 제1 디지털 미디어 정보를 재생하는 단계 후에,
    상기 디지털 미디어 플레이어에서 제2 디지털 미디어 정보를 수신하는 단계 - 상기 제2 디지털 미디어 정보는 상기 제2 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제2 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제1 운영 체제를 제1 유휴 상태에 두는 단계,
    상기 제2 운영 체제를 상기 제2 유휴 상태로부터 깨우는 단계, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제2 애플리케이션을 사용하여 상기 제2 디지털 미디어 정보를 재생하는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  4. 제2항에 있어서,
    상기 제1 디지털 미디어 정보를 재생하는 단계 후에,
    탐색 또는 구성 특징(navigation or configuration feature)에 대한 요청을 수신하는 단계,
    상기 제2 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제1 운영 체제를 상기 제1 유휴 상태에 두는 단계,
    상기 제2 운영 체제를 상기 제2 유휴 상태로부터 깨우는 단계, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 상기 탐색 또는 구성 특징에 대한 메뉴를 제공하는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  5. 제1항에 있어서,
    상기 디지털 미디어 플레이어는 독립형 장치, 통신 장치의 일부, 또는 디스플레이 장치의 일부인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  6. 제1항에 있어서,
    상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고,
    상기 제1 미디어 형식은 고선명도 비디오 형식인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  7. 제1항에 있어서,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 디지털 미디어 정보가 인코딩된 상기 제1 미디어 형식을 식별한 것에 응답한 것인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  8. 제1항에 있어서,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 운영 체제에 의해 지원되는 탐색 또는 구성 특징을 사용자가 선택한 것에 응답한 것인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  9. 비휘발성 저장 장치에 저장된 제1 운영 체제 및 비휘발성 저장 장치에 저장된 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제2 운영 체제는 메모리에서 활성 상태로 실행 중임 -,
    상기 제1 디지털 미디어 정보가 인코딩된 제1 미디어 형식을 식별하는 단계 - 상기 제1 미디어 형식에 대한 재생은 상기 제1 운영 체제에 의해 지원되고, 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 재생은 상기 제2 운영 체제에 의해 지원됨 -,
    상기 식별하는 단계에 응답하여, 상기 제1 운영 체제를 상기 비휘발성 저장 장치로부터 메모리 내로 로드하는 단계 - 상기 제1 운영 체제가 메모리에서 활성 상태로 실행 중에 있을 때, 상기 제1 운영 체제는 상기 제1 디지털 미디어 정보를 재생하기 위한 운영 환경을 제공함 -,
    탐색 또는 구성 특징에 대한 요청을 수신하는 단계,
    상기 제1 운영 체제를 종료시키는 단계,
    상기 제2 운영 체제를 상기 비휘발성 저장 장치로부터 메모리 내로 로드하는 단계 - 상기 제2 운영 체제는 상기 탐색 또는 구성 특징에 대한 메뉴를 제공하기 위한 운영 환경을 제공함 -, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 상기 메뉴를 제공하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  10. 제9항에 있어서,
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계를 더 포함하며,
    상기 제1 애플리케이션은 상기 제1 미디어 형식에 따라 인코딩된 상기 제1 디지털 미디어 정보를 디코딩하도록 동작가능한, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  11. 제9항에 있어서,
    상기 디지털 미디어 플레이어는 독립형 장치, 통신 장치의 일부, 또는 디스플레이 장치의 일부인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  12. 제9항에 있어서,
    상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고,
    상기 제1 미디어 형식은 고선명도 비디오 형식인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  13. 제9항에 있어서,
    상기 제1 운영 체제가 메모리에서 활성 상태로 실행되기 전에, 상기 제2 운영 체제를 종료시키는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  14. 제13항에 있어서,
    상기 메뉴를 제공하는 단계 후에,
    상기 디지털 미디어 플레이어에서 제2 디지털 미디어 정보를 수신하는 단계 - 상기 제2 디지털 미디어 정보는 상기 제2 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제2 미디어 형식을 식별하는 단계, 및
    상기 제2 운영 체제에 의해 제공된 운영 환경에서 실행되는 제2 애플리케이션을 사용하여 상기 제2 디지털 미디어 정보를 재생하는 단계- 상기 제2 운영 체제는 상기 제2 디지털 미디어 정보를 재생하기 위한 운영 환경을 제공함 -
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  15. 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -,
    복수의 하드웨어 컴포넌트들 중 적어도 하나의 하드웨어 컴포넌트의 상태를 지속시키는 단계- 상기 적어도 하나의 하드웨어 컴포넌트는 상기 디지털 미디어 플레이어에 연결된 디스플레이를 포함하고, 상기 지속되는 상태는 디스플레이되는 정보를 포함함 -,
    상기 복수의 하드웨어 컴포넌트들의 제어를 상기 제2 운영 체제로부터 상기 제1 운영 체제로 이전하는 단계, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  16. 제15항에 있어서,
    상기 디스플레이된 정보는 메뉴를 포함하는, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  17. 제15항에 있어서,
    펌웨어 계층이 상기 복수의 하드웨어 컴포넌트들에의 액세스를 추상화하는 입/출력 서비스를 제공하고,
    상기 펌웨어 계층은 상기 제1 유휴 상태에 대한 유휴 모드 기능을 구현하는,미디어 장치에서 다중 운영 체제를 지원하는 방법.
  18. 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있고, 상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고, 상기 제1 미디어 형식은 고선명도 비디오 형식임 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  19. 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계- 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 디지털 미디어 정보가 인코딩된 상기 제1 미디어 형식을 식별한 것에 응답한 것이고, 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  20. 제19항에 있어서,
    상기 제1 유휴 상태로부터 깨우는 단계 후에, 상기 제1 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제2 운영 체제를 제2 유휴 상태에 두는 단계를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  21. 제20항에 있어서,
    상기 제1 디지털 미디어 정보를 재생하는 단계 후에,
    상기 디지털 미디어 플레이어에서 제2 디지털 미디어 정보를 수신하는 단계 - 상기 제2 디지털 미디어 정보는 상기 제2 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제2 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제1 운영 체제를 제1 유휴 상태에 두는 단계,
    상기 제2 운영 체제를 상기 제2 유휴 상태로부터 깨우는 단계, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제2 애플리케이션을 사용하여 상기 제2 디지털 미디어 정보를 재생하는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  22. 제20항에 있어서,
    상기 제1 디지털 미디어 정보를 재생하는 단계 후에,
    탐색 또는 구성 특징에 대한 요청을 수신하는 단계,
    상기 제2 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제1 운영 체제를 상기 제1 유휴 상태에 두는 단계,
    상기 제2 운영 체제를 상기 제2 유휴 상태로부터 깨우는 단계, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 상기 탐색 또는 구성 특징에 대한 메뉴를 제공하는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  23. 제19항에 있어서,
    상기 디지털 미디어 플레이어는 독립형 장치, 통신 장치의 일부, 또는 디스플레이 장치의 일부인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  24. 제19항에 있어서,
    상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고,
    상기 제1 미디어 형식은 고선명도 비디오 형식인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  25. 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계- 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원하며, 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 운영 체제에 의해 지원되는 탐색 또는 구성 특징을 사용자가 선택한 것에 응답한 것임 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  26. 제25항에 있어서,
    상기 제1 유휴 상태로부터 깨우는 단계 후에, 상기 제1 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제2 운영 체제를 제2 유휴 상태에 두는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  27. 제26항에 있어서,
    상기 제1 디지털 미디어 정보를 재생하는 단계 후에,
    상기 디지털 미디어 플레이어에서 제2 디지털 미디어 정보를 수신하는 단계 - 상기 제2 디지털 미디어 정보는 상기 제2 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제2 운영 체제에서 사용하기 위한 자원들을 해방시키기 위해 상기 제1 운영 체제를 제1 유휴 상태에 두는 단계,
    상기 제2 운영 체제를 상기 제2 유휴 상태로부터 깨우는 단계, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제2 애플리케이션을 사용하여 상기 제2 디지털 미디어 정보를 재생하는 단계
    를 더 포함하는 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  28. 제25항에 있어서,
    상기 디지털 미디어 플레이어는 독립형 장치, 통신 장치의 일부, 또는 디스플레이 장치의 일부인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  29. 제25항에 있어서,
    상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고,
    상기 제1 미디어 형식은 고선명도 비디오 형식인, 미디어 장치에서 다중 운영 체제를 지원하는 방법.
  30. 디지털 미디어 프로세싱을 구현하는 컴퓨팅 시스템에 의해 실행되는 경우, 상기 컴퓨팅 시스템으로 하여금 청구항 제1항 내지 제29항 중 어느 한 항에 따른 방법을 실행하게 하는 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 저장 매체.
  31. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서, 및
    적어도 하나의 메모리
    를 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 상기 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식(format)에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원하며, 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는, 상기 활성 상태에 있는 상기 제2 운영 체제로부터 상기 제1 유휴 상태에 있는 상기 제1 운영 체제로 깨우기 메시지(wakeup message)를 전송하는 단계를 포함함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
  32. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서,
    적어도 하나의 메모리, 및
    적어도 하나의 비휘발성 저장 장치
    를 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 비휘발성 저장 장치에 저장된 제1 운영 체제 및 상기 비휘발성 저장 장치에 저장된 제2 운영 체제를 갖는 상기 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제2 운영 체제는 메모리에서 활성 상태로 실행 중임 -,
    상기 제1 디지털 미디어 정보가 인코딩된 제1 미디어 형식을 식별하는 단계 - 상기 제1 미디어 형식에 대한 재생은 상기 제1 운영 체제에 의해 지원되고, 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 재생은 상기 제2 운영 체제에 의해 지원됨 -,
    상기 식별하는 단계에 응답하여, 상기 제1 운영 체제를 상기 비휘발성 저장 장치로부터 상기 메모리 내로 로드하는 단계 - 상기 제1 운영 체제가 상기 메모리에서 활성 상태로 실행 중에 있을 때, 상기 제1 운영 체제는 상기 제1 디지털 미디어 정보를 재생하기 위한 운영 환경을 제공함 -,
    탐색 또는 구성 특징에 대한 요청을 수신하는 단계,
    상기 제1 운영 체제를 종료시키는 단계,
    상기 제2 운영 체제를 상기 비휘발성 저장 장치로부터 상기 메모리 내로 로드하는 단계 - 상기 제2 운영 체제는 상기 탐색 또는 구성 특징에 대한 메뉴를 제공하기 위한 운영 환경을 제공함 -, 및
    상기 제2 운영 체제에 의해 제공되는 운영 환경에서 상기 메뉴를 제공하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
  33. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서,
    적어도 하나의 메모리, 및
    디스플레이를 포함하는 복수의 하드웨어 컴포넌트들
    을 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 상기 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 상기 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -,
    복수의 하드웨어 컴포넌트들 중 적어도 하나의 하드웨어 컴포넌트의 상태를 지속시키는 단계- 상기 적어도 하나의 하드웨어 컴포넌트는 상기 디지털 미디어 플레이어에 연결된 상기 디스플레이를 포함하고, 상기 지속되는 상태는 디스플레이되는 정보를 포함함 -,
    상기 복수의 하드웨어 컴포넌트들의 제어를 상기 제2 운영 체제로부터 상기 제1 운영 체제로 이전하는 단계, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
  34. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서, 및
    적어도 하나의 메모리
    를 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 상기 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 상기 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있고, 상기 제1 디지털 미디어 정보는 고선명도 비디오 컨텐츠를 포함하고, 상기 제1 미디어 형식은 고선명도 비디오 형식임 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계 - 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
  35. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서, 및
    적어도 하나의 메모리
    를 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 상기 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 상기 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계- 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 디지털 미디어 정보가 인코딩된 상기 제1 미디어 형식을 식별한 것에 응답한 것이고, 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원함 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
  36. 디지털 미디어 플레이어로서,
    적어도 하나의 프로세서, 및
    적어도 하나의 메모리
    를 포함하고,
    상기 메모리에 저장된 컴퓨터 실행가능 명령어가 상기 프로세서에 의해 실행될 경우 상기 디지털 미디어 플레이어로 하여금,
    상기 메모리에서 제1 유휴 상태에 있는 제1 운영 체제를 갖고 상기 메모리에서 활성 상태에 있는 제2 운영 체제를 갖는 상기 디지털 미디어 플레이어에서 제1 디지털 미디어 정보를 수신하는 단계 - 상기 제1 디지털 미디어 정보는 제1 미디어 형식에 따라 인코딩되어 있음 -,
    상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계- 상기 제1 운영 체제는 상기 제1 미디어 형식에 대한 미디어 재생을 지원하고, 상기 제2 운영 체제는 상기 제1 미디어 형식과 다른 제2 미디어 형식에 대한 미디어 재생을 지원하며, 상기 제1 운영 체제를 상기 제1 유휴 상태로부터 깨우는 단계는 상기 제1 운영 체제에 의해 지원되는 탐색 또는 구성 특징을 사용자가 선택한 것에 응답한 것임 -, 및
    상기 제1 운영 체제에 의해 제공되는 운영 환경에서 실행되는 제1 애플리케이션을 사용하여 상기 제1 디지털 미디어 정보를 재생하는 단계
    를 포함하는 방법을 수행하도록 하는
    디지털 미디어 플레이어.
KR1020097016093A 2007-02-06 2008-01-15 미디어 장치에서의 다중 운영 체제의 지원 KR101505209B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US89990907P 2007-02-06 2007-02-06
US60/899,909 2007-02-06
US11/999,605 2007-12-06
US11/999,605 US8046570B2 (en) 2007-02-06 2007-12-06 Supporting multiple operating systems in media devices
PCT/US2008/051045 WO2008097695A1 (en) 2007-02-06 2008-01-15 Supporting multiple operating systems in media devices

Publications (2)

Publication Number Publication Date
KR20090115131A KR20090115131A (ko) 2009-11-04
KR101505209B1 true KR101505209B1 (ko) 2015-03-23

Family

ID=39677180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016093A KR101505209B1 (ko) 2007-02-06 2008-01-15 미디어 장치에서의 다중 운영 체제의 지원

Country Status (14)

Country Link
US (1) US8046570B2 (ko)
EP (1) EP2109818B1 (ko)
JP (1) JP5215324B2 (ko)
KR (1) KR101505209B1 (ko)
CN (1) CN101606128B (ko)
AU (1) AU2008214236B2 (ko)
BR (1) BRPI0806729A2 (ko)
CA (1) CA2675523A1 (ko)
IL (1) IL199728A0 (ko)
MX (1) MX2009008223A (ko)
RU (1) RU2451989C2 (ko)
TW (1) TW200841710A (ko)
WO (1) WO2008097695A1 (ko)
ZA (1) ZA200905419B (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495403B2 (en) * 2008-12-31 2013-07-23 Intel Corporation Platform and processor power management
TWI559227B (zh) * 2009-01-12 2016-11-21 幸福居福爾摩沙股份有限公司 具有內建雙可隨機關閉開啟電源作業裝置的電腦系統
WO2010099529A1 (en) * 2009-02-27 2010-09-02 Keicy Chung Central processing unit capable of multi-boot using disjoint memory spaces
US8327174B2 (en) * 2009-03-20 2012-12-04 Hewlett-Packard Development Company, L.P. Loading operating systems using memory segmentation and ACPI based context switch
KR101562973B1 (ko) * 2009-05-22 2015-10-26 삼성전자 주식회사 메모리 장치 및 메모리 장치의 동작 방법
TWI395139B (zh) * 2009-05-27 2013-05-01 Apacer Technology Inc 電子裝置及其開機方法
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US8743128B2 (en) 2009-09-01 2014-06-03 Blackberry Limited Mobile wireless communications device with reset functions and related methods
US8832421B2 (en) * 2009-10-20 2014-09-09 Blackberry Limited Enhanced fast reset in mobile wireless communication devices and associated methods
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
CN102104936B (zh) * 2009-12-18 2014-11-05 联想(北京)有限公司 系统状态切换方法及便携终端
US9665712B2 (en) 2010-02-22 2017-05-30 F-Secure Oyj Malware removal
CN102207875B (zh) 2010-03-30 2014-11-12 鸿富锦精密工业(深圳)有限公司 媒体数据播放装置及其重新启动方法
US9010641B2 (en) 2010-12-07 2015-04-21 Hand Held Products, Inc. Multiple platform support system and method
KR20120066846A (ko) * 2010-12-15 2012-06-25 삼성전자주식회사 모바일 디바이스
JP2012155600A (ja) * 2011-01-27 2012-08-16 Fujitsu Ltd 情報処理装置、制御方法、および制御プログラム
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
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
KR101292751B1 (ko) * 2011-07-04 2013-08-05 이호준 다중 운영 체제 기반의 홈 서버 장치
EP2771784A4 (en) * 2011-10-28 2015-06-24 Intel Corp CHANGE BETWEEN OPERATIONAL CONTEXTS
JP2014531099A (ja) * 2011-10-28 2014-11-20 インテル・コーポレーション 動作コンテキストの切り替え
TW201324354A (zh) * 2011-12-12 2013-06-16 Wistron Corp 自動化連續安裝作業系統的方法
CN103294545B (zh) 2012-02-23 2017-07-04 纬创资通股份有限公司 切换双操作系统的方法以及电子装置
TWI482021B (zh) * 2012-02-23 2015-04-21 Wistron Corp 雙作業系統共用周邊裝置之方法以及使用該方法之電子裝置
CN103294562B (zh) 2012-02-23 2017-03-01 纬创资通股份有限公司 双操作系统共用周边装置的方法以及电子装置
US9417753B2 (en) 2012-05-02 2016-08-16 Google Technology Holdings LLC Method and apparatus for providing contextual information between operating system environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
CN103488466B (zh) * 2012-06-11 2017-02-08 联想(北京)有限公司 用于执行应用程序的方法和装置
US10064240B2 (en) * 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
TW201525869A (zh) * 2013-10-23 2015-07-01 Insyde Software Corp 用於雙作業系統記憶體切換的系統及方法
CN104142859B (zh) * 2014-07-31 2016-10-26 努比亚技术有限公司 一种双系统的快速切换方法、装置和移动终端
CN106776389B (zh) * 2016-11-29 2020-10-16 广州视源电子科技股份有限公司 存储器的访问方法及多系统终端
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置
US10893093B2 (en) 2018-01-18 2021-01-12 International Business Machines Corporation Translating a user's working context from one operating system and associated applications to a different operating system and associated applications
CN108833960A (zh) * 2018-06-14 2018-11-16 青岛海信传媒网络技术有限公司 一种音视频应用切换的方法及装置
CN112650383A (zh) * 2019-10-10 2021-04-13 Oppo广东移动通信有限公司 应用程序的控制方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046819A2 (en) 1999-12-21 2001-06-28 General Instrument Corporation Abstract device driver model for the portability of device drivers across different operating system platforms
US6654827B2 (en) * 2000-12-29 2003-11-25 Hewlett-Packard Development Company, L.P. Portable computer system with an operating system-independent digital data player
US20060155914A1 (en) 2005-01-07 2006-07-13 Apple Computer, Inc. Highly portable media device

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3018336B2 (ja) * 1987-10-31 2000-03-13 株式会社東芝 情報処理装置
JPH0527954A (ja) * 1991-07-18 1993-02-05 Toshiba Corp コンピユータシステム
JPH08227356A (ja) * 1994-12-21 1996-09-03 Tec Corp データ処理装置
US5623696A (en) * 1995-05-30 1997-04-22 International Business Machines Corporation System for formatting a request into a packet which can be read by plurality of operating systems for providing a driver for a storage device
JPH09297747A (ja) * 1996-04-30 1997-11-18 Mitsubishi Electric Corp 多目的システムlsi装置及びパーソナルコンピュータ
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
JP2000020285A (ja) * 1998-06-26 2000-01-21 Toshiba Corp コンピュータシステム
EP1037133A1 (en) 1999-03-15 2000-09-20 International Business Machines Corporation Method and apparatus for alternation between instances of operating systems in computer systems
US6631101B1 (en) * 1999-03-16 2003-10-07 Gateway, Inc. System, method, and software for recovering from interruption of DVD playback
JP2001117783A (ja) * 1999-08-10 2001-04-27 Seiko Epson Corp プログラム起動システム及びプログラム起動制御方法
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
JP2001282558A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US20040226020A1 (en) * 2000-09-28 2004-11-11 Ati Technologies, Inc. Method and system for using general and appliance operating systems in a single information handling device
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7890741B2 (en) * 2000-12-01 2011-02-15 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7231531B2 (en) * 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
JP2003036174A (ja) * 2001-07-25 2003-02-07 Hitachi Ltd 車載端末装置
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
JP4026383B2 (ja) * 2002-03-20 2007-12-26 セイコーエプソン株式会社 情報処理システム、情報処理端末、外部記憶装置、情報処理端末制御用プログラム及び外部記憶装置制御用プログラム
US7337330B2 (en) * 2003-03-10 2008-02-26 Cyberview Technology, Inc. Universal game download system for legacy gaming machines
US7853740B2 (en) * 2003-09-18 2010-12-14 Riip, Inc. Keyboard video mouse (KVM) switch for transmission of high quality audio with 64-bit data packets wherein transmissions of data packets are wherein a defined time limit
GB0400658D0 (en) * 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Portable device for receiving media content
JP2005202691A (ja) * 2004-01-15 2005-07-28 Sharp Corp 情報処理装置、そのプログラムおよび記録媒体
TW200525421A (en) * 2004-01-30 2005-08-01 Intervideo Digital Technology Corp Structure of shared application program in operating system and method thereof
TWI234938B (en) * 2004-02-12 2005-06-21 Intervideo Digital Technology Architecture of operating system sharing application program with a remote-control feature and its method
US7424601B2 (en) * 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7529921B2 (en) * 2004-12-17 2009-05-05 Cardiac Pacemakers, Inc. Fast initialization of medical device system having multiple operating systems
JP2006178816A (ja) * 2004-12-24 2006-07-06 D & M Holdings Inc デジタルデータ再生装置及びデジタルデータ記憶再生装置
TWI267752B (en) * 2005-01-17 2006-12-01 Lite On Technology Corp Multi-mode computer system and operating method thereof
TW200627277A (en) * 2005-01-24 2006-08-01 Lite On Technology Corp OS selection method and computer system utilizing same
US20060179326A1 (en) * 2005-02-10 2006-08-10 Kwok-Yan Leung Security device using multiple operating system for enforcing security domain
RU2005105976A (ru) * 2005-03-03 2006-08-10 Общество с ограниченной ответственностью "Активное Видео" (RU) Способ (варианты) и система (варианты) управления мультимедийной информацией и мультимедийными приложениями
JP2007006107A (ja) * 2005-06-23 2007-01-11 Toshiba Corp 情報処理装置および録画制御方法
FI20051114A0 (fi) * 2005-11-03 2005-11-03 Nokia Corp Automaattinen monen tietokoneen käynnistys
US20100306773A1 (en) * 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
US7877592B2 (en) * 2006-12-04 2011-01-25 Ntt Docomo, Inc. System and methods for efficient and cooperative operating system switching
EP2068320A4 (en) * 2006-12-29 2010-12-01 Panasonic Corp RECORDING REPRODUCTION DEVICE, REPRODUCING DEVICE, AND HOST DEVICE

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046819A2 (en) 1999-12-21 2001-06-28 General Instrument Corporation Abstract device driver model for the portability of device drivers across different operating system platforms
US6654827B2 (en) * 2000-12-29 2003-11-25 Hewlett-Packard Development Company, L.P. Portable computer system with an operating system-independent digital data player
US20060155914A1 (en) 2005-01-07 2006-07-13 Apple Computer, Inc. Highly portable media device
US7593782B2 (en) * 2005-01-07 2009-09-22 Apple Inc. Highly portable media device

Also Published As

Publication number Publication date
RU2009130109A (ru) 2011-02-10
JP2010518512A (ja) 2010-05-27
EP2109818A1 (en) 2009-10-21
AU2008214236A1 (en) 2008-08-14
US8046570B2 (en) 2011-10-25
ZA200905419B (en) 2010-10-27
AU2008214236B2 (en) 2012-02-09
JP5215324B2 (ja) 2013-06-19
TW200841710A (en) 2008-10-16
MX2009008223A (es) 2009-08-12
WO2008097695A1 (en) 2008-08-14
CN101606128A (zh) 2009-12-16
RU2451989C2 (ru) 2012-05-27
CN101606128B (zh) 2013-07-24
KR20090115131A (ko) 2009-11-04
EP2109818A4 (en) 2009-12-09
IL199728A0 (en) 2010-04-15
EP2109818B1 (en) 2016-06-15
US20080189538A1 (en) 2008-08-07
BRPI0806729A2 (pt) 2011-09-13
CA2675523A1 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
KR101505209B1 (ko) 미디어 장치에서의 다중 운영 체제의 지원
US7814307B2 (en) Fast booting a computing device to a specialized experience
US8725994B2 (en) Launching an application from a power management state
JP4459290B2 (ja) オペレーティングシステムの停止状態からの高速起動
US7707400B2 (en) Direct computing experience
CN109542744B (zh) 检测终端开机异常问题的方法、装置、存储介质及终端
US7496744B2 (en) Method for booting computer multimedia system with high speed data storage
US20060200573A1 (en) Multimedia Computer System and Method
US7350111B2 (en) Method of providing a real time solution to error occurred when computer is turned on
KR20110017291A (ko) 영상 재생 장치를 부팅하는 방법 및 그 장치
US7447890B2 (en) Method for fast activation and playing of multimedia data with non-fixed data storage media
US7620758B2 (en) System and method for fast activation and playing using a multimedia playback control module to load and execute core program
CN100565455C (zh) 多媒体电脑系统及快速启始该系统播放多媒体数据的方法
US7401214B2 (en) Method for executing computer function options with intelligent memory for computer-based multimedia system
WO2011016080A1 (ja) 情報処理装置、情報処理方法
JP2010123254A (ja) 電子機器およびそのシステム起動方法

Legal Events

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

Payment date: 20180219

Year of fee payment: 4