шпаргалка

a.Crearea fisier.

[ Назад ]
Dacă open asigură accesul la un fişier existent, apelul sistem creat permite crearea unui nou fişier în sistem. Sintaxa apelului sistem creat este:fd = creat (nume?_cale, moduri);
unde variabilele nume_?cale, moduri şi fd au semnificaŢia precizată la descrierea apelului open. Dacă nu există nici un fişier cu numele specificat, atunci nucleul crează un nou fişier cu numele şi permisiunile de acces (modurile) precizate. Dacă fişierul deja există, şi permisiunile de acces sunt corespunzătoare, nucleul trunchiază fişierul (eliberează toate blocurile sale şi setează dimensiunea fişierului la 0). ïn acest caz nucleul nu modifică atributele de proprietate, iar permisiunile de acces furnizate ca parametru sunt ignorate, păstrându-se cele ale vechiului fişier.
În figura 5.12 este prezentat algoritmul pentru crearea unui fişier. Folosind algoritmul namei, nucleul analizează numele fişierului, salvează offsetul primului slot liber din director în u area. Dacă nucleul nu găseşte componenta corespunzătoare din cale în director, o va scrie în slotul determinat anterior. De asemenea, memorează în u area şi Ţine blocat inodul directorului în care se caută. Pentru continuarea execuŢiei algoritmului, se verifică dacă procesul apelant are dreptul de a scrie în director (acela unde va fi creat noul fişier).
În caz că nu exista anterior un fişier cu acelaşi nume, nucleul asignează un inod pentru noul fişier (folosind algoritmul ialloc). Apoi scrie numele fişierului şi numărul inodului alocat în directorul tată la offsetul salvat în u area. După aceea eliberează inodul directorului tată. Nucleul scrie noul inod alocat pe disc (algoritm bwrite), iar apoi directorul în noua configuraŢie. Scrierea pe disc are loc în această ordine deoarece în cazul unei prăbuşiri a sistemului între cele două scrieri vom avea un inod care nu este referit de nici o nume de fişier, dar sistemul va funcŢiona normal. Dacă ordinea de sriere e inversată şi sistemul se prăbuşeşte între cele două scrieri, sistemul de fişiere ar conŢine o cale care referă un inod incorect.

КАТЕГОРИИ:

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