Алгоритмы выполнения типовых файловых операций
Файловая система При наличии большого числа программ и данных необходим строгий их учёт и систематизация. Операционным системам приходится работать с различными потоками данных, разными аппаратными и периферийными устройствами компьютера. Организовать упорядоченное управление всеми этими объектами позволяетфайловая система. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом устройстве. Таким образом, файловая система - это система управления данными - часть операционной системы, обеспечивающая работу прикладных программ с внешними запоминающими устройствами. Для обеспечения доступа к файлам файловая система MS-DOS организует и поддерживает на логическом диске определеннуюфайловую структуру. Структура дискового пространства Файловая система использует несколько уровней представлений о структуре дискового пространства, каждый из которых ориентирован на определенную группу потребителей и позволяет решать определенный круг задач доступа к файлам. С этой точки зрения различают информационную, логическую и физическую структуры, для которых существует определенный набор структурных элементов и используется соответствующая терминология.
Информационная структура Информационная структура дискового пространства - это внешнее представление дискового пространства, ориентированное на пользователя и определяемое такими элементами, как том(логический диск), каталог (папка, директория) и файл. Эти элементы используются при общении пользователя с операционной системой. Общение осуществляется с помощью команд, выполняющих операции доступа к файлам и каталогам. Дисковое пространство представляется пользователю, как множество логических дисков, для обозначения которых используются буквы латинского алфавита от А до Z. При этом именаА и В зарезервированы для гибких дисков. С каждым из логических дисков связано дерево каталогов. Дерево каталогов ОБЯЗАТЕЛЬНО содержит один корневой каталог (root directory) и множество иерархически подчиненных каталогов. Корневой каталог ВСЕГДА существует на отформатированном диске! Размер корневого каталога для данного диска - величина фиксированная, поэтому максимальное количество "привязанных" к нему файлов и других (дочерних) каталогов (подкаталогов) - строго определенное. Корневой каталог не имеет имени. Можно считать, что имя корневого каталога совпадает с именем соответствующего логического диска. Подчиненные каталоги - это (по существу) файлы определенной структуры, аналогичной структуре корневого каталога. Размер подчиненного каталога не фиксирован - он динамически изменяется при добавлении и удалении регистрируемых в нем объектов (файлов или дочерних подкаталогов). Размер подчиненного каталога ограничивается только размером логического диска.
Рис. 1
Физическая структура Технические средства (аппаратная часть) чтения-записи информации имеют дело с физической структурой дискового пространства. Физическая структура описывается такими терминами, как диск (или пакет дисков), рабочая поверхность диска, головка чтения-записи, магнитная дорожка и сектор. Диск (пакет дисков) - физическое устройство для чтения-записи информации с автономным приводом. Рабочая поверхность диска (Side) - магнитная поверхность диска, на которой хранятся данные. Она связана с магнитной головкойчтения-записи (Head). Магнитная дорожка (Track) - дорожка на рабочей поверхности. Каждая дорожка поделена на секторы. Сектор (Sector) - это минимальная единица дискового пространства, к которой можно обратиться для записи или чтения информации. Обычно сектор составляет 512 байтов. Цилиндр (Cylinder) - множество дорожек одинакового радиуса, расположенных на всех рабочих поверхностях пакета дисков. Доступ ко всем дорожкам одного цилиндра может быть обеспечен при однократном радиальном позиционировании блока магнитных головок.
Все рабочие поверхности, дорожки и секторы последовательно пронумерованы. Поэтому номер поверхности, номер дорожки на этой поверхности и номер сектора на этой дорожке однозначно определяют иерархический адрес сектора. Используют такжеабсолютную нумерацию секторов - начиная с нулевого сектора нулевой дорожки нулевой поверхности диска. Для однозначного определения места расположения какого-либо файла на диске необходимо связать с этим файлом упорядоченную последовательность пронумерованных секторов. Сектор - это весьма малая единица емкости дискового пространства. Поэтому использование дискового пространства в качестве логического адреса файла на диске может создавать технические проблемы и снижает эффективность использования дисков большой емкости. Для устранения этих недостатков используется более крупная единица, называемая кластером. Кластер является основным элементом логической структуры диска и содержит несколько секторов. Количество секторов в кластере зависит от емкости диска и некоторых других параметров. Логическая структура Логическая структура реализует линейную ("ленточную") модель дискового пространства тома. Согласно этой модели том разделен на две расположенные последовательно области - системную и рабочую. Рабочая область, расположенная непосредственно после системной, разделена на последовательно пронумерованныекластеры и предназначена для хранения файлов и подкаталогов. Кластер используется в качестве минимальной единицы, выделяемой операционной системой одному файлу или подкаталогу. Например, кластер Windows (FAT32) имеет размер 32 КБ. И если даже файл имеет размер 1 КБ, то для него все равно будет выделено на диске 32 КБ. В Windows все это можно увидеть, щелкнув по файлу правой кнопкой и выбрав пункт "Свойства". Каждый кластер имеет уникальный номер и содержит несколько расположенных подряд секторов (1 или 2 сектора в кластере для гибких дисков, 4 и более - для жестких). Между номером кластера и списком абсолютных номеров секторов, которые в него входят, существует взаимно-однозначное соответствие. Системная область занимает несколько начальных (в абсолютной нумерации) секторов, начиная с нулевого, и содержит блоки служебной информации. Эти блоки используются для организации доступа к файлам и загрузки операционной системы:
Блок загрузки всегда занимает нулевой сектор и содержит таблицу параметров формата диска и короткую программу загрузки DOS. Структура блока загрузки показана в таблице 1. Таблица 1. Структура блока загрузки.
Корневой каталог состоит из набора регистрационных записей (32-байтных элементов). Каждая регистрационная запись содержит информацию об одном файле или подкаталоге и имеет следующую структуру: Таблица 2. Структура корневого каталога (одной записи).
Таблица 3. Байт атрибутов файла
Время и дата создания файла (подкаталога) описываются двухбайтовыми блоками данных в следующих форматах: Время
Все подчиненные каталоги хранятся в рабочей области диска подобно файлам. При создании подкаталога ему выделяется один кластер (из числа свободных), в котором создаются две служебных записи. После заполнения этого кластера регистрационными записями (см. табл.2) этому подкаталогу выделяется еще один свободный кластер и т.д. Таблица распределения файлов (FAT) Таблица распределения файлов (FAT) - это связанный список, который обеспечивает возможность фрагментарного расположения файлов на диске (т.е. расположения файлов по частям в разных местах диска). Этот список используется файловой системой для определения последовательности кластеров, выделенных файлу или подкаталогу, а также для поиска свободного пространства, необходимого для записи новых файлов и подкаталогов. Число элементов этого списка равно числу кластеров в рабочей области диска. Каждому кластеру соответствует один "одноименный" (т.е. имеющий такой же номер) элемент FAT. Каждому файлу или подкаталогу, записанному (хранящемуся) в рабочей области диска, соответствует цепочка элементов FAT. Номер начального элемента этой цепочки (совпадающий с номером начального кластера) указывается в соответствующей регистрационной записи каталога. Первый элемент цепочки указывает (содержит номер) на следующий элемент (кластер) и т.д. до конечного элемента, в котором указывается специальный код - признак конца файла. Для гибких дисков используются 12-битовые элементы FAT, а для жестких - 16-ти и 32-битовые. Длина элемента FAT определяет разрядность хранимого в нем двоичного числа. Поэтому длина элемента FAT ограничивает максимальное количество кластеров, которые могут быть сформированы в рабочей области тома (для FAT-12: 212 = 4096; для FAT-16: 216 = 65535; для FAT-32: 232 = 4294967296).
Пример: Пусть элемент некоторого каталога содержит регистрационную запись о файле, в которой содержится ссылка на начальный кластер (кластер № 18) из цепочки кластеров, выделенных этому файлу. На рисунке обычным шрифтом обозначены номера элементов FAT (номера элементов FAT соответствуют номерам кластеров), а жирным шрифтом обозначены числовые значения, записанные в этих элементах. Все числа представлены в шестнадцатиричной системе счисления.
Из приведенного на рис.3 фрагмента FAT следует:
Жесткий диск может быть разделен на несколько логических дисков (разделов, томов). Каждый из них рассматривается как автономный диск. Каждый логический диск имеет собственную системную и рабочую области. Любой логический диск может выступать в качестве загрузочного (системного) диска. Для обеспечения процесса начальной загрузки операционной системы, а также для хранения данных о физическом расположении логических дисков, в первом секторе жесткого диска (0-й цилиндр, 0-я сторона, 1-й сектор) создается специальная информационная структура - главная загрузочная запись (Master Boot Record, сокращенно MBR). MBR содержит код программы начальной загрузки и таблицу разделов диска (Partition Table). Каждый раздел в таблице представлен одним 16-байтовым элементом, содержимое которого формируется программой форматирования жесткого диска (например, FDISK). Для просмотра разделов можно использовать утилиту DiskEdit. Хотя работать с ней нужно очень осторожно. Здесь как у сапера - ошибаться нельзя - можно потерять всю информацию. Таблица 4. Структура таблицы разделов диска.
Алгоритмы выполнения типовых файловых операций Чтение файла Чтение файла с диска (например, при выполнении команды TYPE D:\TEXT\name.txt) реализуется следующей процедурой:
В этой записи читается значение поля "Номер начального кластера" (N)
В этой записи читается значение поля "Номер начального кластера" (N1).
Запись файла При записи на диск нового файла выполняется следующая процедура (приводится с упрощениями):
Например (см. рис.3), при записи файла размером 1234 байта на дискету стандартного формата (512 байтов в секторе, 1 сектор в кластере), этому файлу будет выделено три кластера с номерами 10, 11 и 16. При этом последний (16-й) кластер будет занят лишь частично. Удаление файла При удалении файла стандартными средствами (командой DEL):
Анализ рассмотренных выше процедур записи и удаления файлов показывает, что в ряде случаев сохраняется возможность восстановления удаленного файла (до тех пор, пока на его место физически не записан другой файл). Для восстановления логически удаленного файла достаточно изменить в регистрационной записи соответствующего каталога первый символ имени файла на любой из допустимых и восстановить в FAT цепочку номеров кластеров, занятых этим файлом.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2315)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |