caching fișier

caching fișier

În mod implicit, Windows cache datele de fișier care este citit de pe disc și scrise pentru a le. Acest lucru înseamnă că datele de fișiere citite operații sunt efectuate din câmpul în memoria sistemului, cunoscut sub numele de fișier de sistem cache, și nu cu discul fizic. Prin urmare, operațiunea de scriere pentru a scrie date în fișierul cache a sistemului de fișiere, nu pe disc, iar acest tip de memorie cache este menționată ca o memorie cache write-back. Caching este controlat prin intermediul „fișierul“.







Caching are loc sub îndrumarea cache de manager (manager de cache). care funcționează continuu, atâta timp cât rulează Windows. fișier de date în fișierele de sistem cache sunt scrise pe disc, la intervale determinate de sistemul de operare și memoria utilizată anterior de aceste date fișier este eliberat - aceasta este menționată ca o picătură în unitatea (înroșirea feței) cache. Date Politica de înregistrare întârziere într-un fișier și a le stoca în memoria cache, atâta timp cât cache-ul nu va fi spălată pe disc, numit intrare întârziată, și este inclus cache-ul controler pentru un interval de timp specificat. Perioada de timp în care blocul de date fișier este spălată pe disc, bazat parțial pe cantitatea de timp în care acesta este reținut în memoria cache și pe cantitatea de timp în care datele au fost accesat ultima dată într-o operație de citire. Acest lucru asigură că datele de fișier care este citit de multe ori, va rămâne disponibil în memoria cache de sistem, numărul maxim de fișiere temporare.

Acest proces de caching fișier este ilustrat în figura de mai jos.

Intrare îmbunătățită valoarea de performanță - ieșire (I / O) date propuse pentru date de fișier cache depinde de dimensiunea blocului desemnat pentru citire sau scriere. Atunci când este citit și scris în blocuri mari de date de fișiere este mult mai bine pentru a citi de pe disc și scrie pe disc ar trebui să fie sigur de a verifica funcționarea I / O. Viteză de intrare - ieșire (I / O) datele trebuie să fie din ce în ce redusă ca locul de operare luând I / O de acest fel.







În aceste situații, cache-ul poate fi oprit. Acest lucru se face într-un moment în care fișierul este deschis, cu ajutorul pavilion FILE_FLAG_NO_BUFFERING de transport. ca valoare pentru parametrul funcției dwFlagsAndAttributes CreateFile. Atunci când cache este dezactivată, toate citește și scrie direct pentru a obține acces la discul fizic. Cu toate acestea, fișierul de metadate poate fi încă în cache. Pentru a spăla metadatele, utilizați FlushFileBuffers.

Frecvența cu care renunțarea a discului este important să se ia în considerare un factor care echilibrează performanța sistemului cu fiabilitatea. În cazul bufeurilor de sistem de prea multe ori, în scădere de pe discul este expus la un număr mare de operații de scriere care degradeaza in mod semnificativ performanțele sistemului. Dacă sistemul nu se resetează cache pe disc destul de des, devine mai probabil, în care, sau memoria de sistem pot fi epuizate de cache, sau o eroare de sistem brusc (cum ar fi pierderea unei surse de alimentare de calculator) se va întâmpla înainte de a se produce resetarea. În acest din urmă caz, datele stocate în memoria cache se vor pierde.

Pentru a vă asigura că numărul corect de cădere de secvență cache pe disc, managerul de cache creează în fiecare al doilea proces, numit de intrare întârziată. intrare întârziată se ocupă de pagini turn-o a opta, care recent nu au fost curățate periodic pentru disc pentru a fi scrise pe disc. Acest proces este în mod constant re-evalueaza cantitatea de date scrise pe disc, în scopul de a optimiza performanța sistemului în ansamblu, și în cazul în care ar trebui să fie scris mai multe date, se pune în aplicare mai multe date. intrările amânat nu sunt eliminate fișierele temporare, deoarece se presupune că acestea trebuie să fie eliminate prin aplicarea sau sistemului.

Unele programe, cum ar fi un verificator de virus, necesită operațiunile lor de înregistrare au fost spălate imediat pe disc; Windows furnizează această capacitate printr-o scriere prin caching de co (înregistrarea simultană a datelor din memoria cache și memorie). Procedeul face posibil pentru a scrie-prin cache co a acestor operații de intrare / ieșire (I / O), care trec caseta FILE_FLAG_WRITE_THROUGH atunci când apelează funcția CreateFile. Cu cache activat co-date prin scriere este încă în scris cache-ul, dar managerul de cache înregistrează imediat datele de pe disc, mai degrabă decât pentru a le expune întârzierea cu ajutorul scriitorului leneș. Procesul poate face, de asemenea, pierde fișierul în cazul în care acesta este deschis prin apelarea funcției FlushFileBuffers.

metadate sistem de fișiere în cache întotdeauna. Din acest motiv, pentru a salva orice modificări metadatele de pe disc, fișierul ar trebui să fie spălate, fie pe disc, sau deschis cu un FILE_FLAG_WRITE_THROUGH steag.