Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти. При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока.
|
|
Структура диска: пластины, дорожки, цилиндры, секторы, кластеры.
Рассмотрение методов работы с дисковым пространством дает общее представление о совокупности служебных данных, необходимых для описания файловой системы. Структуры данных типовой файловой системы, например Unix, на одном из разделов диска, таким образом, может состоять из 4-х основных частей: суперблок, свободное индексное пространство, массив индексных узлов, блоки диска данных файлов.
В начале раздела находится суперблок, содержащий общее описание файловой системы,
Описанные структуры данных создаются на диске в результате его форматирования (например, утилитами format, makefs и др.). Их наличие позволяет обращаться к данным на диске как к файловой системе, а не как к обычной последовательности блоков.
В файловых системах современных ОС для повышения устойчивости поддерживается несколько копий суперблока. В блоках данных хранятся реальные данные файлов. Размер логического блока данных может задаваться при форматировании файловой системы. Заполнение диска содержательной информацией предполагает использование блоков хранения данных для файлов директорий и обычных файлов и имеет следствием модификацию массива индексных узлов и данных, описывающих пространство диска. Отдельно взятый блок данных может принадлежать одному и только одному файлу в файловой системе.
Форматирование дисков
Низкоуровневое форматирование – создание дорожек и секторов.
Высокоуровневое форматирование – создание разделов и кластеров для определенной файловой системы или нескольких файловых систем.
|
|
Форматирование также влияет на производительность диска.
После выполнения низкоуровневого форматирования диск разбивается на
разделы. Логически каждый раздел диска воспринимается операционной системой как отдельный диск.
Последним этапом подготовки диска к употреблению заключается в высокоуровневом форматировании каждого раздела (по отдельности). Эта операция
помещает в раздел загрузочный блок, бит-карту или список свободных блоков
устройства, корневой каталог и пустую файловую систему. Кроме того, в таблицу
разделов помещается определенный код, указывающий, какая файловая система
используется в данном разделе, поскольку многие операционные системы традиционно поддерживают несколько несовместимых файловых систем. Затем в одном
из разделов может быть установлена операционная система.
При включении питания компьютера запускается базовая система ввода-вывода BIOS, которая считывает главную загрузочную запись с диска и передает
в него управление. Загрузочная программа определяет, который из разделов диска является активным. Из этого раздела считывается и запускается загрузочный
сектор. Загрузочный сектор содержит маленькую программу, которая находит
в корневом каталоге определенный файл (либо операционную систему, либо за-
загрузчик больших размеров). Этот файл загружается в память и запускается
2) Машинно-зависимая часть ОС Windows 2000. Уровень аппаратных абстракций.
Уровень аппаратных абстракций (Hardware Abstraction Layer – HAL)
Работа уровня HAL заключается в том, чтобы предоставить всей остальной системе абстрактные аппаратные устройства, свободные от индивидуальных особенностей аппаратуры. Эти устройства представляются в виде машинно-независимых служб (процедурных вызовов и макросов), которые могут использоваться остальной ОС и драйверами.
В уровень HAL включены те службы, которые зависят от от набора микросхем материнской платы и меняются от машины к машине в разумных предсказуемых пределах.
Функции:
УРОВЕНЬ ЯДРА:
Назначение ядра – сделать остальную часть ОС независимой от аппаратуры. Для этого ядро на основе низкоуровневых служб HAL формирует абстракции более высоких уровней. Например, у уровня HAL есть вызовы для связывания процедур обработки прерываний с прерываниями и установки их приоритетов. Больше ничего в этом отношении HAL не делает. Ядро же предоставляет полный механизм для переключения контекста и планирования потоков.
Ядро также предоставляет низкоуровневую поддержку двум классам объектов ядра – управляющим объектам и объектам диспетчеризации. Эти объекты используются системой и приложениями для управления ресурсами компьютерной системы: процессами, потоками, файлами и т. д.
Каждый объект ядра – это блок памяти, выделенный ядром, доступный только ему и представляющий собой структуру данных, в которой содержится информация об объекте.