Сделай Сам Свою Работу на 5

ОРГАНИЗАЦИЯ ФАЙЛОВ И ДОСТУП К НИМ

ОСНОВНЫЕ ФУНКЦИИ И ИНТЕРФЕЙС ФАЙЛОВОЙ СИСТЕМЫ

Определение и функции файловой системы

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

Историческим шагом стал переход к использованию централизованных систем управленияфайлами.

Система управления файлами:

¶ берет на себя распределение внешней памяти,

¶ отображение имен файлов в адреса внешней памяти

¶ обеспечение доступа к данным.

Файловая система (ФС) - это часть операционной системы, назначение которой состоит в том, чтобы

§ организовать эффективную работу с данными, хранящимися во внешней памяти;

§ обеспечить пользователю удобный интерфейс при работе с такими данными.

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

Непосредственное взаимодействие с диском - прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска.

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

Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.

Основная идея использования внешней памяти состоит в следующем.

· ОС делит память на блоки фиксированного размера, например, 4096 байт.

· Файл, обычно:

¶ представляет собой неструктурированную последовательность однобайтовых записей,

¶ хранится в виде последовательности блоков (не обязательно смежных);

· каждый блок хранит целое число записей.

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



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

Индекс файла состоит:

· из списка элементов,

· каждый элемент содержит номер блока в файле и сведения о местоположении данного блока.

Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла.

Зная размер блока, легко вычислить номер блока, содержащего текущую позицию.

Адрес нужного блока диска можно затем извлечь из индекса файла.

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

Файловая система позволяет при помощи системы справочников (каталогов, директорий) связать уникальное имя файла с блоками вторичной памяти, содержащими данные файла.

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

В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги.

С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл.

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

Основные функции файловой системы

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.

2. Распределение внешней памяти между файлами.

3. Обеспечение надежности и отказоустойчивости.

4. Обеспечение защиты от несанкционированного доступа.

5. Обеспечение совместного доступа к файлам, так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.

6. Обеспечение высокой производительности.

Иногда говорят, что файл - это поименованный набор связанной информации, записанной во вторичную память.

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

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

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

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

В современных компьютерах обращение к диску осуществляется примерно в 100 000 раз медленнее, чем обращение к оперативной памяти.

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

Вопросы для проверки

1. Объясните суть идеи использования внешней памяти.

2. Объясните смысл файловой системы.

3. Основные функции файловой системы.

4. Что такое файл с точки зрения ФС?

Общие сведения о файлах

Имена файлов

Файлы представляют собой абстрактные объекты.

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

Когда процесс создает файл, он дает ему имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.

Правила именования файлов зависят от ОС.

§ Многие ОС поддерживают имена из двух частей (имя + расширение),

Например:

progr.c - файл содержит текст программы на языке Си

autoexec.bat - файл содержит команды интерпретатора командного языка.

§ Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями.

§ Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла.

§ В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов).

Типы файлов

Важный аспект организации файловой системы и ОС - следует ли поддерживать и распознавать типы файлов. Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла.

Ø Основные типы файлов:

§ регулярные (обычные) файлы

§ директории (справочники, каталоги).

Ø Обычные файлы содержат пользовательскую информацию.

Ø Директории - системные файлы, поддерживающие структуру файловой системы.

Ø В каталоге содержится перечень входящих в него файлов и устанавливается соответствие между файлами и их характеристиками (атрибутами).

¶ Внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти.

¶ Для пользователей обеспечивается представление файла в виде линейной последовательности байтов.

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

Так, например, клавиатура обычно рассматривается как текстовый файл, из которого компьютер получает данные в символьном формате.

Поэтому иногда к файлам приписывают другие объекты ОС, например:

- специальные символьные файлы

- специальные блочные файлы,

- именованные каналы и сокеты, имеющие файловый интерфейс.

Далее речь пойдет главным образом об обычных файлах.

Ø Обычные (или регулярные) файлы:

§ реально представляют собой набор блоков (возможно, пустой) на устройстве внешней памяти, на котором поддерживается файловая система.

§ могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную (бинарную) информацию.

Ø Текстовые файлы содержат символьные строки, которые можно распечатать, увидеть на экране или редактировать обычным текстовым редактором.

Ø Нетекстовые, или бинарные, файлы. Обычно они имеют некоторую внутреннюю структуру.

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

Бинарный файл может быть архивным файлом. Типизация файлов не слишком строгая.

Ø Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями.

Например,

файлы с расширениями .c, .pas, .txt - ASCII-файлы,

файлы с расширениями .exe - выполнимые,

файлы с расширениями .obj, .zip - бинарные и т. д.

Атрибуты файлов

Кроме имени ОС часто связывают с каждым файлом и другую информацию, например дату модификации, размер и т. д.

Эти другие характеристики файлов называются атрибутами.

Список атрибутов в разных ОС может варьироваться.

Обычно он содержит следующие элементы:

¶ основную информацию (имя, тип файла),

¶ адресную информацию (устройство, начальный адрес, размер),

¶ информацию об управлении доступом (владелец, допустимые операции)

¶ информацию об использовании (даты создания, последнего чтения, модификации и др.).

Список атрибутов обычно хранится в структуре директорий или других структурах, обеспечивающих доступ к данным файла.

Вопросы для проверки

1. Правила именования файлов в Windows.

2. Назовите типы файлов и их характеристики.

3. Атрибуты файлов и их назначение.

ОРГАНИЗАЦИЯ ФАЙЛОВ И ДОСТУП К НИМ

Программист воспринимает файл в виде набора однородных записей.

Запись- это наименьший элемент данных, который может быть обработан как единое целое прикладной программой при обмене с внешним устройством.

Причем в большинстве ОС размер записи равен одному байту.

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

Поэтому записи объединяются в блоки для вывода и разблокируются - для ввода.

ОС поддерживают несколько вариантов структуризации файлов:

Ø Последовательный файл

Простейший вариант - так называемый последовательный файл, то есть файл является последовательностью записей.

Поскольку записи, как правило, однобайтовые, файл представляет собой неструктурированную последовательность байтов.

Обработка файлов предполагает последовательное чтение записей от начала файла, причем конкретная запись определяется ее положением в файле.

Такой способ доступа называется последовательным (модель ленты).

Если в качестве носителя файла используется магнитная лента, то так и делается. Текущая позиция считывания может быть возвращена к началу файла (rewind).

Ø Файл прямого доступа

В реальной практике файлы хранятся на устройствах прямого (random) доступа,

например, на дисках,

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

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

в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен.

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

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

Таким образом, файл, состоящий из однобайтовых записей на устройстве прямого доступа, - наиболее распространенный способ организации файла.

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

В большинстве языков высокого уровня предусмотрены операторы посимвольной пересылки данных в файл или из него.

Подобную логическую структуру имеют файлы во многих файловых системах.

Например, в файловых системах ОС Unix и MS-DOS.

ОС не осуществляет никакой интерпретации содержимого файла.

Эта схема обеспечивает максимальную гибкость и универсальность.

С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы.

В частности, многие СУБД хранят свои базы данных в обычных файлах.



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.