Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Файловая система
понятие файла Файл – логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область. Файл служит учетной единицей информации в операционной системе.
его основные характеристики и средства их просмотра Каждый файл имеет свое индивидуальное имя. Да не простое, а составное — из двух частей. Собственно имя — название файла — и идентификатор, определяющий его тип, называемый расширением.
Имя файла чаще всего может быть выбрано произвольно самим пользователем. Скажем, вы создали файл-документ с текстом своего договора с фирмой. Вы можете назвать этот файл «Договор» или «Договор с фирмой» или вообще «Апрельские тезисы».
Расширение, наоборот, жестко привязано к типу файла и изменять его противопоказано. Обычно расширение состоит из трех (редко — изчетырех) букв и отделено от имени файла точкой. Например, файл, в котором хранится эта книга, называется
Есть у файла и еще один признак, называемый атрибутом. некоторые из этих атрибутов: Скрытый (Hidden) — файлы с этими атрибутами обычно не видны пользователю. Для перестраховки — как правило, файлы эти весьма важные для функционирования системы. Только для чтения (Read-Only) — а вот эти файлы всегда открыты любопытному взору.. Но и только. Изменить их содержание нельзя — по крайней мере, без специального команды пользователя, дабы последний был полностью уверен в том, что именно он делает, Системный (System). Этим атрибутом, как особым знаком отличия, отмечены самые важные файлы в операционной системе, отвечающие за загрузку компьютера. Их повреждение или удаление всегда влечет за собой самые тяжкие последствия — поэтому щедрый компьютер, не скупясь, «награждает» их заодно и двумя предыдущими атрибутами — «только для чтения» и «скрытый». Архивный (Archive) Этот атрибут устанавливается обычно во время работы с файлом, при его изменении. По окончании сеанса работы он, как правило, снимается.
форматы (типы) файлов типов файлов • Исполняемые файлы (программы). • Файлы конфигурации, содержащие параметры, необходимые для работы программы. • Файлы-библиотеки, содержащие описания типовых процедур, которые могут использоваться сразу несколькими программами. •Документы — т. е. некие совокупности информации, создаваемые пользователем (или компьютером) с помощью программ. И так далее. Как правило, пользователь непосредственно работает лишь с двумя типами файлов: программами и документами. Первые используются, чтобы создавать вторые.
Один и тот же физический файл можно по-разному представить в программе * типизированные файлы, * текстовые файлы, * нетипизированные файлы Атрибуты файлов. Для каждого файла соответствующая ему запись в каталоге содержит следующие атрибуты: “только для чтения”-предохраняет файл от изменений;(для изменения и удаления необходимо снять данный атрибут) “скрытый”-или “системный” “архивный”-устанавливается при создании файла.
каталоги Имена файлов регистрируются на дисках в каталогах(или директориях). Каталог - это специальное место на диске, в котором хранятся имена файлов, сведения о размере файлов, времени их последнего обновления, атрибуты (свойства) файлов и т.д. Если в каталоге хранится имя файла, то говорят, что этот файл находится в данном каталоге. На каждом диске может быть несколько каталогов. В каждом каталоге может быть много файлов, но каждый файл всегда регистрируется только в одном каталоге. Все каталоги на самом деле являются файлами специального вида. Каждый каталог имеет имя, и он может быть зарегистрирован в другом каталоге. Требования к именам каталогов те же, что к именам файлов. Как правило расширение имени для каталогов не используются. На каждом диске имеется один главный или корневой каталог. В нем регистрируются файлы и подкаталоги (каталоги 1го уровня). В каталогах 1го уровня регистрируются файлы и каталоги 2-го уровня и т.д. Получается иерархическая древообразная структура каталогов на диске.
В русскоязычной литературе по DOS/Windows каталоги обычно именуются директориями, а в последнее время в обиход вошел термин "папка" (по английски folder). Директорий - это область памяти на диске, выделяемая в процессе его форматирования. Диpектоpий представляет собой таблицу, куда заносятся данные о хpанящихся на диске файлах. Каждому файлу в диpектоpии соответствует одна запись.Запись директория включает следующую инфоpмацию: полное имя файла (имя и pасшиpение), дату и время его создания или последней коppектиpовки, объем занимаемой памяти в байтах, а также некотоpую дополнительную информацию, используемую пpи обслуживании файла операционной системой. Когда вы используете файл не из текущего каталога, необходимо указать, в каком каталоге этот файл находится т.е. указать путь к файлу. Путь- это последовательность из имен каталогов или символов «..», разделенных символом «/». Этот путь задает маршрут от текущего каталога или от корневого каталога диска к тому каталогу, в котором находится нужный файл. Если путь начинается с символа «/», то маршрут вычисляется от корневого каталога диска, иначе –от текущего каталога. Каждое имя каталога в пути соответствует входу в подкаталог с таким именем, «..» соответствует входу в надкаталог.
Итак, каждый файл входит в какой-либо каталог, который, в свою очередь, включен в каталог более высокого уровня, и так далее. Вплоть до самого высокого каталога, не вполне логично именуемого корневым, за которым зарезервирован символ /. Вся эта конструкция называется деревом файловой системы (хотя на иллюстрациях в большинстве книжек это дерево растет обычно сверху вниз), файловой системой просто (как скоро станет ясным, это - один из самых многозначных терминов во всей околокомпьютерной литературе) или, наконец, файловой иерархией (т.е. иерархией файлов и каталогов) Корневому каталогу файловой системы всегда присваивается идентификатор 2. Очевидно, что он не имеет родительского каталога - выше него в файловой иерархии не лежит ничего.
действия над файлами в операционной системе и приложениях Что можно делать с файлом после его создания? В первую очередь просматривать, или читать (r - read). Во вторую очередь, файл можно изменить (дописать, исправить, переименовать, переместить). Таким образом, мы можем говорить о возможности записи (w - write) в файл. Если файл является программой, то его содержимое представляет собой команды для процессора, выполнение которых приводит к тому или иному желаемому (мы надеемся) эффекту. Другими словами, некоторые файлы можно исполнять (x - execution).
Право чтения, записи и выполнения являются основными правами доступа к файлам, однако, существуют еще дополнительные атрибуты, с помощью которых можно управлять правами доступа к файлам (о них будет сказано ниже).
Во многих операционных системах операции над файлами имеют много общего, хотя отличаются по форме выражения требований. Общие операции над файлами можно разделить на три группы: 1) операции над файлами как над единым целым; 2) операции для обмена данными между файлом и программой, инициирующей обмен; 3) служебные операции.
К первой группе относятся следующие файловые операции: открытие файла, закрытие файла, копирование файла, объединение файлов, перемещение файла, удаление файла. Операции открытия и закрытия файла являются наиболее важными среди операций первой группы, поэтому рассмотрим их подробно. Для процесса, который желает работать с файлом, файл выступает как ресурс, который необходимо получить, прежде чем начать с ним работать. Поэтому пользователь обязан выполнить операцию открытия файла в своей программе, прежде чем начать выполнять с файлом некоторые допустимые действия. Действия, выполняемые операционной системой при обработке операции открытия файла, чрезвычайно разнообразны и объемны. По отношению к другим операциям над файлами операция открытия файла является самой длительной операцией, обеспечивающей возможность выполнения последующих действий над файлом достаточно быстро (в предположении их частого выполнения). Действия по открытию файла связаны с проведением подготовительных работ в составе файловой сис- темы к дальнейшему взаимообмену между данными и программой или по управлению файлом. Одними из основных являются действия по подготовке к пересылке информации, которые осуществляются средствами программного или аппаратного канала. Чтобы составить программу для работы канала, система должна располагать информацией о соответствующих характеристиках открываемого файла. Прежде всего необходимо знать его месторасположение. Поэтому, если файл каталогизирован, то осуществляется обращение к системе каталогов, находится и считывается необходимая информация о файле (в ката- логе или дескрипторе). Если система не обнаруживает при поиске требуемый файл, то она выдает об этом соответствующее сообщение. Характерным приемом, применяемым при открытии файла, является копирование учетной информации о нем из каталога или из дескриптора файла в некоторую структуру данных (различную в разных файловых системах), расположенную в первичной памяти. Это позволяет далее оперативно работать с учетной информацией при организации фактического доступа пользователя к файлу без многократного обращения к внешней памяти. Операция закрытия файла противоположна по смыслу операции открытия. Ее назначение – разорвать логическую связь между файлом и соответствующей программой.
Ко второй группе относятся следующие операции над файлами: чтение составных элементов файла, запись составных элементов файла. Если файловая система поддерживает файлы с различной структурой, то команды записи и чтения будут разными по форме и содержанию. Можно использовать асинхронный и синхронный способ доступа к данным. Синхронный способ чтения или записи данных в файл возможен только в случае, если файл имеет последовательную структуру. После выдачи запроса, реализованного в виде макрокоманды, на ввод или вывод одной логической записи (минимально различимый элемент файла) программный процесс переводится системой принудительно в состояние ожидания. Перевод программного процесса обратно в активное состояние операционная система выполняет только тогда, когда файловая система ОС закончит пересылку данных между файлом и указанной в макрокоманде областью первичной памяти. При асинхронном способе файловая система после восприятия запроса от программного процесса на ввод или вывод данных передает управление программному процессу без перевода его в состояние ожидания. Вместе с тем файловая система предоставляет программному процессу средства для последующей проверки окончания операции ввода-вывода. Используя асинхронный способ, можно работать с любой структурой файлов, допустимой в файловой системе. Состав операций, составляющих третью группу, в разных файловых системах различен. Например, к этой группе относят операции по переименованию файлов, изменению атрибутов файлов, управлению правами доступа к файлам, созданию и удалению каталогов. К этой же группе можно отнести операции, обеспечивающие просмотр и печать содержимого каталогов и файлов, поиска файлов и каталогов по дереву каталогов и т.п.
В зависимости от операционной системы те или иные операции могут отсутствовать.
Обычно выделяют дополнительные сущности, связанные с работой с файлом: хэндлер файла, или дескриптор (описатель). При открытии файла (в случае, если это возможно), операционная система возвращает число (или указатель на структуру), с помощью которого выполняются все остальные файловые операции. По их завершению файл закрывается, а хэндлер теряет смысл. файловый указатель. Число, являющееся смещением относительно нулевого байта в файле. Обычно по этому адресу осуществляется чтение/запись, в случае, если вызов операции чтения/записи не предусматривает указание адреса. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных (записанных) байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл не заботясь о его размере. файловый буфер. Операционная система (и/или библиотека языка программирования) осуществляет кэширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер сбрасывается. режим доступа. В зависимости от потребностей программы, файл может быть открыт на чтение и/или запись. Кроме того, некоторые операционные системы (и/или библиотеки) предусматривают режим работы с текстовыми файлами. Режим обычно указывается при открытии файла. режим общего доступа. В случае многозадачной операционной системы возможна ситуация, когда несколько программ одновременно хотят открыть файл на запись и/или чтение. Для регуляции этого существуют режимы общего доступа, указывающие на возможность осуществления совместного доступа к файлу (например, файл в который производится запись может быть открыт для чтения другими программами — это стандартный режим работы log-файлов). Операции Открытие файла (обычно в качестве параметров передается имя файла, режим доступа и режим совместного доступа, а в качестве значения выступает файловый хэндлер или дескриптор), кроме того обычно имеется возможность в случае открытия на запись указать на то, должен ли размер файла изменяться на нулевой. Закрытие файла. В качестве аргумента выступает значение, полученное при открытии файла. При закрытии все файловые буферы сбрасываются. Запись — в файл помещаются данные. Чтение — данные из файла помещаются в область памяти. Перемещение указателя — указатель перемещается на указанное число байт вперёд/назад или перемещается по указанному смещению относительно начала/конца. Не все файлы позволяют выполнение этой операции (например, файл на ленточном накопителе может не «уметь» перематываться назад). Сброс буферов — содержимое файловых буферов с незаписанной в файл информацией записывается. Используется обычно для указания на завершение записи логического блока (для сохранения данных в файле на случай сбоя). Получение текущего значения файлового указателя. [править] Операции, не связанные с открытием файла
Операции, не требующие открытия файла оперируют с его «внешними» признаками — размером, именем, положением в дереве каталогов. При таких операциях невозможно получить доступ к содержимому файла, файл является минимальной единицей деления информации.
В зависимости от файловой системы, носителя информации, операционной системой часть операций может быть недоступна. Список операций с файлами Открытие для изменения файла Удаление файла Переименование файла Копирование файла Перенос файла на другую файловую систему/носитель информации Создание симлинка или хардлинка Получение или изменение атрибутов файла [править] Типы файлов
физический смысл операций с файлами Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми. Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.
Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых десяти полях адреса. Если размер файла больше 10 блоков, то следующее 11-е поле содержит адрес блока, в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, содержащего 128 номеров блоков, которые содержат по 128 номеров блоков данного файла. И, наконец, если файл больше 10+128+128(128, то используется последнее 13-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего размер максимум 10+ 128 + 128(128 + 128(128(128.
Date: 2015-09-05; view: 666; Нарушение авторских прав |