c.Alg iput

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


algoritm iput /* eliberează un inod */
intrări: pointer la un inod din memorie
ieşiri: niciuna
{
blochează inodul dacă nu este deja blocat;
decrementează contorul de referinţă;
if (contorul de referinţă == 0)
{
if (contorul de legături == 0)
{
eliberează blocurile disc ale fişierului (algoritm free);
setează tipul fişier la 0;
eliberează inod(algoritm ifree);
}
if (fişierul a fost accesat sau inodul modificat sau fişierul modificat)
actualizează conţinutul inodului disc;
pune inodul în FLI;
}
deblochează inodul;
}
Când nucleul eliberează un inod , el decrementează contorul referinţă. Dacă contorul ajunge la 0, nucleul scrie inodul pe disc dacã copia din memorie diferă de cea de pe disc. Ele diferă în cazul în care au fost modificate datele din fişier, timpul de acces la fişier, proprietarul sau permisiunile de acces. Nucleul plasează inodul în FLI pentru a putea fi realocat unui alt fişier. În cazul în care numărul de legături ale fişierului devine 0 (fişierul este şters), nucleul va elibera toate blocurile disc asociate fişierului