АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
Организация доступа к файлам. Иерархический доступ к файлам. Понятие атрибутов доступа. Организация доступа к файлам различных ОС
2.2 Организация доступа к файлам.
| Поскольку файлы, в отличие от данных других типов, содержатся в так называемой вторичной памяти (т.е. на дисках), для доступа к файлам недостаточно только объявить файловую переменную. При объявлении файловой переменной не указывается ни имя файла, ни в каком каталоге он содержится. Для того чтобы конкретный файл стал доступным, его необходимо как-то связать (или ассоциировать) с ранее объявленной файловой переменной. Такое связывание осуществляется с помощью процедуры Assign, которая является стандартной процедурой Turbo Pascal.
|
|
| Заголовок процедуры Assign выглядит следующим образом:
|
| Assign (<имя файловой переменной>, <имя файла>); где <имя файловой переменной> – имя файловой переменной любого вида, с которой ассоциируется файл с диска, имеющий имя <имя файла>. Обобщенный вид имени файла, которое строится по правилам имен операционной системы MS DOS, выглядит так: <диск>:\<путь>\<имя_файла>
| В качестве параметра процедуры Assign вместо имени файла с диска можно использовать зарезервированное за некоторым устройством имя. В MS DOS основным аппаратным средствам ПК присвоены символические имена, которые можно использовать в операциях ввода/вывода вместо имен файлов.
|
| CON – символическое имя консоли. Под консолью подразумеваются одновременно и клавиатура, и монитор компьютера. Логическое имя CON можно указать для процедуры Assign вместо имени файла; когда информацию требуется ввести с клавиатуры или вывести на экран. Система по выполняемой операции определяет, с клавиатурой или монитором ей следует иметь дело в том или ином случае. Вывести данные можно на экран, но не на клавиатуру, а ввести только с клавиатуры.
|
| PRN – символическое имя принтера. Его можно указать в качестве параметра процедуры Assign (вместо имени файла), когда требуется распечатать информацию на принтере. Если к одному компьютеру подключено несколько принтеров, в MS DOS для принтеров предусмотрены следующие символические имена: LPT1, LPT2, LPT3, (причем имена PRN и LPT1 взаимозаменяемые или синонимы).
|
|
| До выполнения над файлом каких-либо действий всегда необходимо обратиться к процедуре Assign. После вызова процедуры Assign, связь между указанными файлом и файловой переменной существует вплоть до завершения работы программы, либо пока к этой файловой переменной снова не будет применена процедура Assign.
2.3 Иерархический доступ к файлам.
К файловой системе имеют доступ служебные и прикладные программы, для чего во всех языках программирования, с помощью которых они реализованы, имеются специальные процедуры.
Рассмотрим процедуру доступа к последовательным файлам в FAT-системе. Она реализована следующим образом. Область данных диска рассматривается как последовательность пронумерованных кластеров. Каждому кластеру в FAT ставится в соответствие элемент FAT с тем же номером. Например, элемент 100 FAT соответствует 100-му кластеру диска. В каталоге, содержащем сведения о файлах на дисках, для каждого файла указан номер первого кластера, занимаемого файлом. Этот номер называется точкой входа в FAT.
Чтобы прочитать данные о файле, система обращается в каталог, находит точку входа соответствующего файла и затем обращается в FAT. Войдя в FAT по точке входа, ОС читает соответствующую ячейку FAT, в которой записан номер следующего занимаемого файлом кластера. Далее ОС снова обращается в FAT, где читает номер следующего кластера, и так происходит до тех пор, пока ячейка не будет содержать специального кода FFF, говорящего системе, что этот кластер – последний кластер файла.
В общем случае конец последовательного файла принято обозначать как EOF (End Of File). Аналогичный идентификатор (EOF) имеет переменная, которой ОС присваивает значение истина или ложь, в зависимости от того, достигнут ли конец файла. Значение этой переменной отслеживает прикладная программа, осуществляющая обработку данного файла.
Фактически большинство файлов, создаваемых обычным пользователем ПК, являются последовательными. Примерами последовательных файлов являются аудиофайлы, графические файлы, файлы, содержащие программы, текстовые документы.
Основным недостатком последовательных файлов является то, что они не подходят для приложений, требующих произвольного доступа к записям, например, к элементам базы данных. Для извлечения из последовательного файла единственной записи необходимо осуществлять в нем последовательный поиск, что требует лишних затрат времени. Одним из решений проблемы является создание для последовательного файла индекса, в результате чего получится индексированный файл.
Индекс файла состоит из списка элементов, каждый из которых содержит значение идентифицирующей метки записи, за которой следует указание о местоположении данной записи. Для извлечения нужной записи индекс файла предварительно пересылается в оперативную память, где в нем производится поиск соответствующего элемента. Как только требуемый элемент будет найден, нужную запись можно будет считать с диска.
Таким образом, индекс обеспечивает прямой доступ к отдельным записям файла, т.е. определенная запись может быть считана без просмотра других записей файла.
Некоторые прикладные программы для ПК, включая электронные таблицы и системы баз данных, создают индексированные файлы в процессе своей деятельности. Для разработки таких прикладных программ многие языки программирования третьего поколения предлагают специальные процедуры создания индексированных файлов и работы с ними.
Методом, обеспечивающим прямой доступ к записям файла без использования каких-либо дополнительных структур типа индекса, является хеширование. Процесс хеширования в общем виде можно описать следующим образом. Пространство хранения файла делится на несколько сегментов. Записи распределяются по этим сегментам согласно некоторому алгоритму, называемому алгоритмом хеширования.
Соответственно, запись можно извлечь, применив алгоритм хеширования к значению в ее ключевом поле, и считать запись соответствующего сегмента. Некоторые языки создания приложений также поддерживают такой подход с помощью встроенных функций.
2.4 Понятие атрибутов доступа.
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл — это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и т. д.). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
Тип файла
| Расширение
| Исполняемые программы
| exe, com
| Текстовые файлы
| txt, rtf,
| Графические файлы
| bmp, gif, jpg, png, pds
| Web-страницы
| htm, html
| Звуковые файлы
| wav, mp3, midi, kar, ogg
| Видеофайлы
| avi, mpeg
| Код (текст) программы на языках программирования
| bas, pas, cpp
| В различных операционных системах существуют различные форматы имен файлов. В операционной системе MS-DOS собственно имя файла должно содержать не более восьми букв латинского алфавита и цифр, а расширение состоит из трех латинских букв, например: proba.txt
В операционной системе Windows имя файла может иметь до 255 символов, причем допускается использование русского алфавита, например: Единицы измерения информации.doc |
Файловая система.
На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется установленной файловой системой.
Файловая система - это система хранения файлов и организации каталогов.
Для дисков с небольшим количеством файлов (до нескольких десятков) удобно применять одноуровневую файловую систему, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов.
Если на диске хранятся сотни и тысячи файлов, то для удобства поиска файлы организуются в много уровневую иерархическую файловую систему, которая имеет «древовидную» структуру.
Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Путь к файлу.
Для того чтобы найти файл в иерархической файловой структуре необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых находится данный нужный файл.
Например, путь к файлам на рисунке можно записать так:
C:\basic\
C:\Музыка\Пикник\
Полное имя файла.
Путь к файлу вместе с именем файла называют полным именем файла.
Пример полного имени файлов:
C:\basic\prog123.bas
C:\Музыка\Пикник\Иероглиф.mp3 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Поиск по сайту:
|