"П.Нортон "Программно-аппаратная организация компьютера IBM PC"" - читать интересную книгу автора - Если на целевой дискете должен создаваться новый файл, то
необходимо проверить, имеется ли свободное место в справочнике или он уже заполнен. - Установить формат исходной дискеты: односторонний или двухсторонний? - Установить формат целевой дискеты: односторонний или двухсторонний? - Проверить, не копируется ли файл сам в себя (что запрещено). - Проверить наличие в системе двух дисководов, поскольку для систем с одним дисководом необходимо имитировать диск В. - Проверить, необходимо ли вычислять размер исходного файла по его размеру, указанному в справочнике, или он будет определяться маркером конца файла (как для текстовых файлов в коде ASCII). - Проверить, находится ли таблица размещения файлов для исходной дискеты в оперативной памяти. - Проверить, находится ли таблица размещения файлов для целевой дискеты в оперативной памяти. - Проверить корректность размещения исходного файла на дискете по соответствующей таблице размещения файлов. - Проверить, совпадает ли размер файла, указаный в справочнике, с действительным размером. - Установить, какой обьем памяти можно использовать в качестве буфера при перезаписи файла. - Проверить, больше или меньше 64К размер буфера. - Нужно ли удалять из памяти интерпретатор команд, чтобы увеличить размер буфера? Пока что рассмотрен только логический уровень задачи. Ниже приводится физический уровень, причем при его изменении опущено значительно больше подробностей: - Запущен ли двигатель дисковода? - Выведена ли головка чтения/записи на нужную дорожку? - Сколько секторов данных нужно считать/записать на этой дорожке? - Готов ли дисковод к выполнению команды? - Работает ли дискета? Не требуется ли перезапуск, повторная попытка выполнения операции или повторное позиционирование головки? - Если уже выполнялась повторная попытка, достаточно ли было сделано попыток, чтобы выдать запрос о дальнейших действиях? - Каким был ответ на запрос? Повторить, игнорировать или аварийно завершить работу? - Ожидание готовности дисковода? - Операция чтения/записи/поиска завершилась успешно? - Целевая дискета защищена от записи? Все описанное выше является лишь приблизительным перечислением подробностей операции копирования файла. А это еще относительно простая операция ДОС. Кстати, приведенное разделение на логический и физический уровни очень важно для работы операционной системы. Основная забота операционной системы, такой как ДОС, заключается в том, чтобы скрыть от пользователя эти ненужные ему подробности. Значительная часть функций операционной системы заключается в обслуживании устройств ввода/вывода. |
|
|