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

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

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

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

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

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

Поскольку файловая система может получить поступ к чпопе не только при просмотре каталогов, то некоторые из ее действий способны привести к тому, что данные элемента каша станут неверными. Например, пользователь может отсоединить файл, а ядро, в свою очередь, передать его чпойе новому файлу. Если затем произвести поиск старого файла, результатом станет запрос неверного элемента каша и получение указателя на чпойе совершенно другого объекта.

Таким образом, становится очевидным, что кэш имен должен обладать некоей методикой проверки правильности вхождений. Кэш подстановки имен реализован как в системе 4.ЗВЯКА, так и в ОС ЪКР4, однако в каждой из них применяются различные средства решения описанной проблемы, В системе 4.ЗВЯКА не используется интерфейс чподе/ч1ж Кэш просмотра каталогов хранится в индексном дескрипторе файла, находящемся в памяти.

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

Функция обработки каша сверяет полученный номер с текущим сгенерированным номером индексного дескриптора. Если оии ие совпадают, это означает, что данный элемент каша является неверным. В системе ЯЪ'24 каждый элемент каша удерживает ссылку иа члене кэшируемого файла и освобождает ее, если запись исключается или переиазиачается. Хотя описанный метод и дает гарантию правильности соответствия записей каша, ои обладает некоторыми недостатками. К примеру, ядро должно поддерживать некоторые неактивные объекты чпобе только потому, что существуют элементы каша, обладающие ссылками иа иих. Применяемый метод также защищает другие компоиеиты ядра от получения эксклюзивного права иа использование файла или устройства.

8.10.3. Операция ЧОР ~.ООКОР Операция ЧОР ~ООКОР представляет собой интерфейс доступа к специфичной для файловой системы функции поиска компонента имени файла в каталоге. Функция вызывается при помощи макроса, подобного приведенному ниже. еггог = ЧОР ~ООКОР (~р. соарпаае. 8тчр, ,. Л; где чр — указатель иа родительский каталог чаевое, сошрпаше — компонент имени. В случае удачного завершения переменная ~чр должна указывать иа объект чреде компонента сошрпаще, а его счетчик ссылок окажется увеличеииым иа единицу. Как и другие операции интерфейса чпобе/чгз, применение ЧОР ~ООКОР приведет к вызову функции 1оо1ир, специфичиой для используемой файловой системы.

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

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

372 Глава 8. Базовые элементы и интерфейс файловой системы Часто возникает ситуация, когда процедура поиска находит соответствие компоненту, ио его объект чпойе ие находится в памяти. В этом случае оиа должна запросить и проииициализировать чпог)е, точно так же, как и закрытую, зависящую от файловой системы структуру данных. Обычно чпобе является частью такой структуры, следовательно, происходит размещение обоих элементов в едином блоке. Оба объекта инициализируются путем чтения атрибутов файла. Функция устанавливает поле ч ор структуры чпобе в значение, указывающее иа вектор чподеорз для данной файловой системы, после чего на чпобе запрашивается ссылка. Последним действием процедуры поиска является добавление нового вхождения в кэш просмотра каталогов и помещение его в конец списка 1К(Т кеша. 8.10.4.

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

раздел 8.2.3). Если выполнение функции ореп завершается успешно, ее выходным аргументом является индекс, идентифицирующий дескриптор в списке блоков. 2. Запрос объекта открытого файла (зтшст М!е) и сохранение указателя ва него в дескрипторе файла. В системе 8ЧК4 размещение таких объектов происходит динамически. В более ранних реализациях для этой цели используется статическая таблица фиксированного размера. 3. Вызов 1ооРцррп() для получения имени пути и возврата чпопе иа открываемый файл.

Операция 1ооРцррп0 также возвращает указатель ва чапае родительского каталога. 4. Проверка чподе (при помощи операции УОР АССЕ55) на обладание процессом, вызвавшим функцию орел, полномочиями, необходимыми для доступа к файлу в выбранном режиме. 5. Проверка и исключение неверных операций, таких как попытка открытия каталога или активного выполняемого файла иа запись (в противоположном случае пользователь, вызвавший программу, может получить неожиданные результаты).

6. Если файл ие существует, проверка, ие указан ли флаг О СРЕАТ. Если так, то исполняется УОР СРЕАТЕ по отношению к родительскому каталогу для создания файла. В противном случае выполнение завершается с кодом ошибки ЕМОЕМТ. 8.! О. Операции над файлами 373 7. Вызов ЧОР ОРЕМ по отношению к объекту чпог)е для проведения действий, зависящих от файловой системы. Обычно такая процедура не делает ничего, но в некоторых системах именно на этой стадии необходимо производить дополнительные действия. Например, в файловой системе зрес/з, обрабатывающей все файлы устройств, иногда необходимо вызвать процедуру ореп определенного драйвера устройства.

В. Если указана опция 0 ТВОМС, вызывается ЧОР 5ЕТАТТВ для установки размера файла, равного нулю. Необходимую очистку, например освобождение блоков данных файла, производит код, зависящий от конкретной файловой системы. 9. Инициализация объекта открытого файла. Сохранение в нем указателя на чпог)е и флага режима открытия файла. Установка его счетчика ссылок в значение «единица», а указателя смещения — в нулевую позицию. 10.

Возврат индекса дескриптора файла пользователю. Помните о том, что операция 1ооМвррпО производит инкремент счетчика ссылок чпос1е и инициализирует его указатель ч ор. Это гарантирует последующим системным вызовам получение доступа к файлу при помощи его дескриптора (так как объект чподе остается в памяти), а также выполнение нужных функций, зависящих от файловой системы. 8.10.5. Файловый ввод-вывод Для того чтобы произвести операции ввода-вывода с файлом, пользователь предварительно должен его открыть и только после этого вызывать функции гезд или гчпсе (геадч или чгп1еа для ввода-вывода сборкой-разъединением) по отношению к дескриптору, возвращенному ореп. Независимый от файловой системы код помещает параметры вызова в структуру шо, как зто описывалась в разделе В.2,5. В случае применения вызовов геаг) или гчпсе структура шо будет указывать на массив )очес[~, состоящий из одного элемента.

Ядро использует дескриптор файла для обнаружения объекта открытого файла н проверки на то, что данный файл был открыт в нужном режиме доступа. Если режим окажется правильным, ядро отложит указатель чпог)е объекта открытого файла для обнаружения чпог)е. В системе 1))Ч1Х вызовы, осуществляющие ввод-вывод, должны выполняться последовательно. Если два пользователя одновременно вызывают геад или чгг11е по отношению к одному и тому же файлу, ядро прежде завершает одну операцию и только затем начинает выполнение второй.

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

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

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

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