шпаргалка

b.Apel sis.open

[ Назад ]
Nucleul cautг fi?ierul оn cadrul sistemului de fi?iere folosind algoritmul namei (vezi figura 5.2). Dupг ce gгse?te inodul din memoria internг, se verificг permisiunile de acces la fi?ier, iar dacг acestea sunt corespunzгtoare, se alocг o intrare оn GFT pentru fi?ierul ce este deschis. O intrare оn GFT conЮine: un pointer cгtre inodul fi?ierului deschis, tipul deschiderii fi?ierului (citire ?i/sau scriere), deplasamentul (offsetul) de la care nucleul urmeazг sг execute urmгtoarea citire sau scriere. Nucleul iniЮializeazг aceastг valoare cu 0 pe durata aplelului open, ceea ce оnseamnг cг prima citire sau scriere se va face, implicit, de la оnceputul fi?ierului. De asemenea, un proces poate deschide un fi?ier pentru adгugare, caz оn care nucleul va iniЮializa offsetul cu valoarea lungimii fi?ierului. Nucleul alocг o intrare оn UFDT, iar valoarea indexului din tabelг corespunzгtor acestei intrгri este descriptorul de fi?ier returnat utilizatorului. Intrarea din UFDT conЮine un pointer cгtre intrarea corespunzгtoare din GFT.Sг presupunem cг un proces executг urmгtorul cod: deschide fi?ierul "/etc/passwd" de douг ori, odatг doar pentru citire, iar a doua oarг pentru citire-scriere, ?i fi?ierul "local" odatг, pentru scriere.
^fd1 = open("/etc/passwd", O_RDONLY);
^fd2 = open("local", O_WRONLY);
^fd3 = open("/etc/passwd", O_RDWR);
Fiecare open returnează procesului un descriptor de fişier, iar intrarea corespunzătoare din UFDT pointează către o intrare proprie din GFT, chiar dacă un fişier ("/etc/passwd") este deschis de două ori. Intrările din GFT corespunzătoare aceluiaşi fişier pointează către o singură intrare din IT.
Să presupunem că un al doilea proces execută următorul cod:
fd1=open("/etc/passwd",O_RDONLY);
fd2=open("private",O_RDONLY);

КАТЕГОРИИ:

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