ПОДДЕРЖКА НЕСКОЛЬКИХ ОПЕРАЦИОННЫХ СИСТЕМ В МУЛЬТИМЕДИЙНЫХ УСТРОЙСТВАХ
SUPPORTING MULTIPLE OPERATING SYSTEMS IN MULTIMEDIA DEVICES

УРОВЕНЬ ТЕХНИКИ
Мультимедийные форматы для устройств потребительской электроники становятся все более и более сложными, при этом большая часть их улучшенных функциональных возможностей перемещается из аппаратных средств в программное обеспечение. В результате программные среды устройств потребительской электроники стали все более и более сложными.
Кроме того, старшие и более простые форматы, например DVD, все еще оставляют часть своей обработки программному обеспечению даже при том, что они перекладывают большую часть своей обработки на более дешевые и более простые аппаратные средства. Например, функции обработки меню (или "навигация") могут быть осуществлены в программном обеспечении, в то время как аудио и видеопотоки, вероятно, будут декодированы специализированной аппаратурой. Рынок DVD развивался в течение долгого времени, хотя основное навигационное программное обеспечение может быть относительно простым. DVD проигрыватели ответили сложной логикой обработки меню для правильной обработки DVD с большим количеством возможностей. В результате относительно простой формат DVD развился так, что программное обеспечение для его воспроизведения теперь весьма сложно. Многие производители проигрывателей имеют существенные инвестиции в это программное обеспечение, и программное обеспечение, развивавшееся в течение долгого времени, имеет зависимости от его операционной среды.
При наличии различных доступных мультимедийных форматов в устройствах потребительской электроники существует потребность в поддержке нескольких форматов. Например, предположив, что пользователи обычно ожидают, что их DVD проигрыватель также воспроизведет диски аудио CD, которые являются совсем другим мультимедийным форматом, станет ясным, что поддержка нескольких форматов желательна. Следовательно, целевая задача - как выполнить рентабельным способом несколько программных приложений, которые могут требовать своих собственных операционных систем.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В разделе Сущность изобретения представлен набор понятий в упрощенном виде, которые дополнительно описаны ниже в Детальном Описании. Раздел Сущность изобретения не подразумевает идентификацию ключевых или существенных признаков заявляемого объекта и не подразумевает ограничить область действия заявляемого объекта.
В итоге, Детальное Описание направлено к различным методикам и инструментальным средствам для поддержки нескольких операционных систем в потребительских электронных устройствах. Например, описаны методики и инструментальные средства, которые позволяют быстро переключаться между операционными системами в проигрывателях видеодисков, которые поддерживают различные типы медиаданных, при сокращении времени ожидания и смягчении возможных негативных воздействий на опыт пользователя.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - блок-схема, поясняющая обобщенный пример соответствующей вычислительной среды, в которой могут быть осуществлены несколько из описанных вариантов осуществления.
Фиг.2 - блок-схема, показывающая приведенную в качестве примера методику "постепенной передачи обслуживания" модели обработки при изменении признаков среди различных операционных систем согласно одному или более описанным вариантам осуществления.
Фиг.3 - блок-схема, показывающая приведенную в качестве примера методику "теплая загрузка" модели обработки при изменении признаков среди различных операционных систем согласно одному или более описанным вариантам осуществления.
Фиг.4 - блок-схема, показывающая приведенную в качестве примера методику для обработки постепенной передачи обслуживания при изменении формата диска согласно одному или более описанным вариантам осуществления.
Фиг.5 - схема системы, показывающая микропрограмму с загрузчиком и службами базовой системы ввода-вывода для обработки изменения формата диска согласно одному или более описанным вариантам осуществления.
Фиг.6 - блок-схема, показывающая приведенную в качестве примера методику теплой загрузки для обработки изменения формата диска согласно одному или более описанным вариантам осуществления.
Фиг.7 - блок-схема, показывающая приведенную в качестве примера методику для выполнения операций параллельного переключения медиаформата при теплой загрузке согласно одному или более описанным вариантам осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
Здесь описаны методики и инструментальные средства для поддержки нескольких операционных систем во встроенных устройствах, таких как, например медиапроигрыватель.
Здесь описаны различные возможные варианты реализации. Например, определенные методики, описанные со ссылкой на блок-схемы, могут быть изменены, посредством изменения порядка этапов, показанных в блок-схемах, повторяя или опуская определенные этапы, и т.д., при достижении того же самого результата. Различные варианты осуществления реализуют одну или более описанных методик и инструментальных средств. Описанные здесь некоторые из методик и инструментальных средств адресованы к одной или более задач, упомянутых в разделе уровень техники. Как правило, данная методика/инструментальные средства не решает все такие задачи, тем не менее.
I. Вычислительная среда
Фиг.1 поясняет обобщенный пример соответствующей вычислительной среды (100), в которой могут быть реализованы некоторые из описанных вариантов осуществления. Вычислительная среда (100) не предполагает наложение любых ограничений относительно области использования или функциональных возможностей, поскольку методики и инструментальные средства могут быть осуществлены в разнообразных универсальных или вычислительных средах специального назначения. Например, вычислительная среда (100) может быть предоставлена с мультимедийным устройством, например, переносным аудиоплейером, переносным видеопроигрывателем, переносным звуковым и видеопроигрывателем, консольным аудиоплейером, консольным видеопроигрывателем или консольным звуковым и видеопроигрывателем. Такое мультимедийное устройство может быть автономным модулем или встроенным в другое устройство (например, устройство связи или устройство отображения).
В отношении Фиг.1 вычислительная среда (100) включает в себя, по меньшей мере, два блока (110, 115) обработки и соответствующую память (120, 125). Блоки (110, 115) обработки могут включать центральный процессор, GPU для видеоускорения, или другие модули совместной обработки. На Фиг.1 эта типовая базовая конфигурация (130) выделена пунктирной линией. Альтернативно, вычислительная среда включает единственный процессор. Блоки (110, 115) обработки, исполняющие компьютерно-исполняемые команды, могут быть реальными или виртуальными микропроцессорами. В многопроцессорной системе для увеличения мощности обработки обработку компьютерно-исполняемых команд выполняют несколько блоков. В сценариях кодирования или декодирования ведущий процесс кодирования или декодирования использует доступные блоки (110, 115) обработки для выполнения операций кодирования или декодирования. Определенные операции могут быть выполнены специализированным процессором, например, GPU. Память (120, 125) может быть кратковременной памятью (например, регистр, кэш, оперативная память), долговременной памятью (например, ROM, СППЗУ, флэш-память и т.д.) или некоторой комбинацией из двух. Память (120, 125) может быть отдельной на один микропроцессор или разделенной между двумя или больше микропроцессорами. Память (120, 125) хранит программное обеспечение (180) для устройства, реализующего стратегии поддержки нескольких операционных систем.
У вычислительной среды могут быть дополнительные признаки. Например, вычислительная среда (100) включает хранилище (140), одно или более устройств (150) ввода, одно или более устройств (160) вывода, и одно или более соединений (170) связи. Механизм соединения (не показан), например шина, контроллер или сеть, связывает узлы вычислительной среды (100). Как правило, программное обеспечение операционной системы (не показано) обеспечивает среду для другого программного обеспечения, выполняющегося в вычислительной среде (100), и координирует действия узлов вычислительной среды (100).
Хранилище (140) может быть сменным или несменным и может включать магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD, или любую другую среду, которая может использоваться, чтобы хранить информацию, и к которой можно обратиться в пределах вычислительной среды (100). Хранилище (140) хранит команды программного обеспечения (180).
Устройство(а) (150) ввода может быть сенсорным устройством ввода, таким как, клавиатура, мышь, перо, сенсорный экран или шаровой указатель, устройство голосового ввода, сканер, или другим устройством, которое обеспечивает ввод в вычислительную среду (100). Для аудио или видео, устройство(а) (150) ввода может быть звуковой платой, видеоплатой, платой телевизионного тюнера, или подобным устройством, которое принимает звук или видео в аналоговом или цифровом виде, или DVD, CD-ROM или CD-RW, которые считывают закодированное аудио или видео в вычислительную среду (100). Устройство(а) (160) вывода может быть дисплеем, принтером, динамиком, CD - или DVD - устройством записи, или другим устройством, которое обеспечивает вывод из вычислительной среды (100).
Соединение(я) (170) связи делает возможной связь посредством среды связи с другим вычислительным субъектом. Среда связи транспортирует информационные данные, например, команды, выполняемые компьютером, звуковой или видеоввод или вывод, или другие данные в модулированном сигнале данных. Модулированный сигнал данных - сигнал, который имеет одну или более своих характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. Посредством примера, и не ограничиваясь им, среды связи включают в себя, проводную или беспроводную методики, с встроенным электрическим, оптическим, радиочастотным ("RF"), инфракрасным ("IR"), акустическим или другим носителем.
Методики и инструментальные средства могут быть описаны в общем контексте читаемого компьютером носителя. Читаемый компьютером носитель - любой доступный носитель, к которому можно обратиться в пределах вычислительной среды. Посредством примера, и, не ограничиваясь им, с вычислительной средой (100), читаемый компьютером носитель включает в себя память (120), хранилище (140), среду связи и комбинацию любого из вышеупомянутых.
Методики и инструментальные средства могут быть описаны в общем контексте команд, выполняемых компьютером, например, включенных в модули программы, выполняемые в вычислительной среде на предназначенном реальном или виртуальном микропроцессоре. Обычно, модули программы включают подпрограммы, программы, библиотеки, объекты, классы, узлы, структуры данных и т.д., которые выполняют специфические задачи или реализуют специфические абстрактные типы данных. Функциональные возможности модулей программы могут быть объединены или разбиты между модулями программы, как задано в различных вариантах осуществления. Команды модулей программы, выполняемые компьютером, могут быть исполнены в пределах локальной среды или среды распределенных вычислений.
Ради целей изложения, детальное описание использует термины "проверять" и "пробуждать", чтобы описать машинные операции в вычислительной среде. Эти термины - высокоуровневые абстракции для операций, выполняемых компьютером, и не должны быть перепутаны с действиями, совершенными человеком. Фактические машинные операции, соответствующие этим терминам, изменяются в зависимости от реализации.
II. Концепция поддержки нескольких операционных систем в устройствах потребительской электроники
Устройства потребительской электроники становятся все более и более сложными и передают поддержку большей части их функциональных возможностей от аппаратных средств программному обеспечению. Старшие и более простые форматы, например DVD, часто передают часть своей обработки программному обеспечению даже при том, что обычно большую часть своей обработки они передают более дешевым и более простым аппаратным средствам. Например, аудио и видеопотоки могут быть декодированы специализированной аппаратурой, в то время как функция обработки меню (или "навигация") может быть осуществлена в программном обеспечении. В результате некоторые устройства потребительской электроники, которые поддерживают относительно простые форматы, например DVD, тем не менее, имеют сложное программное обеспечение.
Кроме того, инструментальные средства воспроизведения для различных мультимедийных форматов могут иметь различные требования операционной системы и могут дополнительно усложнить программные среды устройств, которые обрабатывают их. Например, информационное наполнение видео высокой четкости, закодированное согласно стандарту видеодиска HD DVD (иногда упоминаемому здесь как формат HD DVD), может быть декодировано с использованием приложения для воспроизведения поддерживаемого первой операционной системой (например, операционной системой WindowsCE от Корпорации Microsoft или другой операционной системой), и информационное наполнение видео высокой четкости, закодированное согласно стандарту видеодиска Blu-ray (иногда упоминаемое здесь как формат Blu-ray), может быть декодировано с использованием приложения для воспроизведения поддерживаемого второй операционной системой (например, Linux-подобной операционной системой, операционной системой варианта Unix или другой Unix-подобной, или другой операционной системой). Диски двойного формата (например, диски с информационным наполнением в формате Blu-ray и информационным наполнением в формате HD DVD), могут иметь, однако, другие требования к операционной системе. Некоторое программное обеспечение, разработанное для специфических рабочих сред, развивалось в течение долгого времени и имеет зависимость от этих сред. В результате этих и других факторов, устройства потребительской электроники имеют все более и более сложные программные среды.
Задача, адресуемая устройствами потребительской электроники, - как выполнить несколько приложений (каждое из которых может требовать своей собственной операционной системы) эффективным в отношении затрат способом. Одно решение состоит в том, чтобы встроить процессор, дополняемый операционной системой и приложениями для каждого типа поддерживаемого мультимедийного формата. Более рентабельное решение состоит в том, чтобы хранить несколько операционных систем и приложений (например, по одной операционной системе и программному приложению на мультимедийный формат) и перезагружать проигрыватель при обработке другого типа мультимедиа. Например, проигрыватель может иметь одну операционную систему для HD DVD, другую для DVD и другую для аудио CD. Соответствие между операционными системами и поддерживаемыми приложениями не взаимно-однозначно. Например, воспроизведение DVD и аудио CD могло бы работать на одной операционной системе, в то время как воспроизведение HD DVD выполняться на другой операционной системе.
Однако, существуют потенциальные проблемы, связанные с выполнением нескольких операционных систем. Рассмотрим устройство, которое поддерживает два цифровых видеодисковых мультимедийных формата: формат HD DVD, работающий на первой операционной системе, и формат Blu-ray (иногда называемый дисковый формат Blu-ray), работающий на второй операционной системе, сильно отличающейся от первой операционной системы. Одна проблема к рассмотрению - время загрузки диска при переходе от одного формата к другому (например, от воспроизведения Blu-ray, поддерживаемого второй операционной системой, к воспроизведению HD DVD - поддерживаемого первой операционной системой). Другая проблема к рассмотрению - как позволить пользователям переключаться между несколькими программными приложениями (которые требуют их собственных операционных систем), сохраняя переключение между операционными системами невидимыми для пользователя для уменьшения потенциального негативного воздействия на опыт пользователя.
Описанные "мультизагрузочные" методики и инструментальные средства позволяют устройствам переключаться между операционными системами с низкими затратами и без чрезмерного влияния на опыт пользователя. При описании здесь, термин "двойная загрузка" иногда используется для описания устройства, которое переключается между двумя операционными системами, хотя идеи, рассмотренные здесь, могут быть распространены на устройства, которые способны к работе более чем на двух операционных системах. Устройства с двойной загрузкой с двумя доступными операционными системами - подмножество мультизагрузочных устройств, у которых может быть две или больше доступных операционных систем. Термины мультизагрузка или двойная загрузка не обозначают требование перезагрузки устройства для переключения между операционными системами, как объяснено подробно ниже.
Варианты для мультизагрузочных конструкций включают следующее.
1. Переходы операционных систем выполняются совместно с механизмом передачи обслуживания (или постепенной передачи обслуживания), при котором две или больше операционные системы работают одновременно. Например, в описанной реализации, передача обслуживания между первой операционной системой и второй операционной системой выполняется в то время, как и первая и вторая операционные системы работают. После передачи обслуживания одну операционную систему оставляют в состоянии ожидания.
2. Переходы операционных систем выполняются с механизмом передачи обслуживания, который включает в себя теплую загрузку одной из операционных систем. Использованный здесь термин "теплая загрузка" указывает на загрузку операционной системы на устройстве, которая происходит после того, как устройство было включено и операционная система была загружена.
Выбор между мультизагрузочными вариантами может зависеть от ряда факторов, таких как: выбор микросхемы (например, одно- или двуядерная), стоимость реализации и внешние зависимости. Архитектуры многих микросхем имеют однопроцессорное ядро и поддерживают одну операционную систему одномоментно (если аппаратные средства нижнего уровня или другая методика не обеспечивают поддержку для одновременного выполнения нескольких операционных систем). Архитектуры других микросхем включают два микропроцессорных ядра, и простая симметричная операционная система, осведомленная о мультипроцессорности, обычно не использует их оба. В любом случае, выбор архитектуры системы на микросхеме часто более зависит не только от ядра(ер) микропроцессора, также принимаются во внимание другие функциональные блоки на микросхеме, такие как, модули для декодирования аудио/видео, двумерного ускорения графики, декодирования и т.д.
A. Примеры
Следующие примеры поясняют методики для обработки переходов между операционными системами и для учета таких факторов, как длительность переходного процесса и потенциальное влияние на пользовательский опыт. Примеры в этом разделе описывают переключение между двумя операционными системами, но возможно переключение между более чем двумя операционными системами. В вариантах реализации этапы, показанные в примерах ниже, могут быть переупорядочены, опущены или заменены другими этапами. Например, примеры, которые описывают переключение операционной системы А на операционную систему B, могут быть дополнены переключением назад на операционную систему А по умолчанию, после того, как запрошенный признак операционной системы B больше не используется, или, в ответ на последующее действие пользователя, использующее признак в операционной системе A. Переходы между операционными системами могут продолжаться пока необходимо или по желанию. Примеры, в которых операционная система A является стартовой первичной операционной системой, могут быть изменены так, чтобы операционная система B была стартовой первичной операционной системой, или наоборот.
Примеры реализованы на цифровом медиапроигрывателе, который может быть автономным или встроенным, как часть другого устройства. Альтернативно, эти примеры реализуются с другим устройством потребительской электроники или другим вычислительным устройством.
1. Примеры постепенной передачи обслуживания
Пример 1: В этом сценарии постепенной передачи обслуживания устройство потребительской электроники настроено так, чтобы позволить операционной системе A и операционной системе B работать одновременно. В этом примере операционная система A является первичной операционной системой и в текущий момент управляет большинством аспектов устройства. Она обнаруживает, что пользователь пытается использовать признак, предоставляемый операционной системой B (например, помещая видеодиск определенного формата в устройство). Способ по Примеру 1 включает в себя следующие этапы.
1. Сохранение идентифицированного требования(й) признака (например, в энергонезависимой памяти).
2. Отключение управления с аппаратных ресурсов, которые будут использоваться операционной системой B (в случае необходимости).
3. Передача управления операционной системе B.
4. Считывание данных, сохраненных на этапе 1, выше, и определение (операционной системой B) затребованного признака.
5. Активация, в случае необходимости, и использование (операционной системой B) необходимых аппаратных ресурсов для соответствия требованиям признака. Переход от одной операционной системы к другой может быть выполнен постепенно для некоторых аппаратных ресурсов (например, дисплеев), таким образом что их состояние (например, в настоящий момент отображение меню) полностью или частично сохраняется через передачу обслуживания от операционной системы А на операционную систему B, чтобы снизить длительность переходного процесса и/или смягчить негативное воздействие на опыт пользователя.
6. Обеспечить (операционной системой B) желаемый признак.
На этапе 3 из Примера 1, управление передается в операционную систему B, посредством отправки одного или более сообщений операционной системе B. Эти сообщения могут быть реализованы несколькими способами. Например, в некоторых реализациях, у каждой операционной системы / ядра микропроцессора (где операционная система A выполняется на ядре микропроцессора A, и операционная система B выполняется на ядре микропроцессора B) есть драйвер, в котором реализована аппаратная почтовая очередь. Почтовые очереди могут быть простыми очередями обслуживания в порядке поступления, используемыми для обмена сообщениями между операционной системой A и операционной системой B. Узел управления операционной системы (например, в драйвере) ждет сообщения прибывающего в его очередь для передачи ему команды перевести свою операционную систему и ядро в сон.
Сообщение может быть словом памяти, значения которого зарезервированы для целей постепенных передач обслуживания между операционными системами (например, значение 1 указывает, что узел управления должен поместить свою операционную систему / ядро в состояние сна, значение 2 указывает, что узел управления должен пробудить свою операционную систему / ядро из состояния сна, другие значения зарезервированы для других целей). Альтернативно, обмен сообщениями реализуется с другим протоколом и/или другим типом структуры данных.
В приведенной в качестве примера реализации почтовой очереди, когда операционная система A обнаруживает диск в формате, который она не воспроизводит, она отправляет сообщение (например, со значением 2) в ее драйвер обмена сообщениями, который доставляет сообщение в почтовую очередь драйвера операционной системы B. Драйвер операционной системы B ждет сообщений в своей почтовой очереди, получает сообщение от операционной системы A, интерпретирует сообщение (чье значение означает "проснуться"), и предпринимает шаги, чтобы пробудить операционную систему B и ядро B (например, делая доступными соответствующие драйверы). Операционная система A переводит себя в режим сна после того, как она отправит сообщение пробуждения операционной системе B, предполагая, что операционная система B успешно пробудится. Альтернативно, операционная система A ждет сообщения от операционной системы B (например, со значением 1), инструктирующего операционную систему А поместить себя в режим сна. Наличие операционной системы B, отправившей такое сообщение после того, как операционная система B успешно пробудилась, позволяет лучшую обработку ошибок - если операционная система A не получает такое сообщение сна после некоторого промежутка времени, операционная система A может инициализировать обработку ошибок, информируя пользователя, перезагружая всю систему и/или выполняя другой этап.
Методика обмена сообщениями реверсивна, в случае если операционная система B встречается с диском в формате, который она не воспроизводит. Операционная система B отправляет сообщение (например, со значением 2) на ее драйвер обмена сообщениями, который поставляет сообщение в почтовую очередь драйвера операционной системы A. Драйвер операционной системы A ждет сообщений в своей почтовой очереди, получает сообщение от операционной системы B, интерпретирует сообщение (чье значение означает "проснуться"), и предпринимает шаги, чтобы пробудить операционную систему A и ядро A. Операционная система B помещает себя в режим сна после того, как она отправляет сообщение пробуждения операционной системе A или, альтернативно, ждет сообщения о переходе в режим сна от операционной системы A.
Пример 2: Фиг.2 - блок-схема, показывающая приведенную в качестве примера методику (200) согласно модели постепенной передачи обслуживания для использования признаков в параллельно работающих операционных системах. Методика (200) показанная на Фиг.2 отличается в некотором отношении от этапов в Примере 1 выше, все еще достигая постепенного перехода между двумя операционными системами.
В методике (200), загрузчик (205) активирован и операционные системы (210, 255) A, и B загружены. На Фиг.2 операционные системы запускаются (210, 255) в состоянии ожидания. Любая из операционных систем может быть выведена из состояния (215, 260) ожидания сообщением (220, 265) пробуждения от другой операционной системы. Это может произойти, например, когда пользователь запрашивает операцию, выполняет навигационные действия, проверяет или изменяет параметры настройки, или изменяет мультимедийный носитель (например, меняя диск).
После пробуждения активированная операционная система (225 или 270) выполняет разрешенные функциональные признаки, используя эту операционную систему. После обнаружения изменения (230 или 275) признака активированная операционная система проверяет (235 или 280), может ли она выполнить новый признак. Иначе, операционная система по мере необходимости готовит (240 или 285) аппаратные ресурсы, для перехода на другую операционную систему, и отправляет сообщение (245 или 290) пробуждения на другую операционную систему. Операционная система, которая отправляет сообщение пробуждения, может затем возвратиться к состоянию ожидания для ожидания возможного сообщения пробуждения.
В примере, показанном на Фиг.2, операционные системы A и B, после загрузки (210, 255), переводят первоначально в состояние (215, 260) ожидания. Альтернативно, одна или более операционных систем находится первоначально в активном состоянии. Например, в проигрывателе видеодисков, который воспроизводит и Blu-ray и диски HD DVD, первая операционная система первоначально переходит в активное состояние, если диск HD DVD находится в проигрывателе при включении. Вместо перехода в начальное состояние ожидания и выполнения проверки на наличие сообщения пробуждения, первая операционная система разрешает использование функциональных признаков, используя программное обеспечение, работающее на первой операционной системе (например, запуская меню HD DVD или запуская воспроизведение HD DVD), пока не происходит событие, которое требует, чтобы другая операционная система стала активной (например, пользователь вставляет диск Blu-ray). Иначе, устройство может быть настроено таким образом, что одна операционная система является активной по умолчанию при запуске.
2. Примеры теплой загрузки
Пример 3: В этом сценарии теплой загрузки операционная система A и операционная система B настроены так, чтобы работать индивидуально, а не одновременно. В этом примере операционная система A является первичной операционной системой и в настоящий момент управляет большинством аспектов устройства. Она обнаруживает, что пользователь пытается использовать признак, обеспечиваемый операционной системой B. Способ Примера 3 включает следующие этапы.
1. Сохранение идентифицированного требования признака в энергонезависимой памяти.
2. Сохранение требования операционной системы в энергонезависимой памяти.
3. Завершение выполнения операционной системы A.
4. Перезагрузка.
5. Считывание данных, сохраненных выше на этапе 2, и определение (совместно с загрузчиком) требуемой операционной системы. В этом примере это - операционная система B.
6. Загрузка операционной системы B.
7. Определение (с операционной системой B) требуемого признака чтением данных, сохраненных на этапе 1, выше.
8. Активизация, в случае необходимости, и использование (с операционной системой B) необходимых аппаратных ресурсов для удовлетворения требованиям признака. Переход от одной операционной системы к другой может быть выполнен постепенно для некоторых аппаратных ресурсов (например, дисплеи), таким образом, что их состояние (например, отображение меню в текущий момент ) полностью или частично сохраняется через передачу обслуживания от операционной системы А на операционную систему B, для снижения времени перехода и/или смягчения негативного воздействия на опыт пользователя.
9. Обеспечение (операционной системой B) затребованного признака.
Пример 4: Фиг.3 - блок-схема, показывающая приведенную в качестве примера методику (300) согласно модели теплой загрузки для использования признаков в различных операционных системах в устройстве, в котором операционные системы не работают одновременно. Методика (300), показанная на Фиг.3, отличается в некотором отношении от этапов в Примере 3, выше, все еще достигая постепенного перехода между двумя операционными системами.
В методике (300) загрузчик (305) активизирован и установлен флажок (310), показывая, должна ли быть загружена операционная система B. Если флажок установлен, начальную загрузку (315) устройства выполняет операционная система B и делает доступными (320) функциональные признаки, использующие операционную систему B. Альтернативно, кроме флажка, используются другие индикаторы для указания функций, которые будут выполнены, и/или операционных систем, которые будут использоваться.
Если обнаружено (325) изменение признака, операционная система определяет (330), поддерживает ли она новый признак. Если она не поддерживает новый признак, информация о признаке сохраняется (335) в энергонезависимой памяти. Загрузочный флажок сбрасывается, чтобы показать, что должна использоваться другая операционная система, и выполняется перезагрузка (340).
При перезагрузке (340) загрузчик (305) активируется и загрузочный флажок (310) указывает, что должна быть загружена операционная система A. Начальную загрузку (350) устройства выполняет операционная система А и делает доступными (320) функциональные признаки, использующие операционную систему А. Если обнаружено (360) изменение признака, операционная система определяет (365), поддерживает ли она новый признак. Если она не поддерживает новый признак, информация о признаке сохраняется (370) в энергонезависимой памяти и устройство может перезагрузиться (375) на операционную систему B.
Перезагрузки (340, 375) являются теплыми перезагрузками, так как они происходят после того, как устройство было включено. Одна типичная характеристика теплой перезагрузки операционной системы - то, что не все в операционной системе повторно инициализируется. Примеры функциональных возможностей теплой загрузки включают признаки "ожидание" или "спящий режим" в ноутбуках - некоторые состояния сохраняются, когда ноутбук переходит в ожидание или в спящий режим, так, что, когда ноутбук заново пробуждается, он может быстрее возобновить нормальную работу с того места, где она была оставлена.
B. Обсуждение
Примеры 1, 2, 3 и 4 выше отличаются от методик (иногда называемых методиками виртуализации), в которых первичная операционная система является ведущей для одной или больше сред операционных систем и все среды разделяют доступ к необходимым аппаратным ресурсам. Например, переходы операционных систем в Примерах 1, 2, 3 и 4 выше не обязательно являются результатом сознательного действия пользователя для переключения операционных систем, и при этом они не вызывают одну операционную систему, являющейся ведущей для другой операционной системы или эмулирующую платформу, на которой выполняется другая операционная система. У пользователя нет никакого понимания множественности операционных систем, доступных на устройстве.
Некоторые преимущества и усовершенствования для описанных реализаций включают снижение количества времени для выполнения переходов между операционными системами, необходимыми для специфичных функциональных возможностей, а также делающие переходы операционной системы малозаметными для пользователей.
Рассмотрим пример устройства, которое использует две операционных системы для охвата диапазона признаков. В этом примере устройства, операционная система A поддерживает воспроизведение мультимедиа с оптического диска, в то время как операционная система В поддерживает просмотр интернета. Операционная система В управляет устройством, в то время как пользователь просматривает Интернет. Если затем пользователь вставит оптический диск и нажмет кнопку "Проигрывать" на устройстве, то пользователь будет ожидать, что оптическое воспроизведение мультимедиа с оптического диска произойдет без специального действия пользователя для переключения с операционной системы В на операционную систему A. Описанные реализации позволяют скрыть от пользователя переходы операционной системы и выбор.
Как правило, когда операционная система и драйверы устройств загружены, драйвер устройства инициализирует аппаратные средства к известному состоянию. В случае видимого пользователем экрана или внешнего отображения, эта инициализация может закончиться заметным для пользователя нежелательным мерцанием, или может вызвать на внешнем дисплее кратковременную потерю синхронизации с сигналом устройства. Изменяя реализацию драйвера устройства для каждого экземпляра операционной системы, фаза инициализации может быть сделана с учетом текущего состояние дисплея, чтобы не выполнять ненужные этапы инициализации, которые закончились бы нежелательным мерцанием, повреждением, или потерей сигнала. Это - один пример того, как может быть спроектирована последовательность перезагрузки, чтобы сделать перемещение между операционными системами менее заметными пользователю.
III. Примеры реализации для устройств воспроизведения звука и видео
Этот раздел включает характерные примеры методик и инструментальных средств для обработки переходов операционной системы в мультимедийных устройствах, которые обрабатывают различные мультимедийные форматы (например, видеодисковые форматы) для звукового и видеовоспроизведения. В вариантах реализаций этапы, показанные в примерах ниже, могут быть переупорядочены, опущены или заменены другими этапами.
Например, примеры, которые описывают переключение со второй операционной системы на первую операционную систему, могут быть распространены на переключение назад на вторую операционную систему по умолчанию, после того, как запрошенный признак, поддерживаемый первой операционной системой больше не используется, или в ответ на последующее действие пользователя, которое использует признак, поддерживаемый второй операционной системой. Переходы между операционными системами могут продолжаться пока необходимо или задано. Примеры, которые определяют вторую операционную систему как начальную первичную операционную систему, могут быть изменены, чтобы назначить первую операционную систему как начальную первичную операционную систему, или наоборот. Как другой вариант, устройства могут использовать операционные системы, отличные от первых двух операционных систем, которые поддерживают другие мультимедийные форматы. Примеры в этом разделе описывают выполнение операций воспроизведения (например, воспроизведение видео с HD DVD, Blu-ray или DVD или воспроизведение аудио с CD диска), но операционные системы могут выполнять другие операции, специфичные для определенной операционной системы или общие для двух или более операционных систем. Примеры в этом разделе описывают смены диска как события, которые могут запустить перемещение между операционными системами, но и другие события, например, выбор пользователем признака, поддерживаемого определенной операционной системой, также могут запустить переходы между операционными системами. Примеры в этом разделе описывают переключение между двумя операционными системами, но переключение между более чем двумя операционными системами также возможно.
A. Постепенная передача обслуживания при смене Мультимедийного Формата
В некоторых реализациях модель постепенной передачи обслуживания при смене мультимедийного формата включает процесс выбора из многих ядер, где два или больше обрабатывающих ядра работают на различных операционных системах, поддерживающих различные мультимедийные форматы. Модель постепенной передачи обслуживания может привести к снижению времени загрузки контента в различных форматах.
Фиг.4 - блок-схема, показывающая пример методики (400) для обработки переходов при постепенной передаче обслуживания в устройстве, которое использует первую операционную систему для воспроизведения HD DVD, и вторую операционную систему для воспроизведения дисков других дисковых форматов. В примере, показанном на Фиг.4, загрузчик (405) активизирован и выполнена загрузка (410, 455) операционных систем A и В. Операционная система В первоначально проверяет (460), присутствует ли диск в устройстве. Если диск присутствует, операционная система В определяет (465), является ли диск диском HD DVD. Если диск не является диском HD DVD, операционная система В может выполнить функциональные признаки, поддерживаемые этой операционной системой (например, воспроизведение (470) видео с Blu-ray или DVD или воспроизведение аудио с CD диска). После обнаружения смены (475) диска операционная система определяет (465), является ли новый диск диском HD DVD.
Когда операционная система B проверяет диск при начальном запуске или после смены диска, то операционная система готовит (480) аппаратные ресурсы, как необходимо, для перехода на операционную систему A и отправляет сообщение (485) пробуждения операционной системе A, если диск является диском HD DVD. Операционная система B переходит в состояние (490) ожидания и проверяет (495) наличие сообщения пробуждения от операционной системы A. После пробуждения операционная система B может снова выполнить функциональные признаки, поддерживаемые этой операционной системой (например, воспроизведение (470) видео с Blu-ray или DVD или воспроизведение аудио с CD диска).
В примере, показанном на Фиг.4, при загрузке операционной системы A, она первоначально переходит в состояние (415) ожидания. Операционная система А проверяет (420) наличие сообщения пробуждения от операционной системы B. После пробуждения операционная система A может выполнить поддерживаемые функциональные признаки, использующие эту операционную систему (например, воспроизведение (425) видео HD DVD).
После обнаружения (430) смены диска операционная система проверяет (435), является ли новый диск диском HD DVD. Если нет, операционная система готовит (440) аппаратные ресурсы, как необходимо, для перехода на операционную систему B и отправляет сообщение (445) пробуждения операционной системе B. Операционная система А может затем возвратиться к состоянию (415) ожидания и ждать возможного сообщения пробуждения.
В некоторых реализациях цель состояний ожидания для каждой операционной системы состоит в том, чтобы избежать обращения к аппаратным ресурсам устройства, когда соответствующая операционная система находится в состоянии ожидания. Например, в то время как одна операционная система обращается к приводу оптического диска, другим операционным системам в состояниях ожидания можно запретить обращение к приводу. Состояния ожидания могут быть обработаны по-разному. Например, драйверы устройств в операционной системе могут быть запрограммированы поддерживать режим ожидания. Или если операционная система поддерживает динамическую загрузку и выгрузку драйверов устройств, драйвер может быть выгружен для запрета обращения операционной системы к основным аппаратным ресурсам. Или, операционная система может быть переведена в состояние сна: некоторые операционные системы позволяют сохранять их состояния в памяти и затем быть остановленными, чтобы позднее быстро перезапуститься.
Такие признаки бездействия включены в признаки режима сна в операционной системе Windows от Корпорации Microsoft.
Этот механизм не должен использоваться для реализации состояния ожидания в каждой операционной системе устройства. Например, спящий режим может поддерживаться одной операционной системой, в то время как другая операционная система поддерживает только загрузку и выгрузку драйверов. Операционная система, поддерживающая спящий режим, может реализовать режим ожидания, переходя в состояние спящего режима, в то время как другая операционная система может реализовать режим ожидания, выгружая драйверы устройств. Комбинация выгрузки драйвера устройства и драйверов, прямо поддерживающих режим ожидания, может использоваться, например, в случае, где может быть выгружено только подмножество драйверов устройств операционной системы.
Чтобы миновать уровень встроенного программного обеспечения, вариант этой модели должен абстрагировать аппаратные компоненты в устройстве. Драйверы в операционной системе могут поддерживать связь с абстрактными компонентами, вместо прямой связи с аппаратными средствами. Это похоже на концепцию BIOS, на операционную систему виртуализованной среды, или на модель, используемую в системах, где доступ к устройству абстрагируется через уровень, который позволяет физической шине проложить туннель посредством другого механизма (например, так, чтобы сетевой драйвер мог поддерживать связь с сетевой платой на дальней стороне шины USB). Следовательно, функциональные возможности режима ожидания могут быть реализованы в промежуточном уровне, который абстрагирует доступ к устройствам.
Фиг.5 показывает пример устройства (500) с двойной загрузкой с двойным ядром, с аппаратно-программным обеспечением (530) и совместно используемыми аппаратными ресурсами (540). Согласно Фиг.5, вторая операционная система (510) (например, на основе операционной системы Linux, варианта операционной системы Unix или другой Unix подобной, или другой операционной системы) поддерживает стек (514) проигрывателя Blu-ray и драйверы (512) специфичные для второй операционной системы (510). Первая операционная система (520) (например, операционная система CE Windows или другая операционная система) поддерживают стек (524) проигрывателя HD DVD и драйверы (522) специфичные для первой операционной системы (520). Аппаратно-программное обеспечение (530) включает в себя демон (532) загрузчика и предоставляет службы (534) ввода-вывода. Аппаратно-программное обеспечение (530) не принадлежит никакой определенной операционной системе и используется, чтобы определить начальную загрузку и механизм обнаружения ID диска. Для обеих операционных систем (510, 520) службы ввода-вывода (534) предоставляют вход в отдельную точку совместно используемых аппаратных ресурсов (540) из аппаратных средств (550) устройства. Службы ввода-вывода (534) подобны существующим службам BIOS.
Службы ввода-вывода (534) просты, но достаточно развиты, чтобы подсоединяться к различным специфическим драйверам (512, 522) операционных систем, не жертвуя слишком сильно производительностью или подвергая слишком многим фундаментальным изменениям существующий драйвер. Используются простые семантики читать/писать/открывать/закрывать, такие как связанные с системным вызовом "ioctl" в системах Unix, который позволяет приложению управлять или поддерживать связь с драйвером устройства.
Модель постепенной передачи обслуживания может использовать дополнительную память, изменения в операционной системе для обеспечения разделения аппаратных ресурсов, и/или высокоуровневое взаимодействие между операционными системами для координации передачи обслуживания, и может уменьшить время перехода и улучшить опыт пользователя. Для снижения стоимости разработки часто желательно делать минимальное, насколько возможно, вмешательство в операционную систему. Часто предпочитается использование стандартных драйверов устройств.
B. Модель Теплой загрузки при смене мультимедийного формата
Фиг.6 - блок-схема, показывающая пример методики (600) для обработки смены формата диска в устройстве, имеющем в наличии первую и вторую операционные системы согласно модели теплой загрузки, в которой операционные системы не выполняются одновременно. В методике (600) загрузчик (605) активирован и флажок (610) установлен, указывая, что будет выполнено воспроизведение HD DVD. Если флажок установлен, устройство (615) выполняет начальную загрузку первой операционной системы и выполняет функции, поддерживаемые первой операционной системой (например, воспроизведение (620) HD DVD). Как вариант, используется другой индикатор, отличный от флажка, для указания функций, которые будут выполнены и/или какая будет использоваться операционная система. Если смена (625) диска обнаружена, операционная система определяет (630), поддерживает ли она новый диск. Если она не поддерживает новый диск, флажок HD DVD сбрасывается (635), и при перезагрузке (640), активизируется (605) загрузчик, и сброшенный флажок HD DVD указывает (610), что должна быть загружена вторая операционная система.
После перезагрузки (640), или если флажок HD DVD первоначально не установлен, устройство (655) выполняет начальную загрузку второй операционной системы. Вторая операционная система первоначально проверяет (660), присутствует ли диск в устройстве. Если диск присутствует, вторая операционная система определяет (665), является ли диск диском HD DVD. Если диск не является диском HD DVD, вторая операционная система выполняет функции, специфичные для этой операционной системы (например, воспроизведение (670) Blu-ray, DVD или аудио CD). После обнаружения смены диска (675) операционная система определяет (665), является ли новый диск диском HD DVD.
Когда вторая операционная система проверяет диск при запуске или после выгрузки, эта операционная система устанавливает (680) флажок HD DVD, если этот диск является диском HD DVD, и при перезагрузке (685), активизируется загрузчик (605), и флажок HD DVD указывает (610), что должна быть загружена первая операционная система.
Перезагрузки (640, 685) являются теплыми загрузками, так как они происходят после того, как устройство было включено. Альтернативно, может использоваться логика, при которой операционные системы загружаются и запускаются напрямую, вместо того, чтобы циклически загружаться через загрузчик.
При перезагрузках или другой загрузке и запуске различных операционных систем, состояния некоторых аппаратных ресурсов могут быть сохранены полностью или частично через элемент управления различных операционных систем, чтобы смягчить негативное воздействие на пользовательский опыт. Например, контроллер состояния Интерфейса Мультимедиа Высокой четкости ("HDMI") может не сбрасываться, или может не сбрасываться состояние дисплея на лицевой панели.
Возможны несколько вариантов и расширений к модели теплой загрузки, описанной выше. Например, идентификация типа диска может быть написана однажды и находиться в загрузчике для устройства. Загрузчик может выбрать правильную операционную систему на основе идентификации типа диска. Смена диска может быть обработана с остановкой и перезагрузкой для получения логики загрузчика, что может упростить инженерные усилия на разработку устройства.
Как другой пример, затратные по времени операции могут быть распараллелены. Например, загрузка из памяти операционной системы и приложения воспроизведения и процесса идентификации типа носителя может занять значительное количество времени.
Фиг.7 - блок-схема, показывающая пример методики (700) для выполнения в параллели теплой загрузки операций переключения мультимедийного формата. В примере, показанном на Фиг.7, первоначально выполняется приложение воспроизведения, поддерживаемое текущей операционной системой. Дисковый лоток (710) открывается, и устройство останавливает (720) текущий процессор воспроизведения, останавливая приложение воспроизведения. (Этот этап не является обязательным, но может быть желателен для освобождения немного памяти на следующем этапе). Устройство начинает загружать (730) другую операционную систему в память (если достаточно свободной памяти). Когда вставлен (740) новый носитель, система идентифицирует (750) тип носителя. Загрузка (730) операционной системы может быть длительной операцией, поэтому устройство не блокирует загрузку (730) операционной системы, позволяя ей продолжаться параллельно с другими одним или более этапами (например, идентификацией (750) типа носителя). Идентификация (750) типа носителя также может быть длинной операцией, поэтому она также продолжается во время одного или более этапов (например, загрузка (730) операционной системы).
Устройство проверяет (760), поддерживает ли эта текущая операционная система новый носитель. Если новый тип носителя будет использовать операционную систему, которая уже выполняется, то загрузка новой операционной системы (730) прерывается (770), и для нового носителя запускается соответствующее приложение проигрывателя. Если новый тип носителя будет использовать загружаемую операционную систему, устройство ожидает, если необходимо, окончание загрузки (780) и перезагрузки операционной системы, перезапуская новую операционную систему в памяти.
Некоторые реализации теплой загрузки не полагаются на определенную аппаратную платформу, требуя меньшего количества аппаратных ресурсов, и имеют в целом меньшую сложность при сравнении с некоторыми реализациями постепенной передачи обслуживания. Некоторые реализации теплой загрузки могут включать издержки увеличенного времени загрузки контента для различных форматов контента.
IV. Расширения и варианты
Программа начальной настройки устройства - потенциально сложное приложение, которое обычно не привязывается ни к какому записываемому носителю. Для проигрывателей видеодисков функции начальной настройки устройства часто вызываются через кнопку на пульте дистанционного управления, а не через вставку диска начальной настройки. Когда в каждый момент времени в устройстве работает единственная операционная система, начальная настройка может быть реализована на каждой операционной системе, что усложняет инженерные работы по разработке устройства, но может привести к лучшему восприятию пользователем. Или начальная настройка может быть реализована на отдельной операционной системе, упрощая инженерную работу за счет ухудшения восприятия пользователя, если вход в режим настроек требует, чтобы устройство перезагрузилось на операционную систему, которая поддерживает режим настроек. Может использоваться гибридный подход, чтобы получить комбинацию сокращения инженерных работ и улучшенной функциональности. Часто вызываемые операции могут быть реализованы на более чем одной операционной системе (например, предоставление включения/отключения субтитров во время воспроизведения), и менее частые операции могут быть реализованы на отдельной операционной системе (например, установка сетевого соединения). Когда несколько операционных систем работают на устройстве одновременно, начальная настройка может быть реализована на отдельной операционной системе и функционировать независимо от типа носителя, находящегося в настоящий момент в устройстве. Например, начальная настройка может быть реализована на второй операционной системе, выполняющейся на одном ядре CPU, создавая пользовательский интерфейс, который передается на первую операционную систему, которая управляет воспроизведением HD DVD. Пользовательский интерфейс можно отобразить вместо или в дополнение к воспроизведению видео (например, с наложением или в отдельном экранном окне).
Устройство может реализовать комбинацию теплой загрузки и методику постепенной передачи обслуживания при переходе операционных систем. Например, устройство может решить, использовать ли постепенную передачу обслуживания при перемещении или перемещение посредством теплой загрузки, основанное на таких факторах, как использование ресурса, время перехода и потенциальное ухудшение восприятия пользователем. Таким образом, у устройства может быть гибкость в обработке переходов между операционными системами.
Некоторые мультимедийные форматы, помимо поддержки воспроизведения и навигации меню, требуют поддержки улучшенных функциональных возможностей, например поддержка расширяемого языка разметки ("XML"), поддержка ECMAScript (стандартизированный язык сценариев) или поддержка Java. Выбор признаков, которые требуют поддержки этих видов улучшенных функциональных возможностей, также может управлять переходами операционных систем.
Использование дисков двойного формата может иметь в результате события, которые запускают переходы операционной системы, подобные событиям, связанным со сменами диска. Методики и инструментальные средства, описанные здесь, могут использоваться вместе с дисками двойного формата.
Описав и проиллюстрировав принципы нашего изобретения в отношении различных вариантов осуществления, будет признано, что различные варианты осуществления могут быть изменены в расположении и деталях, не отступая от таких принципов. Подразумевается, что программы, процессы или способы, описанные здесь, не связаны или ограничены любым определенным типом вычислительной среды, если не обозначено иначе. Различные типы универсальных или специализированных вычислительных сред могут выполнить операции или использоваться в соответствии с идеями изобретения, описанными здесь. Элементы вариантов осуществления, показанные в программном обеспечении, могут быть реализованы в аппаратных средствах и наоборот.
Ввиду многих возможных вариантов осуществления, к которым могут быть применены правила раскрытого изобретения, будет признано, что поясняемые варианты осуществления являются только предпочтительными примерами изобретения и не должны быть приняты как ограничение области изобретения. Предпочтительно, область изобретения определена в соответствии с нижеследующей формулой изобретения.