The design of the UNIX Operating System 75 страница



 

Стандартный запрос на открытие(open)или создание(create)файла поступает от прикладной програм-мы к логической подсистеме . Логическая подсистема, используя структуру директорий, проверяет права доступа и вызывает базовую подсистему для получения доступа к блокам файла. После этого файл счи-тается открытым, он содержится в таблице открытых файлов, и прикладная программа получает в свое распоряжение дескриптор ( или handle в системах Microsoft) этого файла . Дескриптор файла является ссылкой на файл в таблице открытых файлов и используется в запросах прикладной программы на чте-ние -запись из этого файла. Запись в таблице открытых файлов указывает через систему выделения бло-ков диска на блоки данного файла. Если к моменту открытия файл уже используется другим процессом, то есть содержится в таблице открытых файлов, то после проверки прав доступа к файлу может быть ор-ганизован совместный доступ. При этом новому процессу также возвращается дескриптор - ссылка на файл в таблице открытых файлов. Далее в тексте подробно проанализирована работа наиболее важных системных вызовов.

 

Рис. 12.1. Блок-схема файловой системы


 

Управление внешней памятью


Основы операционных систем 110

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

 

Методы выделения дискового пространства

 

Ключевым, безусловно, является вопрос, какой тип структур используется для учета отдельных блоков файла , то есть способ связывания файлов с блоками диска. В ОС используется несколько методов выде-ления файлу дискового пространства. Для каждого из методов запись в директории, соответствующая символьному имени файла, содержит указатель, следуя которому можно найти все блоки данного файла.

 

Выделение непрерывной последовательностью блоков

 

Простейший способ - хранить каждый файл как непрерывную последовательность блоков диска. При не-прерывном расположении файл характеризуется адресом и длиной (в блоках). Файл, стартующий с блока b, занимает затем блоки b+1, b+2, ... b+n-1.

 

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

 

Непрерывное выделение используется в ОС IBM/CMS, в ОС RSX-11 (для выполняемых файлов) и в ряде других.

 

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


Дата добавления: 2021-01-21; просмотров: 106; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!