Файловая система
При наличии большого числа программ и данных необходим строгий их учёт и систематизация. Операционным системам приходится работать с различными потоками данных, разными аппаратными и периферийными устройствами компьютера. Организовать упорядоченное управление всеми этими объектами позволяетфайловая система. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом устройстве. Таким образом, файловая система - это система управления данными - часть операционной системы, обеспечивающая работу прикладных программ с внешними запоминающими устройствами. Для обеспечения доступа к файлам файловая система MS-DOS организует и поддерживает на логическом диске определеннуюфайловую структуру. Структура дискового пространства
Файловая система использует несколько уровней представлений о структуре дискового пространства, каждый из которых ориентирован на определенную группу потребителей и позволяет решать определенный круг задач доступа к файлам. С этой точки зрения различают информационную, логическую и физическую структуры, для которых существует определенный набор структурных элементов и используется соответствующая терминология.
Информационная структура
Информационная структура дискового пространства - это внешнее представление дискового пространства, ориентированное на пользователя и определяемое такими элементами, как том(логический диск), каталог (папка, директория) и файл. Эти элементы используются при общении пользователя с операционной системой. Общение осуществляется с помощью команд, выполняющих операции доступа к файлам и каталогам. Дисковое пространство представляется пользователю, как множество логических дисков, для обозначения которых используются буквы латинского алфавита от А до Z. При этом именаА и В зарезервированы для гибких дисков. С каждым из логических дисков связано дерево каталогов. Дерево каталогов ОБЯЗАТЕЛЬНО содержит один корневой каталог (root directory) и множество иерархически подчиненных каталогов. Корневой каталог ВСЕГДА существует на отформатированном диске! Размер корневого каталога для данного диска - величина фиксированная, поэтому максимальное количество "привязанных" к нему файлов и других (дочерних) каталогов (подкаталогов) - строго определенное. Корневой каталог не имеет имени. Можно считать, что имя корневого каталога совпадает с именем соответствующего логического диска. Подчиненные каталоги - это (по существу) файлы определенной структуры, аналогичной структуре корневого каталога. Размер подчиненного каталога не фиксирован - он динамически изменяется при добавлении и удалении регистрируемых в нем объектов (файлов или дочерних подкаталогов). Размер подчиненного каталога ограничивается только размером логического диска.
Рис. 1
MS-DOS поддерживает иерархическую (древовидную) структуру каталогов (рис.1). В отличие от корневого каталога, остальные каталоги (подкаталоги) создаются с помощью специальныхвнутренних команд MS-DOS. Основная цель такой структуры каталогов - организация эффективного хранения большого количества файлов на диске. КАЖДЫЙ каталог (кроме корневого) имеет "родителя". Т.е. КАЖДЫЙ каталог (кроме корневого) имеет другой каталог, к которому данный каталог "привязан". MS-DOS рассматривает каждый каталог (кроме корневого), как файл. Термин "привязан" иногда заменяется термином "зарегистрирован". На рис.1 каталог 2.1 привязан к каталогу 1.1, т.е. является дочерним по отношению к каталогу 1.1, и родительским по отношению к каталогам 3.1 и 3.2. Физическая структура
Технические средства (аппаратная часть) чтения-записи информации имеют дело с физической структурой дискового пространства. Физическая структура описывается такими терминами, как диск (или пакет дисков), рабочая поверхность диска, головка чтения-записи, магнитная дорожка и сектор. Диск (пакет дисков) - физическое устройство для чтения-записи информации с автономным приводом. Рабочая поверхность диска (Side) - магнитная поверхность диска, на которой хранятся данные. Она связана с магнитной головкойчтения-записи (Head). Магнитная дорожка (Track) - дорожка на рабочей поверхности. Каждая дорожка поделена на секторы. Сектор (Sector) - это минимальная единица дискового пространства, к которой можно обратиться для записи или чтения информации. Обычно сектор составляет 512 байтов. Цилиндр (Cylinder) - множество дорожек одинакового радиуса, расположенных на всех рабочих поверхностях пакета дисков. Доступ ко всем дорожкам одного цилиндра может быть обеспечен при однократном радиальном позиционировании блока магнитных головок.
Рис. 2
На рис.2 показана физическая структура дискеты. Не следует путать термины "дорожка" и "цилиндр". Хотя на данном рисунке может показаться, что цилиндр и дорожка - это одно и то же. Дискета на 1,4 МБ - двусторонняя (т.е. имеет две рабочие поверхности), поэтому на одном цилиндре расположены две дорожки. Все рабочие поверхности, дорожки и секторы последовательно пронумерованы. Поэтому номер поверхности, номер дорожки на этой поверхности и номер сектора на этой дорожке однозначно определяют иерархический адрес сектора. Используют такжеабсолютную нумерацию секторов - начиная с нулевого сектора нулевой дорожки нулевой поверхности диска. Для однозначного определения места расположения какого-либо файла на диске необходимо связать с этим файлом упорядоченную последовательность пронумерованных секторов. Сектор - это весьма малая единица емкости дискового пространства. Поэтому использование дискового пространства в качестве логического адреса файла на диске может создавать технические проблемы и снижает эффективность использования дисков большой емкости. Для устранения этих недостатков используется более крупная единица, называемая кластером. Кластер является основным элементом логической структуры диска и содержит несколько секторов. Количество секторов в кластере зависит от емкости диска и некоторых других параметров. Логическая структура
Логическая структура реализует линейную ("ленточную") модель дискового пространства тома. Согласно этой модели том разделен на две расположенные последовательно области - системную и рабочую. Рабочая область, расположенная непосредственно после системной, разделена на последовательно пронумерованныекластеры и предназначена для хранения файлов и подкаталогов. Кластер используется в качестве минимальной единицы, выделяемой операционной системой одному файлу или подкаталогу. Например, кластер Windows (FAT32) имеет размер 32 КБ. И если даже файл имеет размер 1 КБ, то для него все равно будет выделено на диске 32 КБ. В Windows все это можно увидеть, щелкнув по файлу правой кнопкой и выбрав пункт "Свойства". Каждый кластер имеет уникальный номер и содержит несколько расположенных подряд секторов (1 или 2 сектора в кластере для гибких дисков, 4 и более - для жестких). Между номером кластера и списком абсолютных номеров секторов, которые в него входят, существует взаимно-однозначное соответствие. Системная область занимает несколько начальных (в абсолютной нумерации) секторов, начиная с нулевого, и содержит блоки служебной информации. Эти блоки используются для организации доступа к файлам и загрузки операционной системы:
Блок загрузки (Boot-Sector)
Корневой каталог (Root Directory)
Таблица распределения файлов (FAT - File Allocation Table)
Блок загрузки (Boot-Sector)
Блок загрузки всегда занимает нулевой сектор и содержит таблицу параметров формата диска и короткую программу загрузки DOS. Структура блока загрузки показана в таблице 1. Таблица 1. Структура блока загрузки.
Смещение |
Длина, байт |
Содержимое |
+00 |
3 |
Команда перехода на программу загрузки (JMP) |
+03 |
8 |
Служебная информация программы форматирования |
+0Bh |
2 |
Размер сектора в байтах |
+0Dh |
1 |
Количество секторов в кластере |
+0Eh |
2 |
Количество секторов перед первой FAT (кол-во резервных секторов в начале диска) |
+10h |
1 |
Количество копий FAT (стандарт - две) |
+11h |
2 |
Максимальное число элементов корневого каталога |
+13h |
2 |
Общее число секторов на логическом диске |
+15h |
1 |
Дескриптор носителя - тип формата диска (то же, что и 1-й байт FAT) |
+16h |
2 |
Количество секторов в одной FAT |
+18h |
2 |
Количество секторов на дорожке |
+1Ah |
2 |
Количество головок чтения-записи (поверхностей) |
+1Ch |
2 |
Количество скрытых секторов |
+1Eh |
|
Размер форматированной порции корневого сектора |
|
|
Начало кода и данных загрузки |
