Файловая система. Диски
Компьютер, как правило, имеет несколько дисков. Каждому диску присваивается имя, которое задается латинской буквой с двоеточием, например, А:, В:, С: и т.д. Стандартно принято, что А: и В: – это накопители на гибких магнитных дисках, а диски С:, D: и т.д. – жесткие диски, накопители на оптических дисках или электронные диски.
Электронные диски представляют собой часть оперативной памяти, которая для пользователя выглядит как ВЗУ. Скорость обмена информации с электронным диском значительно выше, чем с электромеханическим внешним запоминающем устройством. При работе электронных дисков не происходит износ электромеханических деталей. Однако после выключения питания информация на электронном диске не сохраняется.
Физически существующие магнитные диски могут быть разбиты на несколько логических дисков, которые для пользователя будут выглядеть на экране так же, как и физически существующие диски. Логический диск – это часть обычного жесткого диска, имеющая собственное имя.
Диск, на котором записана операционная система, называется системным (или загрузочным) диском. В качестве загрузочного диска чаще всего используется жесткий диск С:. При лечении вирусов, системных сбоях загрузка операционной системы часто осуществляется с гибкого диска. Выпускаются оптические диски, которые также могут быть загрузочными.
Для того чтобы на новый магнитный диск можно было записать информацию, он должен быть предварительно отформатирован. Форматирование – это подготовка диска для записи информации.
Во время форматирования на диск записывается служебная информация (делается разметка), которая затем используется для записи и чтения информации, коррекции скорости вращения диска, а также выделяется системная область, которая состоит из трех частей:
загрузочного сектора,
таблицы размещения файлов,
корневого каталога.
Загрузочный сектор (Boot Record) размещается на каждом диске в логическом секторе с номером 0. Он содержит данные о формате диска, а также короткую программу, используемую в процедуре начальной загрузки операционной системы.
На жестком диске имеется область, которая называется главной загрузочной записью MBR (Master Boot Record) или главным загрузочным сектором. В MBR указывается, с какого логического диска должна производиться загрузка операционной системы.
Таблица размещения файлов (File Allocation Table – сокращенно FAT) располагается после загрузочного сектора и содержит описание порядка расположения всех файлов в секторах данного диска, а также информацию о дефектных участках диска. За FAT-таблицей следует ее точная копия, что повышает надежность сохранения этой очень важной таблицы.
Корневой каталог (Root Directory) всегда находится за копией FAT. В корневом каталоге содержится перечень файлов и директорий, находящихся на диске. Непосредственно за корневым каталогом располагаются данные.
Файловая система – это часть операционной системы, обеспечивающая организацию и хранения файлов, а также выполнение операций над файлами.
Файл
При хранении данных решаются две проблемы: как сохранить данные в наиболее компактном виде и как обеспечить к ним удобный и быстрый доступ (если доступ не обеспечен, то это не хранение). Для обеспечения доступа необходимо, чтобы данные имели упорядоченную структуру, а при этом образуется «паразитная нагрузка» в виде адресных данных. Без них нельзя получить доступ к нужным элементам данных, входящих в структуру.
Поскольку адресные данные тоже имеют размер и тоже подлежат хранению, хранить данные в виде мелких единиц, таких, как байты, неудобно. Их неудобно хранить и в более крупных единицах (килобайтах, мегабайтах и т.п.), поскольку неполное заполнение одной единицы хранения приводит к неэффективности хранения.
Хранение и поиск информации на внешних запоминающих устройствах имеет важное значение. Внешние запоминающие устройства представляют собой своеобразные информационные склады, где программы и данные хранятся длительное время, до тех пор пока они не понадобятся для решения какой-либо задачи. А теперь представьте себе, что товары на каком-либо складе хранятся без всякой системы. Чем больше склад – тем труднее отыскать нужный товар. Или возьмем, например, шкаф, в котором хранятся различные документы, книги, отчеты, справки и т.д. В случае отсутствия определенной организации хранения поиск нужных документов, особенно если их количество значительно, может оказаться весьма сложной задачей, требующей много времени.
В качестве единицы хранения данных принят объект переменной длины, называемый файлом.
Файлом называется поименованная совокупность данных, имеющая определенную внутреннюю организацию и занимающая некоторый участок носителя информации.
Обычно в отдельном файле хранят данные, относящиеся к одному типу. В этом случае тип данных определяет тип файла.
Поскольку в определении файла нет ограничений на размер, можно представить себе файл, имеющий 0 байтов (пустой файл),и файл, имеющий любое число байтов.
Имя файла должно быть уникальным – без этого невозможно гарантировать однозначность доступа к данным. В средствах вычислительной техники требование уникальности имени обеспечивается автоматически – создать файл с именем, тождественным уже имеющемуся, не может ни пользователь, ни автоматика.
Файл может содержать: программу в машинных кодах, текст программы на алгоритмическом языке, текст документа, отчет, ведомость на зарплату, статью, числовые данные, запись человеческой речи или музыкальной мелодии, рисунок, иллюстрацию, чертеж, фотографию, видеофильм и т.д.
Созданиефайла осуществляется по указанию пользователя или автоматически, средствами различных программных систем, таких как операционные системы, оболочки, инструментальные системы программирования и т.д. За создаваемым файлом закрепляется некоторое название, ему выделяется место на дисковом носителе, и он определенным образом регистрируется в операционной системе. Вновь созданный файл может быть заполнен какой-либо информацией.
Каждый файл обладает рядом характерных свойств – атрибутов. Важнейшими атрибутами файла являются:
название,
расширение,
длина,
время и дата создания.
Имя файла, точно так же как и имя человека, название документа, книги, служит для того, чтобы иметь возможность отличить один файл от другого, указать на нужный файл. В различных операционных системах названия файлов формируются по разным правилам. Например, в операционной системе MS DOS название файла представляет собой
последовательность букв латинского алфавита,
цифр,
некоторых специальных знаков (~, _, -, $, &, @, %,",!,(> )> {>}. #).
Название может содержать от одного до восьми (1 … 8) символов и выбирается произвольным образом. Желательно подбирать названия файлам так, чтобы пользователь мог легко вспомнить, что именно хранится в этом файле. Например, файл, содержащий отчет за 4-й квартал, можно назвать otchet4, файл с ведомостью на зарплату – vedzarpl, а файл с каким-либо рисунком целесообразно назвать picture.
В операционной системе MS DOS название файла не может содержать
пробелов,
букв русского алфавита,
точек.
Кроме того, оно не может содержать более восьми символов. Вообще говоря, это достаточно существенные ограничения. Например, файл, содержащий отчет предприятия за 4-й квартал, который мы назвали otchet4, желательно было бы назвать «Отчет за 4-й квартал», в крайнем случае «Otchet za 4 kvartal», применив так называемую транслитерацию,когда слова одного языка записываются буквами другого. В операционных системах Unix и Windows 9.x сняты ограничения на длину названия, использование пробелов и точек в названии. А в операционной системе Windows 9.x, кроме того, в названии можно использовать русские буквы. Таким образом, файл в Unix может иметь название «Otchet za 4 kvartal», а в Windows 9.x допускается и название «Отчет за 4-й квартал».
Кроме названия каждый файл может иметьили не иметь расширение. Расширение используется для того, чтобы определенным образом охарактеризовать содержимое файла. Например, расширения doc и txt указывают на то, что файл содержит какой-либо документ или текст, а расширение bmp имеет файл, содержащий изображение в формате битовой карты. Расширение, если оно есть, отделяется от названия файла точкой. В операционной системе MS DOS расширение может содержать от одного до трех символов, например, otchet4.doc, vedzarpl.txt, picture.bmp, а в системах Unix и Windows 9.x допускается более трех символов. Если расширения нет, то точка в названии файла не ставится.
Если файл создается с помощью какой-либо программной системы, то, как правило, он автоматически получает стандартное для данной системы расширение, и пользователю достаточно выбрать или указать только название. Впоследствии по стандартным расширениям программная система опознает «свои» файлы. В операционных системах предусмотрен целый ряд стандартных расширений (табл. 3.1).
Таблица 3.1
Некоторые расширения MS DOS и Windows 9.x
Расширение | Содержимое файла |
.сом | Разновидность программы в машинных кодах (выполняемый файл) |
.ехе | Разновидность программы в машинных кодах (выполняемый файл) |
.bat | Командный файл (выполняемый файл) |
.bak | Резервный файл |
.doc | Файл программной документации или файл с документом |
.txt | Файл с текстом |
.dat | Файл с числовыми данными |
.hlp | Файл помощи, то есть файл встроенной справочной системы |
.sys | Драйвер устройства |
.tmp | Временный или рабочий файл |
.bmp | Разновидность файла с графикой |
Файлы с расширением .сом (common – общий) и .exe (execute – выполнение) содержат программы на машинном языке. Эти файлы часто называют программными файлами. Различия между com-файлами и ехе-файлами касаются их внутренней организации. На способах обращения с файлами эти различия никак не сказываются. Файлы с расширением .bat (batch – пачка) содержат произвольные последовательности команд операционной системы. Такие файлыпринято называть командными файлами. Термин «выполняемый файл» объединяет понятия «программный файл» и «командный файл». Другими словами, «выполняемый файл» означает, что файл содержит либо программу на машинном языке, которая может быть непосредственно выполнена процессором компьютера (файлы с расширениями .ехе и .com), либо последовательность команд операционной системы (файл с расширением .bat), которые тоже выполняются, но только путем обращения к соответствующим программам и средствам операционной системы.
Важным атрибутом файла является его длина. Длина файла равна объему занимаемого файлом участка диска или ленты и, следовательно, измеряется в байтах. Значение этого атрибута используется для определения возможности размещения файла на свободном участке дискового носителя и в некоторых других целях.
При первоначальной записи файла на диск, а также при внесении в файл изменений с помощью системных часов (специальной программы, входящей в состав операционной системы) автоматически фиксируются время и дата записи файла на дисковое устройство. Атрибуты даты и времени используются для опознания последних по времени вариантов файла.
Кроме рассмотренных основных атрибутов файла в операционной системе MS DOS файлы имеют еще четыре атрибута – только для чтения, системный, скрытый и архивный. Каждый из этих атрибутов имеет ровно два состояния – атрибут включен или атрибут выключен.
Включение атрибута только для чтения означает, что файл недоступен для внесения в него каких-либо изменений. Кроме того, усложнено уничтожение такого файла. Атрибут системный обычно включен только у основных файлов операционной системы. Атрибут скрытый включен у тех файлов, которые при просмотре списка файлов, находящихся на дисковом устройстве, командой операционной системы в этот список не включаются.
В операционных системах предусмотрен способ, упрощающий коллективные действия с файлами. Действие, которое нужно выполнить над группой файлов, задается только один раз, но вместе с действием указывается не полное имя одиночного файла, а специальное имя, которое позволяет операционной системе опознатьвсе файлы группы и затем выполнить над ними нужное действие. Такое имя называют групповым именем, шаблоном или маской. Групповое имя файлов образуется с помощью символов «*» и «?».
Символ *, встретившийся в групповом имени, трактуется операционной системой как «любая последовательность любых символов названия». Так, групповому имени а* соответствуют любые названия, начинающиеся с буквы «а»: а1, azbuka, a2z4.
Символ ? воспринимается ОС как любой одиночный символ, то есть ему соответствует ровно один произвольный символ имени. Например, шаблону otchet?.doc соответствуют любые имена с расширением .doc, в названии которых за отрезком названия otchet следует ровно один символ, например otchet1.doc, otchet4.doc, otchet%.doc, otchet#.doc и т. д.
Еще несколько примеров:
??.txt – файлы с любыми двухбуквенными именами и расширением .txt;
*.bak – файлы с любыми именами и расширением .bak;
prog1.* – файлы с названием progl и любым расширением;
*.* – файлы с любыми названиями и любыми расширениями.
Каталоги
Чтобы прочитать содержимое файла, необходимо знать его местоположение на дисковом устройстве. Каждый файл занимает на диске определенную группу секторов. Следовательно, местоположение файла можно задавать, указывая номера секторов и дорожек, занятых файлом. Однако такой способ указания местоположения файла очень неудобен, так как в этом случае пользователю необходимо знать номера всех секторов диска, которые отведены под файл. Для повышения эффективности обмена данными несколько подряд расположенных секторов объединяются в кластер, и обмен осуществляют сразу всей группой секторов (см. рис. 2.7). Такая схема организации обмена существенно увеличивает скоростьисполнения операций обмена данными с жесткими дисками. Чтобы не задавать три отдельных числа (номер рабочей поверхности, номер дорожки и номер сектора) в качестве адреса сектора, с которого начинается кластер, для всех кластеров диска введена единая, сплошная нумерация. Для определения кластера, в котором начинается файл, достаточно указывать только одно число – порядковый номер кластера на диске.
Каталогом называется таблица файловой системы диска, которая содержит список всех записанных на этот диск файлов. Для каждого файла в этой таблице указываются значения всех его атрибутов, а также номер первого выделенного файлу кластера.
Сточки зрения своего назначения каталог можно сравнить с оглавлением в книге, в котором для каждой главы указан начальный номер страницы, или с описью документов, хранящихся в шкафу. Как в книге для определения положения той или иной главы можно по названию главы в содержании книги определить, на какой странице она начинается, так и операционная система по названию файла находит в каталоге кластер, в котором он начинается.
Аналогия между каталогом и оглавлением в книге только частичнаяиз-за того, что кластерывыделяются файлу на диске не сплошным массивом, а в разброс, в то время как в книге все страницы главы размещаются подряд. Представьте себе, одна из глав книги занимает страницы 5, 15, 16, 17, 31, 123, 124 вместо того, чтобы занимать страницы 5, 6, 7, 8, 9, 10, 11 подряд. Такое не сплошноевыделение кластеров файлам организовано для того, чтобы оптимизировать использование свободного пространства диска при многочисленных уничтожениях и записях файлов.
Для того чтобы все-таки знать, какие именно кластеры и в каком порядке выделены для хранения файла, в файловой системе предусмотрена таблица размещения файлов (FAT). Каталог содержит только номер начального кластера файла. А таблица FAT – номера всех остальных занятых файлом кластеров. В подавляющем большинстве случаев пользователю не приходится работать с таблицей FAT, так как она заполняется при записи файла и анализируется при его считывании автоматически.
Для кластеров существует линейная адресация: все кластеры пронумерованы от 1 до 2n (здесь n – разрядность FAT). Для 16-разрядной FAT количество кластеров на диске составляет 216 = 65536. Не трудно вычислить, что для дисков емкостью 1 Гбайт кластер составляет 32 Кбайта.
Размер современных жестких дисков, как правило, превышает 1 Гбайт. При записи информации на такие диски значительная часть дискового пространства может тратиться впустую, поскольку, например, в случае 16-разрядной FAT файлы размером 31 Кбайт и менее 1 Кбайта занимают каждый одинаковое пространство на диске – 32 Кбайта. Неиспользованное пространство кластера называется «кластерным выступом». Потери на кластерные выступы тем больше, чем большее количество малых файлов записано на диске.
Самый естественный путь для повышения эффективности использования кластеров – это уменьшение их размеров. В настоящее время используется файловая система FAT32, в которой используется 232 кластера.
Рассмотренная выше простая структура каталога, в котором все файлы образуют один общий список, может обеспечить удовлетворительную работу операционной системы только в случае небольших объемов дискаи ограничивает общее число файлов, которые могут быть записаны на диск. Так, на гибких дисках объемом 1,44 Мбайт корневой каталог может содержать сведения не более чем о 224 файлах. А когда объем диска становится достаточно большим и, следовательно, на диске могут быть записаны сотни и тысячи файлов, простая структура каталога приводит к существенному замедлению процесса поиска файла на диске или переполнению каталога.
Каталог в операционных системах имеет более сложную структуру. Произвольные группы файлов каталога могут объединяться и образовывать подкаталоги.В некоторых операционных системах подкаталоги называются папками.Фактически подкаталоги, как и корневой каталог, являются таблицами, размещаемыми на диске и содержащими информацию об отнесенных к подкаталогу файлах. В отличие от корневого каталога положение подкаталогов на диске не привязано к системной области. Поэтому размеры подкаталогов могут быть достаточно произвольными, что позволяет снять ограничение на количество указываемых в подкаталоге файлов.
Подкаталоги создаются пользователями по своему усмотрению. Каждый подкаталог имеет собственное имя (обычно без расширения), которое подбирается по тем же правилам, что и имя файла.
Группировка и включение файлов в подкаталог могут производиться по любым критериям. Например, в отдельный подкаталог с названием WINDOWS (рис. 3.3)целесообразно собрать все файлы, имеющие отношение к операционной системе. Точно так же целесообразно сгруппировать в отдельный подкаталог все файлы, необходимые для работы какого-либо текстового редактора или игровой программы. Если на машине по очереди работают несколько пользователей, то имеет смысл организовать отдельные подкаталоги для каждого пользователя. Например, назвать подкаталоги именами: user1, user2, user3,... (user — пользователь), сгруппировав в подкаталоге user1 файлы первого пользователя, в подкаталоге user2 — второго и т.д. Кроме снятия количественных ограничений, связанных с использованием одного каталога, это создает определенную упорядоченность при хранении информации на дисках.
Все подкаталоги, находящиеся в корневом каталоге, относят к первому уровню. На рис. 3.3 подкаталогами первого уровня являются подкаталоги Windows, user1, Program files. Корневой каталог по отношению к включенным в него подкаталогам первого уровня называют родительским,а подкаталоги по отношению к корневому считаются дочернимиили вложенными.
Каждый подкаталог первого уровня в свою очередь устроен точно так же, как и корневой. В подкаталоге первого уровня могут быть организованы подкаталоги второго уровня и т.д. Например, владелец подкаталога user1 может сгруппировать внутри этого подкаталога все подготовленные им отчеты в отдельный подкаталог с названием otcheti, а, скажем, файлы, содержащие информацию о деловых контактах, собрать в подкаталоге kontakti. Подкаталоги первого уровня по отношению к включенным в них подкаталогам второго уровня считаются родительскими. Подкаталоги второго уровня выступают в роли дочерних по отношению к подкаталогам первого уровня.
Рис. 3.3. Древовидная структура каталога
Каталог по своей структуре напоминает дерево. Корневой каталог можно сопоставить со стволом дерева, подкаталоги играют роль ветвей, а файлы являются листьями этого «дерева». Такая структура каталога называется древовиднойили иерархической.
В операционных системах с графическим интерфейсом каталоги изображаются в виде папок. На рисунке показано дерево папок одного из дисков. Из рис. 3.4 видно, что в корневом каталоге имеется четыре папки: А, В, С и D. При этом внутри папки А находятся папки А1 и А2. В папке С располагаются папки С1 и С2. В папке А1 находится папка A11, а в последней – папка А111. Крестик на дереве говорит о том, что внутри соответствующих папок находятся другие папки (внутри папок D и А12 находятся папки, которые не видны). На этом рисунке не видны файлы, которые могут находиться как в корневом каталоге, так и в любой папке.
Рис. 3.4. Каталоги в виде папок
Путь к файлу
Операционная система осуществляет поиск файла в каталоге по его полному имени. Это означает, что в одном каталоге или подкаталоге в принципе не могут находиться два различных файла с одним и тем же именем. Напоминаем, что имя состоит из названия файла и его расширения. Не допускается также и наличие в одном каталоге или подкаталоге двух вложенных подкаталогов с одинаковыми именами.
В каталогах или подкаталогах допускается наличие файлов или дочерних подкаталогов с совпадающими именами. Но тогда для однозначного указания на нужный файл имени файла недостаточно. Для того чтобы отличить файлы с одним и тем же названием, необходимо указывать еще и подкаталоги, в которых они находятся. А в общем случае требуется указывать не один подкаталог, а всю цепочку подкаталогов, по которым необходимо пройти от корневого каталога до подкаталога, содержащего искомый файл, чтобы добраться до нужного файла и определить его местоположение.
Цепочка названий подкаталогов, по которым нужно пройти, начиная от корневого каталога и заканчивая подкаталогом, содержащим файл, называется путем или маршрутом к файлу.
В операционных системах MS DOS и Windows корневой каталог в пути указывается символом \. Этим же символом отделяются друг от друга названия подкаталогов в цепочке, а также имя файла от названия подкаталога, в котором он находится. Этот символ называется back slash – обратный слэш.
Таким образом, для файлов, находящихся в корневом каталоге (см. рис. 3.3), путем является только обозначение корневого каталога \, и файлы указываются следующим образом:
\command.com ,
\config.sys ,
\autoexec.bat.
Файл из подкаталога user1 имеет путь \user1:
\user1\picture.bmp.
А путь к файлам из подкаталога kontakti должен включать названия обоих подкаталогов — \user1\kontakti:
\user1\kontakti\ivanov.doc,
\user1\kontakti\postavki.txt
Пути могут указываться не только к файлам, но и подкаталогам. Так, для подкаталога kontakti путем является \user1.
Так как всостав компьютера входит несколько различных дисковых устройств, для однозначного определения файла необходимо указать, на каком именно устройстве он находится. Это можно сделать, задавая название дискового устройства, содержащего файл. Название устройства принято размещать перед путем к файлу. Полное имя файла (спецификация файла) содержит
ü название устройства,
ü путь к файлу,
ü имя файла.
Иначе
<имя носителя>\<имя каталога-1>\...\<имя каталога-N>\<собственное имя файла>.
Если, например, каталог, структура которого приведена на рис. 3.3, находится на жестком диске С:, то полная спецификация файла postavki.txt имеет вид:
C:\user1\kontakti\postavki.txt
Если этот каталог находится на гибком диске, то есть на дисковом устройстве А:, то спецификация запишется следующим образом:
A:\user1\kontakti\postavki.txt
Полная спецификация файла полностью и однозначно определяет нужный файл, что и требуется операционной системе для того, чтобы точно выполнять команды пользователя. Если же в записи спецификации файла будет сделана малейшая ошибка, скажем, пропущен или искажен хотя бы один символ, операционная система найти такой файл не сможет.
Дата добавления: 2015-12-22; просмотров: 2854;