Upravnik medpomnilnika


Upravnik medpomnilnika (cache manager) je množica funkcij in niti v sistemskem (kernel)) režimu. Te so na voljo lokalnim in omrežnim sistemskim gonilnikom. Pri vmesnem pomnenju podatkov uporablja tehniko virtualnih blokov (odmikov znotraj datoteke), medtem ko precej drugih podobnih sistemov uporablja tehniko logičnih blokov (odmikov v particiji diska)
 
Koherenca vmesnega pomnenja

Upravnik medpomnilnika mora zagotavljati, da dobi vsak proces, ki dostopa do njega, najbolj sveže podatke. Zagotavljati mora to, da obstaja le ena predstavitev odprtih (mapiranih datotek).

Koherenca vmesnega pomnenja je nekoliko bolj zahtevna pri dostopu do omrežnih podatkov, ker ti terjajo pogostejše brisanje in shranjevanje (purge, flush).
 
 

Sistem NTFS omogoča tudi popravljanje okvar v primeru izpadov. To pomeni, da moramo imeti možnost, da vse vhodno-izhodne operacije v primeru prekinitve ali povsem pozabimo ali v celoti rekonstruiramo.  Sistem zato beleži vse operacije, ki jih namerava storiti, v posebno datoteko (Log file). Srečamo se s pojmom metapodatkov (metadata), ki so namenjeni le spremembam datotečnega sistema (ne pa podatkom samim). Seveda mora biti beležka o predvideni spremembi zapisana na disk pred samo spremembo.


 
Struktura medpomnilnika

Medpomnilnik uporablja območje sistemskih virtualnih naslovov namesto območja fizičnega pomnilnika.

Naslovni prostor je razdeljen v 256 KB velike rezine, ki jim pravimo pogledi (views).

Pri prvi vhodno-izhodni informaciji preslika tak pogled na področje datoteke,ki je poravnano na 256 KB v prosto rezino medpomnilnika. Sledi pogled na drugo področje itd.

 


 
Sicer pa uporablja pri teh preslikavah princip Round-Robin. 

Med samim branjem ali zapisovanjem je tak pogled aktiven. Ko porabimo vso zalogo pogledov, pri nadaljnjih pogledih zasede upravnik medpomnilnika z novim pogledom tistega, ki je bil najdlje neaktiven.

Tudi sam medpomnilnik uporablja tehniko delovne množice strani. Virtualna velikost sistemskega   medpomnilnika je odvisna od velikosti fizičnega pomnilnika. in je tipično več 10MB (privzeto 64 MB).