Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,362
новичок: uvapke
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных - рабочее место кассира на Delphi + бд Access
Моделирование станции технического обслуживания на GPSS + Отчет
Обратное размещение элементов ЭВС на Delphi + Пояснительная записка

Счетчик ссылок vnode
Поле v_count структуры vnode содержит счетчик ссылок, при помощи которого определяется, как долго структура будет поддерживаться ядром.


Структура vnode размещается и ассоциируется с файлом при первом доступе к нему. Позже указатели (или ссылки) на vnode могут поддерживать и другие объекты, желающие получить доступ к этому файлу при помощи таких указателей. Это означает, что ядро будет поддерживать структуру vnode и не сможет произвести ассоциацию ее с другим файлом до тех пор, пока существуют такие ссылки.

Также может иметь смысл заглянуть на сайт tilos-mag.ru, ведь именно там можно узнать много нового на тему http://tilos-mag.ru/kanva/aida/. Тема канва аида размеры может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт tilos-mag.ru, и тема канва аида размеры начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема канва аида размеры очень подробно представлена на сайте tilos-mag.ru. Трудно найти более детальное освещение темы канва аида размеры чем это сделано на сайте tilos-mag.ru. Спасибо сайту tilos-mag.ru за такое доскональное преподнесение темы канва аида размеры.


Счетчик ссылок является одним из общих свойств структуры vnode. Манипуляции с ним производятся фрагментом кода, независящим .от конкретной файловой системы.

Для инкремента и декремента счетчика используются макросы
VN_H0LD



и
VN_RELE




Если значение счетчика станет равным нулю, это будет означать, что файл неактивен и его структура vnode может быть освобождена или передана другому файлу.
Важно понимать разницу между получением ссылки (или удержанием) и блокировкой. Блокировка объекта защищает его от доступа определенным образом, зависящим от того, является ли блокировка эксклюзивной или позволяющей чтение-запись. Удержание ссылки на объект дает гарантию постоянства этого объекта. Код, зависящий от файловой системы, блокирует структуру vnode на короткие промежутки времени, обычно равные длительности одной операции с нею. Ссылка, как правило, удерживается в течение большого временного интервала, занимаемого не несколькими операциями над vnode, а несколькими системными вызовами. Ниже приведены примеры операций, при которых происходит запрос ссылки на vnode.
♦ Запрос ссылки на vnode (то есть инкремент счетчика ссылок) происходит при открытии файла. Закрытие файла приводит к освобождению ссылки (или декременту счетчика).
♦ Процесс удерживает ссылку на текущий рабочий каталог. Если процесс изменяет свой рабочий каталог, то он запрашивает на новый каталог ссылку и освобождает ссылку на предыдущий.
♦ При монтировании новой файловой системы запрашивается ссылка на каталог, являющийся точкой монтирования. Освобождение такой ссылки происходит при размонтировании системы.
♦ Процедуры преобразования полных имен запрашивают ссылки на каждый промежуточный каталог, с которым они сталкиваются. Удержание ссылки происходит в течение поиска каталога, освобождение — после получения ссылки на следующий компонент полного имени.
Счетчики ссылок гарантируют постоянство vnode, а также файла, с которым эта структура была ассоциирована. Если один процесс удаляет файл, открытый другим процессом (или тем же процессом дважды), то такой файл не удалится с диска физически. Будет удален элемент каталога для такого файла, что не даст возможности другим процессам открывать его. Файл же продолжает при этом существовать до тех пор, пока счетчик его структуры vnode не станет равным нулю. Процесс, обладающий в текущий момент этим открытым файлом, будет иметь доступ к нему до того момента, пока сам не закроет файл. Такой подход эквивалентен маркировке файла для удаления. После освобождения последней ссылки независимый от файловой системы код вызовет операцию VOP_INACTIVE для завершения удаления файла. Например, для файлов ufs или s5fs при этом производится освобождение индексного дескриптора и блоков данных.
Описанная возможность очень полезна для создания временных файлов. Приложения, такие как компиляторы, используют временные файлы для хранения результатов промежуточных фаз периода выполнения. Такие файлы должны удаляться при ненормальном завершении работы приложения. Приложение следит за этим посредством открытия файла и последующего его немедленного отсоединения. Тогда счетчик ссылок становится равным нулю, и ядро удаляет элемент каталога. Это защищает от возможности видеть такие файлы и иметь доступ к ним другим пользователям. Пока файл открыт, счетчик, содержащийся в памяти, равен единице. Пока файл существует, приложение может производить чтение или запись в него. При закрытии файла, независимо от того, случилось ли это принудительно, либо произвольно при завершении работы, счетчик ссылок обнуляется. Тогда ядро завершает процесс удаления и освобождает блоки данных и индексный дескриптор. Многие версии UNIX поддерживают стандартную библиотечную функцию tmpfile,
создающую временный файл.

Поле
v_vfsp




каждой структуры vnode указывает на объект vfs, к которому он относится. Корневые объекты vnode каждой файловой системы имеют установленный флаг VR00T.

Если объект vnode является точкой монтирования, то его поле v_vfsmountedhere ссылается на объект vfs файловой системы, на которую он смонтирован. Помните о том, что корневая файловая система никуда не монтируется и не покрывается какой-либо структурой vnode.
В этом разделе вы прочтете описание объектов интерфейса vnode/vfs, зависящих от файловой системы, а также реализации доступа к этим объектам операциями уровня, независимого от файловой системы.
Опубликовал katy July 08 2015 09:18:45 · 0 Комментариев · 2674 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
FatScrollbar
ATComponents
Flash MP3 Player ...
XPmenu
С. Г. Горнаков - ...
Генетический алго...
Платформа програм...
Дарахвелидзе П., ...
База каталогов ( ...
Добавление басса ...
Иллюстрированный ...
С# для профессион...
C# в кратком изло...
Переработанный пл...
Microsoft Press -...
THttpScan v4.1
Конвертирование и...
SendSMS для PHP-F...
oTextrackBar
PDF

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97828
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5981
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Как раскрутить спе...
Программирование а...
Кроме затрат, связ...
Обработка строк в РНР
Маска подсети
Успешная проверка
Виртуальные машины...
Выбор заставки
Если конкатенация ...
Описание языков за...
Решение: интерфейс...
Использование бито...
Металлический штак...
Введение в создани...
Глава 4. Сбор данн...
Что писать в инфог...
Листинг 13.11. Фун...
Таблица 7.3. Прави...
Повышение информац...
Символ для результ...
Протокол VRRP и ма...
Функции, относящие...
Прерывание и его в...
будут соединяться ...
Передача сообщений...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?