Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Antetul unui buffer - UNIX

linux



+ Font mai mare | - Font mai mic



Antetul unui buffer - UNIX

Pe timpul initializarii sistemului nucleul aloca spatiu pentru un numar de buffere in concordanta cu dimensiunea memoriei si performantele sistemului. Un buffer consta din doua parti: o zona de memorie care contine date de pe disc si un antet (header) prin care se identifica buffer-ul. Deoarece este o corespondenta biunivoca intre antet si zona de date, prin 'buffer' se vor referi in continuare ambele componente, contextul urmand sa clarifice la care anume se face referirea.



Datele dintr-un buffer corespund datelor dintr-un bloc de disc logic al unui sistem de fisiere, iar nucleul determina continutul buffer-ului prin examinarea campurilor de identificare din antet. Bufferul este copia din memoria interna a blocului disc. Asocierea dintre continutul blocului disc si buffer este temporara (pana cand nucleul decide sa asocieze buffer-ului alt bloc). Un bloc disc nu poate fi asociat simultan mai multor buffere. Daca doua buffere ar contine datele corespunzatoare unui bloc disc, nucleul nu ar sti care buffer contine datele curente si ar putea rescrie incorect datele pe disc. De exemplu, sa presupunem ca un bloc disc este asociat buffer-elor, A si B. Daca nucleul scrie date mai intai in buffer-ul A si apoi in buffer-ul B, blocul disc trebuie sa contina informatiile din buffer-ul B.

Figura 3.1. Antetul bufferului

In cazul in care se va scrie pe disc intai buffer-ul B si apoi buffer-ul A, blocul disc va contine date incorecte. Antetul buffer-ului (figura 3.1) contine un camp numarul dispozitivului si un camp numar de bloc care specifica sisitemul de fisiere, respectiv numarul blocului de date de pe disc. Prin intermediul lor buffer-ul este identificat in mod unic.

Numarul dispozitivului este numarul logic al sistemului de fisier (vezi paragraful 2.2.1), nu numarul unitatii dispozitivului fizic (discului). Antetul contine de asemenea un pointer la zona de date a buffer-ului, a carei dimensiune trebuie sa fie cel putin egala cu cea mai mare dimensiune a unui bloc disc, si un camp stare care prezinta starea curenta a buffer-ului. Starea unui buffer este o combinatie a urmatoarelor conditii:

Buffer-ul este momentan blocat (se vor folosi termenii 'blocat ' sau 'ocupat ', si termenii 'liber ' sau ' deblocat ' pentru starea opusa)

Bufferul contine date valide.

Nucleul trebuie sa scrie continutul buffer-ului pe disc inainte de reasignarea acestuia; aceasta conditie este cunoscuta ca intarziere scriere.

Nucleul citeste sau scrie continutul bufferului pe disc.

Un proces asteapta ca bufferul sa devina liber.

Antetul mai contine si doua seturi de pointeri, folositi de algoritmii de alocare a buffere-lor pentru a mentine intreaga structura a sistemului de buffere.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1013
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved