Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 90
Текст из файла (страница 90)
Что произойдет в результате выполнения команды вузсг1'рг > геаи11.1ае Как при этом производится разделение дескрипторов файлов? Какие преимущества дает существование отдельного системного вызо- ва 1зеек вместо передачи стартового смещения каждой операции сеад или а/п1е? Какие недостатки у этой схемы7 Почему функция сеа8 может вернуть меньшее количество байтов, чем было указано при ее вызове? Какими преимуществами обладает произвольный ввод-вывод7 Для каких приложений этот метод доступа является наиболее предпочти- тельным7 Чем отличаются друг от друга рекомендательная и принудительная блокировка7 Для каких типов приложений предпочтительнее использовать объекты блокировки байтовых областей' ? Текущим рабочим каталогом пользователя является /взг/юп1/каиющ Если администратор произведет монтирование новой системы в каталоге /нас/щп1, как это повлияет на пользователя? Будет ли пользователь ЗВ2 14.
15. 8.14. Дополнительная литература 16. 17. 18. 19. 20. 21. Глава 8. Базовые элементы и интерфейс файловой системы иметь возможность видеть файлы, расположенные в каталоге Кацвш? Каков будет результат выполнения команды рад? Какое нестандартное поведение можно ожидать от других вызываемых команд? Перечислите недостатки применения символических ссылок по срав- нению с жесткими ссылками. Почему жесткие ссылки не имеют возможности объединять разные файловые системы? Какие проблемы могут возникать при некорректном применении жест- ких ссылок на каталоги? Какие действия производит ядро системы, когда значение счетчика ссылок на тпог!е становится равным нулю? Расскажите об основных преимуществах и недостатках каша подста- новки имен файлов, основанного на счетчиках и на рекомендациях.
В работах [2! и [6[ описываются две различные реализации, получаю- щие и освобождающие объекты чпог!е динамически. Могут ли такие системы использовать кзш имен, основанный на рекомендациях? Приведите пример бесконечного цикла, возникающего при неверно за- данной символической ссылке.
Каким образом происходит его обра- ботка функцией !оойоррп()? Почему операция ЧОР 100КОР за один проход просматривает только одно имя? Система 4.4В5Р позволяет процессу блокировать объект чпог!е на вре- мя нескольких операций над ним, происходящих внутри одного сис- темного вызова. Что произойдет в том случае, если процесс будет при- нудительно завершен по сигналу во время удержания блокировки? Каким образом ядро обрабатывает такие ситуации? ВасЬ, М. [., «ТЬе Рез!8п о1 гйе 1ЛЯ1Х Орегаг!п8 5узгеш», Ргепг!се-На!1, Епй!еч оог! СИЬ, Щ, 1986. ВагЫеу, К. Е., апг! 1.ее, Т.
Р., «А Рупаппс Ейе 5узсегп 1побе А!!осаг!оп ап4 Кеа!!осаг!оп Ро!!су», Ргосеейпйз о1 гйе Ю!пгег 1990 П5ЕЫ1Х ТесЬпьса! Соп1егепсе, [ап. 1990, рр. 1 — 9. Рерагггпепг о1 Ре1епзе, «Тгпзгег! Сошрпгег 5узгегп Еча!паг!оп Спгепа», РОР 5200.28-5ТР, Рес. 1985. Е!!!з, М. А., апд 5ггопзггпр, В., «ТЬе Аппогагес! С++ йе1егепсе Манна!», Аг[йзоп-'тттез!еу, Кеаг!!п8, МА, 1990. Глава 9 Реализации файловых систем 9.1. Введение В предыдущей главе книги был описан интерфейс тпог!е/тЬ, предоставляющий базовую структуру, поддерживающую различные типы файловых систем и определяющую способы взаимодействия между файловой системой и остальной частью ядра. Современные варианты 1Ж1Х используют многие типы файловых систем, которые можно разделить на две большие категории.
В локальных файловых системах осуществляется обработка и хранение на устройствах, подключенных к машине напрямую. Распределенные файловые системы позволяют пользователям иметь доступ к файлам, находящимся на удаленных компьютерах. В атой главе будут рассмотрены различные реалн. зации локальных систем. О распределенных системах вы узнаете из 10 главы. Глава 11 расскажет о некоторых новых файловых системах, включающих такие дополнительные возможности, как журналы, обработку томов и высокий уровень доступности.
Большинство современных вариантов 1ЛЧ1Х работает с двумя локальными системами, применяемыми для общих целей. Это — 5узгеш Ч 6!е зузсев (з5Ь) и Вег!се!еу Разг Р!!е Бузгеш (РР5). Первая из них, з5Ь !231, является оригинальной файловой системой, поддерживаемой 11М1Х изначально. Ее можно найти во всех вариантах 5узгеш Ъ', а также в некоторых современных коммерческих вариантах 1ЛЧ1Х. Файловая система РР5 была разработана в лабораториях Беркли и впервые представлена в 4.2ВЯЭ.
Система имела большую производительность, надежность и функциональность по сравнению с з56. Система РР5 получила высокое признание среди производителей ОС, кульминацией которого стало ее включение в 5ЧК4 (5Ъ'К4 поддерживает три типа файловых систем: з5Ь, РР5 и УхР5, журнальную файловую систему Чег!газ). Во времена появления РР5 базовая структура 1)Х1Х могла использовать одновременно только один тип файловой системы. Производители ОС встали перед выбором, какую из них выбрать. Интерфейс эпос!е/чЬ, представ- 9. и Введение 385 ленный компанией 5цп М1сгозуэгешз 19~, позволил сочетать несколько файловых систем па одной машине.
Для интеграции существующих файловых систем с интерфейсом чпос1е/у1з необходимо было произвести в них пекоторыс изменения. Обновленная версия ЕЕ5 известна сейчас под именем файловой системы ИИХ (и1з, 01л11Х Ие эуэсеш)'. Подробное описанис э51э можно найти в 12~, рассказ о ЕГВ представлен в книге 112]. В этой главе вы увидите краткий анализ и сравнение этих файловых систем. Описание э51з и ЕЕВ включено в книгу для полноты материала и изложения читателю базовых концепций, упрощающих понимание архитектуры более сложных файловых систем, обсуждаемых в следующих главах. В П141Х понятие файл включает в себя различные абстракции, в том числе сетевые соединения через сокеты илн 5ТКЕАМЗ, механизмы взаимодействия процессов, такие как каналы или Е1ЕО, а также блочные и символьные устройства. На этом была построена архитектура упос1е/у1з, в которой файлы н файловые системы являются базовыми элементами, предоставляющими модульный интерфейс взаимодействия с остальной частью ялра.
Такой полход привел к созданию специализированных файловых систем. Во многие из ннх не внесено практически никаких изменений в работу с файлами, однако интерфейс подвергнут полной переработке с целью добавления специализированных функций. С несколькими различными реализациями таких систем вы познакомитесь в этой главе. Здесь вы также прочтете о будзерпом кэше 11Ы1Х. В ранних реализациях системы, таких как 5'лги или 4.ЗВВР, кэш применялся при всех операциях ввода-вывода. В современных вариантах, таких как 5'лтрх4, функции работы с памятью и обработки ввода-вывода являются интегрированными.
Доступ к файлам производится путем отображения их в адресное пространство ядра. В этой главе будут представлены некоторые детали архитектуры, однако более подробно о ней можно будет прочесть в главе 14, посвященной работе с виртуальной памятью в 5'л/Гх4. Традиционный механизм буферного каша использует блоки жетадаипых. Термин «метаданные» применяется для обозначения атрибутов и служебной информации файла или файловой системы. До того как буферный кэш стал частью конкретных файловых систем, он являлся глобальным ресурсом, используемым всеми файловыми системами. Глава начнется с рассказа з51э и описания принятой в ней организации хранения данных па диске и в ядре. Файловая система ЕЕВ имеет некоторые отличия от з56, однако базовые операции в обеих системах реализованы сходным образом. Обсуждение ЕЕ5 будет посвящено ее отличиям от ориги- ' Изиачалыю термии иЬ имел разяичиые толковаиия в зависимости от исиозаьзуемой системы.
В реализациях, осиоваииых иа Яузсеа 'лл, ои уиотребяяяся для обозиачеиия первоначальной файловой систели ~ Сллх, известной сейчас иод именем зб/з. Системы иа основе В50 иримеияыт терлшиы иЬ и з5Ь аиалогичио обозиачеииям, ирииятым в этой книге. Неудобства, связаииые с иутаииией термииоа, были иреодолеиы с иоявлеиием 5МК4, в которой был такой же аариаит их точковаиия. 386 Глава 9. Реализации файловых систем нальной системы УХ1Х. Если это не оговорено специально, все общие алгоритмы, приводимые для з5Ь в разделе 9.3, также относятся и к системе РР5.
9.2. Файловая система ЗувСеш Ч (8518) Файловая система располагается на одном логическом диске или в разделе (см. раздел 8.3.1). Каждый логический диск может содержать в себе лишь одну файловую систему. Всякая файловая система является независимой и содержит собственный корневой каталог, подкаталоги, файлы, а также ассоциированные с ними данные и метаданные. Файловое дерево, видимое пользователем, формируется из одной или нескольких файловых систем. На рис. 9.1 представлено размещение раздела з5Ь на диске. Раздел может быть логически представлен как одномерный массив блоков. Размер дискового блока начинается от 512 байт и увеличивается по степени с основанием 2 (различные реализации системы поддерживают блоки размерами 512, 1024 или 2048 байт). Это число представляет собой единицу дробления дискового пространства при размещении файла и объема данных для операций ввода-вывода.
Физический номер блока (или просто номер блока) является индексом в массиве блоков и используется для уникальной идентификации блока на разделе диска. Этот номер преобразуется дисковым драйвером в номера цилиндра, дорожки и секторы на диске. Преобразование зависит от физических характеристик конкретного диска (общего количества цилиндров и дорожек, количества секторов на одной дорожке и т. д.), а также от местонахождения раздела на диске.
Область загрузки Рис. 9.1. Файловая система з5Ь. Размещение на диске В начале раздела находится загрузочная область, содержащая код, необходимый для начальной загрузки (и инициализации) операционной системы. В принципе, для хранения подобной информации достаточно одного раздела диска, однако каждый имеющийся на диске дополнительный раздел должен по возможности иметь такую область (пустую).