PDASoft

Proč je tolik problémů s NVFS?
Publikováno: Pátek, 31.03. 2006 - 00:00:00
Téma: Hardware Palm


Vypadá to, že NVFS (souborový systém nezávislý na zdroji elektrické energie), je v současné době problémem číslo jedna, pro všechny uživatele Palmu a tak jsem si myslel, že by bylo dobré, poskytnout těmto uživatelům nějaké ty informace, proč tento systém způsobuje problémy a proč se Palm rozhodl stále tento systém používat.



1. Co znamená non-volatile storage?

Je to druh úložného prostoru paměti, který není závislý na elektrickém proudu, tudíž neztrácí data, ani pokud dojde k úplnému vybití baterií. Stejný se používá v USB klíčenkách. V prvé řadě ho začal Palm používat proto, že je podstatně levnější než normální paměti, které se tradičně používají v PDA. Dalším problémem je, že NVFS je podstatně pomalejší než klasické RAM.

2. Proč to způsobuje onen bolehlav u Palmů?

Problémem je, že základní struktura Palm OS předpokládá, že není nutno nahrávat data, která potřebujete, protože již jsou vlastně v rychlé RAMce. Namísto toho, vy jen sdělíte operačnímu systému, že potřebujete přístup ke čtení/zápisu dat v určitém bloku paměti a systém vám může umožnit přístup přímo, bez virtuálního omezení.

Druhým problémem je, že Palm OS také předpokládá, že je možné spustit aplikaci prakticky ve zlomku sekundy, protože v každém případě je vlastně již nahraná v rychlé paměti. To je také důvod, proč komunikace mezi operačním systémem a aplikacemi, tak jako komunikace mezi jednotlivými aplikacemi, je realizována způsobem, který vyžaduje úplné nahrání celých aplikací. A to je ten problém, protože takové nahrání celé aplikace z NVFS trvá celé věky, ve srovnání s tradiční RAMkou.

3. Například?

Když resetujete váš Palm, všechny aplikace jsou po resetu nahrány podle určitých parametrů, takže mohou být nastaveny nejrůznější Hackmanagery.

Podobně je tomu třeba v případě, že použijete funkci „hledat“, kdy každá aplikace bez ohledu na to, jestli podporuje funkci vyhledávání, je spuštěna podle speciálních parametrů, které na povel nahlédnou do databáze dle vašeho požadavku, který byl zadán pro vyhledávání.

Tyto pochody se dějí v Palmu stále, dokonce i při takové jednoduché operaci jakou například rozbalení ovládací lišty nebo přehrávání zvuků, takže si umíte představit, kolik času systém stráví přesouváním programů z NVFS do vnitřní paměti, u těchto NVFS systémů.

4. Dobře, to je problém struktury, ještě něco?

Problém není jen OS samotný jak jsem zmiňoval, ale většina aplikací také předpokládá, že běží přímo v rychlé RAM. Například aplikace na Palmu nahraje nějakou bitmapu a poté ji ihned spustí, a to dokonce i tehdy, pokud to není zrovna nutné a klidně to opakují jen o zlomek sekundy později, protože tradičnímu Palm OS to dříve nedělalo žádné problémy a zpoždění bylo zanedbatelné. Takže si vývojáři nemuseli dělat hlavu s tím, který obrázek byl nahrán a kdy. NVFS dělá totéž, s tím rozdílem, že pokaždé když nakreslíte obrázek a budete se k němu vracet, tak ho kopíruje z NVFS do RAM, tam ho nakreslíte a poté ho to z RAMky opět vymaže a to samozřejmě trvá nějaký dobu, pokud se tak děje znovu a znovu. Horší je, že programy vyžadují přístup k datům i tehdy, když je zrovna nepotřebujete, pro NVFS to znamená, že marní čas kopírováním dat zpět do NVFS paměti dokonce i tehdy, když nedošlo k žádným změnám.

5. Co pro to Palm udělal?

Palm implementoval vyrovnávací systém. To znamená, že NVFS na chvilku podrží data, která potřebuje program mít v rychlé RAM, na dobu nezbytně nutnou k tomu, aby je mohl daný program ještě znovu využít. Problém je, že vývojáři nemohli poručit systému, která data bude nutné zachovat a která ne, proto systém více méně zkouší uhádnout podle toho, co daný program potřeboval doposud. Samozřejmě, že se mu to občas nepodaří uhádnout, tím pádem někdy Palm plýtvá drahocennou pamětí a rychlostí procesoru a může se stát i něco neočekávaného a tím je zhroucení systému. Například, když program nemá být spuštěn po resetu nebo během vyhledávání, to se nedá odhadnout….

6. Je to problém jenom pro Palm OS?

V zásadě ano. I v ostatních operačních systémech se musí vždycky počítat s tím, že nahrání údajů chvilku trvá. Ale Palm OS je jediným systémem, který nahrává údaje právě tímto způsobem. Dokonce i Windows CE založené na paměti RAM musí nahrát data z úložné paměti do operační paměti, což je sice plýtvání zdroji, ale předchází to tomuto problému. Podobně jako komunikace mezi aplikacemi nebo systémem u Palm OS je naprosto ojedinělá… u ostatních systémů mohou být nahrány dvě a více aplikací, které mohou spolu komunikovat najednou. Palm OS je jiný, protože neumožňuje multitasking.

7. Může se z toho Palm nějak vykroutit?

Ano i ne. Pod tíhou okolností, kdy uživatelé vyžadují více a více paměti, ale nechtějí za to více platit (rozhodně se nezajímají o to, jestli se jedná o levnou nebo drahou paměť), udělali právě to, co bylo nejrozumnější. Je to typické tržní hospodářství, které produkuje a propaguje určité věci, ale rozhodně to neulehčí každodenní život uživatelům. Pokud by skutečně chtěli uživatelům pomoci, potom by museli vytvořit cosi jako PowerRun, zrovna tak jako špičkový zálohovací program a vytvořit pomocí NVFS virtuální paměťovou kartu. Ale nemohli by to stále nazývat „interní pamětí“a poté by museli ještě zajistit relativně velkou tradiční RAM. Vzhledem k těsnému rozpočtu, obzvláště u mobilních telefonů, nemyslím si, že by to byla dobrá volba.

8. Takže co s tím?

Osobně se vyvaruji NVFS zařízení co nejdéle… můj spolehlivý Zodiac běhá rychle a stabilně. Pravidelně se mi v noci zálohuje, mám 2x po 1GB ve dvou SD slotech a chtěl bych každému poradit to samé. Dokud se neobjeví Palm OS 6 alias Kobalt (který by měl vyřešit některé tyto problémy, možná všechny), doporučuji počkat na ALP OS, který je navržen od základu na používání NVFS, který v podstatě pracuje jako pevný disk pod Linux systémem, čili ALP.


Zdroj: Hans Scmucker pro Palm 24/7







Tento článek si můžete přečíst na webu PDASoft
http://www.pdasoft.cz

Tento článek najdete na adrese:
http://www.pdasoft.cz/modules.php?name=News&file=article&sid=1895