BateriaMAX

BatteryMAX to system wykrywania bezczynności używany do zarządzania zasilaniem komputera pod kontrolą systemu operacyjnego, opracowany w Europejskim Centrum Rozwoju (EDC) firmy Digital Research, Inc. w Hungerford w Wielkiej Brytanii. Został stworzony, aby zająć się nowym gatunkiem przenośnych komputerów osobistych ( laptopów ), które działały na zasilaniu bateryjnym. W związku z tym był również integralną częścią systemu operacyjnego Novell PalmDOS 1.0 , dostosowanego do wczesnych palmtopów w 1992 roku.

Opis

Oszczędzanie energii w laptopach tradycyjnie opierało się na licznikach czasu braku aktywności sprzętu w celu określenia, czy komputer jest bezczynny. Zwykle zajmuje to kilka minut, zanim komputer będzie w stanie zidentyfikować zachowanie bezczynności i przełączyć się w stan niższego zużycia energii. Monitorując aplikacje z poziomu systemu operacyjnego , BatteryMAX jest w stanie skrócić czas potrzebny do wykrycia bezczynności z minut do mikrosekund. Co więcej, może przełączać stany zasilania około 18 razy na sekundę między naciśnięciami klawiszy użytkownika. Technika ta została nazwana Dynamic Idle Detection i obejmuje zatrzymywanie lub zatrzymywanie procesora na okres zaledwie kilku mikrosekund, aż do wystąpienia zdarzenia sprzętowego w celu jego ponownego uruchomienia.

DR DOS 5.0 z 1990 roku był pierwszym systemem operacyjnym komputera osobistego , który zawierał system wykrywania bezczynności do zarządzania energią. Został wynaleziony przez brytyjskich inżynierów Rogera Alana Grossa i Johna P. Constanta w sierpniu 1989 r. Amerykański patent opisujący system wykrywania biegu jałowego został złożony 9 marca 1990 r. I przyznany 11 października 1994 r.

Pomimo wczesnego objęcia przywództwa i posiadania ochrony patentowej, BatteryMAX nie odniósł znaczącego sukcesu komercyjnego, ponieważ został odsunięty na bok po chaosie, który nastąpił po integracji Digital Research z firmą Novell, Inc. w 1991 r. Dopiero w 1992 r., czyli około trzech lat po wynalezieniu zarządzanie energią przez oprogramowanie pod kontrolą systemu operacyjnego stało się wszechobecne po uruchomieniu zaawansowanego zarządzania energią (APM) przez firmy Microsoft i Intel .

Przegląd funkcjonalny

BatteryMAX wykorzystuje technikę dynamicznego wykrywania bezczynności, aby zapewnić oszczędność energii poprzez wykrywanie, co robi aplikacja (czy jest bezczynna) i przełączanie stanów zasilania (wchodzenie w tryb niskiego poboru mocy), co wydłuża żywotność baterii produktu.

BatteryMAX wykorzystuje warstwowy model oprogramowania wykrywającego zamknięty w sterowniku urządzenia znakowego DOS o nazwie $IDLE$ , który zawiera cały kod zależny od sprzętu do obsługi dynamicznego wykrywania bezczynności. Można go podłączyć do systemu BIOS systemu operacyjnego DR-DOS lub ładować dynamicznie za pomocą dyrektywy CONFIG.SYS DEVICE , przeciążając wbudowany domyślny sterownik. Wszystkie wersje DR-DOS od wersji 5.0 zawierały obsługę dynamicznego wykrywania bezczynności w jądrze systemu operacyjnego . Gdy system operacyjny uważa, że ​​aplikacja jest bezczynna, wywołuje $IDLE$ systemu BIOS/sterownika, która wykonuje niestandardowy kod napisany przez producenta komputera lub strony trzecie w celu zweryfikowania żądania i przełączenia stanów zasilania. Korzystając z koncepcji sterownika urządzenia, BatteryMAX można zintegrować z funkcjami zarządzania energią związanymi ze sprzętem, które mogą być zapewniane przez podstawowy sprzęt, w tym interfejs z systemami BIOS APM lub ACPI .

Stany zasilania są zależne od komputera i różnią się w zależności od producenta. Oszczędności energii można dokonać na wiele sposobów, w tym spowalniając/zatrzymując częstotliwość zegara procesora lub odcinając zasilanie całych podsystemów.

Przed przełączeniem stanów zasilania sterownik $IDLE$ korzysta z dostępnej pomocy sprzętowej w celu wykrycia, czy aplikacja uzyskuje dostęp do innych komponentów systemu. Na przykład aplikacja może odpytywać port szeregowy lub aktualizować ekran graficzny. W takim przypadku sterownik urządzenia określa, że ​​aplikacja nie jest w rzeczywistości bezczynna i zastępuje wywołanie jądra do przełączania stanów zasilania, przekazując informacje z kopii zapasowej do warstw i umożliwiając wznowienie wykonywania aplikacji.

COMMAND.COM w DR DOS 5.0 i nowszych implementuje wewnętrzne polecenie IDLE przyjmujące parametry ON|OFF w celu włączenia lub wyłączenia dynamicznego wykrywania bezczynności.

Wykrywanie, kiedy aplikacja jest bezczynna

Aplikacja jest bezczynna, jeśli oczekuje na wystąpienie jakiegoś zdarzenia zewnętrznego, na przykład na naciśnięcie klawisza lub ruch myszy, albo na upłynięcie ustalonej ilości czasu. Jądro DR-DOS monitoruje wszystkie wywołania DOS API budując profil zachowania aplikacji. Pewne kombinacje wywołań interfejsu API sugerują, że aplikacja jest bezczynna.

Sterownik $IDLE$ jest w stanie dokonać subtelnego rozróżnienia między programem, który jest naprawdę bezczynny, na przykład takim, który odpytuje klawiaturę w ciasnej pętli, a takim, który jest aktywny, ale także odpytuje klawiaturę, aby sprawdzić, czy nie ma klawisza przerwania być wciśniętym. Kierowca dokonuje tego rozróżnienia, monitorując czas potrzebny do przejścia na bieg jałowy. Jeśli czas mieści się w określonym przedziale, sterownik zakłada, że ​​program jest bezczynny, np. odpytuje w ciasnej pętli o naciśnięcie klawisza. Jeśli czas wykracza poza określony limit, sterownik zakłada, że ​​między odpytywaniem klawiatury wystąpiło jakieś przetwarzanie i umożliwia wznowienie wykonywania aplikacji bez przełączania stanów zasilania. Zmienna lokalna IDLE_CNTDN określa czas, z którym porównywany jest rzeczywisty czas potrzebny do przejścia w stan bezczynności. Wartość tej zmiennej jest obliczana dynamicznie podczas inicjalizacji i okresowo przeliczana ponownie.

Pochodzenie BatteryMAX

Technika wykrywania bezczynności została po raz pierwszy zastosowana do usprawnienia wielozadaniowości jednozadaniowych aplikacji DOS w wielozadaniowym/wielu użytkowników systemie operacyjnym Concurrent DOS 386 (CDOS386) firmy Digital Research.

Programy napisane dla jednozadaniowych systemów operacyjnych, takich jak MS-DOS/PC DOS, mogą przechodzić w niekończące się pętle, dopóki nie zostaną przerwane; na przykład podczas oczekiwania na naciśnięcie klawisza przez użytkownika. Chociaż nie stanowi to problemu, gdy nie ma innego procesu czekającego na uruchomienie, marnuje cenny czas procesora, który mógłby być wykorzystany przez inne programy w środowisku wielozadaniowym/wielu użytkowników, takim jak CDOS386. Aplikacje zaprojektowane dla środowiska wielozadaniowego używają wywołań API do „uśpienia”, gdy są bezczynne przez pewien czas, ale normalne aplikacje DOS tego nie robią, więc należy zastosować wykrywanie bezczynności.

Wydanie Concurrent DOS 386 zawierało funkcję wykrywania bezczynności w jądrze systemu operacyjnego, która monitorowała wywołania interfejsu API DOS w celu określenia, czy aplikacja wykonuje użyteczną pracę, czy w rzeczywistości jest bezczynna. Jeśli był bezczynny, proces był zawieszany, umożliwiając dyspozytorowi zaplanowanie wykonania innego procesu.

Spory patentowe

BatteryMAX i patent „wykrywania bezczynności” odegrały ważną rolę w domniemanym naruszeniu patentu dotyczącym zarządzania energią oprogramowania pod kontrolą systemu operacyjnego.

W dniu 15 maja 2009 r., St. Clair Intellectual Property Consultants. wniosła powództwo cywilne nr 09-354 w Sądzie Okręgowym Stanów Zjednoczonych D. Delaware przeciwko pozwanym Acer , Dell , Gateway i Lenovo oraz w dniu 18 września 2009 r. wniosła powództwo cywilne nr 09-704 przeciwko Apple i Toshiba . kilka patentów w USA, które posiadali, dotyczących zarządzania energią oprogramowania pod kontrolą systemu operacyjnego.

St. Clair twierdził, że Henry Fung wynalazł zarządzanie energią oprogramowania pod kontrolą systemu operacyjnego i twierdził, że firmy te naruszyły patenty St. Clair i dlatego są winne St. Clair opłaty licencyjne . Microsoft interweniował w imieniu pozwanych i w dniu 7 kwietnia 2010 r. złożył wyrok deklaratoryjny , domagając się orzeczeń o nienaruszeniu i nieważności patentów Fung. (DI 1, CA nr 10-282). Intel wniósł interwencję w imieniu pozwanych, która została uwzględniona w dniu 4 czerwca 2010 r. (DI 178, CA nr 09-354).

Kancelaria prawnicza Perkins Coie z Seattle , działająca w imieniu oskarżonych, odkryła patent BatteryMAX i Grossa na wykrywanie bezczynności podczas poszukiwań stanu techniki . Patent Grossa miał wcześniejszą datę pierwszeństwa niż patenty Funga, co, gdyby zostało udowodnione, podważyłoby sprawę St. Clair. W dniu 28 lutego 2011 r. Gross został zatrudniony przez firmę Intel jako ekspert merytoryczny do złożenia biegłego dla oskarżonych w sprawie. Gross przedstawił dowody w swoim raporcie eksperckim , że to on, a nie Fung, wynalazł oprogramowanie do zarządzania energią pod kontrolą systemu operacyjnego i jako dowód na to umieścił patent na wykrywanie bezczynności oraz istnienie BatteryMAX.

St. Clair złożyła wniosek o wyłączenie opinii dotyczących BatteryMAX, starając się oddalić opinię biegłego Grossa, ale w dniu 29 marca 2013 r. sąd rejonowy oddalił wniosek St. Clair o uznanie zeznań Grossa za oskarżonych za dopuszczalne, [ źródło niepodstawowe potrzebne ], stwierdzając, że „Sąd zgadza się z pozwanymi, że istnieją wystarczające dowody potwierdzające, że BatteryMAX był publicznie dostępny przed datą pierwszeństwa patentów Fung. Ponadto Trybunał stwierdza, że ​​nawet jeśli BatteryMAX nie był wcześniejszy niż patenty Fung, pan Zeznanie Grossa […] byłoby istotne i pomocne dla osoby ustalającej fakty w dochodzeniu dotyczącym oczywistości ”.

Zobacz też

Linki zewnętrzne