Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы. Часть 2. Учебное пособие
.pdf
1. На экран выводится соответствующее сообщение об
ошибке.
2. HPFS сохраняет информацию, которая должна быть за-
писана в дефектный сектор в одном из запасных секторов, заранее зарезервированных на этот случай. Список свободных запасных блоков хранится в резервном блоке HPFS. При обнаружении ошибки во время записи данных в нормальный блок
HPFS выбирает один из свободных запасных блоков и сохраняет
эти данные в нем.
3. Файловая система обновляет карту аварийного замещения в резервном блоке. Эта карта представляет собой просто пары
двойных слов, каждое из которых является 32-битным номером
сектора. Первый номер указывает на дефектный сектор, а второй
— на тот сектор среди имеющихся запасных секторов, который
был выбран для его замены.
4. После замены дефектного сектора запасным карта аварийного замещения записывается на диск, и на экране появляется всплывающее окно, информирующее пользователя о произошедшей ошибке записи на диск. Каждый раз, когда система выполняет запись или чтение сектора диска, она просматривает
карту аварийного замещения и подменяет все номера дефектных
секторов номерами запасных секторов с соответствующими данными. Следует заметить, что это преобразование номеров существенно не влияет на производительность системы, так как оно
выполняется только при физическом обращении к диску, но не
при чтении данных из дискового кэша. Очистка карты аварийного замещения автоматически выполняется программой
CHKDSK при проверке диска HPFS. Для каждого замещенного
блока (сектора) эта программа выделяет новый сектор для файла,
которому принадлежат данные, в наиболее подходящем месте
жесткого диска.
5. Программа перемещает данные из запасного блока в
этот сектор и обновляет информацию о положении файла, что
может потребовать новой балансировки дерева блоков размещения. После этого CHKDSK вносит поврежденный сектор в список дефектных блоков, который хранится в дополнительном
блоке HPFS, и возвращает освобожденный сектор в список свободных запасных секторов резервного блока.
201

6. Затем удаляет запись из карты аварийного замещения и
записывает отредактированную карту на диск.
Все основные файловые объекты в HPFS, в том числе
файловые узлы, блоки размещения и блоки каталогов, имеют
уникальные 32-битные идентификаторы и указатели на свои родительские и дочерние блоки. Файловые узлы, кроме того, содержат сокращенное имя своего файла или каталога. Избыточность и взаимосвязь файловых структур HPFS позволяют программе CHKDSK полностью восстанавливать файловую структуру диска, последовательно анализируя все файловые узлы,
блоки размещения и блоки каталогов. Руководствуясь собранной информацией, CHKDSK реконструирует файлы и каталоги, а затем заново создает битовые карты свободных секторов
диска. Запуск программы CHKDSK следует осуществлять с соответствующими ключами. Так, например, один из вариантов
работы этой программы позволяет найти и восстановить удаленные файлы. HPFS относится к так называемым монти-
руемым файловым системам. Это означает, что она не
встроена в операционную систему, а добавляется к ней при
необходимости.
3.4.4. Файловая система ОС UNIX
Файловая система UNIX имеет иерархическую структуру каталогов и файлов, включая корневой каталог. Файло-
вая система располагается на устройстве, которое обычно является магнитным диском того или иного типа. Если диск достаточно велик, он может быть разбит на несколько логических
дисков; тогда на каждом логическом диске может быть размещена отдельная файловая система. Каждая файловая система,
прежде чем стать доступной, должна быть смонтирована.
Рассмотрим одну из ранних реализаций файловой системы UNIX, основные идеи которой сохранились до сих пор.
Каждая файловая система имеет четыре основные части:
1) загрузочный блок — это первый блок диска (блок 0),
зарезервированный для системной загрузочной программы;
2) суперблок — это первый блок собственно файловой
системы (блок 1), содержащий основные данные о файловой
202

203
системе и ее размещении на диске, в том числе о списках свободных i-узлов и блоков;
3) i-узлы — это последовательность блоков, следующих за
суперблоком. I-узел содержит ссылки на блоки. Имеется ровно
один i-узел для каждого каталога или файла в файловой системе;
4) блоки — это блоки, которые занимают оставшееся пространство диска и содержат либо действительные данные каталогов и файлов (блоки данных), либо ссылки на блоки (косвенные блоки).
Суперблок содержит следующие данные:
– размер дискового пространства, доступного файловой системе (в блоках);
– число блоков, зарегистрированных для i-узлов;
– имя файловой системы;
– имя тома;
– время последнего изменения;
– время последнего копирования (back up);
– ссылку на список свободных блоков;
– ссылку на список свободных i-узлов.
Структура файловой системы UNIX представлена на рисунке 3.4.
Загрузочный блок
Суперблок
Список
свободных
i-узлов
i-узлы
Блоки
Список
свободных
блоков
Рис. 3.4. Структура файловой системы UNIX

Каждый файл и каждый каталог в файловой системе представлен i-узлом, содержащим указатели на блоки, составляющие
файл.
В i-узле содержится также информация о правах доступа к
файлу, число ссылок на файл из каталогов и другие данные. Каждый i-узел содержит 13 указателей.
Первые 10 указателей непосредственно ссылаются на блоки данных файла. Поскольку блок содержит 512 байтов, то этого
достаточно для обработки файлов до 5120 байтов (512 ×10).
Если длина файла больше 5120 байт, используется 11-й
указатель i-узла, который ссылается на косвенный блок из 128
ссылок на блоки данных. Использование косвенного блока позволяет увеличить длину файла до величины 70656 байт (512 ×
(10 + 128)).
Если и этого недостаточно, то используется 12-й указатель
i-узла, ссылающийся на дважды косвенный блок, содержащий
128 ссылок на косвенные блоки. Тогда максимальный размер
файла увеличивается до величины 8459264 байта (512 ×
(10+1282)). Наконец, использование последнего 13-го указателя
на трижды косвенный блок из 128 ссылок на дважды косвенные
блоки дает предельную длину в файловой системе —
1082201088 байтов (512×(10+128+1282+1283)). Другие версии
системы UNIX могут отличаться количеством ссылок в i-узле,
косвенных блоках и размером блока данных.
Когда система загружается, имеется только одна из
файловых систем, называемая корневой. В ней находятся все
важнейшие каталоги (/dev,/etc, /bin и т.п.). Все остальные
файловые системы должны быть созданы и смонтированы.
Команда mkfs создает новую файловую систему. Она
расположена в каталоге /etc и имеет два параметра:
/etc/mkfs <имя> <размер>
Первый параметр является именем специального файла и
указывает устройство, на котором создается файловая система.
Второй параметр — размер пространства файловой системы в блоках — используется для определения по некоторым
правилам числа блоков после того, как размещены i-узлы.
Пример создания файловой системы на флоппи-диске:
/etc/mkfs /dev/flo 2000
204

isize = 230
Ответное сообщение указывает число блоков, выделенных
для размещения i-узлов.
Монтирование файловой системы UNIX для какой-либо
ОС осуществляется посредством команды mount. Эта команда
подключает корневой каталог монтируемой файловой системы в
один из каталогов корневой файловой системы. Команда расположена в каталоге /etc и имеет два параметра: /etc/mount
<устройство> <каталог>
Первый параметр является именем спецфайла для монтируемого логического устройства, содержащего подключаемую
файловую систему. Второй — имя уже существующего каталога, под которым монтируется файловая система.
Чтобы выяснить, какие файловые системы смонтированы
в данный момент, надо выполнить команду mount без параметров:
mount
/dev/fl0 on /floppy0
Ответом является сообщение об этих системах (в данном
случае об одной системе). Оно формируется на основе данных о
монтаже файловых систем, хранимых в файле /etc/mnttab.
Права доступа корневого каталога монтируемой файловой
системы и каталога, под которым производится монтаж, должны
быть одинаковыми во избежание ошибок операционной системы.
Если файловая система на съемном устройстве больше не
используется, ее можно демонтировать командой umount, расположенной в каталоге /etc и имеющей один параметр:
umount <устройство>
Например, демонтаж файловой системы на гибком диске
из предыдущего примера выполняется командой:
umount /dev/fl0
Результатом демонтажа является разрыв связи между корневым каталогом демонтируемой файловой системы и каталогом корневой файловой системы, в котором производился монтаж. При выполнении команды демонтажа текущий каталог
должен быть вне демонтируемой файловой системы, иначе бу-
205

дет выдано сообщение о том, что устройство занято (umount :
device busy)и команда не будет выполнена.
Структура файловой системы, описанная выше в терминах i-узлов, блоков, косвенных блоков и суперблока, может
быть нарушена. В этом случае возникает необходимость в ее
восстановлении. При разрушении информации в трижды косвенном блоке могут появиться следующие проблемы:
– блок может оказаться вне системы, т.е. перестать быть частью файла, и отсутствовать в списке свободных блоков;
– могут появиться дубли i-узлов, описывающие один и тот же
файл дважды;
– могут возникнуть ситуации, когда некоторый блок является
частью файла и одновременно присутствует в
блоков;
– могут существовать некоторых файлов, которые не включены ни в один каталог.
Эти проблемы могут быть ликвидированы, поскольку
структура файловой системы обладает некоторой избыточностью (наличием дополнительной информации), позволяющей восстанавливать отдельные поломки. Вот некоторые
виды избыточности:
– блок данных, являющийся каталогом, содержит имена фай-
лов и номера i-узлов; где-то имеется i-узел, соответствующий
этому каталогу, и этот i-узел должен быть каталогом, а не обычным файлом;
– блок, включенный в список свободных блоков, теоретически
не может быть частью какого-либо файла; для проверки этого
достаточно
занятых файлами, и сканировать список свободных блоков;
– аналогично, блок, принадлежащий файлу, должен принадлежать только одному файлу; это легко проверить.
проверки файловой системы, запускаемая командой fsck (file
system check). В различных реализациях существуют разные команды проверки целостности файловой системы: icheck, dcheck,
ncheck. Однако все они в большей или меньшей степени перекрываются командой fsck.
сканировать все i-узлы для просмотра всех блоков,
Эти и другие виды избыточности использует программа
206
списке свободных

Команда fsck выполняется в несколько фаз, на которых
производится следующая работа:
– проверка целостности i-узлов (счетчик связи, тип и формат i-узла);
– проверка каталогов, указывающих на i-узлы, содержащие
ошибки;
– проверка каталогов, на которые нет ссылок;
– проверка счетчиков связей в каталогах и файлах;
– проверка неверных блоков и дублированных блоков в спи-
ске свободных блоков; неиспользуемых блоков
ны быть включены, но не являются таковыми, в список свободных блоков; счетчика общего числа свободных блоков.
Команда по умолчанию всегда проверяет корневую файловую систему: все другие файловые системы проверяются, если их имена занесены в файл /etc/checklist.
После выполнения fsck, связанного с «починкой» файловой системы, может появиться сообщение
***** BOOT UNIX (NO SYNC!) *****,
требующее перезагрузки системы без выполнения команды sync.
Если этого не сделать, работа по восстановлению списка
свободных блоков будет утрачена, так как копии управляющих
таблиц и буфера в оперативной памяти остались старыми. Для
их обновления требуется перезагрузка без выгрузки буферов на
диск командой sync.
Необходимым условием правильной работы fsck является
также наличие пустого каталога /lost+found в корневом каталоге.
Если при выполнении fsck будут найдены каталоги, на которые никто не ссылается в проверяемой файловой системе, они
будут подключены в каталог /lost+found для дальнейшего изучения их принадлежности.
207
, которые долж-
3.4.5. Файловые системы для CD-ROM
Файловая система CDFS
В Windows 2000 обеспечивается поддержка файловой системы CDFS (Compact Disk File System), отвечающей стандарту
ISO 9660, описывающему расположение информации на CD-

ROM. Поддерживаются длинные имена файлов в соответствии с
ISO 9660 Level 2.
При создании CD-ROM под управлением Windows 2000
следует иметь в виду следующее:
− все имена каталогов и файлов должны содержать менее 32
символов;
− все имена каталогов и файлов должны состоять только из
символов верхнего регистра;
− глубина каталогов не должна превышать 8 уровней от корня;
−
использование расширений имен файлов не обязательно.
Файловая система UDF
UDF (Universal Disk Format — универсальный дисковый
формат) — спецификация формата файловой системы, независимой от операционной системы (ОС) для хранения файлов на
оптических носителях (оптических дисках). UDF является реализацией стандарта ISO/IEC 13346 (известного также как
ECMA-167).
Формат UDF призван заменить ISO 9660. ISO 9660 имеет
некоторые ограничения, которые делают его несовместимым с
DVD, CD-RW и другими новыми форматами дисков. UDF разработан так, чтобы избавить от этих ограничений. UDF позволяет дозаписывать файлы на CD-R- или CD-RW-дисках, один файл
одновременно, без существенных потерь дискового пространства, используя метод пакетной записи. Также UDF учитывает
возможность выборочного стирания некоторых файлов на перезаписываемых носителях CD-RW, освобождая место на диске. В
стандарте ISO 9660 такое не предусмотрено. UDF также лучше
подходит для DVD, так как имеет лучшую поддержку для дисков большого объёма — в частности ISO 9660 не поддерживает
файлы размером более 2 Гб.
UDF разработан и развивается Optical Storage Technology
Association (OSTA).
Существует несколько версий формата UDF:
− 1.02 (поддерживается Windows 98, многими версиями ОС
корпорации Apple, возможно использовать для DVD-RAM и
магнитооптических дисков);
208

− 1.50 (поддерживается Windows 2000, Windows XP и
Windows Server 2003; может быть несовместим с Windows 98
или Apple);
− 2.01 (поддерживается Windows XP и Windows Server 2003;
может быть несовместим с Windows 98, Windows 2000 или Ap-
ple);
− 2.50 (поддерживается Windows Vista; может быть несовместим с более ранними версиями Windows и др. платформами);
− 2.60 (поддерживается Windows Vista, Mac OS X 10.5,
NetBSD).
209
3.5. Управление устройствами ввода-вывода и
файловыми системами в ОС Windows
3.5.1. Диспетчер устройств и драйвера устройств
Задача системы ввода-вывода ОС Windows заключается в
предоставлении основных средств (каркаса) для эффективного
управления широким спектром устройств ввода-вывода. Основу
этих средств образует набор независимых от устройств процедур для определенных аспектов ввода-вывода и набор загруженных драйверов для общения с устройствами. Формирует
этот каркас менеджер ввода-вывода, который предоставляет
остальной операционной системе независимый от устройств
ввод-вывод, вызывая для выполнения физического вводавывода соответствующий драйвер [13].
Файловые системы формально являются драйверами устройств, работающих под управлением менеджера ввода-вывода.
В операционной системе Windows существует два драйвера для
файловых систем FAT и NTFS, которые независимы друг от
друга и управляют различными разделами диска или различными дисками [13].
Чтобы гарантировать, что драйверы устройств хорошо работают с остальной частью ОС, корпорация Мicrosоft определила для драйверов модель Windows Driver Model, которой должны соответствовать драйверы устройств. Разработчикам драйверов предоставляется набор инструментов, который должен по-

мочь в создании драйверов, удовлетворяющих требованиям этой
модели [13].
Существует набор утилит, позволяющий контролировать
работу программ, управляющих аппаратными устройствами.
Так, утилита Drivers из набора средств Мiсrоsоft Windows
Resource Кit позволяет получить детальную информацию о загруженных драйверах в текстовом формате.
Корпорацией Мiсrоsоft разработана утилита Bootvis, позволяющая выявлять проблемы, возникающие в процессе загрузки операционной системы. Эта утилита выполняет трассировку всех этапов загрузки системы, в том числе этапов загрузки системного ядра, драйверов устройств и запуска процессов.
Утилита не входит в стандартную поставку Windows, но ее
можно загрузить из Интернета (http://download.microsoft.com:80
/download/whistler/BTV/1.0/WXP/EN-US/BootVis-Tool.exe) [13].
В самой операционной системе Windows имеется программа «Диспетчер устройств», которую используют для об-
новления драйверов (или программного обеспечения) оборудования, изменения настроек оборудования, а также для устранения неполадок. Драйверы устройств для аппаратных продуктов с эмблемой «Для Мiсrоsоft Windows ХР» или какой-либо
другой более поздней версии снабжаются цифровой подписью
корпорации Microsoft, которая подтверждает, что данный продукт проверен на совместимость с Windows и не изменился после проведения проверки. В окне диспетчера устройств представлено графическое отображение оборудования, установленного· на компьютер. Для открытия окна диспетчера устройств
нужно щелкнуть правой клавишей мыши по значку «Мой компьютер» и выбрать в контекстном меню строку «Свойства». В
открывшемся окне «Свойства системы» следует перейти на
вкладку «Оборудование» и нажать кнопку «Диспетчер устройств».
В окне «Диспетчера устройств» (рис. 3.5) можно, раскрывая соответствующие узлы, видеть устройства, которые либо
подключены и работают, либо отключены. «Диспетчер устройств» обычно используется для проверки состояния оборудования, подключения-отключения оборудования и обновления
драйверов устройств, установленных на компьютере. Кроме то-
210
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
