Предназначен для обработки и упорядоченной записи на буферные диски информации в виде файлов
В практике программирования часто встречаются задачи, решение которых требует большого количества относительно мало изменяемых во времени данных. Ввод данных с экрана заново при каждом счете для этих задач очень трудоемок, а часто просто невозможен из-за временных ограничений. Для решения этой проблемы в языках программирования была реализована концепция файлов, что позволяет после набора информации на клавиатуре запоминать ее на некотором носителе и обращаться к ней непосредственно из обрабатывающих программ при каждом счете.
Напомним, что файл — это структурированный тип данных, состоящий из компонентов одного типа. Файлы записей часто называют базой данных и относят к так называемым типизированным файлам. Типизированный Файл с точки зрения языка ПАСКАЛЬ — это структурированный тип данных, состоящий из последовательности компонентов одного типа и одной длины. Для типизированных файлов файловый тип и файловую переменную задают с помощью следующей синтаксической конструкции:
где типом компонент файла данных может быть любой тип Паскаля, кроме файлов, но чаще всего является комбинированный тип RECORD (запись).
Определение типа файлов начинается ключевыми словами FILE OF, после которых задается тип компонентов файла, который описывает, что содержит данный файл. Далее следует идентификатор предварительно определенного типа файла. Число компонентов, называемое длиной файла, определением типа файла не фиксируется.
Идентификатор файловой переменной определяет имя файла в программе. Можно в разделе VAR определить несколько файловых переменных, что дает возможность программе работать одновременно с несколькими файлами одного или различных типов. В качестве примера приведем фрагмент программы, работающей с файлом Fstd базы данных, хранящим сведения о студентах:
В этом примере имя типа файла в явном виде не используется. Для описания файла использован второй способ, так называемое неявное определение файлового типа непосредственно в разделе VAR:
где F – переменная для доступа к файлу (файловая переменная). Вторая форма описания файлов проще запоминается и не вызывает ошибок при программировании. Переменные файлового типа нельзя использовать в выражениях. Их используют только в качестве аргументов процедур и функций, предназначенных для работы с файлами.
- закрыт для чтения и записи;
- открыт для записи, закрыт для чтения;
- открыт для чтения закрыт для записи компонент;
- открыт для чтения, открыт для записи компонент.
Доступ к компонентам файла осуществляется через указатель файла (буферную переменную). При чтении или записи этот указатель перемешается к следующему компоненту и делает его доступным для обработки. Буферная переменная имеет отличие от всех других переменных: она не может участвовать в выражения и операторах присваивания.
Для типизированных файлов, к которым относятся и файлы записей, используют два способа доступа к компонентам файла: последовательный и прямой (произвольный).
Исторически это разделение вызвано наличием устройств с последовательным (стримеры) и прямым доступом (магнитные диски). При последовательном способе доступа поиск начинается с первой записи файла и проверяется по очереди каждый компонент, пока не будет найден нужный (нужные). Произвольный способ доступа позволяет обращаться к компоненту по его порядковому номеру в файле. Если файлы расположены на магнитных дисках, то допускается значительная гибкость при работе с компонентами. Например, компоненты последовательно организованного файла могут обрабатываться с помощью прямого доступа компоненты произвольного файла — последовательно.
Однако программист самого начала на основе анализа структуры данных, требований к функциям программы и существующих ограничений должен четко уяснить, какой способ доступа к компонентам ему необходимо выбрать. От этого во многом зависит успех решения задачи и эффективность работы разрабатываемой программы.
Концептуальная схема файла приведена на рис.1
На рис. 1. а) представлен файл, с именем S, содержащий N компонент (записей). А на рис. 1. б) изображен пустой файл, в котором нет ни одной компоненты, только название и метка конца файла EOF.
Каждому файлу пользователя должно быть присвоено уникальное имя (в рамках каталога, в котором этот файл хранится), которое используется при обращении к этому файлу. Имя должно соответствовать стандарту MS-DOS и состоит из собственно имени (от 1 до 8 символов: букв или цифр) и необязательного типа файла (до 3-х символов). Если тип файла присутствует, он отделяется от первой части имени точкой. Тип файла присваивается обычно в мнемонической зависимости от содержимого файла.
Пример имени файла: STUDENTS.DAT
Для обращения к файлу необходимо указать путь, то есть имя диска, на котором расположен нужный файл (А, В, С, D, Е. ), корневой директорий и поддиректории, если они есть. Пример пути и имени файла, расположенного в корневом каталоге на диске:
Встроенные процедуры и функции обработки файлов
Процедуры осуществляют все необходимые действия по организации файлов и доступу к компонентам файлов. Процедуры и функции для работы с файлами записей весьма похожи на аналогичные процедуры и функции для текстовых файлов.
Для организации доступа к файлу записей следует объявить файловую переменную F следующим образом:
Assign (F, ST) — присвоить в программе имя файлу. Имя файла, которое является значением ST (строка текста типа String), ставится в соответствие с переменной файлового типа F. С момента выполнения процедуры Assign все действия над этой переменной будут эквивалентны действиям над файлом с именем, определяемым значением ST.
Rewrite (F) — создать новый пустой файл. Эта процедура служит для создания нового файла на диске. Имя файла должно быть предварительно определено в процедуре Assign. Если на диске уже был файл с таким именем, он уничтожается. Указатель файла устанавливается в первую позицию (с номером 0). Фактически файл не содержит ни одного компонента, он только подготовлен для загрузки (см. схему на рис. 2).
Reset (F) — установить указатель в начало файла. Выполнение процедуры обеспечивает установку указателя файла на первый компонент (запись с номером 0). Если эта процедура применена к несуществующему в указанном каталоге файлу, возникает ошибка ввода-вывода.
Read (F, Z) — читать текущий компонент из файла. С помощью этой команды производится чтение из дискового файла, определенного файловой переменной F значений Z1, Z2. ZN. После завершения выполнения процедуры, то есть чтения текущего компонента в переменную Z, указатель файла устанавливается на следующий компонент (запись).
Write (F, Z) — записать новый компонент в файл. Переменные Z1, Z2. ZN записываются в дисковый файл, определенный переменной F. После выполнения процедуры указатель перемещается к следующему компоненту.
Seek (F, к) — установить указатель на компонент Zk с порядковым номером k в файле. Указатель перемещается к компоненту с номером k, начиная счет с нуля, то есть первый компонент имеет номер 0, второй — 1, третий — 2 и т. д.
Close(F) — закрыть файл. Выполнение процедуры обеспечивает закрытие файлла, назначенного переменной F. Если файл был открыт, никогда не следует выходить из программы, предварительно не закрыв его.
Erase(F) — уничтожить файл. Выполнение процедуры вызывает уничтожение файла, назначенного переменной F. Если производится уничтожение открытого файла, его необходимо предварительно закрыть с помощью процедуры Close.
Rename(F, ST) — переименовать файл. Выполнение процедуры вызывает занесение в каталог диска (директорий) нового имени файла, определенного перемен ной F. Новое имя определяется значением текста в строке ST.
Truncate (F) — уничтожить все компоненты файла, начиная с места текущего положения указателя, и подготовить файл для записи.
Помимо перечисленных выше процедур следует использовать перечисленные ниже функции, которые выполняют дополнительные действия, облегчающие программисту обслуживание уже существующих файлов.
Eof (F) — проверить маркер "конец файла". Значение функции равно TRUE если указатель файла находится сразу за последним компонентом файла, и FALSE в любом другом случае.
FilePos (F) — определить текущий номер компонента. Функция возвращает целочисленное значение, равное номеру компонента, на котором установлен в данный момент указатель файла, соответствующего переменной F. Отсчет номера компонента начинается с нуля.
FileSize (F) — определить размер файла. Функция возвращает целочисленное значение, равное количеству компонентов файла, соответствующего переменной F. Эта функция обычно используется для проверки, содержит файл какую-либо информацию или является пустым. Если FileSize (F) = 0, то файл пуст, в другом случае файл содержит данные.
IOResult (F) — проверить результат выполнения последней операции ввода вывода на наличие ошибок. Если ошибка обнаружена, функция возвращает номер ошибки, если ошибок нет, возвращает значение 0. Эта функция используется при пассивном состоянии директивы для организации обработки ошибок ввода вывода самим пользователем. Покупайте качественные женские часы наручные по доступным ценам. Если программа для обработки ошибок отсутствует, наличие ошибки ввода-вывода не вызывает прерывания программы и выполняется следующий оператор.
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл- это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла.Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и так далее). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
Таблица 1. Типы файлов и расширений
Тип файла | Расширения |
Программы | exe, com |
Текстовые файлы | txt, doc |
Графические файлы | bmp, д1Т,]рдидр |
Звуковые файлы | wav, mid |
Видеофайлы | avi |
Программы на языках программирования | bas, pas и др |
Файловая система.На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется используемой файловой системой.
Каждый диск разбивается на две области: область хранения файлов и каталог. Каталог содержит имя файла и указание на начало его размещения на диске.
Для дисков с небольшим количеством файлов (до нескольких десятков) может использоваться одноуровневая файловая система, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Такой каталог можно сравнить с оглавлением детской книжки, которое содержит только названия отдельных рассказов.
Таблица 2.Одноуровневый каталог
Имя файла | Номер начального сектора |
Файл_1 | |
Файл_2 | |
……. | |
Файл_112 |
Если на диске хранятся сотни и тысячи файлов, то для удобства поиска используется многоуровневая иерархическая файловая система, которая имеет древовидную структуру.
Начальный, корневой каталог содержит вложенные каталоги 1-го уровня, в свою очередь, каждый из последних может содержать вложенные каталоги 2-го уровня и так далее. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Файловая система— это система хранения файлов и организации каталогов.
Путь к файлу.Путь к файлу вместе с именем файла называют иногда полным именем файла.
Операции над файлами.В процессе работы на компьютере наиболее часто над файлами производятся следующие операции:
• копирование (копия файла помещается в другой каталог);
• перемещение (сам файл перемещается в другой каталог);
• удаление (запись о файле удаляется из каталога);
• переименование (изменяется имя файла).
Форматирование дисков.Для того чтобы на диске можно было хранить информацию, диск должен быть отформатирован, то есть должна быть создана физическая и логическая структура диска.
Формирование физической структуры диска состоит в создании на диске концентрических дорожек, которые, в свою очередь, делятся на секторы. Для этого в процессе форматирования магнитная головка дисковода расставляет в определенных местах диска метки дорожек и секторов.
После форматирования гибкого диска 3,5" его параметры будут следующими:
• информационная емкость сектора — 512 байтов;
• количество секторов на дорожке — 18;
• дорожек на одной стороне — 80;
Логическая структура гибких дисков. Логическая структура магнитного диска представляет собой совокупность секторов (емкостью 512 байтов), каждый из которых имеет свой порядковый номер (например, 100). Сектора нумеруются в линейной последовательности от первого сектора нулевой дорожки до последнего сектора последней дорожки.
На гибком диске минимальным адресуемым элементом является сектор.
При записи файла на диск будет занято всегда целое количество секторов, соответственно минимальный размер файла — это размер одного сектора, а максимальный соответствует общему количеству секторов на диске.
Файл записывается в произвольные свободные сектора, которые могут находиться на различных дорожках. Например, Файл_1 объемом 2 Кбайта может занимать сектора 34, 35 и 47, 48, а Файл_2 объемом 1 Кбайт — сектора 36 и 49.
Таблица 3. Логическая структура гибкого диска формата 3,5" (2-я сторона)
№ дорожки | № сектора |
…………………. |
Для того чтобы можно было найти файл по его имени, на диске имеется каталог, представляющий собой базу данных.
Запись о файле содержит имя файла, адрес первого сектора, с которого начинается файл, объем файла, а также дату и время его создания.
Таблица 4. Структура записей в каталоге
Имя файла | Адрес первого сектора | Объем файла, Кбайт | Дата создания | Время создания |
Файл 1 | 14 01 99 | 14 29 | ||
Файл 2 | 14 01 99 | 14 45 |
Полная информация о секторах, которые занимают файлы, содержится в таблице размещения файлов (FAT — File Allocation Table). Количество ячеек FAT соответствует количеству секторов на диске, а значениями ячеек являются цепочки размещения файлов, то есть последовательности адресов секторов, в которых хранятся файлы.
Для размещения каталога — базы данных и таблицы FAT на гибком диске отводятся секторы со 2 по 33. Первый сектор отводится для размещения загрузочной записи операционной системы. Сами файлы могут быть записаны, начиная с 34 сектора.
Виды форматирования. Существуют два различных вида форматирования дисков: полное и быстрое форматирование. Полное форматирование включает в себя как физическое форматирование (проверку качества магнитного покрытия дискеты и ее разметку на дорожки и секторы), так и логическое форматирование (создание каталога и таблицы размещения файлов). После полного форматирования вся хранившаяся на диске информация будет уничтожена.
Быстрое форматирование производит лишь очистку корневого каталога и таблицы размещения файлов. Информация, то есть сами файлы, сохраняется и в принципе возможно восстановление файловой системы.
Информационная емкость гибких дисков. Рассмотрим различие между емкостью неформатированного гибкого магнитного диска, его информационной емкостью после форматирования и информационной емкостью, доступной для записи данных.
Заявленная емкость неформатированного гибкого магнитного диска формата 3,5" составляет 1,44 Мбайт.
Рассчитаем общую информационную емкость отформатированного гибкого диска:
Количество секторов: N = 18 х 80 х 2 = 2880.
512 байт х N = 1 474 560 байт = 1 440 Кбайт -= 1,40625 Мбайт.
Однако для записи данных доступно только 2847 секторов, то есть информационная емкость, доступная для записи данных, составляет:
512 байт х 2847 = 1 457 664 байт = 1423,5 Кбайт = 1,39 Мбайт.
Логическая структура жестких дисков. Логическая структура жестких дисков несколько отличается от логической структуры гибких дисков. Минимальным адресуемым элементом жесткого диска является кластер, который может включать в себя несколько секторов. Размер кластера зависит от типа используемой таблицы FAT и от емкости жесткого диска.
На жестком диске минимальным адресуемым элементом является кластер, который содержит не сколько секторов.
Таблица FAT16 может адресовать 2 16 — 65 536 кластеров. Для дисков большой емкости размер кластера оказывается слишком большим, так как информационная емкость жестких дисков может достигать 150 Гбайт.
Например, для диска объемом 40 Гбайт размер кластера будет равен:
40 Гбайт/65536 = 655 360 байт = 640 Кбайт.
Файлу всегда выделяется целое число кластеров. При размещении на жестком диске большого количества небольших по размеру файлов они будут занимать кластеры лишь частично, что приведет к большим потерям свободного дискового пространства.
Эта проблема частично решается с помощью использования таблицы FAT32, в которой объем кластера принят равным 8 секторам или 4 килобайтам для диска любого объема.
В целях более надежного сохранения информации о размещении файлов на диске хранятся две идентичные копии таблицы FAT.
Преобразование FAT16 в FAT32 можно осуществить с помощью служебной программы Преобразование диска в FAT32, которая входит в состав Windows.
Мы рассмотрели файловую систему, имеющую название FAT, однако в последнее время все большую популярность приобретает файловая система NTFS (New Technology File System - файловая система операционных систем семейства Windows NT), которая, в частности, используется в Windows NT и Windows ХР.
Максимальный размер раздела NTFS в данный момент ограничен лишь размерами «жестких» дисков. Как и любая другая система, NTFS делит все полезное место на кластеры — блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую зону MFT (Master File Table). Это БД, представляющая собой общую файловую таблицу, строки которой соответствуют файлам тома NTFS, а столбцы - атрибутам файлов. Запись каких-либо других данных в эту область невозможна. Остальные 88 % диска является обычным пространством для хранения файлов.
Зона MFT поделена на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны ОС — они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей для надежности — они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу первый элемент MFT.
Дефрагментация дисков.Замедление скорости обмена данными может происходить в результате фрагментации файлов. Фрагментация файлов (фрагменты файлов хранятся в различных, удаленных друг от друга кластерах) возрастает с течением времени, в процессе удаления одних файлов и записи других.
Так как на диске могут храниться сотни и тысячи файлов в сотнях тысяч кластеров, то фрагментированность файлов будет существенно замедлять доступ к ним (магнитным головкам придется постоянно перемещаться с дорожки на дорожку) и в конечном итоге приводить к преждевременному износу жесткого диска. Рекомендуется периодически проводить дефрагментацию диска, в процессе которой файлы записываются в кластеры, последовательно идущие друг за другом.
Главное назначение носителей внешней памяти – долговременное хранение информации. Любая информация (текст, изображение, программа, видеофильм и т.д.) на внешнем носителе хранится в виде файла. Файл (file) – это поименованная область на диске, в которой хранится отдельный экземпляр информации определенного типа.
Файл характеризуется набором параметров (свойств) (имя, расширение, размер, дата создания, дата последней модификации, время создания и изменения) и атрибутами, используемыми операционной системой для его обработки ("архивный", "системный", "скрытый", "только для чтения", "каталог" и др.).
Файловая структура может быть одноуровневой – это простая последовательность файлов. Многоуровневая файловая структура – древовидный способ организации файлов на диске. При этом существуют специальные файлы, которые в одних операционных системах называют каталогами (directory), в других – папками, назначение которых – регистрация в них файлов (в том числе и других каталогов). Наличие поддержки каталогов в операционной системе позволяет выстроить иерархическую (многоуровневую, древовидную) организацию размещения файлов на носителе. В этом случае файлы, имеющие одинаковую природу (файлы операционной системы, документы, офисные программы, игровые программы, результаты расчетов, домашние задания, рисунки и т.д.), размещаются в отдельных каталогах. Такая структура хранения информации позволяет уверенно ориентироваться в принадлежности той или иной информации, особенно если учесть, что на современных носителях информации могут храниться тысячи, а то и десятки тысяч файлов! Работа с информацией была бы значительно затруднена, если бы она была беспорядочно размещена на носителе.
Любой носитель изначально имеет один каталог, который создается операционной системой без нашего участия, – корневой. Корневой каталог на каждом носителе внешней памяти существует в единственном экземпляре. Все другие каталоги создаются либо пользователем, либо могут быть автоматически созданы программами.
Носители информации обозначаются символами латинского алфавита, после которых следуют две точки: А:, В: – дисководы для гибких дисков (дискет), С: – жесткий диск (винчестер), далее по алфавиту D:, E:, F: и т.д. – жесткие диски, логические диски или дисководы для компакт-дисков и др. по числу дисководов.
На рисунке приведен пример иерархической структуры размещения информации на носителе ("С:\" обозначает корневой каталог диска С:, имена каталогов написаны прописным шрифтом, файлов – строчным).
Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES и TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS – файл chess.txt.
Полное имя файла однозначно определяет местоположение любого файла на носителе. Оно состоит из пути к файлу, включающему логическое имя устройства и иерархическую систему каталогов, от корневого каталога до того, в котором содержится файл, и собственно имени файла и расширения: C:\GAMES\CHESS\chess.exe.
Правила задания имени файла определяются операционной системой и используемой файловой системой. Каждый файл имеет собственный уникальный адрес.
Для операционной системы данные на дисках организованы в дорожки и секторы. Дорожки (40 или 80 на дискете) представляют собой узкие концентрические кольца на диске. Каждая дорожка разделена на части, называемые секторами. При чтении или записи устройство всегда считывает или записывает целое число секторов независимо от объема запрашиваемой информации. Размер сектора на дискете равен 512 байтам. Количество секторов – 18. Цилиндр – это общее количество дорожек, с которых можно считать информацию, не перемещая головок. Поскольку гибкий диск имеет только две стороны, а дисковод для гибких дисков – только две головки, в гибком диске на один цилиндр приходится две дорожки. В жестком диске может быть много дисковых пластин, каждая из которых имеет две (или больше) головки, поэтому одному цилиндру соответствует множество дорожек. Кластер (или ячейка размещения данных) – наименьшая область диска, которую операционная система использует при записи файла (минимальный размер адресуемого пространства). Обычно кластер – один или несколько секторов.
Перед использованием дискета (жесткий диск) должна быть форматирована, т.е. должна быть создана ее логическая и физическая структура (разбиение диска на дорожки и секторы). Самая первая дорожка магнитного диска (нулевая) считается служебной – там хранится служебная информация – таблица размещения файлов (FAT-таблица). В этой таблице компьютер запоминает адреса записанных файлов. По команде пользователя, компьютер находит по имени файла в этой таблице номер дорожки и номер сектора, после чего магнитная головка переводится в нужное положение, файл считывается и направляется в оперативную память для обработки.
Нетрудно подсчитать общую емкость гибкого диска: 2 (стороны)×80 (дорожек)×18 (секторов)×0,5 байт=1440 Кбайт (1,44 Мбайт). Если вспомнить, что 1 Кбайт равен 1024 байтам, то, более точно, емкость гибкого диска равна 1 457 664 байта.
В операционных системах семейства Windows имя может содержать от 1 до 255 символов, причем набор символов, из которых можно составлять имена файлов, расширяется. В частности, можно использовать буквы национальных алфавитов, пробелы и т.д. Не допускается использование следующих символов: \ / : * ? " < >|. Строчные и прописные буквы в именах файлов не различаются. То же касается и имен файлов (папок в Windows). По другому дело обстоит в операционных системах семейства Unix. Там строчная и прописная буквы различаются, поэтому имена, записанные одними и теми же буквами, но имеющие различия в регистрах, будут разными.
Расширение имени файла записывается после точки и может содержать от 1 до 3 символов в DOS и больше 3 – в Windows. Чаще всего в расширение вкладывается определенный смысл (хотя пользователь может задавать и бессмысленные расширения) – оно указывает на содержимое файла или на то, какой программой был создан данный файл, данные какого типа сохранены в нем. Например:
- .DOC, .TXT – расширения текстовых файлов,
- .СОМ, .ЕХЕ – исполнимых файлов,
- .INI – инициализационных файлов,
- .PAS, .BAS, .СРР – исходные тексты программ на соответствующем языке программирования, и т.д.
В операционной системе Windows именно по расширению файлы ассоциируются с определенной программой, с помощью которой они могут быть открыты для просмотра или модификации.
Размер файла измеряется в байтах.
В зависимости от значений атрибутов файлов операционная система разрешает или запрещает те или иные действия над файлами.
Виды атрибутов. Для каждого файла соответствующая ему запись в каталоге (элемент каталога) содержит атрибуты файла. DOS может обрабатывать четыре атрибута файлов: "только для чтения" (read-only), "скрытый" (hidden), "системный" (system), и "архивировать" (archive). Каждый из этих атрибутов может быть либо установлен, либо нет.
Назначение этих атрибутов таково:
- атрибут файла "только для чтения" предохраняет файл от изменений: для изменения или удаления файла с этим атрибутом требуется предварительно снять данный атрибут. Файлы на компакт-дисках имеют атрибут "только для чтения", чтобы показать, что изменить эти файлы нельзя;
- атрибуты "скрытый" и/или "системный" используются некоторыми системными файлами. Файлы с атрибутом "системный" не перемещаются программами оптимизации расположения файлов на диске, а также обычно не копируются на сжатый диск при создании сжатого диска;
- атрибут файла "архивировать" устанавливается при создании файла и сбрасывается программами резервного копирования для обозначения того, что копия файла помещена в архив. Поэтому наличие атрибута "архивировать" обычно значит, что для файла не было сделано резервной копии.
Таким образом, большинство файлов имеет установленным только атрибут "архивировать". Остальные атрибуты ("только для чтения", "скрытый" или "системный"), как правило, не установлены.
В операционной системе Windows кроме перечисленных выше атрибутов имеются атрибуты индексирования (с целью ускорения поиска), сжатия, шифрования (только пользователь, зашифровавший файл (или папку) имеет доступ к его содержимому).
Обычно в Windows по отношению к файлам и каталогам используют несколько иную терминологию.
Наиболее простыми являются документы и программы. Документы – это объекты, содержащие ту или иную информацию: тексты, картинки, звуки и т.д. Развитие мультимедийных возможностей компьютера приводит к тому, что в некоторых документах могут содержаться несколько видов информации одновременно, например, движущееся изображение и звук. Программы служат для обработки документов – это своеобразные инструменты воздействия на документы. Часто их еще называют приложениями, например, приложение MS-DOS или приложение Windows, в зависимости от того, ресурсы какой операционной системы использует данная программа. Между отдельными программами и документами существует устойчивая связь: текстовый редактор работает с текстовыми документами, программа-фонограф воспроизводит звуки и т.п. Windows запоминает такие связи и способна самостоятельно их использовать при просмотре и работе с документами. Группа однотипных документов, а также программ для их обработки могут быть помещены в общую папку (аналог каталога). Папка является еще одним, более крупным объектом Windows. В отличие от документов и программ, являющихся простыми и "неделимыми" объектами, папка может содержать другие объекты, в том числе и новые папки; в частном случае папка может быть пустой.
Также файлы можно разделить на исполняемые (программы) и неисполняемые (файлы данных и документов). Исполняемые файлы могут запускаться операционной системой на выполнение, а неисполняемые файлы могут только изменять свое содержимое в процессе выполнения программ. Далее можно разделить файлы на основные, присутствие которых обязательно для работы операционной системы и программных продуктов, служебные, хранящие конфигурацию и настройки основных файлов, рабочие, содержимое которых изменяется в результате работы основных программных файлов и собственно ради которых и создаются все остальные файлы, а также временные файлы, создающиеся в момент работы основных и хранящие промежуточные результаты.
В процессе работы над файлами и каталогами (далее они называются объектами) производят следующие операции:
· создание (в текущем каталоге создается новый экземпляр объекта, ему дается имя. Созданный объект при этом может быть и пустым);
· копирование (копия объекта создается в другом каталоге или на другом носителе);
· перемещение (производит) копирование объекта в другой каталог или на другой носитель, в исходном каталоге объект уничтожается);
CD-ROM — компакт-диск (CD), предназначенный для хранения в цифровом виде предварительно записанной на него информации и считывания ее с помощью специального устройства, называемого CD-ROM-driver, — дисковода для чтения компакт-дисков.
К числу задач, для решения которых предназначается устройство CD-ROM, можно отнести: установку и обновление программного обеспечения; поиск информации в базах данных; запуск и работу с игровыми и образовательными программами; просмотр видеофильмов; прослушивание музыкальных CD.
История создания CD-ROM начинается с 1980 г., когда фирмы Sony и Philips объединили свои усилия по созданию технологии записи и производства компакт-дисков с использованием лазеров. Начиная с 1994 г., дисководы CD-ROM становятся неотъемлемой частью стандартной конфигурации ПК. Носителем информации на CD-диске является рельефная подложка, на которую нанесен тонкий слой отражающего свет материала, как правило, алюминия. Запись информации на компакт-диск представляет собой процесс формирования рельефа на подложке путем «прожигания» миниатюрных штрихов-питов лазерным лучом. Считывание информации производится за счет регистрации луча лазера, отраженного от рельефа подложки. Отражающий участок поверхности диска дает сигнал «нуль», а сигнал от штриха — «единицу».
Хранение данных на CD-дисках, как и на магнитных дисках, организуется в двоичной форме.
По сравнению с винчестерами CD значительно надежнее в транспортировке. Объем данных, располагаемых на CD, достигает 700 — 800 Мбайт, причем при соблюдении правил эксплуатации CD практически не изнашивается.
Процесс изготовления CD-дисков включает несколько этапов. На первом этапе создается информационный файл для последующей записи на носитель. На втором этапе с помощью лазерного луча производится запись информации на носитель, в качестве которого используется стеклопластиковый диск с покрытием из фоторезистивного материала. Информация записывается в виде последовательности расположенных по спирали углублений (штрихов), как показано на рис. 3.7. Глубина каждого штриха-пита (pit) равна 0,12 мкм, ширина (в направлении, перпендикулярном плоскости рисунка) — 0,8 — 3,0 мкм. Они расположены вдоль спиральной дорожки, расстояние между соседними витками которой составляет 1,6 мкм, что соответствует плотности 16000 витков/дюйм (625 витков/мм). Длина штрихов вдоль дорожки записи колеблется от 0,83 до 3,1 мкм.
На следующем этапе производятся проявление фоторезистив-ного слоя и металлизация диска. Изготовленный по такой технологии диск называется мастер-диском. Для тиражирования компакт-дисков с мастер-диска методом гальванопластики снимается несколько рабочих копий. Рабочие копии покрываются более прочным металлическим слоем (например, никелем), чем мастер-диск, и могут использоваться в качестве матриц для тиражирования CD-дисков до 10 тыс. шт. с каждой матрицы. Тиражирование осуществляется методом горячей штамповки, после которой информационную сторону основы диска, выполненную из поликарбоната, подвергают вакуумной металлизации слоем алюминия и диск покрывают слоем лака. Диски, выполненные методом горячей штамповки, в соответствии с паспортными данными обеспечивают до 10 000 циклов безошибочного считывания данных. Толщина CD-диска 1,2 мм, диаметр — 120 мм.
Привод CD-ROM содержит следующие основные функциональные узлы:
· системы управления приводом и автоматического регулирования;
· универсальный декодер и интерфейсный блок.
На рис. 3.8 дана конструкция оптико-механического блока привода CD-ROM, который работает следующим образом. Электромеханический привод приводит во вращение диск, помещенный в загрузочное устройство. Оптико-механический блок обеспечивает перемещение оптико-механической головки считывания по радиусу диска и считывание информации. Полупроводниковый лазер генерирует маломощный инфракрасный луч (типовая длина волны 780 нм, мощность излучения 0,2 — 5,0 мВт), который попадает на разделительную призму, отражается от зеркала и фокусируется линзой на поверхности диска. Серводвигатель по командам, поступающим от встроенного микропроцессора, перемещает подвижную каретку с отражающим зеркалом к нужной дорожке на компакт-диске. Отраженный от диска луч фокусируется линзой, расположенной под диском, отражается от зеркала и попадает на разделительную призму, которая направляет луч на вторую фокусирующую линзу. Далее луч попадает на фотодатчик, преобразующий световую энергию в электрические импульсы. Сигналы с фотодатчика поступают на универсальный декодер.
Системы автоматического слежения за поверхностью диска и дорожки записи данных обеспечивают высокую точность считывания информации. Сигнал с фотодатчика в виде последовательности импульсов поступает в усилитель системы автоматического регулирования, где выделяются сигналы ошибок слежения. Эти сигналы поступают в системы автоматического регулирования: фокуса, радиальной подачи, мощности излучения лазера, линейной скорости вращения диска.
Универсальный декодер представляет собой процессор для обработки сигналов, считанных с CD. В его состав входят два декодера, оперативное запоминающее устройство и контроллер управления декодером. Применение двойного декодирования дает возможность восстановить потерянную информацию объемом до 500 байт. Оперативное запоминающее устройство выполняет функцию буферной памяти, а контроллер управляет режимами исправления ошибок.
Интерфейсный блок состоит из преобразователя цифровых данных в аналоговые сигналы, фильтра нижних частот и интерфейса для связи с компьютером. При воспроизведении аудиоинформации ЦАП преобразует закодированную информацию в аналоговый сигнал, который поступает на усилитель с активным фильтром низких частот и далее на звуковую карту, которая связана с наушниками или акустическими колонками.
Ниже приводятся эксплуатационные характеристики, которые необходимо учитывать при выборе CD-ROM применительно к конкретным задачам.
Скорость передачи данных (Data Transfer Rate— DTR) — Максимальная скорость, с которой данные пересылаются от носителя информации в оперативную память компьютера. Это наиболее важная характеристика привода CD-ROM, которая практически всегда упоминается вместе с названием модели. Непосредственно со скоростью передачи данных связана скорость вращения диска. Первые приводы CD-ROM передавали данные со скоростью 150 Кбайт/с, как и проигрыватели аудиокомпакт-дисков. Скорость передачи данных следующих поколений устройств, как правило, кратна этому числу (150 Кбайт/с). Такие приводы получили название накопителей с двух-, трех-, четырехкратной скоростью и т.д. Например, 60-скоростной привод CD-ROM обеспечивает считывание информации со скоростью 9000 Кбайт/с.
Высокая скорость передачи данных привода CD-ROM необходима прежде всего для синхронизации изображения и звука. При недостаточной скорости передачи возможны пропуск кадров видеоизображения и искажение звука.
Однако дальнейшее, свыше 72-кратности, повышение скорости считывания приводов CD-ROM нецелесообразно, поскольку при дальнейшем повышении скорости вращения CD не обеспечивается требуемый уровень качества считывания. И, кроме того, появилась более перспективная технология — DVD.
Качество считывания характеризуется коэффициентом ошибок (Eror Rate) и представляет собой вероятность получения искаженного информационного бита при его считывании. Данный параметр отражает способность устройства CD-ROM корректировать ошибки чтения/записи. Паспортные значения этого коэффициента — Ю -10 —10~ 12 . Когда считываются данные с загрязненного или поцарапанного участка диска, регистрируются группы ошибочных битов. Если ошибку не удается устранить с помощью помехоустойчивого кода (применяемого при чтении/записи), скорость считывания данных понижается и происходит многократный повтор чтения.
Среднее время доступа (Access Time — АТ) — это время (в миллисекундах), которое требуется приводу, чтобы найти на носителе нужные данные. Очевидно, что при работе на внутренних участках диска время доступа будет меньше, чем при считывании информации с внешних участков. Поэтому в паспорте накопителя приводится среднее время доступа, определяемое как среднее значение при выполнении нескольких считываний данных с различных участков диска. По мере совершенствования приводов CD-ROM среднее время доступа уменьшается, но тем не менее этот параметр значительно отличается от аналогичного для накопителей на жестких дисках (100 — 200 мс для CD-ROM и 7 — 9 мс для жестких дисков). Это объясняется принципиальными различиями конструкций: в накопителях на жестких дисках используется несколько магнитных головок и диапазон их механического перемещения меньше, чем диапазон перемещения оптической головки привода CD-ROM.
Объём буферной памяти — это объем оперативного запоминающего устройства привода CD-ROM, используемого для увеличения скорости доступа к данным, записанным на носителе. Буферная память (кэш-память) представляет собой устанавливаемые на плате накопителя микросхемы памяти для хранения считанных данных. Благодаря буферной памяти, данные, размещенные в различных областях диска, могут передаваться в компьютер с постоянной скоростью. Объем буферной памяти отдельных моделей привода CD-ROM — 512 Кбайт.
Средняя наработка на отказ — среднее время в часах, характеризующее безотказность работы привода CD-ROM. Средняя наработка на отказ различных моделей приводов CD-ROM 50—125 тыс. ч, или 6—14,5 лет круглосуточной работы, что значительно превышает срок морального старения накопителя.
В процессе развития накопителей на оптических дисках разработан целый ряд основных форматов записи информации на CD.
Формат CD-DA (Digital Audio) — цифровой аудио-компакт диск со временем звучания 74 мин.
Формат ISO 9660 — наиболее распространенный стандарт логической организации данных.
Формат High Sierra (HSG) предложен в 1995 г. и обеспечивает чтение данных, записанных на диск в формате ISO 9660, с помощью приводов всех типов, что привело к широкому тиражированию программ на CD и способствовало созданию компакт-дисков, ориентированных на различные операционные системы.
Формат Photo-CD разработан в 1990— 1992 гг. и предназначен для записи на CD, хранения и воспроизведения статической видеоинформации в виде высококачественных фотоизображений. Диск формата Photo-CD вмещает от 100 до 800 фотоизображений соответствующих разрешений — 2048x3072 и 256x384, а также сохраняет звуковую информацию.
Любой диск CD-ROM, содержащий текст и графические данные, аудио- или видеоинформацию, относится к категории мультимедиа. Мультимедиа CD существуют в различных форматах для различных операционных систем: DOS, Windows, OS/2, UNIX, Macintosh.
Формат CD-I (Intractive) разработан для широкого круга пользователей как стандарт мультимедийного диска, содержащего различную текстовую, графическую, аудио- и видеоинформацию. Диск формата CD-I позволяет хранить видеоизображение со звуковым сопровождением (стерео) и длительностью воспроизведения до 20 мин.
Формат CD-DV(Digital Video) обеспечивает запись и хранение высококачественного видеоизображения со стереозвуком в течение ?4 мин. При хранении обеспечивается сжатие по методу MPEG-1 (Motion Picture Expert Group).
Чтение диска возможно с использованием аппаратного или Программного декодера стандарта MPEG.
Формат 3DO разработан для игровых приставок.
Приводы CD-ROM могут работать как со стандартным интерфейсом для подключения к разъему IDE (E-IDE), так и с высокоскоростным интерфейсом SCSI.
Самые популярные дисководы CD-ROM в России — изделия с торговыми марками Panasonic, Craetive, Samsung, Pioneer, Hitachi, Teac, LG.
Организация структур на HDD для хранения информации в виде файлов.
В современных накопителях на жестких магнитных дисках значительная часть поверхности диска является служебной, эта зона скрыта и недоступна для пользователя. В этой части диска расположена служебная информация и резервная область для замены дефектных участков поверхности. Пользователь имеет доступ только к рабочей области диска, объем которой указан в технических характеристиках диска. Доступ в служебную зону возможен только в специальном технологическом режиме, который активизируется с помощью подачи специальной команды. В этом режиме возможно использование специального технологического набора команд (команды записи-чтения секторов служебной зоны, чтение карты расположения модулей и таблиц в служебной зоне, чтение таблицы зонного распределения, команды перевода из LBA в CHS и обратно, команда запуска форматирования низкого уровня, команды записи-чтения перезаписываемого ПЗУ и др.).
Использование специального технологического режима работы накопителя (аналогично тому, как это делается самими производителями HDD) делает в этом режиме работы доступными операции, которые обычно выполняются на фирме-изготовителе: восстановление формата нижнего уровня (Low-Level Format); восстановление служебной информации, хранящейся на служебных дорожках накопителя (Resident Mikrocode); восстановление или изменение параметров в паспорте диска (Identify Drv); замена дефектных секторов и дорожек на резервные или их исключение из работы накопителя (Assigne, Realocation, Skipping Defects); реконфигурация HDD путем исключения из работы неисправных областей магнитных поверхностей или отключение неисправных магнитных головок.
С точки зрения пользователя, любой диск можно представить как совокупность доступных ему блоков данных, которые он может использовать для хранения данных, для считывания или записи информации. Каждый блок данных имеет свой уникальный адрес, определяемый способом CHS (цилиндр, поверхность, сектор) или LBA (адрес логического блока). Блок данных может быть записан и считан (только целиком) независимо от других.
Но для большинства прикладных программ интерес представляет не обращение к отдельным блокам, а возможность обращения к файлам, которые могут занимать произвольное, причем, возможно, и не целое количество блоков данных. На дисках информация хранится в виде файлов. Для облегчения обращения к файлам и упорядочения использования пространства секторов диска в состав любой операционной системы входит файловая система, тесно связанная с логической структурой диска. Логическая структура и системная информация файловых систем тоже формируются на магнитной поверхности путем фиксации двоичных единиц и нолей в блоках данных секторов диска. Образованные, таким способом, на диске структуры служебных двоичных данных, позволяют адресовать и находить блоки данных и файлы на поверхности диска.
1. Служебный формат. Современные методы записи и методы кодирования позволяют надежно записывать и считывать двоичную информацию на дорожках дисков, но чтобы на дорожках появились адресуемые блоки данных, которые можно использовать для хранения, записи и считывания информации, необходимо произвести физическую разметку диска записью на все дорожки диска служебного формата. Служебный формат дорожки записывается контроллером диска при получении от процессора, выполняющего программу форматирования, команды «Форматирование дорожки». Получив из накопителя импульс «Индекс», означающий начало дорожки, контроллер выдает в тракт записи накопителя данные, являющиеся служебным форматом дорожки.
Команда «Форматирование дорожки» доступна лишь для контроллеров старых дисков, которые не используют зонной записи, при совпадении внешней геометрии с реальной. На современных дисках низкоуровневое форматирование выполняют лишь в специальном технологическом режиме. Для этого, например, могут использоваться нестандартные команды, причем для разрешения их использования могут присутствовать специальные джамперы на устройстве. Общение с винчестером в технологическом режиме может производиться и через специальный последовательный интерфейс, в качестве которого иногда используется стандартный RS-232C, что позволяет вести диалог с винчестером, например, через СОМ-порт и эмулятор терминала на персональном компьютере. В случае, когда технологические команды доступны через обычный интерфейс, производители накопителя обычно предлагают собственные утилиты низкоуровневого форматирования и обслуживания дисков (низкоуровневое форматирование не затрагивает сервоинформацию, которая записывается на поверхности лишь в заводских условиях). Низкоуровневые утилиты предназначены для конкретных моделей или семейств устройств конкретных производителей, Использование их с «чужими» дисками, как правило, блокируется (или выдается предупреждение). Обход этой блокировки обычно ведет к отказу винчестера.
В стандартном CHS-режиме осуществляется единственный пересчет секторов внутри самого жесткого диска. В таких накопителях все цилиндры содержат одинаковое количество данных, несмотря на то что длина окружности у внешних цилиндре может быть вдвое больше, чем у внутренних. В результате теряется пространство внешних дорожек, так как оно используется крайне неэффективно.
Реальная геометрия дисков с зонной записью полностью скрыта от "внешнего мира". Данные о количестве цилиндров, головок и секторов, указанные в паспортах жестких дисков, - это чисто логические параметры. Эти данные предназначены для ввода в качестве значений соответствующих параметров в BIOS и не имеют никакого отношения к физическим параметрам диска (поэтому мы не должны удивляться, когда в логических параметрах диска видим 256 головок, 1024 цилиндра и 64 сектора). При зонной записи цилиндры разбиваются на группы, которые называются зонами, причем по мере продвижения к внешнему краю диска дорожки разбиваются на все большее число секторов. Во всех цилиндрах, относящихся к одной зоне, количество секторов на дорожках одинаковое. Возможное количество зон зависит от типа накопителя; в большинстве устройств их бывает 10 и более. Еще одно свойство зонной записи состоит в том, что скорость обмена данными с накопителем может изменяться и зависит от зоны, в которой в конкретный момент располагаются головки. Происходит это потому, что секторов во внешних зонах больше, а угловая скорость вращения диска постоянна (т.е. линейная скорость перемещения секторов относительно головки при считывании и записи данных на внешних дорожках оказывается выше, чем на внутренних).
В режиме логической адресации блоков (LBA) все секторы нумеруются подряд, без разделения по трем категориям (цилиндр, головка и сектор). Сквозная нумерация начинается с сектора (CHS 0,0,1), которому присваивается логический адрес 0, и заканчивается последним физическим сектором диска.
Служебный формат разбивает дорожку на секторы, а служебный формат внутри сектора выделяет в каждом секторе блок данных (например 512 байт). После записи служебного формата на всех дорожках диска, контроллер диска и сам диск готовы к выполнению команд, задающих чтение или запись в блоки данных секторов диска. Служебный формат дорожки дисков пишется контроллером диска и нужен только контроллеру диска. Выполняя заданные процессором операции чтения или записи, контроллер диска, получив из накопителя импульс «Индекс» (начало дорожки), начинает воспринимать информацию, поступающую из тракта чтения накопителя как служебный формат дорожки. Проверяя и расшифровывая служебный формат дорожки, контроллер определяет местоположение головки на дорожке, находит, таким образом, на дорожке нужный сектор, а по служебному формату сектора находит в секторе блок данных, выполняет чтение информации из блока данных, или запись информации в блок данных, а также контроль достоверности считанных данных.
2. Разбиение на разделы. Высокоуровневое форматирование. Программа высокоуровневого форматирования записывает в блоки данных ряда начальных секторов HDD специальную служебную информацию, которая разбивает диск на разделы (логических области). Жесткий диск готовится к работе за три этапа:
- низкоуровневое форматирование диска (получили массив адресуемых блоков);
- разбиение диска на разделы (разбили массив адресуемых блоков на разделы);
- высокоуровневое форматирование каждого раздела для работы с соответствующей файловой системой (создали внутри разделов служебные структуры позволяющие сохранять информацию в разделе в виде файлов и считывать ее из радела в ОЗУ) .
Существуют два основных варианта разбиения диска на разделы:
- cтруктура служебной информации HDD (до 2 Тбайт) на основе MBR (PT - таблица разделов);
- cтруктура служебной информации HDD (до 9,4 зетабайт) на основе GPT (MBR, заголовок GPT, массив разделов GPT).
Существуют два основных варианта организации хранения информации файлов в разделах диска:
- с использоанием FAT ((таблица размещения файлов), разделы FAT32, FAT16, FAT12 и др.;
- с использоанием таблицы MFT (файл $MFT), разделы NTFS.
Принципы организации хранения файлов в разделах FAT32/16/12.
1) FAT (таблица размещения файлов) состоит из элементов (12/16/32 разряда) в которых хранится информация о порциях файла (кластерах). Каждому элементу таблицы FAT (начиная со второго) соответствует кластер в области данных с таким же номером.
2) Номер начального кластера файла указывается в каталожной строке, определяющей файл. Этот номер является и ссылкой на элемент таблицы FAT, который содержит номер следующего кластера файла, и является ссылкой на элемент таблицы FAT, который содержит номер следующего кластера файла и т. д.
3) Кластер — это непрерывная последовательность секторов (фиксированного размера). Это адресуемая «порция» файла.
4) Код в элементе таблицы FAT может еще определять свободный кластер, дефектный кластер и признак конца файла (прочитанный перед этим кластер — последний кластер файла).
5) Файл в разделе FAT — это последовательность кластеров, указанных с помощью строки каталога (номер начального кластера файла) и элементов таблицы FAT (остальные кластеры файла).
Принципы организации хранения файлов в разделах NTFS.
1. Раздел NTFS состоит из кластеров, они пронумерованы от 0 (кластер — это непрерывная последовательность секторов заданного фиксированного размера).
2. В разделе NTFS все хранится в виде файлов (каталоги, программы, данные . ). Системная нформация для работы файловой системы — хранится в виде метафайлов (системных файлов), имена их начинаются со знака $ и они недоступны пользователю с помощью обычных средств операционной системы.
3. Файл в разделе NTFS состоит из экстентов (экстент — это непрерывная последовательность кластеров различного размера. Размер экстента задается номером начального кластера и количеством кластеров в экстенте).
4. Основой для организации хранения информации в виде файлов является метафайл $MFT. Файл $MFT состоит из записей фиксированного размера (обычно 1 Кбайт), и каждая запись определяет соответствующий ей файл (либо маленький файл находится внутри записи в Атрибуте 80, либо файл состоит из экстентов, которые определяются последовательностью блоков VCN в Атрибуте 80).
5. Блок VCN содержит номер начального кластера экстента и количество кластеров в экстенте.
6. Нужную запись файла $MFT находят через каталог по имени файла. Номер записи находится в шести начальных байтах каталожного блока (имя файла находится в конце каталожного блока и занимает различное количество байтов).
Читайте также: