CATEGORII DOCUMENTE |
Avantaje si dezavantaje ale buffere-lor - UNIX
Folosirea buffere-lor cache are mai avantaje si, din nefericire,unele dezavantaje.
Folosirea buffer-ului cache are urnatoarele avantaje:
Permite accesul uniform la disc deoarece nucleul nu trebuie sa cunoasca motivele pentru care se excuta operatiile de I/O. Nucleul copiaza datele in si din buffere, indiferent daca aceatea sunt parti ale unui fisier, superbloc sau inod. Mecanismul de bufferare determina un cod mai modular deoarece exista o interfata unitara pentru toate componentele nucleului care executa operatii de I/O. Pe scurt, proiectarea sistemului este mai simpla.
Deoarece nucleul aliniaza intern datele, sistemul nu impune restrictii de aliniere a datelor in procesele utilizator pe timpul operatiilor de I/O. Aceasta determina o programare mai simpla si o portabilitate mai ridicata a programelor. Fara mecanismul de bufferare, programatorii ar trebui sa se asigure ca buffere-le lor de date au fost corect aliniate. Aceasta ar constitui cauza unor erori de programare, iar programele nu ar fi portabile pe sistemele UNIX care ruleaza pe masini cu proprietati mai restrictive de aliniere.
Se poate reduce traficul cu discul, ceea ce duce la cresterea performantelor sistemului si la scaderea timpului de raspuns. Procesele care citesc dintr-un sistem de fisiere pot sa gaseasca blocurile de date in buffer-ul cache, eliminandu-se necesitatea unor operatii de I/O cu discul. Folosirea scrierii intarziate elimina scrierile pe disc care nu sunt necesare.
{ansele de a gasi blocurile cautate in buffer-ul cache sunt mai mari pentru sistemele cu mai multe buffere. Intrucat buffer-ul cache este implementat in cadrul memoriei principale, numarul de buffere pe care un sistem le poate configura in mod eficient este influentat de dimensiunea memoriei care ramane pentru executia proceselor. Daca este alocata prea multa memeorie pentru buffere, sistemul poate deveni prea lent din cauza swapping-ului sau paginarii excesive.
Algoritmiii specifici lucrului cu buffere-le asigura integritatea sistemului deoarece ei mentin o singura imagine a blocurilor disc continute in buffer-ul cache. Daca doua procese incearca simultan sa manipuleze un bloc disc, algoritmii (de exemplu getblk ) vor serializa accesul, prevenind alterarea datelor.
Dintre dezavantajele pe care le introduce folosirea buffer-ului cache se amintesc:
Deoarece in cazul scrierii intarziate datele nu sunt transferate imediat pe disc, sistemul este vulnerabil la accidente (de exemplu, caderea tensiunii de alimentare) care ar putea lasa datele de pe disc intr-o stare necorespunzatoare. Desi implementarile recente ale sistemului au redus riscurile cauzate de aceste evenimente, ramane inca problema de baza: executarea unui apel sistem de scriere de catre un utilizator, nu-i ofera certitudinea ca datele vor fi transferate pe disc.
Fiecare operatie de citire/scriere a datelor folosite de procesele utilizator necesita o copie suplimentara. Un proces care scrie date, le copiaza in nucleu, iar nucleul le copiaza pe disc; un proces care citeste date, le citeste de pe disc in nucleu si din nucleu in procesul utilizator. Cand se transmit mari cantitati de date, copia suplimentara scade performantele. Utilizarea buffer-ului cache intr-un sistem in care se transmit cantitati mici de date duce la cresterea performantelor sistemului deoarece nucleul va pastra datele in buffere (folosind algoritmul getblk si scrierea intarziata) pana cand transferul cu discul devine optim.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1322
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved