Alg ifree

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


Algoritmul pentru eliberarea inodurilor disc este mult mai simplu. Dupã incrementarea numãrului total de inoduri disponibile în sistemul de fiºiere, nucleul verificã dacã superblocul este blocat. Dacã este, pentru a evita condiþiile de concurenþã se încheie imediat. Numãrul inodului nu este depus în superbloc, însã poate fi gãsit pe disc ºi este disponibil pentru reasignare.
algoritm ifree /* eliberare inod */
intrare: numãr inod din sistemul de fiºiere
ieºire: niciuna
{
incrementeazã contorul inodurilor libere;
if (superblocul este blocat)
return;
if (lista de inoduri este plinã)
{
if (numãrul inodului este mai mic decât al inodului memorat)
inodul memorat pentru cãutare = numãr inod de intrare;
}
else
pune numãrul inodului în lista inodurilor libere;
return;
}
Dacă lista nu este blocată, nucleul verifică dacă mai este spaţiu în lista de inoduri, şi dacă este, plasează numărul de inod în listă după care algoritmul se încheie. Dacă lista este plină, se compară numărul inodului eliberat cu cel al inodului memorat. Dacă este mai mic, devine noul inod memorat. Vechiul inod memorat nu este pierdut, deoarece nucleul îl poate gåsi dacå cautå în lista de inoduri de pe disc. Ideal ar fi să nu existe inoduri libere ale căror numere sunt mai mici decât numărul inodului memorat, dar în realitate sunt posibile şi astfel de situaţii.