Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 77
Текст из файла (страница 77)
9. 10. 11. 12. 13. 14. 15. Глава 7. Синхронизация. Многопроцессорные системы и установки на машине, поддерживающую связанную загрузку и со- хранение по условию? участком кода, защищенным семафором, приводит к конвоированию семафора. Если такой участок поделить на две части, каждая из кото. рых будет защищена отдельным семафором, уменьшит ли это вероят- ность возникновения конвоя? является замена семафоров другим механизмом блокировки. Может ли это привести к увеличению степени риска устаревания нитей? и условной переменной, в которой проверке подвергается состояняе флага 1оскей (см. раздел 7.7.3). Нужно ли удерживать простой объект блокировки, защищающий усло- вие, при сбросе флага (в примере„описанном в предыдущем упражне- нии)? В работе (15] описывается операция аа11(осМ(), использование которой может улучшить алгоритм.
Каким образом условные переменные могут предупреждать возникно- вение проблемы потери сигнала пробуждения нити? Создайте элемент ечеп1 (событие), возвращающий ожидающим нитям значение статуса при совершении события. Представьте объект, к которому часто происходит доступ для чтения и записи. В каких ситуациях целесообразнее защитить его простым объектом щпсех, а в каких использовать блокировку чтения-записи? Имеет ли возможность объект защиты чтения-записи блокировать ни- ти? Создайте объект зашиты чтения записи, который заставляет нити переходить в режим занятого ожидания при невозможности получить ресурс. Опишите ситуацию, в которой вероятность возникновения взаимобло- кировки уменьшается при повышении степени грануляции. Опишите ситуацию, в которой вероятность возникновения взаимобло- кировки уменьшается при понижении степени грануляции.
Необходимо ли защищать каждый ресурс или переменную ядра много- процессорной системы объектом блокировки перед доступом к ням? Подсчитайте количество различных типов ситуаций, при которых нить может иметь доступ или изменять объект без его блокировки. Программы управления (топ(гогз) — это конструкции, поддерживае- мые языками программирования, использующиеся для взаимного ис- 16. 7.14. Дополнительная литература 1. 2. 3. )ап, 1990, рр.
285-295. 11. КеПеу, М. Н., «Мп1с!ргоссззог Азрессз оЕ йе РС/1)Х Кегпе!», Ргосеейпб оЕ йе ЪЧ!псег 1989 1) 8ЕЬЕ1Х СопЕегепсе, )ап. 1989, рр. 85 — 99. 12. 1.ее, Т. Р., апс) 1лрр1, М. ЪЧ., «бо1у1п8 Регсоппапсе РгоЫевз оп а Мп!Н- 5 6 7 8 10 7П4. Дополнительная литература 329 ключения участка кода. При каких ситуациях применение зтих меха- низмов является наиболее естественным? Создайте функции ир9гадеО и т!олп9гадеО для реализации объектов защиты чтения-записи, представленных в разделе 7.8.2. ВасЬ, М, апг) ВпгоЕЕ, 8., «Мц!с!ргосеззог 1Л~!1Х Орегас!п8 бузсе1пз», АТйТ ВеП 1 аЬогасог!ез ТесЬпка1 )опгпа1, Ъ'о1.
63, Осс. 1984, рр. 1733 — 1749. В!ггеП, А. Р., «Ап 1псгот)псс!оп со Ргобга1пв!п8 ту!сЬ ТЬгеасЬ», Р!81са! Ег1п!рптепс Согрогасюп 8узсевз КезеагсЬ Сепссг, 1989. СагпрЬсП, М., Ватсон, К., Вготуп!п8, !., Сегуеп!са, Р., Сцггу, В., Рау!я Т., Ег)птопгЬ, Т., Но1с, К., Яке, К., бв!сЬ, Т., апс1 ЪЧезсосс, К., «ТЬе РагаПеПгасюп оЕ 13Ы1Х Яузсепт Ъ' Ке!еазе 4.0», Ргосеейпбз оЕ сЬе ЪЧ1псег 1991 РВЕ!т11Х СопЕегепсе, Еап. 1991, рр. 307 — 323. РепЬав, 1.
М., 1.оп8, Р., апг! ЪЧоог!туагс1, 1. А., «РЕС ОВЕ/1 Чегяоп 3,0 буввесг!с Ми!с!ргосезз!п8 1птр!ептепсас!оп», Р!81са! ТесЬп!са! )опгпа1, Чо), б, Ыо. 3, бцпипег 1994, рр. 29 — 54. Р!8!са! Ег!шрвепс Согрогасюп, «Ъ'АХ АгсЫсесспге КеЕегепсе Манна!», 1984. Р!1Ьзсга, Е. ЪЧ., «8о1пс!оп оЕ а РгоЫев ш Сопспггепс Ргобгавв!п8 Сопсго!», Соввпп!сас!опз оЕ сЬе АСМ, Ъо1. 8, Яер. 1965, рр.
569 — 578. Еу!сЬо!с,.1. К., К!е1пвап, Б. К., Ватсон, Б., ГапПспег, К., ЗЬ!уаПп8!аЬ, А., 8в!сЬ, М., Ясе!п, Р., ЧоП, !., ЪЧееЬ, М., апс! ЪЧППавя Р., «Веуопс1 Мп!Вргосезяпб: Мп!с!сЬгеаг)!п8 йе бппОБ Кегпе1», Ргосеейпбз оЕ сЬе Бшпвег 1992 РВЕЬЕ1Х СопЕегепсе, )цп. 1992, рр. 11-18. СоЫе, С. Н., «А Рца)-Ргосеззог Ъ'АХ 11/780», 138ЕЫ1Х Аззос!ас!оп СопЕегепсе Ргосеейпбз, Бер. 1981.
Ноаге, С. А. К., «Моп!согя Ап Орегас!п8 бузсев Ясгпсгцг!пя СопсерС», Соввпп!сас!опз оЕ йе АСМ, Ъ'о!. 17, Осс. 1974, рр. 549 — 55?. НКг, Р., Нагпя С., 1.ап,,). К., апд ЯсЬтуагсг, А, М., «1Л!пб 11)т)1Х аз Опе Совропепс оЕ а 1!8Ьстуе18Ьс Р!зсг!Ьпсег) Кегпе! Еог Мп!с!ргосеззог ЕПе бегуегз», Ргосеейпбз оЕ с!те ЪЧ!псег 1990 138ЕЬЕ1Х ТесЬшса! СопЕегепсе, ргосеззог ИМ1Х Бузсев», Ргосеет)!пбз оЕ сЬе бпввег 1987 118ЕЬ!1Х СопЕегепсе, )пп. 1987, рр.
399-405. Глава 8 Базовые элементы и интерфейс файловой системы 8.1. Введение Операционная система должна предоставлять средства постоянного хранения и обработки информации. В 11111Х понятие файл используется для обозначения контейнера для данных.
Файловая систпема позволяет производить различные действия с файлами и обладать доступом к ним'. В этой главе описывается интерфейс взаимодействия между файловой системой и пользовательскими приложениями, а также базовые элементы, используемые ядром для поддержки различных файловых систем. Главы 9, 10 и 11 посвягцены конкретным реализациям файловых систем, пазволяюгцим получить доступ к данным, как на локальных, так и на удаленных машинах. Интерфейс объединяет системные вызовы и утилиты, при помощи которых пользовательские программы могут производить различные операции над файлами. Команды и утилиты остаются неизменными уже много лет, подвергаясь лишь небольшой шлифовке и не теряя совместимости с предыдущими версиями.
С другой стороньг, базовые элементы файловой системы были детально пересмотрены. Первые ОС поддерживали только один тип файловой системы. Все файлы располагались локалыю и хранились на одном вли нескольких физических дисках компьютера. Позже была произведена замена этой файловой системы на иптерфейс ггпос1е,Ф/з, позволяюгций использовать на одной машине несколько различных типов файловых систем, которые могут быть как локальными, так и удаленными.
Ранние коммерческие варианты 131х11Х имели простую файловую систему, известную сейчас под названием х5!з (Яузсегп Ч Гйе зузгет) !141. Ее поддерживают все су!цествующие реализации 3уз!еш 'тт 131ч1Х, а также все версии ' В !!!Ч!Х термин «файлоаая система«понимается не только как упранляющая каталогами и файлами программная оболочка, но и непосрелстаешю как иерархия каталогов и файлон, а дальнейшем различать их слелует по контексту повествования. — Нрии, лед. 332 Глава 8. Базовые элементы и интерфейс файловой системы ОС от Ветке!еу до 4.2В5Р. В ОС 4.2ВЯЭ разработчиками была представлена новая файловая система ГГ5 (Газг Г11е 5узсеш) 110], имеющая лучшие характеристики производительности и большую функциональность по сравнению с з5Ь.
Система ГГ5 получила широкое распространение, кульминацией которого было ее включение в ЯгК4. В главе 9 вы увидите описания з5Ь и ГГ5, а также некоторых других специализированных файловых систем, основанных на аРхитектУРе Упог1еггУЬ. ПРИМЕЧАНИЕ Термины ЕЕЯ и цгз (ОМХ Ме зузгет, файловая система ОМХ) часто заменяют друг друга, Однако если быть более точными, ЕЕЯ вЂ” это оригинальная реализация Еазг Езе Яузгегп от разработчиков из Беркли, а игз является версией ЕЕЯ с поддерхгкой элементов упоев/Фз. В этой книге мы будем придерхгиваться более точнык значений призе.
денных терминов, После появления возможности соединять компьютеры друг с другом сетью разработчики систем стали искать способы получения доступа к файлам на удаленных узлах. В середине 80-х годов конкурировало несколько технологий доступа, предлагающих совместное прозрачное использование файлов, находяшихся на компьютерах, объединенных между собой. В главе 10 вы увидите описание трех наиболее распространенных вариантов систем: )х)егтуогк Г11е 5узгегп ()х1Г5), Кешосе Г11е 5)таг108 (ГкГ5) и Апдгету Г11е 5узгегп (АГ5).
В последние годы появились новые файловые системы, расширяюшие возможности ГГ5 либо применяемые специализированными приложениями. Большинство из них основано на таких сложных технологиях, как поддержка журналов, моментальные снимки (зпарз)гоге) и управление томами, используемых для увеличения производительности, надежности и работоспособности. Рассказ о некоторых современных файловых системах вы пай. дете в главе 11. 8.2. Интерфейс доступа пользователя к файлам Ядро ОС 11)ч11Х позволяет пользовательским процессам взаимодействовать с файловой системой через строго определенный процедурный интерфейс.
Интерфейс определяет представление файловой системы с точки зрения пользователя и семантику и действия всех относящихся к ней системных вызовов. Пользователь оперирует лишь некоторыми абстракциями, такими как файлы, каталоги, дескрипторы файлов и файловые системы. Как мы уже говорили, на сегодняшний день существует несколько различных типов файловых систем, например з5Ь или ГГ5. В каждой системе реализован одинаковый интерфейс, даюший приложениям одинаковое представление всех файлов. Каждая файловая система в отдельности может обла- 8.2.
Интерфейс доступа пользователя к файлам 333 дать определенными ограничениями с точки зрения интерфейса. Например, з5Ь позволяет использовать в имени файла до 14 символов, в то время как пользователи ГГБ могут создавать файлы с именами длиной до 255 символов. 8.2.1. Файлы и каталоги Логически файл представляет собой место для хранения данных. Пользователь может создать файл и затем использовать его для хранения информации путем записи в него. Доступ к данным может быть как последовательным, так к произвольным. Ядро системы поддерживает различные операции управления, позволяющие называть файлы, использовать их и управлять доступом к иим. Ядро ие интерпретирует содержание или структуру файла, трактуя его как простую последовательность байтов и предоставляя побайтовый доступ к его содержимому. Некоторые приложения требуют применения более сложной семантики, например индексированного доступа или доступа к отдельным записям.