В OS/2 1.2 каждый каталог или файл может иметь максимум 64 КБ присоединенных EAs. Это ограничение снимается в более поздних версиях OS/2. Метод хранения для EAs может изменяться. Если одиночный EA становится слишком большим, он может помещаться снаружи Fnode. Ядро API функции DosQFileInfo и DosSetFileInfo расширено новыми информационными уровнями, которые позволяют прикладным программам управлять расширенными атрибутами файлов. Новые функции DosQPathInfo и DosSetPathInfo используются для чтения или записи EAs, связанных с произвольными именами пути. Поддержка EAs является существенным компонентом в объектно - ориентированных файловых системах. Информация о почти любом типе может сохраняться в EAs. Так как HPFS развивается, средства для управления EAs становятся еще более сложными. Можно предположить, например, что в будущем версии API могут расширяться функциями EA, которые являются аналогичным DosFindFirst и DosFindNext и EA - данные могут быть организованы в B-Tree.
BTree и B+Tree
Многие программисты не знакомы со структурой данных, известной как двоичное дерево. Двоичные деревья это методика для логического упорядочивания совокупности элементов данных. В простом двоичном дереве каждый узел содержит некоторые данные, включая значение ключа, которое определяет логическую позицию узла в дереве, и указатели на левые и правые поддеревья узла. Узел который начинает дерево известен как корень; узлы которые сидят на конце ветви дерева иногда называются уходами. Такие простые двоичные деревья, хотя просты в понимании и применении, имеют недостатки (неудобства), обнаруженные практикой. Если ключи распределяются не оптимально или добавляются к дереву в непроизвольном режиме, дерево может становиться совершенно асимметричным, что приводит к большим различиям между временами обхода дерева. Поэтому большое количество программистов предпочитают в использовании сбалансированные деревья известные как B-Tree.
Вывод: мы познакомились с файловой системойHPFS.
Цель работы: Знакомство с файловой системой NTFS
NTFS (New Technology File System)
В название файловой системы NTFS не зря входят слова <New Technology>, то есть <новая технология> - NTFS содержит ряд значительных усовершенствований и изменений, специфических для Windows NT. С точки зрения пользователей, файлы по-прежнему хранятся в каталогах (часто называемых <папками> в среде Windows). Однако в NTFS, в отличие от FAT, не существует ни особых свойств корневых каталогов, ни ограничений, связанных с аппаратурой (например, возможности обращения к максимальному количеству дисковых секторов или кластеров). На томах NTFS не существует специальных областей наподобие таблицы размещения файлов, по которой FAT получила свое имя.
При проектировании NTFS особое внимание было уделено следующим характеристикам:
· Надежность. Высокопроизводительные компьютеры и системы совместного пользования должны обладать повышенной надежностью, которая является ключевым элементом структуры и поведения NTFS.
· Расширенная функциональность. NTFS проектировалась с учетом возможного расширения. В ней были воплощены многие дополнительные возможности - усовершенствованная отказоустойчивость, эмуляция других файловых систем, мощная модель безопасности, параллельная обработка потоков данных и создание файловых атрибутов, определяемых пользователем.
· Поддержка POSIX. Поскольку правительство США требует, чтобы все закупаемые им системы хотя бы в минимальной степени соответствовали стандарту POSIX, такая возможность была предусмотрена и в NTFS. К числу базовых средств файловой системы POSIX относится необязательное использование имен файлов с учетом регистра, хранение времени последнего обращения к файлу и механизм так называемых <жестких ссылок> - альтернативных имен, позволяющих ссылаться на один и тот же файл по двум и более именам.
· Гибкость. Модель распределения дискового пространства в NTFS отличается чрезвычайной гибкостью. Размер кластера может изменяться от 512 байт до 64 Кбайт; он представляет собой число, кратное внутреннему кванту распределения дисковой аппаратуры. NTFS также поддерживает длинные имена файлов, набор символов Unicode и альтернативные имена формата 8.3 для совместимости с FAT.
NTFS превосходно справляется с обработкой больших массивов данных (см. табл. 1) и достаточно хорошо проявляет себя при работе с томами объемом 400 Мбайт и выше. Поскольку в основу структуры каталогов NTFS заложена эффективная структура данных, называемая <бинарным деревом>, время поиска файлов в NTFS не связано линейной зависимостью с их количеством (в отличие от систем на базе FAT).
NTFS также обладает определенными средствами самовосстановления, поэтому для разделов NTFS пользователям никогда не придется использовать утилиты восстановления диска. В частности, удаляемые файлы в NTFS помещаются в <корзину> (Recycle Bin). Пользователи могут восстановить удаленные файлы без помощи утилиты Undelete или ее аналогов. Однако NTFS также поддерживает различные механизмы проверки целостности системы, включая ведение журналов транзакций, позволяющих воспроизвести все файловые операции записи по специальному системному журналу.
Цель лабораторной работы:
1. Структура распределения памяти в среде DOS
Память состоит из большого количества отдельных элементов, каждый из которых предназначен для хранения минимальной единицы информации - 1 байта. Каждому элементу соответствует уникальный числовой адрес. Первому элементу присвоен адрес 0, второму - 1 и т.д., включая последний элемент, чей адрес определяется общим количеством элементов памяти минус единица. Обычно адрес определяется шестнадцатеричным числом (в тексте шестнадцатеричные числа помечаются заглавной «Н», например, 10Н).
Процессор компьютера (CPU) делит память на блоки, называемые сегментами. Каждый сегмент занимает 64 К и каждому сегменту соответствует уникальный числовой адрес. Процессор имеет четыре регистра сегмента. Регистр - это внутренняя структура, предназначенная для хранения информации. Регистры сегмента предназначены для хранения адресов отдельных сегментов. Они называются CS (сегмент кода), DS (сегмент данных), SS (сегмент стэка) и ES (запасной сегмент). Кроме указанных, процессор имеет еще 9 регистров. В данный момент следует отметить регистры IP (указатель команды) и SP (указатель стэка). Регистры CS и IP в паре составляют длинный адрес команды, которая будет выполняться следующей. Регистры SS и SP в паре составляют длинный адрес стэка.
Доступ к ячейкам памяти осуществляется посредством соединения содержимого регистра сегмента с содержимым того или другого регистра. Таким образом определяется адрес требуемого участка памяти. Например, адрес следующей команды определяется содержимым регистров CS и IP (записывается «CS:IP»). После выполнения команды и ее удаления из памяти содержимое IP изменяется так, чтобы в регистрах CS:IP находился адрес команды, которая будет выполнена после данной.
Способ объединения регистров для определения адреса ячейки памяти не накладывает ограничений на количество доступной памяти. Верхнее ограничение зависит от физического строения памяти (т.е. от общего количества ячеек). Первые версии MS-DOS разрабатывались для процессора Intel 8088 CPU. Каждый регистр этого процессора рассчитан на хранение 16-битового числа. То есть CPU 8088 комбинирует содержимое сегментного регистра (скажем, CS) с содержимым другого регистра (скажем, IP), получая 20-битовый адрес памяти, что ограничивает доступную память до 2^20 байтов или 1 Мб.
Позже появились усовершенствованные версии MS-DOS и соответственно им усовершенствованные процессоры CPU 80286 и 80386, позволяющие производить доступ к ячейкам, расположенным за границей первого Мб памяти.
Доступ к памяти организуется соединением содержимого одного из регистров сегмента с содержимым одного из оставшихся регистров. Значение сегментного регистра называется адресом сегмента. Значение остальных регистров в этом случае называется относительным адресом ячейки памяти (от начала сегмента) или ее коротким адресом. Таким образом, адрес байта вычисляется посредством умножения адреса сегмента на 16, и к полученному значению добавляется короткий адрес.
Сегментные регистры используются при идентификации сегмента памяти. Сегмент - это непрерывный блок памяти, длиной 64 К. Сегментные регистры применяются в комбинации с регистром указателя или индексными регистрами и в этом случае идентифицируют конкретную ячейку памяти.
Всего сегментных регистра четыре. регистр CS обычно используется при идентификации блока памяти, в котором хранится код программы. регистр DS при идентификации участка памяти, в котором находятся данные этой программы. С помощью регистра SS организуется доступ к стэку. (Стэк - это временно распределенная область памяти, обеспечивающая интерфейс «MS-DOS-пpикладная программа»). Регистр ES - дополнительный (или запасной) сегментный регистр. На него возложены разнообразные функции, часть из которых рассматривается ниже.
Имеется два регистра стэка. Они применяются в комбинации с регистром SS и определяют местонахождение стэка. регистр SP называется указателем начала стэка, и в комбинации с регистром SS идентифицирует первый байт стэка. Регистр BP называется указателем базы стэка и в комбинации с регистром SS идентифицирует последний байт стэка.
Индексных регистра тоже два. регистры SI и DI применяются в комбинации с одним из сегментных регистров и определяют местонахождение конкретной ячейки памяти. регистр SI обычно комбинируют с регистром DS, регистр DI - с регистром ES.