1 / 16

ЛЕКЦИЯ № 8 РАБОТА С ФАЙЛАМИ НА МАГНИТНЫХ ДИСКАХ ДИСКОВЫЕ НАКОПИТЕЛИ

ЛЕКЦИЯ № 8 РАБОТА С ФАЙЛАМИ НА МАГНИТНЫХ ДИСКАХ ДИСКОВЫЕ НАКОПИТЕЛИ

mari
Download Presentation

ЛЕКЦИЯ № 8 РАБОТА С ФАЙЛАМИ НА МАГНИТНЫХ ДИСКАХ ДИСКОВЫЕ НАКОПИТЕЛИ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ЛЕКЦИЯ № 8 РАБОТА С ФАЙЛАМИ НА МАГНИТНЫХ ДИСКАХ ДИСКОВЫЕ НАКОПИТЕЛИ Bce диски, как гибкие, так и жесткие, организованы одинаковым образом. Поверхность диска разделена на ряд концентрических колец, называемых дорожками, a дорожки делятся радиально на сектора. Bce типы дисков используют размер сектора 512 байт в большинстве операционных систем. файл распределен по такому количеству секторов, которое необходимо, чтобы вместить его. Только несколько секторов на внешнем ободе дискеты зарезервированы для специальных нужд. остальные доступны на основе правила "первый подошел - первого обслужат". Это означает, что по мере заполнения диска данными сектора постепенно заполняются по направлению к центру диска. При уничтожении файла сектора освобождаются и со временем свободные области становятся разбросанными по диску, разбивая новые файлы и замедляя доступ к ним для чтения и записи.

  2. Фиксированные диски имеют некоторые специальные характеристики. часто они состоят из двух или более параллельных пластин, у каждой из которых есть две головки, чтобы читать обе их стороны. Bce дорожки, расположенные на данном расстоянии от центра, вместе называются цилиндром. Поскольку головки всех дисков двигаются тандемом, то достигается экономия перемещений если заполнять все дорожки одного ци- линдра, прежде чем переходить к следующему. Группы цилиндров могут относиться к различным операционным системам. Можно разбивать фиксированный диск на несколько разделов разного размера. По этой причине параметры фиксированного диска могут сильно отличаться. Дисковые сектора определяются магнитной информацией, которую записывает утилита фopмaтизaции диска. Информация включает идентификационный номер каждого сектора. BIOS нумерует сектора 1-8, 1-9 или 1-15, в зависимости от емкости диска. Дорожки не маркируются, вместо этого они определяются механически по смещению головки чтения/записи от внешнего края диска. Дисковые функции BIOS обращаются к определенному сектору, указывая номера дорожки и сектора. Однако функции DOS рассматривают все сектора диска, как одну цепь, которая нумеруется подряд, начиная от 0, поэтому каждый сектор имеет свой логический номер сектора.

  3. Для дискет первый сектор (дорожка 0, сектор 1) содержит запись начальной загрузки, которая является небольшой программой, позволяющей компьютеру считать c дискового накопителя программу загрузки операционной системы (для дискет – MS DOS). Затем идут две копии таблицы размещения файлов, которые содержат информацию o распределении дискового пространства (вторая копия хранится из соображений безопасности). Затем идет корневой каталог, который содержит список файлов и ссылок на подкаталоги, a также указывает в каком месте диска они начинаются. Фиксированные диски имеют главную запись загрузки, которая содержит таблицу разделов, позволяющую разделить диск между несколькими операционными системами. Таблица разделов содержит информацию o том, где на диске начинается раздел DOS, a также первый сектор какого раздела содержит запись начальной загрузки. B остальном раздел организован так же, как и дискета. Операционные системы DOS и Windows используют Таблицу Размещения Файлов FAT для покластерного распределения диска при использовании файловых систем FAT, FAT32. ОС Windows может поддерживать несколько файловых систем.

  4. Таблица Размещения Файлов всегда начинается с первого логического сектора (второй сектор дискеты или раздела фиксированного диска), сразу после блока начальной загрузки. Если она больше одного сектора, она продолжается на непосредственно следующих секторах. Для надежности FAT хранится в двух экземплярах, записанных подряд. FAT считывается в один из системных буферов по необходимости (при открытии или удлинении файла и пр.); этот буфер получает наибольший приоритет сохранности, чтобы удержать FAT в ОЗУ как можно дольше. ПОДДЕРЖКА ДИСКОВЫХ ОПЕРАЦИЙ В BIOS Функции дискового сервиса вызываются программным прерыванием Int 13h. Традиционно дисковый сервис подразделяет физические диски на дискекты (diskette) и фиксированные диски (fixed disk). Набор функций для этих классов устройств несколько различается как по составу, так и по реализации. Классы различаются по диапазону номеров для физических устройств: для дискет отводятся номера 0-7fh (реально только 0-3), а для фиксированных дисков – 80h-ffh. Контроллеры дисковых интерфейсов, имеющие в своем составе дополнительные модули BIOS, перехватывают вектор Int 13h, беря на себя обслуживание своих устройств.

  5. Когда в IBM PC/XT появились жесткие диски со своим контроллером, модуль BIOS этого контроллера, инициализирующийся во время теста POST, вставал на место INT 13h, а указатель на исходный обработчик дискового сервиса (драйвер НГМД из системной BIOS) сохранялся на месте Int 40h. Хотя поддержка жестких дисков давно уже включена в системную BIOS, ради совместимости возможность использования прерывания Int 40h для вызова драйвера гибких дисков сохраняется. Интерфейс этого вызова совпадает с Int 13h, но номер устройства (в регистре DL) не должен превышать 7fh. Кроме дискового сервиса (Int 13h) с дисковыми устройствами связаны еще и векторы, обслуживающие аппаратные прерывания от контроллера НГМД – Int 0eh (линия IRQ 6)и от контроллера жестких дисков – Int 76h (линия IRQ 14). При наличии двухканального порта АТА второй канал обычно задействует линию IRQ 15 (вектор 77h). В ХТ контроллер жестких дисков занимал линию IRQ 5 (вектор 0dh). Дополнительные контроллеры дисков могут использовать и другие прерывания. Аппаратные прерывания вырабатываются контроллерами по завершении (нормальному или аварийному) внутренних операций. На эти прерывания BIOS не реагирует, а при инициализации их векторы направляются на программную заглушку (инструкцию IRET).

  6. Стандартные драйверы дисковых функций BIOS (включая и расширенный сервис) имеют однозадачное происхождение. Во время выполнения функции значительное процессорное время может затрачиваться на ожидание завершения операции устройством. Драйверы многозадачного режима построены иначе: у них есть вызывающая часть, инициализирующая начало операции, и обработчик аппаратного прерывания от контроллера, сообщающий ОС о выполнении операции и результате. • Традиционный сервис BIOS • Традиционный дисковый сервис работает в 16-разрядном режиме процессора, все параметры вызова передаются через регистры процессора. Адрес сектора задается в системе CHS и размещен весьма специфично. Сервис называется программным прерыванием Int 13h. При вызове принимаются следующие соглашения: • номер функции задается в AH и не должен превышать 3fh; • логический номер диска задается в DL (бит 7=0 – признак обращения к НГМД);

  7. номер цилиндра (0 – 1023) задается в CH (младшие 8 бит) и CL[7:6] (старшие 2 бита); • номер головки (0-255) задается в DH; • номер начального сектора (1 – 63) задается в регистре CL[5:0]; • количество секторов, участвующих в операции, 8 бит – в AL (0 – 255); • указатель на начало буфера оперативной памяти для считываемых и записываемых данных – в ES:BX; • результат выполнения операции определяется по флагу переноса:CF=0 – успешное выполнение операции, CF=1 – обнаружены ошибки (код состояния возвращается в AH, код завершения последней операции с дискетами хранится по адресу 40:41h, с жесткими дисками – 40:74h); • таблица параметров диска для дискет (DPT) задана указателем в памяти по адресу 0:78h , для жестких дисков (HDPT) – 0:104h или 0:118h. • Список функций традиционного сервиса приведен в следующей таблице. Устройства могут не поддерживать некоторые функции, о чем должны «честно сообщать» кодом возврата 01h.

  8. Функции традиционного дискового сервиса

  9. Для функций чтения/записи 02h,03h,04h,05h в случае нормального завершения флаг CF сброшен и регистр AH содержит 0. В случае ошибки флаг CF устанавливается в 1, а регистр АH содержит код состояния, идентифицирующий причину ошибки.

  10. Традиционный сервис BIOS позволяет работать с дисками, имеющими до 1024 х 256 х 63 = 16 515 072 секторов (8.4 Гб). Для дисков большего объема необходимо пользоваться только функциями расширенного сервиса. • Расширения BIOS Int 13h используют ОС Windows 95/98/2000. • Расширения BIOS Int 13h не используют DOS (все версии), Windows 3.x, Windows NT, Novell Net Ware, OS/2 Warp, Linux, Unix. • В настоящее время определены три набора функций: • доступ к фиксированным дискам (fixed disk access subset) – функции 41-44h, 47 h и 48h; • блокировка и смена носителя (device locking and ejecting subset) – функции 41h, 45h, 46h, 48h и 49h; • поддержка расширенных дисков (enhanced disk drive (EDD) support subset) – функции 41h и 48h. • Расширенный сервис, как и традиционный вызывается программным прерыванием int 13h с номерами функций свыше 3fh (регистр АН); номер устройства (регистр DL) допустим в диапазоне 80h – ffh.

  11. Основные параметры вызова – начальный адрес блока, число секторов для передачи и адрес буфера – передаются через адресный пакет. Формат пакета в сравнении с передачей параметров традиционного сервиса через регистры довольно просторный.

More Related