Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/27a0b9432889d3da96d0eef334affa55 to your computer and use it in GitHub Desktop.
Save anonymous/27a0b9432889d3da96d0eef334affa55 to your computer and use it in GitHub Desktop.
Директории операции над директориями

Директории операции над директориями


Директории операции над директориями



Файлы с точки зрения пользователя
6.4. Файлы и файловая система
Разделы диска. Директории. Операции над директориям


























Предыдущая глава Программа курса Следующая глава. Возможности оперативной памяти для хранения информации ограничены. Во-первых, оперативная память обычно теряет свое содержимое после отключения питания, а во-вторых, объем обрабатываемых данных зачастую превышает ее возможности. Кроме того, информацию желательно иметь в виде, независимом от процессов. В большинстве компьютерных систем предусмотрены устройства внешней вторичной памяти, большой емкости, на которых можно хранить огромные объемы данных. Однако характеристики доступа к таким устройствам существенно отличаются от характеристик доступа к основной памяти. Чтобы повысить эффективность использования этих устройств, был разработан ряд специфичных для них структур данных и алгоритмов. Файлы с точки зрения пользователя. До этого каждая прикладная программа сама решала проблемы именования данных и структуризации данных во внешней памяти. Система управления файлами берет на себя распределение внешней памяти, отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным. Это требует хорошего знания устройства контроллера диска, особенностей работы с его регистрами и. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой и была придумана ясная абстрактная модель файловой системы. Основная идея использования внешней памяти состоит в следующем. ОС делит ее на блоки фиксированного размера, например, байт. С точки зрения пользователя каждый файл состоит из набора индивидуальных элементов, называемых записями например, характеристика какого-нибудь объекта. Каждый файл хранится в виде определенной последовательности блоков не обязательно смежных ; каждый блок хранит целое число записей. В некоторых ОС MS-DOS адреса блоков, содержащих данные файла, могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС Unix , адреса блоков данных файла хранятся в отдельном блоке внешней памяти так называемом индексе или индексном узле. Этот прием называется индексацией и является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов. Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и указание о местоположении данного блока. Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла. Базовой операцией, выполняемой по отношению к файлу, является чтение блока с диска и перенос его в буфер, находящийся в основной памяти. Иерархическая структура каталогов, используемая для управления файлами, является другим примером индексной структуры. В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги. С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл. То, как они структурированы, поименованы, используются, защищены, реализованы — одна из главных тем проектирования ОС. Перечислим основные функции файловой системы: Связывание имени файла с выделенным ему пространством внешней памяти. Распределение внешней памяти между файлами. Для работы с конкретным файлом не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того, чтобы загрузить документ в редактор с жесткого диска нам не требуется знать на какой стороне какого магнитного диска и на каком цилиндре и в каком секторе находится требуемый документ. Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера. Обеспечение защиты от НСД. Обеспечение совместного доступа к файлам, не требуя от пользователя специальных усилий по обеспечению синхронизации доступа. Иногда говорят, что файл - поименованный набор связанной информации, записанной во вторичную память. Для большинства пользователей файловая система - наиболее видимая часть ОС. Важный аспект организации файловой системы — учет стоимости операций взаимодействия с вторичной памятью. Для этого требуется значительное время десятки миллисекунд. Файлы — абстрактные объекты. Они предоставляют пользователям возможность сохранять информацию, скрывая от него детали того, как и где она хранится и то, как диски в действительности работают. Вероятно, одна из наиболее важных характеристик любого абстрактного механизма — способ именования объектов, которыми он управляет. Когда процесс создает файл, он дает файлу имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам. Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени. В популярной файловой системе FAT длина имен ограничивается известной схемой 8. Современные файловые системы, как правило, поддерживают более удобные для пользователя длинные символьные имена файлов. Логическая запись - это наименьший элемент данных, которым может оперировать программа при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами обычно блоками , операционная система обеспечивает программисту доступ к отдельной логической записи. ОС поддерживают несколько вариантов структуризации файлов. Первый из них, файл, как неструктурированная последовательность байтов. Например, в файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей. ОС не осуществляет никакой интерпретации этих байтов. В частности, многие СУБД хранят свои базы данных в обычных файлах. С введением CRT терминалов эта идея утратила популярность. Записи могут располагаться в файле последовательно например, будучи отсортированы по значению ключевого поля или в более сложном порядке. Файл, как последовательность записей переменной длины. При добавлении новой записи в файл, место, куда ее поместить будет определено не пользователем, а операционной системой. Такой способ применяется в больших мэйнфреймах для коммерческих процессов обработки данных. Важный аспект дизайна файловой системы и ОС - следует ли поддерживать и распознавать типы файлов. Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла. К типам файлов, поддерживаемых современными ОС, относят регулярные обычные файлы и директории. Обычные регулярные файлы содержат пользовательскую информацию. В каталоге содержится перечень файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками атрибутами. Мы будем рассматривать директории ниже. Напомним, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти, для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. Эти объекты рассмотрены в других разделах данного курса. Далее, главным образом, речь пойдет об обычных файлах. Обычные или регулярные файлы реально представляют собой набор блоков возможно, пустой на устройстве внешней памяти, на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию обычно в формате ASCII , так и произвольную двоичную информацию. Другой тип файлов — бинарные файлы, означает, что это не ASCII файлы. Например, выполнимый Unix файл имеет пять секций: Другим примером бинарного файла может быть архивный файл. Типизация файлов не слишком строгая. Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями. Список атрибутов может варьироваться от одной ОС к другой. Эта информация обычно хранится в структуре директорий см. Есть несколько способов доступа к файлам. Ранние ОС давали только один способ доступа — последовательный модель ленты. Записи считывались в порядке поступления. Текущая позиция считывания могла быть возвращена к началу файла rewind. Вместе с магнитными барабанами и дисками появились файлы с прямым random доступом. Последовательный доступ базируется на модели ленты и работает как на устройствах последовательного доступа, так и прямого. Это наиболее общая модель. Организация прямого доступа существенна для многих приложений, например, для систем управления базами данных. Не все системы поддерживают оба последовательный и прямой метода доступа. Помимо прямого и последовательного существуют и другие методы доступа. Обычно они включают конструирование индекса файла и базируются на прямом методе доступа. Для больших файлов индекс может быть слишком большим. В этом случае создают индекс для индексного файла блоки промежуточного уровня или блоки косвенной адресации. Чаще всего при работе с файлом пользователь выполняет не одну, а несколько операций. Во-первых, нужно найти данные файла и его атрибуты по его символьному имени, во-вторых, считать необходимые атрибуты файла в отведенную область оперативной памяти и проанализировать права пользователя на выполнение требуемой операции. Затем выполнить операцию, после чего освободить занимаемую данными файла область памяти. Рассмотрим в качестве примера основные файловые операции ОС Unix: Создание файла, не содержащего данных. Смысл данного вызова - объявить, что файл существует и присвоить ему ряд атрибутов. Удаление файла и освобождение занятого им дискового пространства. Перед использованием файла процесс должен его открыть. Цель данного системного вызова разрешить системе проанализировать атрибуты файла и проверить права доступа к файлу, а также считать в оперативную память список адресов блоков файла для быстрого доступа к его данным. Если работа с файлом завершена, его атрибуты и адреса блоков на диске больше не нужны. В этом случае файл нужно закрыть, чтобы освободить место во внутренних таблицах файловой системы. Дает возможность специфицировать место внутри файла, откуда будет производиться считывание или запись данных, то есть задать текущую позицию. Чтение данных из файла. Обычно это происходит с текущей позиции. Запись данных в файл с текущей позиции. Если текущая позиция находится в конце файла, его размер увеличивается, в противном случае запись осуществляется на место имеющихся данных, которые, таким образом, теряются. Предоставляет процессам нужные им сведения об атрибутах файла. В качестве примера можно привести, утилиту make, которая использует информацию о времени последней модификации файлов. Дает возможность пользователю установить некоторые атрибуты. Наиболее очевидный пример - установка режима доступа к файлу. Возможность переименования файла создает дополнительные удобства для пользователя. Данная операция может быть смоделирована копированием данного файла в файл с новым именем и последующим его удалением. Существует два способа выполнить последовательность действий над файлами [30]: В первом случае для каждой операции выполняются как универсальные, так и уникальные действия схема stateless. Например, последовательность операций может быть такой: В этом случае последовательность вышеприведенных операций будет выглядеть так: Большинство ОС использует второй способ, как более экономичный и быстрый. Логическая структура файлового архива. Количество файлов на компьютере может быть большим. Эффективное управление этими данными подразумевает наличие в них четкой логической структуры. Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со специальной структурой — каталогов или директорий. Когда система открывает файл, она ищет имя файла в директории. Затем извлекаются атрибуты и адреса блоков файла на диске или непосредственно из записи в директории или из структуры, на которую запись в директории указывает. Эта информация помещается в системную таблицу в главной памяти. Число директорий зависит от системы. В современных ОС используется произвольная структура дерева директорий. Существует несколько эквивалентных способов изображения дерева, структура перевернутого дерева, приведенного на рис. Верхнюю вершину называют корнем. Если элемент дерева не может иметь потомков, он называется терминальной вершиной или листом в данном случае является файлом. Не листовые вершины — справочники или каталоги, содержат списки листовых и не листовых вершин. Путь от корня к файлу однозначно определяет файл. Имена файлов, находящихся в разных каталогах могут совпадать. Это так называемое абсолютное имя. Он использует концепцию рабочей или текущей директории, которая входит в состав окружения environment процесса, работающего с данным файлом. Это удобнее, но по существу то же самое, что и абсолютная форма. Для получения доступа к файлу и локализации его блоков система должна выполнить навигацию по каталогам. Алгоритм одинаков для всех иерархических систем. Сначала в фиксированном месте на диске находится корневая директория. Этот случай рассмотрен в следующей главе. Это дает возможность пользователю возможность произвольным образом именовать каталоги, содержащие различные программные пакеты. Задание пути к файлу в файловых системах некоторых ОС отличаются тем, с чего начинается эта цепочка имен. В этом отношении есть несколько вариантов. В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск буквы диска. Такой способ именования используется в файловых системах фирм DEC и Microsoft. В других системах Multics вся совокупность файлов и каталогов представляет собой единое дерево. В ОС Unix предполагается наличие нескольких архивов файлов, каждый на своем разделе, один из которых считается корневым. После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему. Технически это производится с помощью заведения в корневой файловой системе специальных пустых каталогов см. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Задачей ОС является беспрепятственный проход точки монтирования при получении доступа к файлу по цепочке имен. Если учесть, что обычно монтирование файловой системы производится при раскрутке системы, то пользователи ОС UNIX обычно и не задумываются об исходном происхождении общей файловой системы. Так же, как и в случае файлов, система обязана обеспечить пользователя набором операций, необходимых для работы с директориями, реализованных через системные вызовы. Несмотря на то, что директории, это файлы, логика работы с ними отличается от логики работы с обычными файлами и определяется природой этих объектов, предназначенных поддерживать структуру файлового архива. Совокупность системных вызовов для управления директориями зависит от особенностей конкретной ОС. Рассмотрим в качестве примера некоторые системные вызовы ОС Unix. Имеется также ряд других системных вызовов, например, связанных с защитой информации. Общие проблемы безопасности ОС рассмотрены в гл. Информация в компьютерной системе должна быть защищена как от физического разрушения reliability , так и от несанкционированного доступа protection. Наличие в системе многих пользователей предполагает организацию контролируемого доступа к файлам. Выполнение любой операции над файлом должно быть разрешено только в случае наличия у пользователя соответствующих привилегий. Обычно контролируются следующие операции: Read , Write , Execute , Append , Delete , List. Однако они чаще реализуются через перечисленные. Наиболее общий подход к защите файлов от несанкционированного использования - сделать доступ зависящим от идентификатора пользователя, то есть связать с каждым файлом или директорией список прав доступа access control list , где перечислены имена пользователей и типы разрешенных для них способов доступа к файлу. Любой запрос на выполнение операции сверяется с таким списком. Чтобы разрешить всем пользователям читать файл, необходимо всех их внести в список. У этой техники есть два нежелательных следствия:. В рамках этой ограниченной классификации задаются только три поля по одному для каждой группы для каждой контролируемой операции. Итак, файловая система, есть набор файлов и директорий и операций над ними. Имена, структуры, файлов, способы доступа к ним и их атрибуты — важные аспекты дизайна файловой системы. Большинство современных ОС поддерживает иерархическую систему каталогов или директорий с возможным вложением директорий. Безопасность файловой системы — одна из важнейших концепций ОС. Сайт создан в системе uCoz.


Разделы диска. Организация доступа к архиву файлов.


Задание пути к файлу в файловых системах некоторых ОС отличается тем, с чего начинается эта цепочка имен. В современных ОС принято разбивать диски на логические диски это низкоуровневая операция , иногда называемые разделами partitions. Бывает, что, наоборот, объединяют несколько физических дисков в один логический диск например, это можно сделать в ОС Windows NT. Поэтому в дальнейшем изложении мы будем игнорировать проблему физического выделения пространства для файлов и считать, что каждый раздел представляет собой отдельный виртуальный диск. Диск содержит иерархическую древовидную структуру, состоящую из набора файлов, каждый из которых является хранилищем данных пользователя, и каталогов или директорий то есть файлов, которые содержат перечень других файлов, входящих в состав каталога , необходимых для хранения информации о файлах системы. В некоторых системах управления файлами требуется, чтобы каждый архив файлов целиком располагался на одном диске разделе диска. В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск буквы диска. Такой способ именования используется в файловых системах DEC и Microsoft. В других системах Multics вся совокупность файлов и каталогов представляет собой единое дерево. Сама система, выполняя поиск файлов по имени, начиная с корня, требовала установки необходимых дисков. В ОС Unix предполагается наличие нескольких архивов файлов, каждый на своем разделе, один из которых считается корневым. После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему. Технически это осуществляется с помощью создания в корневой файловой системе специальных пустых каталогов см. Специальный системный вызов mount ОС Unix позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Задачей ОС является беспрепятственный проход точки монтирования при получении доступа к файлу по цепочке имен. Если учесть, что обычно монтирование файловой системы производится при загрузке системы, пользователи ОС Unix обычно и не задумываются о происхождении общей файловой системы. Как и в случае с файлами, система обязана обеспечить пользователя набором операций, необходимых для работы с директориями, реализованных через системные вызовы. Несмотря на то что директории - это файлы, логика работы с ними отличается от логики работы с обычными файлами и определяется природой этих объектов, предназначенных для поддержки структуры файлового архива. Совокупность системных вызовов для управления директориями зависит от особенностей конкретной ОС. Напомним, что операции над каталогами являются прерогативой ОС, то есть пользователь не может, например, выполнить запись в каталог начиная с текущей позиции. Рассмотрим в качестве примера некоторые системные вызовы, необходимые для работы с каталогами [ Таненбаум, ]. Очевидно, что создание и удаление файлов предполагает также выполнение соответствующих файловых операций. Имеется еще ряд других системных вызовов, например связанных с защитой информации. Итак, файловая система представляет собой набор файлов, директорий и операций над ними. Имена, структуры файлов, способы доступа к ним и их атрибуты - важные аспекты организации файловой системы. Обычно файл представляет собой неструктурированную последовательность байтов. Главная задача файловой системы - связать символьное имя файла с данными на диске. Большинство современных ОС поддерживает иерархическую систему каталогов или директорий с возможным вложением директорий. Безопасность файловой системы, базирующаяся на ведении списков прав доступа, - одна из важнейших концепций ОС. Главная О нас Обратная связь. Автоматизация Автостроение Антропология Археология Архитектура Астрономия Предпринимательство Биология Биотехнология Ботаника Бухгалтерский учет Генетика География Геология Государство Демография Деревообработка Журналистика и СМИ Зоология Изобретательство Иностранные языки Информатика Информационные системы Искусство История Кинематография Кораблестроение Кулинария Культура Лексикология Литература Логика Маркетинг Математика Математический анализ Материаловедение Машиностроение Медицина Менеджмент Металлургия Метрология Механика ОБЖ Охрана Труда Педагогика Политология Правоотношение Программирование Производство Промышленность Психология Радио Разное Социология Спорт Статистика Строительство Теология Технологии Туризм Усадьба Физика Физиология Философия Финансы Химия Черчение Экология Экономика Электротехника. Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы.


Основные проблемы развития экономики
Настольная игра фиксики правила
Структура соборного уложения 1649 г
Характеристика растения пшеница
Убрать драгоценный камень
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment