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

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

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

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

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

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

Например, файловая система /ргос дала возможность бЬх присоединяться (и отключаться) прямо к выгюлняющимся программам. Реализация работает корректно с файлами /ргос, расположенными на удаленных машинах и доступными через ПЕЯ 1141. Система разрешает приложениям производить отладку и управлять процессами одинаково, независимо от того, являются ли они локальными или удаленными. С появлением /ргос системный вызов рСгасе стал устаревшим и ненужным. Позже некоторые команды, например рв, были переписаны заново с использованием возможностей /ргос.

Было разработано генерализированное средство точек наблюдения (хчассЬро(псв), основанное на возможности подсистемы ЧМ управлять защитой страниц памяти динамически. 9.11.3. Процессорная файловая система Прог1ессорггая файловая система предлагает интерфейс доступа к отдельным процессорам на многопроцессорных машинах. Система монтируется в каталоге/вувСелг/ргосеввог, в котором для каждого процессора создается по одному файлу. Имя файла является десятичным представлением номера процессора.

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

Кроме этого файловая система содержит файл сС1, являющийся доступным только суперпользователю (для записи). Запись в этот файл позволяет управлять конкретными процессорами, например, изменять статус с работающего на отключенный. Процессорная файловая система является частью многопроцессорной реализации БЪ'К4.2. В будущем она может быть расширена до поддержки таких понятий, как наборы процессоров и легковесные процессы путем их ассоциации с дополнительными файлами в пространстве имен. 416 Глава 9. Реализации файловых систем 9.11.4. Тгапв!мсек Н!е ЗувФет Тгапзщселг Гйе Бузгеш, ТГБ [81 была разработана корпорацией Бцп М~сгозузгевтз для удовлетворения потребностей по оптимальному построению информационной структуры программных приложений. Система предлагает механизмы усовершенствованных версий и управления сборкой, а также поддерживает инструмент управления настройками Хегтчогк Боггтчаге Ептйговшепг (ХБЕ). Система ТГ8 является стандартным компонентом Бцп08.

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

Реализация этой возможности базируется на нескольких уровнях построения каталога ТГ5, каждый из которых представляет собой физический каталог. Уровни соединены между собой при помощи скрытых файлов, называемых ссылками поиска (зеагсЫ~пйз). Оии содержат имя каталога следующего уровня. Каждый уровень является как бы одной редакцией каталога, а верхний уровень содержит последнюю модифнкацикь Видимые файлы каталога ТГБ являются объединением файлов всех уровней.

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

Реализация копирования при записи сделана при помощи установки всех уровней, кроме верхнего, в режим «только для чтения». Для изменения файлов нижних уровней необходимо произвести их копирование в верхний уровень. Производительность файловой системы ГГЯ зависит от того, как много уровней нужно просмотреть операции поиска (общее количество уровней типовой среды может быть очень большим). Разработчики ТГ8 решили эту проблему нри помощи агрессивного использования каша подстановки имен файлов. Система также предлагает средства различения уровней в зависимости от используемых аппаратных архитектур, так как объекты файлов неодинаковы для каждого варианта. Для доступа к файлам ТГБ нет нужды вносить изменения в прикладные приложения. Чтобы воспользоваться преимуще- 9Л2.

Буферный кзш в ранних версиях 1лМХ 417 ствами ТРБ, достаточно произвести ее начальную настройку системным администратором. Изначально файловая система ТРБ разрабатывалась для работы на сервере Ь1РБ, но впоследствии была изменена для непосредственного использования интерфейса чпог1е/чгз.

В разделе 11.12.1 будет описана файловая система цшоп шоипг 4.4ВБР, имеющая сходные возможности, но построенная на стековом интерфейсе уводе/ч1з операционной системы 4.4ВБР. 9.12. Буферный кэш в ранних версиях 0М!Х Дисковый ввод-вывод является узким местом любой системы. На прочтение блока размером 512 байт необходимо затратить порядка нескольких миллисекунд. При этом для копирования такого же объема данных из одного участка памяти в другой достаточно всего лишь нескольких микросекунд.

Скорость двух операций разнится в тысячу раз. Если каждая операция ввода-вывода будет требовать доступа к диску, то система станет работать неудовлетворительно медленно. Становится очевидной необходимость минимизации объема операций ввода-вывода. В системах УЫ1Х это делается при помощи кэширования недавно использованных дисковых блоков в оперативной памяти. В традиционных реализациях У)41Х для этой цели отводится определенная область памяти, называемая буферным кэшем, применяемая для кэширования блоков, доступ к которым был произведен файловой системой. Система виртуальной памяти кэширует тексты процесса и страницы данных отдельно.

В современных вариантах 1Л~ПХ, таких как БЧК4 или БипОБ (версии 4 и выше), буферный кэш встроен в страничную подсистему. В этом разделе будет описан традиционный вариант каша. О современной реализации можно прочесть в разделе 14.8. Буферный кэш состоит из буферов данных, каждый из которых имеет размер, достаточный для хранения одного дискового блока. Системы, основанные на ВБР, поддерживают буферы изменяемых размеров, так как различные файловые системы на одной и той же машине могут иметь неодинаковые размеры блоков и их фрагментов. С каждым буфером кэш ассоциирует заголовок, в котором хранится информация об именовании, синхронизации в управлении кэшем. Размер каша составляет обычно 10% от физического объема памяти.

Постоянным местонахождением данных каша является вспомогательная память (ЬасЫпй згоге). Кэш может обрабатывать данных из нескольких различных областей вспомогательной памяти. Для буферного кэша такая память представляет собой файловые системы на диске. Если машина подключена к сети, вспомогательная память способна включать в себя файлы на удаленных узлах.

418 Глава 9. Реализации файловых систем Кэш может быть со сквозной или отложенной записью. Кэш сквозной запистт производит сброс данных во вспомогательную память незамедлительно при их модификации. Такой подход имеет несколько преимуществ, Данные во вспомогательной памяти всегда соответствуют текущим (разве что кроме последней операции записи), следовательно, при использовании такого метода кэширования не существует проблемы потери информации или повреждения файловой системы в результате краха системы. Управление таким кэшем является простым, что делает его приемлемым средством аппаратного кэширования, например буферизации на жестких дисках. Сквозная запись не подходит для буферного каша, поскольку она противоречит основной цели увеличения производительности. Запись составляет примерно треть всех операций файлового ввода-вывода, которые являются весьма длительными: производится перезапись данных или файл удаляется после «лишних» минут, потраченных на запись ранее.

Такой подход приводит к большому количеству избыточных операций записи, что качественно снижает быстродействие системы. Именно по этим причинам буферный кэш в системах ())ч11Х использует преимущественно метод отложенной записи'. Измененные блоки помечаются как «грязные» (Йгсу), а запись их на диск осуществляется позднее. Данный подход позволяет избавиться от большого количества операций записи, а также упорядочить их в определенном порядке, позволяюшем увеличить производительность дисков. Однако задержка записи может стать причиной повреждений файловой системы в результате краха. Более подробно эта проблема будет рассмотрена в разделе 9.12.5.

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

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

При необходимости очистки блока при повторном использовании ядро произведет запись данных, содержащихся в нем, на диск. При использовании буфера необходимо предварительно блокировать его. Блокировка происходит либо перед инициализацией дискового ввода-выво- Конечно, метаданные сбрасываются на диск синхронно (см. раздел 9.12.5). 9.12. Буферный кзш в ранних версиях 0ЬПХ 419 да, либо при необходимости чтения из буфера или записи в него. Если буфер уже окажется заблокированным, пытающийся осушествить доступ к иему процесс будет переведен в режим сиа до отмены блокировки. Обработчик дисковых прерываний также может пытаться получить доступ к буферу, поэтому иа период получения буфера ядро отключает все дисковые прерывания.

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

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

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

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

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