Морис Бах - Архитектура операционной системы UNIX

Здесь есть возможность читать онлайн «Морис Бах - Архитектура операционной системы UNIX» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Издательство: Издано корпорацией Prentice-Hall., Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Архитектура операционной системы UNIX: краткое содержание, описание и аннотация

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

Архитектура операционной системы UNIX — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Архитектура операционной системы UNIX», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Буферный пул все еще содержит блоки с «отложенной записью», не переписанные на диск, поэтому ядро «вымывает» их из буферного пула. Ядро удаляет записи с разделяемым текстом, которые находятся в таблице областей, но не являются действующими (подробности в главе 7), записывает на диск все недавно скорректированные суперблоки и корректирует дисковые копии всех индексов, которые требуют этого. Казалось, было бы достаточно откорректировать дисковые блоки, суперблок и индексы только для демонтируемой файловой системы, однако в целях сохранения преемственности изменений ядро выполняет аналогичные действия для всей системы в целом. Затем ядро освобождает корневой индекс монтированной файловой системы, удерживаемый с момента первого обращения к нему во время выполнения функции mount, и запускает из драйвера процедуру закрытия устройства, содержащего файловую систему. Впоследствии ядро просматривает буферы в буферном кеше и делает недействительными те из них, в которых находятся блоки демонтируемой файловой системы; в хранении информации из этих блоков в кеше больше нет необходимости. Делая буферы недействительными, ядро вставляет их в начало списка свободных буферов, в то время как блоки с актуальной информацией остаются в буферном кеше. Ядро сбрасывает в индексе системы, где производилось монтирование, флаг «точки монтирования», установленный функцией mount, и освобождает индекс. Пометив запись в таблице монтирования свободной для общего использования, функция umount завершает работу.

алгоритм umount

входная информация: имя специального файла, соответствующего демонтируемой файловой системе

выходная информация: отсутствует

{

if (пользователь не является суперпользователем) return (ошибку);

получить индекс специального файла (алгоритм namei);

извлечь старший и младший номера демонтируемого устройства;

получить в таблице монтирования запись для демонтируемой системы, исходя из старшего и младшего номеров;

освободить индекс специального файла (алгоритм iput);

удалить из таблицы областей записи с разделяемым текстом для файлов, принадлежащих файловой системе;

/* глава 7ххх */

скорректировать суперблок, индексы, выгрузить буферы на диск;

if (какие-то файлы из файловой системы все еще используются) return (ошибку);

получить из таблицы монтирования корневой индекс монтированной файловой системы;

заблокировать индекс;

освободить индекс (алгоритм iput);

/* iget был при монтировании */

запустить процедуру закрытия для специального устройства;

сделать недействительными (отменить) в пуле буферы из демонтируемой файловой системы;

получить из таблицы монтирования индекс точки монтирования;

заблокировать индекс;

очистить флаг, помечающий индекс как «точку монтирования»;

освободить индекс (алгоритм iput);

/* iget был при монтировании */

освободить буфер, используемый под суперблок;

освободить в таблице монтирования место, занятое ранее;

}

Рисунок 5.27. Алгоритм демонтирования файловой системы

Рисунок 528 Файлы в дереве файловой системы связанные с помощью функции link - фото 38

Рисунок 5.28. Файлы в дереве файловой системы, связанные с помощью функции link

5.15 LINК

Системная функция link связывает файл с новым именем в структуре каталогов файловой системы, создавая для существующего индекса новую запись в каталоге. Синтаксис вызова функции link:

link(source file name, target file name);

где source file name — существующее имя файла, а target file name — новое (дополнительное) имя, присваиваемое файлу после выполнения функции link. Файловая система хранит имя пути поиска для каждой связи, имеющейся у файла, и процессы могут обращаться к файлу по любому из этих имен. Ядро не знает, какое из имен файла является его подлинным именем, поэтому имя файла специально не обрабатывается. Например, после выполнения набора функций:

link("/usr/src/uts/sys", "/usr/include/sys");

link("/usr/include/realfile.h", "/usr/src/uts/sys/testfile.h");

на один и тот же файл будут указывать три имени пути поиска: «/usr/src/uts/sys/testfile.h», «/usr/include/sys/testfile.h» и «/usr/include/realfile» (см. Рисунок 5.28).

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Архитектура операционной системы UNIX»

Представляем Вашему вниманию похожие книги на «Архитектура операционной системы UNIX» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Архитектура операционной системы UNIX»

Обсуждение, отзывы о книге «Архитектура операционной системы UNIX» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x