Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_ОС / ТОС_2_слайды.doc
Скачиваний:
57
Добавлен:
03.03.2016
Размер:
109.06 Кб
Скачать

Секторы

Диск делится на секторы, и соответсвенно, дорожки делятся на участки. Секторы создаются при форматировании диска. Низкоуровневое форматирование определяет секторы, записывая последовательность специальных кодов, говорящих контроллеру, где начинается сектор.Затем записываются специальные идентификационные номера, так что у каждого сектора появляется своя метка.

Файл – понятие, которое используетсяDOS для изоляции программ от сложностей размещения данных на дисковой поверхности. Это не что иное, как цепочка секторов, заполненных данными.

DOS держит на диске списки файлов, называемые каталогами. В них находятся некоторая информация о файле и номер сектора, с которого начинается файл.

Каталог ничего не говорит о размещении файла на диске, кроме адреса его начала. Все остальное приходится на таблицу размещения файлов.

Кластеры

Кластер- единица распределения дискового пространства (1, 2 сектора).

Начальный кластер дает номер первого и, возможно, единственного кластера, отведенного файлу. DOS берет этот номер, преобразует его в соответсвующие номера секторов и начинает доступ к файлу. Таблица размещения файлов указывает путь к следующему кластеру, занимаемому файлом.

Таблица размещения файлов

Из каталога можно узнать только начальный кластер файла. Но большинство байлов занимает свыше одного кластера. При форматировании диска, DOS создает таблицу размещения файлов (FAT – file allocation table).

FAT – это самое важное, что есть на диске.DOS содержит на диске две копииFAT, чтобы в случае повреждения, одна оставалась в запасе.

FAT – представляет собой таблицу чисел, причем каждая позиция в таблице соотносится с кластером дискового пространства. Первая позиция представляет кластер 0, вторая кластер 1 и т.д. Каждая позиция содержит число – номер следующего кластера.

Рассмотрим рисунок 1: ROOT – корневой каталог, FAT – таблица размещения файлов. Допустим FILE1 начинается с 3-го кластера (№ первого кластера для этого файла). В 3-ем кластере находится сведения, какой следующий кластер занимает данный файл (в нашем случае 5). Переходим на 5-ый кластер, в 5-ом кластере стоит цифра 9 – переход на 9-ый кластер. В 9-ом кластере стоит <EOF>, означающий конец файла. Таким образом, FILE1 занимает 3 кластера: 1 – в ROOT, и 2 в FAT.

Чтобы посчитать приблизительный размер FILE1, необходимо количество кластеров умножить на размер кластера.

Размер FAT меняется в зависимости от размера диска и размера кластера.

В процессе работы из-за ошибок пользователя, сбоев в работе программ, сбоев электропитания, действий вирусов и т.д. возможно повреждение данных на дисках. Можно выделить следующие группы повреждений:

  • Ошибочное удаление файла;

  • Повреждение файлов на диске;

  • Порча системных областей диска;

Восстановление стертых файлов

При удалении файла DOS выполняет две операции. Во-первых, первый символ записи в каталоге, соответствующий данному файлу, изменяется на код греческой буквы «сигма». При последующих просмотрах каталога этот символ означает, что данная запись каталога «пуста», ив нее можно заносить информацию о новом файле. В тоже время вся информация о предыдущем файле остается без изменения, за исключением первого символа, на код буквы «сигма».

Во-вторых, DOS просматривает таблицу размещения файлов и освобождает кластеры, выделенные этому файлу Фактически коды, образующие связный список кластеров файла, заменяются на коды, указывающие, что эти кластеры свободны и могут использоваться другими файлами. Но фактического уничтожения информации в кластерах, занятых файлом, DOS не выполняет. Когда кластеры требуются для другого файла, их можно назначить файлу, несмотря на наличие в них старой информации. Эта информация уничтожается только в процессе записи в кластеры нового файла. Даже если новый файл короче того, который ранее занимал кластер, данные из старого файла не попадают в новый, т.к. DOS длину файла.

Поскольку файл остается нетронутым, восстановить его вроде бы нетрудно. Однако часто возникают проблемы. Потеря информации о файле в FAT оказывается фатальной. На диске размещается тысячи кластеров, и только в FAT можно узнать, как они связаны друг с другом. Начальный кластер можно всегда найти, но вот восстановить цепочку кластеров дело совсем не простое.

В простейшем случае файл занимает всего один кластер. Чтобы восстановить файл после стирания, утилита должна найти его запись в каталоге, используя для этого имя и расширение файла за вычетом первого символа. Первый стертый символ заменяется настоящим символом из имени файла, затем отыскивается в записи каталога начальный кластер, обращается к FAT и заново назначает этот кластер данному файлу.

Если файл занимает несколько соседних кластеров, действия утилиты усложняются, но ненамного. После восстановления записи в каталоге утилита обращается к FAT и назначает файлу столько последовательных нераспределенных кластеров, сколько требует файл. Число кластеров, входящих в файл, известно; это число записано в каталоге.

В действительности, утилита восстановления назначает последовательные кластеры, если они не заняты другими файлами. Если последовательные кластеры свободны, они с большей вероятностью принадлежат стертому файлу. В противном случае, скорее всего, файл разбросан по диску, что существенно затрудняет его восстановление или даже делает его невозможным.