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

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

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

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

8.2. Интерфейс доступа пользователя к файлам 337 даться для несколько иных целей. Если файлу не назначено прав на выполнение группой и флаг зд16 является установленным, то над этим файлом разрешается производить принудительную блокировку файла/записи 115). Флаг навязчивости зйс)су нужен также для выполняемых файлов и используется для запроса к ядру системы на сохранение «образа» программы в области свопинга (см, раздел 13.2.4) после завершения ее выполнения'. Системные администраторы часто устанавливают флаг з11с1у для наиболее часто выполняемых программ, увеличивая тем самым производительность системы.

В большинстве современных реализаций 1)1ч1Х все завершенные программы по возможности оставляются в области свопинга (при этом используется одна из вариаций алгоритма замены недавно испольэоважиейся информацией — ЕИ)), таким образом, для них не требуется применение флага навязчивости. Флаги зд16 и з0с1у применяются немного по-другому для каталогов, Если флаг зйс)су установлен, а в каталог можно производить запись, то процесс обладает правом на удаление или изменение файла в этом каталоге только в том случае, если его действительный 1ЛР совпадает с идентификатором владельца файла или каталога, а также тогда, когда процесс обладает правами на запись файла.

Если флаг з11с1у сброшен, то удалять или переименовывать файлы, находящиеся в каталоге, может любой процесс, обладающий правом на запись в этот каталог. При создании файла значение действительного ЫР наследуется от создавшего его процесса. Идентификатор С1Р владельца при этом может иметь только два значения. В системе 3ЧВЗ файл наследовал действительный С1Р от своего создателя.

В 4,3ВВР наследуется С1Р каталога, в котором файл был создан. В системе БЧК4 для выбора значения идентификатора используется флаг зд16 родительского каталога. Если этот флаг был установлен для каталога, то при создании новых файлов значение С1Р наследуется от родительского каталога. Когда флаг зд16 сброшен, новые файлы получают С1Р от своего создателя. Для манипуляций с атрибутами файлов в 11М1Х предлагается специальный набор системных вызовов. Входным аргументом всех этих функций является полное имя файла.

Вызовы 11п1 и цп11п)с применяются соответственно для создания и удаления жесткой связи. Ядро удаляет файл только в том случае, если на него не остается ни одной ссылки и никто им не пользуется в текущий момент. Системный вызов цйшез изменяет временные метки доступа и изменения для файла. Функция сйотеп переназначает идентификаторы пользователя и группы владельца. Вызов сйшо6 изменяет права и флаги режимов файла.

' Система старается не занимать память, в которую была загружена программа. При повторном запуске такую программу не нужно считывать с диска — до«таз очно передать на нее управление. — Прим. ред, 338 Глава 8. Базовые элементы и интерфейс файловой системы 8.2.3. Дескрипторы файлов Перед использованием файла процесс должен сначала открыть его для чте- ния или записи. Системный вызов орел имеет следующий синтаксис: ггг - преп грагл, ог1ао. шогге); где рагп — это абсолютное или относительное полное имя файла, а люде указывает на права, ассоциируемые с файлом при его создании.

Флаги, передаваемые при помощи переменной ойад, указывают на необходимость открытия файла после его создания на чтение (геааг), запись (ивгге), чтение-запись (геад-гепге), добавление (аррелсг) и т. д. Для создания файла также применяется системный вызов сгеаг, который эквивалентен вызову ореп с флагами О ггйОйьг', О ЕЯЕАТ и О ТкОИЕ. Каждый процесс имеет маску создания файлов, определенную по умолчанию, являющуюся битовой маской прав, не предоставляемых создаваемым файлам. Когда пользователь указывает параметр глоде для функции преп или сгеаг, пользователь обнуляет разряды, указанные в маске по умолчанию.

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

Один и тот же дескриптор для двух процессов часто ссылается на разные файлы. Процесс использует дескрипторы для передачи ввода-вывода системным вызовам, таким как геад или гнпге. Ядру дескрипторы нужны для быстрого нахождения объекта открытого файла, а также других структур данных, ассоциируемых с этим файлом. Это дает возможность ядру производить различные действия, такие как анализ полного имени или управление доступом, на стадии вызова функции ореп, а не при проведении каждой операции ввода-вывода.

Открытые файлы можно закрыть либо при помодгя системного вызова с!озе, либо это произойдет автоматически при завергпении работы процесса. Каждый дескриптор связан с независимым сеансом работы с файлом. Ассоциируемый с этим дескриптором объект открытого файла содержит контекст сеанса. Контекст включает в себя режимы, при которых было произведено открытие файла, а также указатель смещения, показывающий точ- 8.2. Интерфейс доступа пользователя к файлам 339 ку начала следующей операции чтения или записи. В системе 13Х1Х по умолчанию доступ к файлам осуществляется последовательно. После открытия файла пользователем ядро производит инициализацию указателя смещения в значение «ноль».

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

Такой подход обеспечивает прозрачное совместное использование файла несколькими процессами одновременно. Эта возможность системы должна применяться с осторожностью. В большинстве случаев доступ к одному и тому же файлу несколькими процессами влечет необходимость применения для его блокировки технологии синхронизации, описанной в разделе 8.2.6. Файл Даокрипторы Открытии файлов объактов файлов Рио.

6.2. Файл, открытый дважды Процесс может дублировать дескрипторы при помощи системных вызовов двр или двр2. Эти функции создают новый дескриптор, указывающий на один и тот же объект открытого файла и, следовательно, разделяющий один н тот же сеанс (рис 8.3). Системный вызов Гоги производит создание копий всех файловых дескрипторов родительского процесса и передает их потомку.

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

' Или если пронесс открывает один и тот же файл двыкды. 340 Глава 8. Базовые элементы и интерфейс файловой системы Дескрипторы файлов Рис. 8.3. Дескриптор, продублированный при помощи функций оцр, оир2 или 1огх Процесс может передавать дескриптор файла любому другому процессу, при этом достигается эффект передачи ссылки на объект открытого файла. Ядро производит копирование дескриптора в первую свободную ячейку таблицы дескрипторов получателя.

В результате оба дескриптора разделяют ме. жду собой один и тот же объект и, следовательно, обладают единым указателем смешения. Обычно процесс, посылаюший дескриптор, закрывает его после завершения операции отправки. Это не приводит к закрытию файла— даже в том случае, если адресат так и не получил дескриптор, поскольку ядро системы удерживает второй дескриптор во время проведения передачи. Интерфейс передачи дескрипторов зависит от конкретной реализации (ЛЧ1Х. В системе 5Ъ'К4 для этой цели используется вызов юс1! с командой 1 5Е)тОЕО, при этом передача осуществляется через 5ТКЕАМ5 (см.

раздел 17.9). Процессы получают дескриптор при помощи команды 1 КЕСЧЕО вызова !ос!!. В системе 4.3ВВР для передачи дескрипторов применяются вызовы зеп4юхд и гесуп1зд и соединение сокетов, осуществленное между двумя процессами (см. раздел 17.10.3). Передача дескрипторов может применяться в реализациях некоторых типов сетевых приложений. Один процесс, называемый сервером соединения, может настроить сетевое соединение для клиентского процесса, и затем передать дескриптор, представляющий соединение, этому клиенту обратно.

В разделе 11.10 будет описана переносимость файловых систем в 4.4В5Р, используюших развитие этой концепции. 8.2.4. Файловый ввод-вывод Система (ЛЧ1Х позволяет осуществлять как произвольный, так и последовательный доступ к файлам. По умолчанию применяется последовательный доступ.

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

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

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

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

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