DynamiCache 1.03Luboš Němec
Pokud jste nikdy žádnou diskovou cache nepoužívali nebo nedej bože dokonce
nevíte, co to DynamiCache je, možná po přečtení tohoto článku změníte názor.
DynamiCache je inteligentní disková cache pro všechny počítače Amiga. Jejím
autorem je Christopher A. Wolf a tento špičkový prográmek pochází již z roku
1993. Asi před měsícem se v balíku „SCSI Tools 2.4“ od phase 5 (ke stažení na
ftp.phase5.de/pub/phase5/SCSI objevila nová (nebo spíš upravená) verze
DynamiCache 1.03 a já si rázem vzpomněl, že tento velmi užitečný a pro mne již
prakticky nepostradatelný software není mezi amigisty téměř vůbec znám a nikdo
jej nepoužívá. Děláte velkou chybu! Proč? Inu, čtete dále. A co DynamiCache vlastně umí? Jak již bylo řečeno, je to inteligentní (velmi
inteligentní!) disková cache urychlující práci s téměř všemi typy harddiskům,
disket a výměnných médií o 500% až 1000%. Podle mého názoru se jedná o nejlepší
ze všech cache prográmků, jaké jsem kdy na Amize i PC viděl a vzhledem k tomu,
že DynamiCache je opravdu dynamická a zabranou paměť v případě potřeby opět
uvolní, je to vlastně ďábelský systém pro schování nejpoužívanějších nebo
naposledy načtených dat z harddisku/disket do RAMky. No a jak velký je rozdíl v
rychlosti načítání dat z RAM proti načítání z HD či v tom horším případě dokonce
z diskety? Zde není třeba komentáře, rozdíl je tak propastný, že i při minimální
úspěšnosti předpovídání (prediction) a zásahům (sorry, jinak „hits“ nazvat
nelze) v cache systému by se DynamiCache vyplatila.každému majiteli harddisku. Možnosti programu
A teď už konkrétně. DynamiCache umí cachovat nejrůznější typy floppy disků,
harddisků, floptických mechanik, výměnných médií (Bernouli, SyQuest, Ricoh,
Nomai, ZIP atp.), CDROM mechanik a obdobných zařízení. DynamiCache je
kompatibilní s širokou paletou SCSI, Fast SCSI-II i IDE řadičů, spolehlivě
funguje např. na řadičích firmy phase 5, GVP, Supra, IVS, ICD, Xetec a mnoha
dalších, samozřejmě včetně interního amigovského ATBUS/IDE či SCSI řadiče.
DynamiCache podporuje všechny originální commodorovské amigovské filesystémy
včetně OFS, FFS a DCFS, funguje i s harddisky či HD partitiony zformátovanými
pod CrossDOSem nebo pod libovolným dalším filesystémem používajícím standardní
device interface (např. CrossMAC, nové verze FFS, ne však PFS či AFS!). V
programu je implementován kvalitní sofistický předpovídací algoritmus
zajišťující vynikající výsledky při cachování. Speciální mód „trackread“ je
optimalizován pro cachování floppy disků. Dříve naprosto unikátní a i dnes ještě
programátory poměrně málo používaná technika dynamického přidělování paměti
mohla být díky hardwarové architektuře Amigy použita bez jakýchkoliv problémů
(což je dobrý výsměch majitelům PC, kde ostatně ani mizerný RAM disk nebyl
dynamický). DynamiCache umí obsloužit neomezený (!) počet zařízení současně.
Cachování může být povoleno či zakázáno pro každé zařízení či partition zvlášť,
a to vše samozřejmě bez nutnosti resetu počítače. Instalace a nároky programu
Program funguje jako komodita a vyžaduje AmigaOS 2.04 a vyšší. Fungovat bude
už s 1 MB RAM, doporučeno je 2 MB FAST RAM. Je sice jedno, jestli paměť bude
typu CHIP nebo FAST, pro mnohem rychlejší odezvu je samozřejmě doporučen
dostatek FAST RAM. Čím rychlejší procesor, tím pochopitelně lépe, ale nevěšte
hlavu, DynamiCache dosahuje skvělých výsledků i s procesory 68000! Omezení
programu jsou následující - při startu „natvrdo“ zabere 64 KB až 4 MB RAM (lze
nastavit v preferencích jako základ pro cache buffer) a nelze cachovat zařízení
se sekvenčním přístupem (což jsou např. streamery a různá pásková zařízení),
cachovat nelze ani PARNET:, NFS: a podobně simulovaná zařízení. DynamiCache také
nefunguje s většinou managerů virtuálních pamětí typu „Gigamem“ a „VMM“
využívajících MMU (na druhou stranu s virtuálkou např. od „ImageFX“ či
„ArtEffect“ ale funguje bez problémů), chcete-li používat nějakou virtuální
paměť, budete muset DynamiCache vypnout.
Instalace spočívá v překopírování programu do WBStartupu a nastavení několika
tooltypů. Pominu ty obecné a pro všechny komodity stejné tooltypy typu priorita,
popup klávesa atd. a rovnou Vám prozradím, že bez tooltypů „USEIMMEDIATE“ a
„QUIET“ se DynamiCache hned neaktivuje a navíc budete muset při každém jejím
startu odkliknout jeden requester. Nastavení cache systému
Grafické GUI programu je velmi přehledné. V levé polovině jsou volby
týkající se názvu zařízení, případně typu řadiče a volby pro paměťová nastavení,
v pravé polovině je pak seznam všech zařízení, která lze cachovat a s tím
související volby pro nastavení cache. Cachované zařízení je označeno jako
„enabled“ (povoleno), zakázané pak jako „disabled“ (zakázáno). DynamiCache zná
tři hlavní typy zařízení (Device Type) - „Hard Drive“, „Floppy“ a „Removable“. U
prvních dvou snad není třeba rozvádět, o co se jedná, mezi výměnná zařízení
(Removable) patří CDROM, SyQuest atp. a lze je cachovat pouze jako celý disk a
ne jen jejich jednotlivé partitiony (pokud nějaké mají). I zde je však několik
možností, protože třeba u SyQuestu můžete mít médium rozdělené na několik
partitionů (i když by se to u výměnných médií NEMĚLO dělat!) a cahovat je jako
jednotlivé disky každý zvlášť.
Gadget „Purge Scheme“ slouží k nastavení algoritmu, který bude DynamiCache
používat pro uvolňování dynamicky alokované paměti pro ostatní aktivní či
neaktivní aplikace, které si to v daném okamžiku vyžádají. Nastavit můžete dva
typy algoritmu, „LRU“ (Least Recently Used) a „Random“. Druhý z nich je mnohem
jednodušší variantou, DynamiCache v tomto případě prostě jednoduše uvolní
alokovanou část paměti bez jakékoliv analýzy dat v cache. Metoda „LRU“ je mnohem
inteligentnější a efektivnější, protože DynamiCache kontroluje obsah dat v
alokované části paměti a používaná data nebo naposledy používaná data vybraná
předpovídacím algoritmem (prediction logic) jsou odstraněna až jako poslední.
Tato metoda ovšem vyžaduje nesrovnatelně vyšší procesorový výkon a na
konfiguracích s procesory 68000 bez FAST RAM může vést k značnému zpomalení
celého systému. Jestliže tedy máte procesor 68000 a pouze CHIP RAM, nastavte
gadget „Purge Scheme“ na „Random“. S procesory 68020 si už můžete dovolit
zapnout metodu „LRU“.
Gadget „Minimum Size“ slouží k nastavení minimálního bufferu, který bude
DynamiCache používat pro svoji potřebu. Tato zabraná paměť není po startu
DynamiCache dostupná pro systém, po případném ukončení programu je do systému
samozřejmě opět navrácena. Teoreticky by měla být v „Minimum Size“ nastavena
hodnota zhruba velikosti 1/4 normálně volné RAM ve Vašem systému (čili máte-li
volných 16 MB, měli byste nastavit 4 MB), prakticky ale stačí hodnoty mnohem
nižší a podle mých zkušeností bohatě postačuje 1 až 2 MB, se kterými se
samozřejmě budete muset rozloučit. 1 MB na výrazné urychlení diskových operací
snad obětuje každý, nastavit ale můžete i nižší hodnoty, naopak nejvyšší možné
číslo jsou právě již zmíněné 4 MB.
V gadgetu „Maximum Size“ se nastavuje maximální velikost dynamického bufferu
(udávané číslo je včetně již zabrané paměti nastavené v „Minimum Size“!), který
bude DynamiCache používat pro cachování dat. Zde není příliš co zkoumat,
nastavte jednoduše „No Max“ (bez omezení). Tato paměť je až na nezbytné „Minimum
Size“ v případě potřeby opět navrácena do systému, takže si nemusíte dělat
starosti s tím, že by v něm někdy chyběla. Na systémech s FAST RAM i CHIP RAM
bude DynamiCache pro dosažení nejvyššího možného výkonu automaticky používat
pouze FAST RAM, při definování minimálních a maximálních velikostí bufferu s tím
tedy počítejte. Pod typem zařízení, u kterého musíte cachování povolit či
zakázat po nakliknutí jeho názvu, se nastavuje počet sektorů (Read Ahead), které
bude DynamiCache předčítat a ukládat do volné paměti. Předčítáním sektorů se
práce s diskem výrazně urychlí, čím pomalejší disk, tím větší urychlení. Navíc
se šetří čtecí hlavičky, které nemusí provádět velké přesuny z místa na místo,
což nemalou měrou přispívá k prodloužení životnosti a současně samozřejmě i ke
snížení hlučnosti disku! Standardní hodnota pro harddisky je zde 8, pro CD-ROM
atp. 2 - 4, pro floppy disky je pak nutné zapnout speciální „Track-Mode“, neboť
amigovské diskové floppy mechaniky používají na rozdíl od harddisků
„trackdisk.device“. Čím rychlejší máte disk, tím vyšší hodnotu předčítaných
sektorů si můžete dovolit. Dnes můžete prakticky s každým novějším diskem (pokud
máte ovšem alespoň procesor 68020 a FAST RAM!) nastavit nejvyšší možné hodnoty,
což je 32 a v tom úplně nejlepším případě 64 sektorů. Nemusím snad připomínat,
že defragmentace a optimalizace disku (např. pomocí programu „ReOrg“) dramaticky
zvýší výkon DynamiCache, protože data budou v jednotlivých sektorech ležet pěkně
za sebou a DynamiCache bude moci předčítat najednou vyšší počet sektorů.
Gadget „Write Cache“ slouží k nastavení způsobu cachování. Metoda „Write-Thru“
kopíruje data do cache při každém zápisu na disk, což size o něco zpomaluje
zápis (s procesory 68030 nebo rychlejšími a FAST RAM to ani nepoznáte), ale na
druhou stranu významným způsobem zrychluje subsekvenční přístup k těmto zapsaným
datům, protože jsou prostě už jednou v cache! Tento způsob má ještě jednu
obrovskou výhodu - jestliže byla data zapsána na disk a program si vyžádal
jejich verifikaci, nebude se verify provádět na disku, ale přímo v cache, což
jak jistě uznáte, povede k dramatickému nárůstu rychlosti práce s diskem. Druhý
možný způsob „Disable“ sice nijak nezpomaluje zápis na disk, ale jestliže byla
data uložena subsekvenčně (čti nebyla uložena v jedné řadě za sebou sektor po
sektoru), při dalším případném čtení se budou tato data načítat z disku znovu.
Volba „Disable“ není sice příliš užitečná, ale někdy se může hodit. Po uložení
preferencí (je jedno jestli na disk nebo jen do ENV:) se GUI zmenší na
informační okénko s informacemi o názvu a nastavených parametrech cachovaného
zařízení, případně komplexní práce celé cache (Global) s počtem přístupů na
disk, do cache a úspěšností cache systému v procentech. Gadget „Flush“ slouží k
vyčištění cache v RAM a nemusíte se obávat jej nakliknout i při zápisu na disk
nic tím sice nepokazíte, ale data z paměti pochopitelně zmizí. I toto malé
informační okénko samozřejmě můžete zavřít normálním Glose gadgetem v levém
horním rohu - protože DynamiCache funguje jako komodita, bude stále funkční,
dokud ji nezrušíte z menu („Quit“) nebo příslušnou klávesovou zkratkou. Z menu
rovněž můžete DynamiCache dočasně zakázat „Inactivate“, vyprázdnit cache
(„Flush“) a posléze opět povolit „Activate“. Pár slov na závěr
Prediction logic neboli předpovídací logika v DynamiCache je úspěšná v
naprosté většině případů a podle mých zkušeností Vám výrazně pomůže zrychlit
všechny diskové operace. Autor programu dále doporučuje přidat pomocí
„AddBuffers“ (příkazu AmigaDOSu, ve WB 3.0+ standardně ve startovací sekvenci)
každému cachovanému zařízení 50 až 100 bufferů (1 buffer = 512 bytes) pro
dosažení maximálního možného výkonu při načítaní adresářů. Úspěšnost zásahů do
cache by se měla podle autora programu pohybovat v rozsahu 40 - 60%. Objevují-li
se v informačním requesteru nižší čísla (vyšší rozhodně nejsou na škodu!), měli
byste změnit počet předčítaných sektorů u jednotlivých cachovaných zařízení.
Snad jsem Vám alespoň trochu přiblížil možnosti a výhody cachovacího systému a
doufám, že jste dnes opět objevili nějaký program, který by jinak zůstal
zapomenut a který Vám přinese značný užitek. Za DynamiCache nemusíte navíc
platit žádné poplatky a od phase 5 si jej můžete stáhnout společně s balíkem
„SCSI Tools“ zcela zdarma. A na úplný závěr to nejlepší - celý tento bombastický
cache systém pod názvem DynamiCache má přitom pouhopouhých 47 KB! Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|