Hrvatska akademska i istraživačka mreža
  NASLOVNICA MAPA WEBA TRAŽILICA KONTAKTI CARNET WEB
Hrvatska akademska i istraživačka mreža
 
menu 4
Sigurnost
menu 4
Distribucija
menu 4
Pomoć
menu 4
Dokumenti
menu 4
menu 4

 

 

22-04-05 12:00
[Windows] Direktorij Prefetch

piše BORIS TROJAN

Sve inačice operacijskih sustava Windows pripadaju tipu sustava čiji je rad zasnovan na korištenju page memorije, dijela prostora na tvrdom disku na koji se podaci i kod kopiraju prije unosa u memoriju u trenutku kad ih zatraži neka aplikacija. Podaci i kod se kopiraju formatirani u blokove podataka koji se nazivaju 'page', a sam proces zapisivanja se naziva se page fault.

 

Prefetching je proces koji podatke i kod dohvaća s tvrdog diska u memoriju i prije nego što ih neka aplikacija zatraži. Servis koji se brine o tome što treba ili ne treba "prefetchati" je Windows XP Cache Manager koji nadzire page zapise u vrijeme pokretanja sustava i aplikacija.

 

Dvije su vrste page zapisa - oni koje se tek treba pročitati s diska (hard faults) i oni koji su već u memoriji, a potrebno ih je samo dodati radnom procesu (soft faults). Unaprijed je zadano da taj servis prati (trace) prve dvije minute pokretačkog procesa, 60 sekundi poslije inicijalizacije svih win32 servisa, 30 sekundi nakon pokretanja korisničke ljuske (Internet Explorer) i prvih 10 sekudni pokretanja neke aplikacije.

 

Svaki sakupljeni trace, pristupi datotekama ili direktorijima koje učini neka aplikacija, bilježi se u NTFS MFT (Master File Table), metadata datoteci i o tome obavještava prefetch komponentu Task Schedulera. Nakon procesiranja trace podatka, Task Scheduler ih zapisuje u direktorij \Winnt\Prefetch. Datoteke u njemu imenuju se formatom imena aplikacije, heksdecimalnim hashom putanje datoteke i ekstenzijom .pf, naprimjer NOTEPAD.EXE-AF43252301.PF. Izuzetak ovoga pravila imenovanja datoteka je datoteka koja pohranjuje trace pokretačkog procesa, a zove se NTOSBOOT-B00DFAAD.PF.

 

Kada počne proces učitavanja sistema ili se pokrene neka aplikacija, poziva se Cache Manager koji aplikaciji nudi mogućnost da se 'prijavi' u prefetch direktorij. Cache Manager tada provjerava da li se unutar prefetch direktorija već nalazi trace datoteka potrebna za rad aplikacije. Ako je trace unutar direktorija, Cache Manager poziva NTFS koji izvršava prefetch datoteka koje su referencirane unutar MFT metadata datoteke, čita sadržaj svih referenciranih direktorija i konačno otvara svaku od ovih datoteka. Nakon toga, Cache Manager poziva Memory Manager koji u memoriju unosi sve datoteke i kod iz tracea a koji se ne nalaze u memoriji. Nakon što se izvrši učitavanje, Memory Manager dopušta nastavak pokretanja aplikacije.

 

Kako ovaj sistem poboljšava opće performanse sustava? Odgovor leži u činjenici da se prilikom tipičnog boot procesa ili pokretanja aplikacije faults zapisi ponekad čitaju iz jednog a ponekad iz drugog dijela datoteke ili iz neke druge datoteke ili nekog drugog direktorija a što povećava vrijeme pretraživanja tvrdog diska. Postupkom prefetch-a podataka iz datoteka ili direktorija koji se izvrši jednom i ujedno prije pokretanja aplikacija, ovo vrijeme pretraživanja tokom pokretanja sistema ili aplikacija se eliminira.

 

Modifikacija Prefetch postavki

Postavke prefetch procesa moguće je modificirati unutar sljedećeg registry foldera:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

 

Potrebno je potražiti ključ EnablePrefetch i odrediti funkcionalnost prema sljedećim vrijednostima:

 

0-disable

1-Application Launch Prefetch

2-Boot Prefecth

3-Prefetch Everything





[Lista]
Ovu uslugu CARNeta realizira Sveučilišni računski centar Sveučilišta u Zagrebu
  Copyright ©2005. CARNet. Sva prava zadržana. Impressum.
Mail to
sys-portal@CARNet.hr