шпаргалка

b.Alg namei

[ Назад ]
algoritm namei /* converteşte nume cale într-un inod */
intrare: nume cale
ieşire: inod blocat
{
if (numele căii începe din rădăcină)
inod de lucru = inodul rădăcină (algoritm iget );
else
inod de lucru = inodul directorului curent (algoritm iget );
while (mai sunt componente neparcurse)
{
citeşte următoarea componentă din nume cale;
verifică dacă inodul de lucru este al unui director, permisiunile de acces în regulă;
if (inodul în lucru este al rădăcinii şi componenta este "..")
continue;
citeşte directorul (inodul de lucru) prin folosirea repetată a algoritmilor
bmap, bread şi brelse;
if (componenta se potriveşte cu numele unei intrări în director (inodul de lucru))
{
citeşte numărul inodului din intrarea corespunzătoare componentei identificate;
eliberează inodul de lucru (algoritm iput );
inodul de lucru = inodul componentei din intrare (algoritm iget);
}
else /* componenta nu este în director */
return (nici un inod);
}
return (inodul de lucru);
}
|| Nucleul execută o căutare secvenţială în fişierului director asociat inodului de lucru, încercând să determine o potrivire între componenta curentă a numelui căii şi numele unei intrări în director. Pe baza offsetului (se începe cu offsetul 0) în fişierul director se determină blocul disc corespunzător (folosind algoritmul bmap) pe care-l citeşte (folosind algoritmul bread'). Tratând conţinutul blocului ca o secvenţă de intrări în director, nucleul caută o intrare care se potriveăte cu componenta curentă din numele căii. Dacă găseşte o potrivire, el înregistrează numărul inodului din intrarea respectivă, elibereazã blocul (algoritm brelse) şi vechiul inod de lucru (algoritm iput), şi alocă un inod pentru fişierul din director pentru care s-a realizat potrivirea (algoritm iget').

КАТЕГОРИИ:

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