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

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

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

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

Современные варианты 1)Ы1Х, такие как 4.4ВБР и 08Е/1, поддерживают альтернативные модели интерфейса чпог)е. Они будут описаны в следующих разделах. Однако в интерфейсе эпос)е/тЬ имеются и другие, более фундаментальные проблемы. Хотя его дизайн и позволяет создавать модульные файловые системы, он все-таки недостаточно гибок для этой цели.

Невозможно написать код любой, пусть даже самой простейшей файловой системы без использования исходных кодов самой ОС. Существует множество запутанных взаимосвязей между подсистемами работы с файлами и обработкой памяти, часть из которых будет рассмотрена позже, в разделе 14.8. Более того, интерфейс не остается неизменным в различных вариантах 1)Ы1Х, и даже между различными реализациями одной и той же ОС.

В результате, несмотря на существование небольшого количества новых полнофункциональных файловых систем, основанных на описываемом интерфейсе (таких как Ер1зос)е или ВЯР-ЕЕБ, описание которых вы найдете в главе 11), создание файловой системы остается весьма сложной задачей. Более подробно об этом вы можете прочесть в разделе 11.11, где показано описание нового интерфейса сглековых элоИе (згас)гаЪ|е кпог1е), обладающего лучшими возможностями для построения файловых систем по сравнению с гпоое/кЬ. 8.11.2.

Модель 4.4В80 Разработчики реализации интерфейса эпос)е/тЬ для 4АВБР 171 попытались преодолеть проблемы варианта Бип08/БЧК4 путем улучшения функционирования операции подстановки при помощи встраивания в нее возможностей интерфейса пате) ОС 4.3ВБР (и ОГЯ). Новая версия позволила производить 4локировку объектов члоу сразу па время проведения нескольких операций и передавать информацию о состоянии между зависящими друг от друга действиями многоступенчатых системных вызовов. Просмотр путей в системе 4АВБР производится при помощи процедуры паве1О, которая, в свою очередь, вызывает процедуру поиска чпоое текущего каталога. Для преобразования ей передается полное имя пути.

Зависимая от файловой системы процедура подстановки может преобразовывать сразу один или более компонентов в одиночный вызов, но не обладает возможностью пересечения точки монтирования. Некоторые реализации процедуры могут преобразовать одновременно лишь один компонент (например, в файловой системе НЕБ), в то время как реализации з5Ь или пЬ способны преобразо- 378 Глава 8, Базовые элементы и интерфейс файловой системы вывать имя пути целиком (если в имени не встречается точка монтирования). После достижения такой точки функция пагле1() производит необходимые действия и передает оставшуюся часть имени пути следующей операции преобразования. Аргументы функции подстановки собраны в структуру пагпеЫаха. Структура содержит несколько дополнительных полей для передачи информации о состоянии и для внешних данных, возвращаемых функцией. Она может пе.

редаваться другим операциям, таким как сгеахе или зугпйп1, позволяя взаимосвязанным задачам использовать данные без занесения переменных в стек. Одно из полей структуры пащеЫаха содержит обоснование преобразования полных имен. Если производится создание или удаление файла, то последняя по счету операция заблокирует объект тгподе родительского каталога. Функция также вернет дополнительную информацию через структуру пагпе1оаха, например, о расположении файла в текущем каталоге (если файл был обнаружен), о первой свободной ячейке каталога (для дальнейшего создания файла). Затем структура паглейаха передается операциям сгеахе или де(ехе. Так как родительский каталог остается заблокированным функцией преобразования, ее содержимое не может быть изменено, следовательно, функциям создания или удаления файла не придется повторно выполнять последнюю итерацию поиска.

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

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

В частности, в системах разделения времени это может привести к возникновению больших задер- 8.11. Анализ 379 жек при доступе к наиболее часто используемым каталогам, таким как / и /е1с. Для многопроцессорных систем описанная методика последовательной работы операций является неприемлемой. Еще одним изменением, внесенным разработчиками новой версии интерфейса чпойе/ч1з, является поддержка кэша каталогов и смещения последнего, удачного завершившегося поиска имен каждого процесса. Это увеличивает производительность операций, производящих действия над всеми файлами в каталоге.

Операция пап1е1() использует кэш во время поиска последнего компонента имени. Если родительский каталог совпадает с указанным для предыдущего вызова паше1О, поиск начнется от смещения, указанного в каше (вместо начала каталога). Интерфейс файловой системы 4АВБО предлагает и другие интересные возможности, например стековую органиэацию олог(е (зсаскаЫе чподе) и обье3иненное монтирование (цпюп шоцпс), которые будут описаны позже, в разделах 11.11 — 11.12, 8.11.3. Средства системы 08Р/1 В системе ОБЕ/1 были решены проблемы производительности, связанные с избыточными операциями над каталогами, при этом возможность сохранения информации о состоянии в реализации интерфейса чпоое осталась.

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

Метаданные файла защищаются посредством взаимоисключающего объекта блокировки (пшгех), поддерживающего многопроцессорную обработку. Такой объект реализуется в виде циклической блокировки (зрш 1оск) и удерживается в течение коротких промежутков времени. В частности, блокировка происходит только на этапе выполнения участка кода, зависящего от файловой системы. Объект никогда не удерживается при проведении нескольких операций, что означает возможность обмена метаданными между этими операциями. Изменения отслеживаются посредством ассоциации с каждым объектом синхронизации временных меток. Такие метки представляют собой простые счетчики, инкрементируемые при каждом изменении объекта.

Функция подстановки кэша 4ВБ(), основанная на рекомендациях, использует ту же схему (см. раздел 8.10.2). 380 Глава 8. Базовые элементы и интерфейс файловой системы Приведем небольшой пример. Рассмотрим операцию создания файла При поиске последнего компонента имени операция поиска блокирует родительский каталог и проверяет, не находится ли в нем заданный файл. Если файл с таким именем не будет обнаружен, функция определяет смещение каталога, начиная с которого можно поместить новый элемент. Затем происходит отмена блокировки родительского каталога и возврат полученной информации вызвавшему процессу (вместе с временной меткой). После этого ядро вызывает о1тел1етО для создания нового элемента родительского каталога и передает ему смещение и сохраненную временную метку.

Функция 81тел1ет() сравнит полученное значение метки с текушим значением. Если значения совпадут, это будет означать, что каталог не был изменен в течение преобразования, и новое имя может быть вставлено в выбранную точку сме. щения без повторной проверки каталога. Если временные метки окажутся разными, то каталог был изменен, и необходимо еше раз провести операцию подстановки. Описанные улучшения были произведены в первую очередь из-за необхо. димости поддержки многопроцессорных платформ, однако преимушества интерфейса проявляются и в случае применения в однопроцессорной системе.

Изменения могут стать причиной возникновения состязательности, но система зашишена от них при помоши методов, описанных в 191. Модель ОБЕ/! объединяет в себе преимущества архитектур с сохранением и несохрзнением информации и поддерживает различные файловые системы, такие как АР5 (см.

раздел 10.15) и Ер!зобе (см. раздел 11.8). 8.12. Заключение Интерфейс чпот!е/ч(з является мощным механизмом разработки модулей и добавления новых файловых систем в ядро ()!ь!! Х. Он позволяет ядру производить действия с абстрактным представлением файлов, называемым члоу, и выполнять зависимый от файловой системы код на отдельном уровне, доступном посредством четко очерченного интерфейса. Разработчики могут строить собственные файловые системы, реализующие этот интерфейс. Процесс создания новой системы схож с написанием драйвера устройства.

Важно знать, что между реализациями интерфейса чпот!е/ч(з сушествуют большие различия. Хотя многие реализации, например, представленые в системах БЪ'К4, ВВР и ОЯР/1, основаны на одних и тех же обших принципах, они значительно разнятся между собой в специфике интерфейсов (то есть наборами операций и их аргументами, а также форматами структур члене и ч!ь) и правилах, касаюшихся состояний, синхронизации и т, д, Зто означает, что разработчики файловых систем должны производить большие изменения в кодах для поддержки совместимости своих систем с различными реализациями интерфейса ч(з. ВЛЗ. Упражне гя 381 8.13. Упражнения даГе сат /еСс/оотд 8. 9.

10. 11. 12. ' Записей файла. — Примеч. ред. 1. 2. 3. 5. 8. 7, Какие существуют преимущества в представлении файлов как потока байтов? В каких ситуациях такая модель является неподходящей? Представьте, что программа производит повторяющиеся вызовы геаеей для получения списка содержимого каталога. Что произойдет в том случае, если пользователь создаст или удалит файл в этом каталоге ме- жду двумя вызовами? Почему пользователи не имеют права производить запись в каталог напрямую7 Почему атрибуты файла не сохраняются в самом элементе каталога? Почему каждый процесс обладает собственной маской создания, задан- ной по умолчанию? Где хранятся такие маски7 Почему ядро системы не устанавливает режим в вызовах ореп или сгеа1 непосредственно7 В силу чего пользователь не может производить запись в файл, откры- тый в режиме «только для чтенияа, даже если он обладает привилегия- ми, необходимыми для такого действия7 Ниже приведен командный сценарий под названием юузспр1.

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

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

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

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