BatteryMAX - это система обнаружения простоя, используемая для управления питанием компьютера под управлением операционной системы разработан в Европейском центре развития (EDC) Digital Research, Inc. в Хангерфорде, Великобритания. Он был создан для обращения к новому жанру портативных персональных компьютеров (ноутбуков ), которые работали от батареи. Таким образом, он также был неотъемлемой частью операционной системы Novell PalmDOS 1.0, предназначенной для первых карманных компьютеров в 1992 году.
Питание экономия на портативных компьютерах традиционно полагалась на таймеры бездействия оборудования, чтобы определить, простаивает ли компьютер. Обычно требуется несколько минут, прежде чем компьютер сможет определить поведение в режиме ожидания и переключиться в состояние с низким энергопотреблением. Контролируя программные приложения из операционной системы, BatteryMAX может сократить время, необходимое для обнаружения поведения в режиме ожидания, с минут до микросекунд. Кроме того, он может переключать режимы питания примерно 18 раз в секунду между нажатиями клавиш пользователем. Этот метод получил название Dynamic Idle Detection и включает остановку или остановку CPU на периоды всего несколько микросекунд до тех пор, пока не произойдет аппаратное событие для его перезапуска.
DR DOS 5.0 в 1990 году был первым персональным компьютером операционной системой, в которой была включена система обнаружения простоя для управления питанием. Он был изобретен британскими инженерами Роджером Аланом Гроссом и Джоном П. Константом в августе 1989 года. Патент США, описывающий систему обнаружения холостого хода, был зарегистрирован 9 марта 1990 года и выдан 11 октября 1994 года.
Несмотря на то, что на раннем этапе взяли на себя инициативу. и имея патентную защиту, BatteryMAX не пользовалась значительным коммерческим успехом, поскольку была отодвинута на второй план после беспорядка, который последовал за интеграцией Digital Research в Novell, Inc. в 1991 году. Так было только в 1992 году, около трех Спустя годы после изобретения программное обеспечение управления питанием под управлением операционной системы стало повсеместным после запуска Advanced Power Management (APM) Microsoft и Intel.
BatteryMAX использует технику динамического обнаружения простоя, чтобы обеспечить экономию энергии за счет определения того, что делает приложение (находится ли оно в режиме ожидания), и переключения состояний питания (переход в режим низкого энергопотребления), что продлевает срок службы батареи продукта.
BatteryMAX использует многоуровневую модель программного обеспечения для обнаружения, инкапсулированную в драйвер символьного устройства DOS под названием $ IDLE $, который содержит весь аппаратно-зависимый код для поддержки динамического обнаружения холостого хода. Его можно либо связать с операционной системой DR-DOS BIOS, либо загрузить динамически с помощью директивы CONFIG.SYS DEVICE, перегружая встроенный драйвер по умолчанию. Все версии DR-DOS, начиная с версии 5.0, содержат поддержку динамического обнаружения простоя внутри операционной системы ядро . Когда операционная система считает, что приложение бездействует, она вызывает уровень BIOS / драйвера $ IDLE $, который выполняет специальный код, написанный производителем компьютера или третьими сторонами, для проверки запроса и переключения состояний питания. Используя концепцию драйвера устройства, BatteryMAX может быть интегрирован с аппаратными средствами управления питанием, которые могут быть предоставлены базовым оборудованием, включая взаимодействие с системными BIOS APM или ACPI .
Состояния питания зависят от компьютера и могут отличаться от производителя к производителю. Экономия энергии может быть достигнута несколькими способами, включая замедление / остановку тактовой частоты процессора или отключение питания целых подсистем.
Перед переключением состояний питания драйвер $ IDLE $
использует любую доступную аппаратную поддержку, чтобы определить, обращалось ли приложение к другим компонентам системы. Например, приложение может опрашивать последовательный порт или обновлять графический экран. В этом случае драйвер устройства определяет, что приложение на самом деле не находится в режиме ожидания, и отменяет вызов ядра для переключения состояний питания, передавая информацию обратно на уровни и разрешая выполнение приложения для возобновления.
COMMAND.COM в DR DOS 5.0 и выше реализует внутреннюю команду IDLE
, принимая параметры ON | OFF
для включения или отключения динамического обнаружения простоя.
Приложение находится в режиме ожидания, если оно ожидает возникновения какого-либо внешнего события, например, нажатия клавиши или движения мыши, или в течение фиксированного промежутка времени. Ядро DR-DOS отслеживает все вызовы DOS API, создавая профиль поведения приложений. Некоторые комбинации вызовов API предполагают, что приложение бездействует.
Драйвер $ IDLE $
может тонко различать программу, которая действительно простаивает, например, программу, которая опрашивает клавиатуру в жестком цикле, и программу, которая активна но также опрос клавиатуры, чтобы проверить нажатие клавиши прерывания. Драйвер делает это различие, отслеживая время простоя. Если время находится в пределах указанного периода, драйвер предполагает, что программа бездействует, например опрос в жестком цикле для нажатия клавиши. Если время выходит за указанный предел, драйвер предполагает, что между опросами клавиатуры произошла некоторая обработка, и позволяет возобновить выполнение приложения без переключения состояний питания. Локальная переменная IDLE_CNTDN определяет время, с которым сравнивается фактическое время простоя. Значение этой переменной динамически вычисляется при инициализации и периодически пересчитывается.
Метод обнаружения простоя был впервые использован для улучшения многозадачности однозадачных приложений DOS в многозадачных / многопользовательских Параллельная операционная система DOS 386 (CDOS386).
Программы, написанные для однозадачных операционных систем, таких как MS-DOS / PC DOS, могут зацикливаться до тех пор, пока не будут прерваны; например, когда пользователь ожидает нажатия клавиши. Хотя это не проблема, когда нет других процессов, ожидающих запуска, это тратит драгоценное время процессора, которое может быть использовано другими программами в многозадачной / многопользовательской среде, такой как CDOS386. Приложения, разработанные для многозадачной среды, используют вызовы API для «сна», когда они бездействуют в течение определенного периода времени, но обычные приложения DOS этого не делают, поэтому необходимо использовать обнаружение простоя.
Версия Concurrent DOS 386 включала функцию обнаружения простоя в ядре операционной системы, которая отслеживала вызовы DOS API, чтобы определить, выполняет ли приложение полезную работу или фактически бездействует. Если он бездействовал, процесс приостанавливался, позволяя диспетчеру запланировать выполнение другого процесса.
BatteryMAX и патент на «обнаружение простоя» сыграли важную роль в предполагаемом нарушении патента, относящемся к управлению питанием программного обеспечения под управлением операционной системы.
15 мая 2009 г. компания St. Clair Intellectual Property Consultants, Inc. подала гражданский иск No. 09-354 в Окружном суде США в округе Делавэр против ответчиков Acer, Inc., Dell Inc., Gateway, Inc. и Lenovo Group, Inc. и 18 сентября 2009 г. подали гражданский иск № 09-704 против Apple Inc. и Toshiba Corporation, Inc. Действия предполагали нарушение нескольких Патенты США, которыми они владеют, относятся к управлению питанием программного обеспечения под управлением операционной системы.
Св. Clair утверждал, что Генри Фанг изобрел программное обеспечение для управления питанием под управлением операционной системы, и утверждал, что эти компании нарушили патенты Сент-Клера и, следовательно, задолжали Сент-Клер роялти. Microsoft вмешалась от имени ответчиков и 7 апреля 2010 г. подала декларативное судебное решение против Сент-Клера, добиваясь постановления суда о ненарушениях и недействительности патентов Fung. (D.I. 1, C.A. No. 10-282). Корпорация Intel подала заявление от имени ответчиков, и 4 июня 2010 г. оно было удовлетворено (D.I. 178, C.A. No. 09-354).
Сиэтлская юридическая фирма Perkins Coie, LLP, действующая от имени ответчиков, обнаружила патент на обнаружение простоя BatteryMAX и Гросса во время поиска предшествующего уровня техники. Патент Гросса имел более раннюю дату приоритета, чем патенты Фунга, что, если оно будет доказано, подорвет дело Сент-Клера. 28 февраля 2011 г. Гросс был нанят Intel в качестве эксперта по предмету для дачи показаний свидетелем-экспертом обвиняемым по делу. Гросс представил доказательства в своем экспертном отчете, что он, а не Фунг, изобрел программное обеспечение для управления питанием под управлением операционной системы, и указал патент на обнаружение простоя и существование BatteryMAX в качестве доказательства этого.
Св. Клер подала ходатайство об исключении мнений относительно BatteryMAX, пытаясь отклонить заключение эксперта Гросса, но 29 марта 2013 года окружной суд отклонил ходатайство Сент-Клера, объявив показания Гросса в пользу подсудимых приемлемыми, заявив, что «Суд согласен с Ответчики утверждают, что имеется достаточно подтверждающих доказательств того, что BatteryMAX был доступен для общественности до даты приоритета патентов Fung. Кроме того, Суд приходит к выводу, что даже если BatteryMAX не предшествовал патентам Fung, показания г-на Гросса […] были бы актуальными и полезно для поиска фактов в запросе очевидности ”.