шпаргалка

b.Antetul unui buffer

[ Назад ]
Pe timpul iniţializării sistemului nucleul alocă spaţiu pentru un număr de buffere în concordanţă cu dimensiunea memoriei şi performanţele sistemului. Un buffer constă din două părţi: o zonă de memorie care conţine date de pe disc şi un antet (header) prin care se identifică bufferul. Deoarece este o corespondenţă bijectivă între antet şi zona de date, prin buffer se vor referi în continuare ambele componente, contextul urmând să clarifice la care anume se face referirea.
Datele dintr-un buffer corespund datelor dintr-un bloc disc logic al unui sistem de fişiere, iar nucleul determină apartenenţa conţinutul bufferului prin examinarea câmpurilor de identificare din antet. Bufferul este copia din memoria internă a blocului disc. Asocierea dintre conţinutul blocului disc şi buffer este temporară (până când nucleul decide să asocieze bufferului alt bloc). Un bloc disc nu poate fi asociat simultan mai multor buffere. Dacă două buffere ar conţine date corespunzătoare unui bloc disc, nucleul nu ar şti care buffer conţine datele curente şi ar putea rescrie incorect datele înapoi pe disc. De exemplu, să presupunem că un bloc disc este asociat bufferelor, A şi B. Dacă nucleul scrie date mai întâi în bufferul A şi apoi în bufferul B, blocul disc trebuie să conţină informaţiile din bufferul B. ïn cazul în care se va scrie pe disc întâi bufferul B, iar apoi bufferul A, blocul disc va conţine date incorecte.Antetul conţine de asemenea un pointer la zona de date pentru buffer, a cărei dimensiune trebuie să fie cel puţin egală cu cea mai mare dimensiune a unui bloc disc, şi un câmp de stare care prezintă starea curentă a bufferului. Starea unui buffer este o combinaţie a următoarelor informaţii:>>? bufferul este momentan blocat (pentru aceasta vor fi folosiţi termenii "blocat " şi "ocupat ", ca şi "liber " şi " deblocat " pentru starea opusă);>>? bufferul conţine date valide;>>? nucleul trebuie să scrie conţinutul bufferului pe disc înainte de reasignarea bufferului; această condiţie este cunoscută ca "delayed-write"(scriere întârziată);>>? nucleul citeşte sau scrie conţinutul bufferului pe disc, buffer în lucru;

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |