Главная » Просмотр файлов » Ю. Вахалия - UNIX изнутри (2003)

Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 85

Файл №1114670 Ю. Вахалия - UNIX изнутри (2003) (Ю. Вахалия - UNIX изнутри (2003)) 85 страницаЮ. Вахалия - UNIX изнутри (2003) (1114670) страница 852019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 85)

Важно понимать разницу между получением ссылки (или удержанием) и блокировкой. Блокировка обьекта защищает его от доступа определенным образом, зависящим от того, является ли блокировка эксклюзивной или позволяющей чтение-запись. Удержание ссылки на объект дает гарантию постоянства этого объекта. Код, зависящий от файловой системы, блокирует структуру ыпоое на короткие промежутки времени, обычно равные длительности одной операции с нею. Ссылка, как правило, удерживается в течение большого временного интервала, занимаемого не несколькими операциями над цпотте, а несколькими системными вызовами. Ниже приведены примеры операций, при которых происходит запрос ссылки на чподе. 8.7.

Краткий обзор реализации 361 + Запрос ссылки на чподе (то есть инкремент счетчика ссылок) 'происходит при открытии файла. Закрытие файла приводит к освобождению ссылки (или декременту счетчика). + Процесс удерживает ссылку на текущий рабочий каталог. Если процесс изменяет свой рабочий каталог, то он запрашивает на новый каталог ссылку и освобождает ссылку на предыдущий. + При монтировании новой файловой системы запрашивается ссылка на каталог, являющийся точкой монтирования.

Освобождение такой ссылки происходит при размонтировании системы. + Процедуры преобразования полных имен запрашивают ссылки на каждый промежуточный каталог, с которым они сталкиваются. Удержание ссылки происходит в течение поиска каталога, освобождение — после получения ссылки на следующий компонент полного имени. Счетчики ссылок гарантируют постоянство чпоое, а также файла, с которым эта структура была ассоциирована. Если один процесс удаляет файл, открытый другим процессом (или тем же процессом дважды), то такой файл не удалится с диска физически.

Будет удален элемент каталога для такого файла, что не даст возможности другим процессам открывать его. Файл же продолжает при этом существовать до тех пор, пока счетчик его структуры члоде не станет равным нулю. Процесс, обладающий в текущий момент этим открытым файлом, будет иметь доступ к нему до того момента, пока сам не закроет файл. Такой подход эквивалентен маркировке файла для удаления.

После освобождения последней ссылки независимый от файловой системы код вызовет операцию НОР 1МАСПНс для завершения удаления файла. Например, для файлов ц1з или з5Ь при этом производится освобождение индексного дескриптора и блоков данных. Описанная возможность очень полезна для создания временных файлов. Приложения, такие как компиляторы, используют временные файлы для хранения результатов промежуточных фаз периода выполнения. Такие файлы должны удаляться при ненормальном завершении работы приложения.

Приложение следит за этим посредством открытия файла и последующего его немедленного отсоединения. Тогда счетчик ссылок становится равным нулю, и ядро удаляет элемент каталога. Это защищает от возможности видеть такие файлы и иметь доступ к ним другим пользователям. Пока файл открыт, счетчик, содержащийся в памяти, равен единице. Пока файл существует, приложение может производить чтение или запись в него. При закрытии файла, независимо от того, случилось ли это принудительно, либо произвольно при завершении работы, счетчик ссылок обнуляется. Тогда ядро завершает процесс удаления и освобождает блоки данных и индексный дескриптор. Многие версии 111ч'1Х поддерживают стандартную библиотечную функцию гтрй1е, создающую временный файл.

362 Глава 8, Базовые элементы и интерфейс файловой системы 8.7.5. Объект Фз 5тгцст ч15 ( эсгцст ч15 ч15 пехс;/* следующая структура чгэ в списке */ 5Сгцст чгвсрэ "ч15 ср: /* вектор операций */ 5тгцсс чпсйе *ч15 чпсйессчегещ /* структура чпайе. иснтирсванная на этой файловой систеие */ тпт чтэ гэтуре; /* индекс типа файловой систеиы */ сабйг т ч15 бата; /* закрытые данные */ йеч т ч15 свч; /* идентификатОр уетРойства */ На рис. 8.11 продемонстрированы взаимосвязи между объектами чпот1е и ч15 для ОС, содержащей две файловые системы. Вторая файловая система монтирована в каталоге /'авт корневой файловой системы. Глобальная переменная тоосч15 указывает на заголовок связанного списка всех объектов ч15.

Объект ч15 для корневой файловой системы находится в заголовке списка. Поле ч15 чпооесочетео указывает на структуру чподе, с которой было произведено связывание файловой системы. Монтируемая файловая систвма Корневая файловая система Обьвкт чпойв "вн Объект чпойв "/ивг" Упоев монтируемой файловой систвмы Рис. 8.11. Взаимосвязи мемду объектами чпобе и чтз Поле ч чувр каждой структуры чподе указывает на объект ч15, к которому он относится. Корневые объекты чпос1е каждой файловой системы имеют установленный флаг т/КИН.

Если объект чпос1е является точкой монтирования, то его поле ч ч15птоцптеопете ссылается на объект ч15 файловой системы, на которую он смонтирован. Помните о том, что корневая файловая система никуда не монтируется и не покрывается какой-либо структурой чподе. Объект ч15 (структура чЬ) соответствует файловой системе. Ядро размещает по одному объекту чЬ для каждой активной файловой системы. Структура данных ч15 имеет следующий вид: 8.8.

Обьекты, зависящие от файловой системы ЗбЗ 8.8. Объекты, зависящие от файловой системы В этом разделе вы прочтете описание объектов интерфейса чподе/чЬ, зависящих от файловой системы, а также реализации доступа к этим объектам операциями уровня, независимого от файловой системы. 8.8.1. Закрытые данные каждого файла Объект чпоое является абстрактным. Он не может существовать в изоляции, новый экземпляр чпоое всегда в контексте конкретного файла. Файловая система, к которой относится конкретный файл, предлагает собственную реализацию интерфейса абстрактного объекта чпоое. Поля данных ч ор и ч вата связывают его с зависимой от файловой системы частью кода. Поле ч вага указывает на закрытую структуру данных, хранящую информацию о файле, завися|цую от файловой системы.

Структуры данных используются по-разному в зависимости от конкретной файловой системы, к которой относится обрабатываемый файл. Например, файлы з5Ь или иЬ используют структуры индексных дескрипторов', в ХРЯ применяется гпооез и т. д. Обычное применение Взаимосвязь, обусловленная интерфейсом Рис. 8.12.

Интерфейс члене, зависящий от файловой системы Поле ч дата является непрозрачным указателем. Это означает, что участок кода, не зависящий от файловой системы, не может иметь прямого доступа к объекту, зависимому от нее. Однако зависящий от системы код вправе иметь доступ к базовому объекту чпоое и использует эту возможность. В любом случае необходим способ нахождения чаете через закрытый объект данных. Так как оба объекта всегда размещаются вместе, более эффективно скомбинировать их в одном. В реализации ссылок на уровне чпоое объект чподе ' Структуры индексных дескрипторов для этих двух файловых систем значительно отличаются друг от друга. 364 Глава 8.

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

Эти взаимосвязи показаны на рис. 8.12. 8.8.2. Вектор чпобеорз Интерфейс чпо((е определяет набор операций над типовым файлом. Независимый от файловой системы код производит манипуляции с файлом, используя только эти операции. Он не может получить прямой доступ к объектам, зависящим от системы. Структура чпо()еор5, используемая для определения набора операций, описана ниже. В каждой файловой системе приведенный интерфейс реализован по-своему. Файловая система предоставляет набор функций для операций, указан- 5СгосС 5ПС !пС !ПС !пС !пС !пС ! пС !пС !пС !пС !пС !пС )пС зпС !пС !пС !пС !ПС !пС !пС !пС !пС !пС !пС !пС !пС чпозеор5 ( (*чар орел)(); (*тор с1озе)(): (*чор геас) О: (арчер нг!Се)(); (*тор !осС1)(); (*чар деСаССг)(); (*чор зеСаССг)(): (*чор ассе55)(); (*чор 1ооКор)(): (*чор сгеаСе)(): (*тор гевоче)(): (*чар 1!ПС) О; (*тор гепаае) О; (*чор аСО1г)().

(*чор гв((!г)(); (*чор геа((г)!г)(): (*чор зуа1!п5) О: (*чор геао1!ПС)(); (*чор !пасС!че)(); (*чор гн1осС)(); (*чор гиоп1ос5) О ', (*чор геа1чр)(); (*чор 9еСРа9е)(); (*чар роСраде)(); (*тор вар)(), (*иор ро11)(): 8.8. Объекты, зависящие от файловой системы 366 ных в нем. Например, в файловой системе пЬ операция УОР РсАО реализована как чтение файла с локального диска, в то время как в ХГБ эта команда производит запрос к удаленному файл-серверу для получения данных. Таким образом, каждая файловая система поддерживает собственный экземпляр структуры чподеор5. Например, в системе ОЬ определен объект 55ГОст чпосеор5 И5 чпопеор5 = ( О15 Преп; ОГ5 с)05е; Поле ч ор структуры чподе указывает на структуру чподеорз для типа файловой системы, ассоциированной с файлом.

Как показано на рис. 8.13, все файлы одной файловой системы разделяют между собой единственный экземпляр структуры и обладают доступом к одному и тому же набору функций. Рис. 8.13. Объекты чпосе, зависящие от файловой системы 8.8.3. Зависящая от файловой системы часть уровня Фв Как и чподе, объект чЬ имеет указатели на свои закрытые данные и на вектор операций. Поле чЬ ()а1а указывает на непрозрачную структуру данных файловой системы. В отличие от чподе сам объект чЬ и его закрытая структура данных обычно размещаются отдельно. Поле чЬ ор указывает на структуру ЧЬор5, описываемую следующим образом: 55ГОст чт5ор5 ( 1пг (*чт5 $поопт)(); )пт (~чт5 Опеоопт)(): 1пй (*чт5 Грот)(); 1'пт (*И5 55аСчт5)(): )пт (*чт5 5упс)(): 366 Глава 8.

Базовые элементы и интерфейс файловой системы Каждый тип файловой системы имеет собственную реализацию перечисленных функций. Таким образом, используется один экземпляр структуры ч1яоря для каждого типа файловой системы: п1я ч1яоря для и1я, пЬ чйоря для ХРВ и т. д. На рис. 8.14 показаны структуры данных уровня чЬ для системы, содержащей две файловые системы п)я и одну ХРВ. Структура чтяоря Рис. 8.1 4. Пример структур данных уровня Фв 8.9. Монтирование файловой системы Разработчики интерфейса ч)я изменили системный вызов Гпопп1 для поддержки существования нескольких файловых систем одновременно.

Характеристики

Тип файла
PDF-файл
Размер
8,36 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее