a.Alg bmap

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


alg.bmap
intrări: (1) inod
(2) offsetul
ieşiri: (1) numărul blocului în sistemul de fişiere
(2) offsetul din bloc
(3) număr de octeþi din bloc pentru operaţia de I/O
(4) număr bloc citit în avans
{
calculează numărul de bloc logic din fişier funcţie de offset;
calculează octet de start în bloc pentru operaţia I/O; /* ieşirea 2*/
calculează numărul de octeţi ce trebuie copiaţi pentru utilizator; /* ieşirea 3 */
verifică dacă se poate executa citirea în avans, marchează inodul; /* ieºirea 4 */
determină nivelul de indirectare;
while (nu s-a ajuns la nivelul de indirectare necesar)
{
calculează indexul în inod sau blocul indirect pe baza numărului de bloc logic din fişier;
determină numărul blocului disc din inod sau blocul de indirectare;
eliberează bufferul din citirea precedentă a discului, dacă este cazul (algoritm brelse);
if (nu sunt mai sunt nivele de indirectare)
return (numărul blocului);
citeşte blocul disc de indirectare (algoritm bread );
ajustează numărul de bloc logic din fişier în conformitate cu nivelul de indirectare;
}
}
Procesele accesează datele unui fişier specificând offsetul. Dacă utilizatorul vede fişierul ca pe un şir de octeţi, nucleul îl vede ca un şir de blocuri, realizând în acest sens şi o conversie. Fişierul începe de la blocul logic 0 şi continuă până la un număr de blocuri logice corespunzător dimensiunii fişierului. Nucleul accesează inodul şi converteşte blocul logic al fişierului în blocul disc corespunzător.prezintă algoritmul bmap care determină blocul disc corespunzător offsetului unui fişier.***Accesul la sistemul de fişiere este mai rapid cu cât nucleul accesează mai multe date de pe disc în decursul unei operaţii, altfel spus, cu cât dimensiunea blocurilor disc este mai mare. Folosirea blocurilor de dimensiuni mari (4 ko, 8 ko) aduce pe lângă avantajul creşterii vitezei, şi un dezavantaj: creşterea fragmentării blocurilor (mari porţiuni de spaţiu de pe disc nu pot fi utilizate). De exemplu, dacă dimensiunea blocului logic este de 8 ko, atunci un fişier de dimensiune 12 ko va folosi complet un bloc şi unul pe jumãtate. Cei 4 ko rămaşi se irosesc, deoarece nu pot fi folosiţi ca spaţiu de stocare.