Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЗ - 06 - ОПЕРАЦИОННАЯ СИСТЕМА MS DOS.doc
Скачиваний:
25
Добавлен:
21.11.2018
Размер:
237.06 Кб
Скачать

13

Лабораторное занятие № 06

Операционная система ms dos

1. Принципы сохранения информации на магнитных дисках в ОС MS DOS.

2. Команды MS DOS для работы с файлами и каталогами.

3. Режим командной строки ОС Windows 2000.

1. Принципы сохранения информации на магнитных дисках в ос ms-dos

Перед использованием чистой дискеты она должна быть размечена. Процедура разметки (форматирования) дискеты заключается в том, что в определенные места каждой дорожки записываются служебные последовательности символов, называемые форматом. Формат предназначен для того, чтобы аппаратура адаптера дисководов могла однозначно определить позицию головки на дорожке, в нужное время переключиться с поиска нужного сектора на запись или чтение поля данных и проверить достоверность записанных и прочитанных данных.

Все операции записи данных сопровождаются накоплением и записью в конце поля данных двух байтов контрольной суммы. Эта контрольная сумма, иначе называемая кодом циклического контроля (CRCCyclic Redundency Check), подсчитывается с помощью полинома

Х16 + Х12 + Х5 + Х + 1.

При операциях чтения и проверки данных на внутренних регистрах контроллера НГМД происходит накопление контрольной суммы по этому же алгоритму, а затем накопленная и записанная контрольные суммы сравниваются. При их совпадении прочитанные или проверенные данные считаются достоверными, при несовпадении — вырабатывается сигнал сбоя данных.

Первая выполняемая на новом диске операция - это форматирование. Этот процесс позволяет придать диску его окончательную структуру. В ходе форматирования определяется количество дорожек и число секторов на дорожке.

В операционной системе MS-DOS предусмотрены четыре логических области дискеты:

1) загрузочный сектор;

2) таблица размещения файлов — FAT (Files Allocation Table);

3) каталог;

4) область данных.

Загрузочный сектор содержит короткую программу начальной загрузки ОС в память компьютера. Независимо от формата записи эта программа всегда занимает один сектор — первый сектор на цилиндре, имеющем номер ноль. В следующих секторах расположена таблица размещения файлов (FAT). Она содержит информацию, определяющую расположение записанных на дискету файлов. Соседние фрагменты файла не обязательно записываются в соседних секторах. Новые файлы могут занимать место, освобожденное в результате стирания ранее записанных. В связи с важностью информации, хранящейся в FAT, на дискете находятся две копии таблицы. Непосредственно за таблицей размещения файлов находится каталог. В нем записываются основные параметры (например, длина) файлов, записанных в области данных.

Величина области данных, каталога и FAT зависит от числа секторов на дискете, которое в свою очередь, обусловлено форматом записи данных. В MS-DOS длина сектора составляет 512 байтов, но число секторов может быть различным и зависит от версии системы и типа накопителя. В табл. 1 приведено сравнение основных форматов MS-DOS.

Таблица 1

Формат

Число секторов на дискете

Размер FAT (две копии), секторов

Размер каталога, секторов

Размер области данных, секторов

S-8

320

2

4

313

D-8

640

2

7

630

S-9

360

4

4

351

D-9

720

4

7

708

DD-9

1440

10

7

1422

QD-15

2400

14

14

2371

QD-18

2880

18

18

2843

Примечание. В столбце "Формат" обозначено количество дорожек и сторон дискеты (S - одна сторона, 40 дорожек; D - две стороны, 40 дорожек; DD - две стороны, 80 дорожек: QD - две стороны, 80 дорожек). Цифры определяют число секторов на дорожке.

Рассмотрим логическую организацию дискеты MS-DOS, записанной в формате D-9 (табл. 2).

Таблица 2

Номер стороны

Номер дорожки

Номер сектора

Логическая область дискеты

0

0

1

Загрузочный сектор

0

0

2-3

FAT (первая копия)

0

0

4-5

FAT (вторая копия)

0

1

0

0

6-9

1-3

Каталог

1

0, 1

0

1-39

4-9

1-9

Область данных

Минимальная часть диска, резервируемая для одного файла, называется единицей распределения памяти - кластером. Это означает, что даже если файл состоит всего из 1 байта, а единицей распределения памяти является, например, 1 Кбайт, то под этот файл на диске будет выделен 1 Кбайт. Следует подчеркнуть, что кластер объемом 1 Кбайт может состоять из одного сектора длиной 1 Кбайт, двух секторов длиной по 512 байт и т.д.

В системе MS-DOS единицей распределения памяти является кластер, состоящий из одного или двух секторов длиной 512 байт (в зависимости от формата дискеты). В рассматриваемом формате D-9 кластер состоит из двух соседних секторов.

FAT дискеты состоит из 12-битовых элементов. Структура таблицы размещения файлов приведена в табл. 3.

Таблица 3

Элемент FAT

Функция

0

Идентификатор формата:

FFE - формат S-8

FFF - формат D-8

FFC – формат S-9

FFD - формат D-9

FF9 - формат QD-9 или QD-15

FF0 - формат QD-18 или любой другой, уточняемый по загрузочному сектору

1

FFF – занят

2

Статус кластера 2 (секторы 4 и 5, дорожка 0, сторона 1)

3

Статус кластера 3 (секторы 6 и 7, дорожка 0, сторона 1)

4

Статус кластера 4 (секторы 8 и 9, дорожка 0, сторона 1)

5

Статус кластера 5 (секторы 1 и 2, дорожка 1, сторона 0)

Первый элемент содержит идентификатор формата дискеты, второй элемент не используется (содержит код FFF — двенадцать бит), а остальные выполняют две функции:

  • определяют статус кластера (свободен, занят, поврежден);

  • определяют логическую очередность кластеров, присвоенных файлу.

Как видно из табл. 3, каждый элемент FAT (за исключением двух первых) однозначно связан с определенной парой секторов области данных.

Кластеры обозначаются последующими цифрами, начиная с 2. Номер последнего кластера зависит от формата дискеты; для формата D-9 он составляет 355. В связи с тем, что количество кластеров превышает 256, каждый элемент FAT, как уже говорилось, кодируется 12 битами (для жестких дисков большой емкости 16 битами). В связи с этим элементы FAT следует считывать парами, всякий раз анализируя три очередных байта. Чтобы разъяснить, каким образом на этой основе создаются 12-битовые значения, возьмем следующий пример: если упомянутые три байта содержат шестнадцатиричные значения АВ CD EF, то закодированные в них элементы FAT имеют значения DAB и ЕFС.

Элементы таблицы размещения файлов, определяющие статус кластера, могут принимать следующие значения:

  • 000 — кластер свободен;

  • 002-FF0 — кластер занят (за исключением последнего кластера файла;

  • FF1-FF7 — кластер поврежден (чаще всего употребляется код FF7);

  • FF8-FFF — кластер занят, последний кластер файла (чаще всего используется код FFF).

Перейдем теперь к ответу на вопрос, как на основе FAT определить размещение файла на диске. Вы уже знаете, как выглядит последний кластер файла, и помните, что номер кластера (номер элемента FAT) однозначно присвоен паре секторов. Нужна еще следующая информация: как выяснить, где находится начало файла и как найти очередной кластер, зная номер n-го кластера файла.

Номер первого элемента FAT, связанного с данным файлом, представлен в каталоге. Допустим, что для некоторого файла он имеет значение 3. Если в третьем элементе FAT записано значение FFF (конец файла), то это означает, что кластер 3 (секторы 6 и 7 нулевой дорожки первой стороны дискеты) содержит весь файл (его длина не превышает 1024 байт). Если бы файл был больше, то в 3-м элементе FAT (прочитанном в каталоге) находился бы номер кластера, содержащего дальнейшую часть файла (номер, указывающий очередной элемент FAT) .

Рассмотрим еще один пример. На этот раз предположим, что в соответствующем месте каталога указан второй элемент FAT. Кроме того, пусть содержимое FAT аналогично представленному в табл. 4, в которой наглядно показан пример размещения файла на диске. На основании значения, прочитанного в каталоге, можно выяснить, где на дискете находится начало файла. Затем проверяем содержимое второго элемента FAT. Оно составляет 005, т.е. вторая часть файла размещена в кластере с номером 5. В свою очередь пятый элемент FAT указывает, что третья часть файла расположена в третьем кластере. Столь же легко найти и очередные три части файла (кластеры 4, 7 и 6). Поскольку шестой элемент FAT содержит код FFF, то шестой кластер и является концом цепочки.

Таблица 4

Номер элемента FAT

Содержимое

Размещение файла на диске

Очередность частей файла

Сторона

Дорожка

Сектор

2

005

1

0

4, 5

1

3

004

1

0

6, 7

3

4

007

1

0

8, 9

4

5

003

0

1

1, 2

2

6

FFF

0

1

3, 4

6

7

006

0

1

5, 6

5

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

В каталоге системы MS-DOS каждый файл описан с помощь байтов, образующих элемент (строку) каталога. Таким образом, каждый сектор каталога содержит 16 строк. В одной из них (обычно в первой) может быть записано имя диска (метка тома). Структура единицы каталога системы MS-DOS, т.е. тип и размер полей, из которых состоит каждая строка каталога, представлены в табл. 5.

Таблица 5

Относительный адрес

Размер поля

Описание

0

8

Имя файла

8

3

Тип файла

11

1

Атрибут

12

10

Резервное поле (нули)

22

2

Время создания файла

24

2

Дата создания файла

26

2

Номер начального кластера файла

28

4

Длина файла

Имя файла и его типа (расширение) записываются в кодах ASCII. При записи имени диска эти два поля объединяются, т.е. для него предназначаются 11 символов. Неиспользованные байты полей заполняются символом пробела. Первый байт поля имени файла используется также для обозначения стертых файлов (шестнадцатеричный код Е5) и свободных строк в каталоге (код 00).

Байт атрибута файла может принимать следующие шестнадцатеричные значения:

  • 01 — файл только для чтения;

  • 02 — скрытый файл;

  • 04 — системный файл;

  • 08 — имя диска;

  • 10 — подкаталог;

  • 20 — архив (так классифицируются, например, файлы пользователя).

Скрытые и системные файлы недоступны для вводимых с клавиатуры команд ОС, например, для команды DIR. Подкаталоги функционируют на правах обычных файлов.

Слова, описывающие время и дату создания файла, рассчитываются по следующим формулам:

время = час * 2048 + минуты * 32 + секунды

дата = (год-1980) * 512 + месяц * 64 + день

Длина файла представлена в байтах. Последние четыре поля (время, дата, номер первого кластера, длина файла) записываются, начиная с младшего байта. Например, в поле длины файла, размер которого составляет 513 байт, будут записаны следующие величины: 01, 02, 00, 00.