Система управления файлами в MS-DOS построена на использовании данных директория (или каталога) диска. Директорий - это область памяти на диске, выделяемая в процессе его форматирования. Директорий представляет собой таблицу, куда заносятся данные о хранящихся на диске файлах. Каждому файлу в директории соответствует одна запись. Запись директория включает следующую информацию: полное имя файла (имя и расширение), дату и время его создания или последней корректировки, объем занимаемой памяти в байтах, а также некоторую дополнительную информацию, используемую при обслуживании файла операционной системой.
Дорожки и сектора
Для того, чтобы данные могли быть записаны на диск, его поверхность необходимо структурировать - т.е. разделить на сектора и дорожки. ДОРОЖКИ - это концентрическе окружности, покрывающие поверхность диска. Ближайшей к краю диска дорожке присвоен номер 0, следующей за ней - 1 и т.д. Если дискета двусторонняя, то пронумерованы обе ее стороны. Номер первой стороны - 0, номер второй - 1.
Каждая дорожка разбивается на участки, называемые секторами. Секторам также присваиваются номера. Первому сектору на дорожке присваивается номер 1, второму - 2 и т.д. Обычно сектор занимает 512 байт.
Жесткий диск состоит из одной или нескольких круглых пластин. Для хранения информации используются обе поверхности пластины. Каждая поверхность разбивается на дорожки, дорожки, в свою очередь, - на сектора. Дорожки одинакового радиуса составляют цилиндр. Таким образом, все нулевые дорожки составляют цилиндр с номером ноль, дорожки с номером 1 - цилиндр с номером 1 и т.д.
Таблица размещения файлов и директорий
Команда FORMAT формирует таблицу размещения файлов (FAT) и директорий диска. Обе эти структуры тесно связаны с организацией доступа к файлам. На каждом диске имеется две копии FAT. Эта таблица имеет исключительное значение при обслуживании файлов, поэтому в случае потери первой копии FAT, система получает доступ ко второй.
На стандартной дискете, имеющей по 8 секторов на дорожке, FAT занимает 1 сектор. На стандартной дискете с 9-ю секторами на дорожке для таблицы отводится 2 сектора.
Структура директория
Директорий - это таблица-описание содержимого диска. Каждому файлу в таблице соответствует одна запись. Запись занимает 32 байта, разбитых на 8 участков или полей. В каждое поле записывается информация, используемая системой при обслуживании файла.
MS-DOS обеспечивает две технологии обслуживания файлов. Первая была разработана при создании версий 1.Х. Эта технология основана на использовании структур данных, называемых блоками управления файлом (FСB). В то время подавляющее большинство компьюьеров работало под управлением операционной системы СРM. Блоки FСB обеспечивали совместмость файлов MS-DOS с файлами этой системы. При разработке MS-DOS версий 2.Х, когда была предложена иерархическая структура организации файлов, была разработана вторая технология их обслуживания. Она основана на использовании ссылок на управляющую запись файла и не требует организации FСB. После того, как эта технология была опробована на операционной системе UNIX, она получила широкое распространение.
Организация памяти
Память состоит из большого количества отдельных элементов, каждый из которых предназначен для хранения минимальной единицы информации - 1 байта. Каждому элементу соответствует уникальный числовой адрес. Первому элементу присвоен адрес 0, второму - 1 и т.д., включая последний элемент, чей адрес определяется общим количеством элементов памяти минус единица. Обычно адрес определяется шестнадцатеричным числом (в тексте шестнадцатеричные числа помечаются заглавной "Н", например, 10Н).
Сегменты
Процессор компьютера (СРU) делит память на блоки, называемые сегментами. Каждый сегмент занимает 64 К и каждому сегменту соответствует уникальный числовой адрес. Процессор имеет четыре регистра сегмента. Регистр - это внутренняя структура, предназначенная для хранения информации. Регистры сегмента предназначены для хранения адресов отдельных сегментов. Они называются СS (сегмент кода), DS (сегмент данных), SS (сегмент стэка) и ES (запасной сегмент). Кроме указанных, процессор имеет еще 9 регистров. В данный момент следует отметить регистры IР (указатель команды) и SР (указатель стэка). Регистры СS и IР в паре составляют длинный адрес команды, которая будет выполняться следующей. Регистры SS и SР в паре составляют длинный адрес стэка.
Доступ к памяти
Доступ к ячейкам памяти осуществляется посредством соединения содержимого регистра сегмента с содержимым того или другого регистра.Таким образом определяется адрес требуемого участка памяти. Например, адрес следующей команды определяется содержимым регистров СS и IР (записывается "СS:IР"). После выполнения команды и ее удаления из памяти содержимое IР изменяется так, чтобы в регистрах СS:IР находился адрес команды, которая будет выполнена после данной.
Способ объединения регистров для определения адреса ячейки памяти не накладывает ограничений на количество доступной памяти. Верхнее ограничение зависит от физического строения памяти (т.е. от общего количества ячеек). Первые версии MS-DOS разрабатывались для процессора Intel 8088 СРU. Каждый регистр этого процессора рассчитан на хранение 16-битового числа. То есть СРU 8088 комбинирует содержимое сегментного регистра (скажем, СS) с содержимым другого регистра (скажем, IР), получая 20-битовый адрес памяти, что ограничивает доступную память до 2хх20 байтов или 1 Мб.
Позже появились усовершенствованные версии MS-DOS и соответственно им усовершенствованные процессоры СРU 80286 и 80386, позволяющие производить доступ к ячейкам, расположенным за границей первого Мб памяти. Однако, ограничение на 1 Мб до сих пор (по крайней мере в версии 3.3) не удалось обойти, что является одним из основных недостатков операционной системы.
Доступ к памяти организуется соединением содержимого одного из регистров сегмента с содержимым одного из оставшихся регистров. Значение сегментного регистра называется адресом сегмента. Значение остальных регистров в этом случае называется относительным адресом ячейки памяти (от начала сегмента) или ее коротким адресом. Таким образом, адрес байта вычисляется посредством умножения адреса сегмента на 16, и к полученному значению добавляется короткий адрес.
Сегментные регистры
Сегментные регистры используются при идентификации сегмента памяти. Сегмент - это непрерывный блок памяти, длиной 64 К. Сегментные регистры применяются в комбинации с регистром указателя или индексными регистрами и в этом случае идентифицируют конкретную ячейку памяти.
Всего сегментных регистра четыре. Регистр СS обычно используется при идентификации блока памяти, в котором хранится код программы. Регистр DS при идентификации участка памяти, в котором находятся данные этой программы. С помощью регистра SS организуется доступ к стэку. (Стэк - это временно распределенная область памяти, обеспечивающая интерфейс "MS-DOS-прикладная программа"). Регистр ES - дополнительный (или запасной) сегментный регистр. На него возложены разнообразные функции, часть из которых рассматривается ниже.
Имеется два регистра стэка. Они применяются в комбинации с регистром SS и определяют местонахождение стэка. Регистр SР называется указателем начала стэка, и в комбинации с регистром SS идентифицирует первый байт стэка. Регистр BР называется указателем базы стэка и в комбинации с регистром SS идентифицирует последний байт стэка.
Индексных регистра тоже два. Регистры SI и DI применяются в комбинации с одним из сегментных регистров и определяют местонахождение конкретной ячейки памяти. Регистр SI обычно комбинируют с регистром DS, регистр DI - с регистром ES.
Регистры общего назначения
К регистрам общего назначения относятся регистры AX, BX, СX и DX (их четыре). Это многофункциональные регистры. Регистр указателя команды
Регистр IР обычно применяется в комбинации с регистром СS и определяет адрес следующей команды. Регистр флагов состояния
В регистре флагов обычно находятся девять флагов состояния процессора (каждый флаг занимает 1 бит). Эти флаги определяют результат конкретных операций, выполняемых под управлением MS-DOS. Регистры памяти Регистр памяти включает 2 байта данных (или 16 битов). Реально регистры общего назначения однобайтные. Так, регистр AX включает регистр AH (который составляет старший байт регистра AX) и регистр AL (который составляет младший байт регистра AX). Аналогично, регистры BH, BL, СH, СL, DH и DL - однобайтные.
Важнейшие компоненты электронного оборудования компьютера - его центральный процессор (СРU) и его память. Остальные компоненты (дисководы, клавиатура, дисплеи, принтеры и т.д.) являются внешними по отношению к компьютеру. Эти внешние компоненты электронного оборудования называются периферийными устройствами.
Связь машины с периферийным устройством осуществляется в строго определенном порядке. Каждому периферийному устройству в операционной системе соответствует программа, отвечающая за его контакт с компьютером. Эти программы называются драйверами.