Операционные системы (работа 5)
В сфере персональных компьютеров в 1987 г. возник кризис. Возможности файловой системы FAT, разработанной фирмой Microsoft за десять лет до этого для интерпретатора Standalone Disk Basic и позднее приспособленной для операционной системы DOS, были исчерпаны. FAT предназначалась для жестких дисков емкостью не свыше 32 Мбайт, а новые НЖМД большей емкости оказывались совершенно бесполезными для пользователей PC. Некоторые независимые поставщики предлагали собственные способы решения этой проблемы, однако лишь с появлением DOS 4.0 этот кризис был преодолен - на некоторое время.
Значительные изменения структуры файловой системы в DOS 4.0 позволили операционной системе работать с дисками емкостью до 128 Мбайт; с внесением в последующем незначительных дополнений этот предел был поднят до 2 Гбайт. В то время казалось, что такой объем памяти превышает любые мыслимые потребности. В настоящее время в продаже имеются жесткие диски емкостью, как правило, 2,5 Гбайт и выше.
Для систем Windows 95 фирма Microsoft разработала новое расширение системы FAT - FAT32, без каких-либо громких заявлений предусмотренное в пакете OEM Service Pack 2. Система FAT32 устанавливается только в новых PC.
Области диска
Эта файловая система предусматривает ряд специальных областей на диске, выделенных для организации пространства диска в процессе его форматирования - головную запись загрузки, таблицу разбиения диска, запись загрузки, таблицу размещения файлов (от которой система FAT и получила свое название) и корневой каталог. На физическом уровне пространство диска разбивается на 512-байт области, называемые секторами. В системе FAT место для файлов выделяется блоками, которые состоят из целого числа секторов и именуются кластерами. Число секторов в кластере должно быть кратно степени двойки. (Узнать размер кластера в своей системе можно с помощью программ CHKDSK или SCANDISK.) В Microsoft называют эти кластеры единицами выделения памяти (allocation unit), а в отчете SCANDISK указывается их размер, например "16 384 байт в каждой единице выделения памяти". Обычно размер кластера можно определить, поделив объем памяти диска на 64 Кбайт (65 536 байт) и округлив результат до ближайшего числа, кратного степени двойки. Так, размер кластеров 1,2-Гбайт диска составляет 32 Кбайт - если 1,2 Гбайт (1 258 291,2 Kбайт) поделить на 65 536, получим 19,2 Кбайт, а после округления - 32 Кбайт.
Цепочка FAT
FAT представляет собой базу данных, связывающую кластеры дискового пространства с файлами. В этой базе для каждого кластера предусматривается только один элемент. Первые два элемента содержат информацию о самой системе FAT. Третий и последующие элементы ставятся в соответствие кластерам дискового пространства, начиная с первого кластера, отведенного для файлов. Элементы FAT могут содержать несколько специальных значений, указывающих, что
кластер свободен, т.е. не использован ни одним файлом (для FAT16 это значение составляет 0000H);
кластер содержит один или несколько секторов с физическими дефектами и не должен использоваться (для FAT16 это значение составляет FFF7H);
данный кластер - последний кластер файла (для FAT16 это значение составляет FFF8 FFFFH).
Для любого используемого файлом, но не последнего кластера элемент FAT содержит номер следующего кластера, занятого файлом.
Каждый каталог - независимо корневой или подкаталог - также представляет собой базу данных. В каталоге DOS для каждого файла предусмотрена одна главная запись (В среде Windows 95 для длинных имен файлов введены дополнительные записи). В отличие от FAT, где каждый элемент состоит из единственного поля, записи для файла в каталоге состоят из нескольких полей (см. рис. 1). Некоторые поля - имя, расширение, размер, дата и врем - могут быть выведены на экран по команде DIR. Но в системе FAT предусмотрено поле, которое не отображается командой DIR, - поле с номером первого кластера, отведенного под файл.
Рис. 1. 32-байт запись в каталоге для файла состоит из восьми полей, содержащих основную информацию о файле, например его размер, начальный кластер на диске, время и дату последнего внесения изменений в него.
Структура записи в каталоге
Смещение |
0-7 |
8-10 |
11 |
12-21 |
22-23 |
24-25 |
26-27 |
28-31 |
Имя файла |
Расширение |
Атрибут |
Не используется |
Время |
Дата |
Начальный кластер |
Размер файла |
|
Размер |
8 байт |
3 байт |
1 байт |
10 байт |
2 байт |
2 байт |
2 байт |
4 байт |
Когда программа отправляет запрос к операционной системе с требованием предоставить ей содержимое какого-то файла ОС просматривает запись каталога для него, чтобы найти первый кластер этого файла. Затем она обращается к элементу FAT для данного кластера, чтобы найти следующий кластер в цепочке. Повторяя этот процесс, пока не обнаружит последний кластер файла, ОС точно определяет, какие кластеры принадлежат данному файлу и в какой последовательности. Таким путем система может предоставить программе любую часть запрашиваемого ею файла. Такой способ организации файла носит название цепочки FAT.
В системе FAT файлам всегда выделяется целое число кластеров. На 1,2-Гбайт жестком диске с 32-Кбайт кластерами в каталоге может быть указано, что размер текстового файла, содержащего слова "hello, world", составляет всего 12 байт, но на самом деле этот файл занимает 32 Кбайт дискового пространства. Неиспользованная часть кластера называется потерянным местом (slack). В небольших файлах почти весь кластер может быть потерянным местом, а в среднем потери составляют половину размера кластера.
На 850-Мбайт жестком диске с 16-Кбайт кластерами при среднем размере файлов порядка 50 Кбайт около 16% отведенного под файлы дискового пространства будет потеряно на неиспользуемые, но выделенные файлам области. Один из способов высвобождения пространства на диске - с помощью программ сжатия диска, например DriveSpace, которая выделяет "потерянные места" для использования другими файлами.
Расчеты размеров секторов и кластеров
Сначала в файловой системе FAT в DOS 1 использовались 12-разрядные элементы FAT. (В настоящее время 12-разрядная FAT все еще находит применение для гибких дисков.) В DOS 2, оснащенной дополнительными средствами для работы с жесткими дисками, в FAT предусмотрены 16-разрядные элементы. Причина проблемы, возникшей в 1987 г., кроется в запросах нижнего уровня к операционной системе на считывание секторов диска с передачей 16-разрядного значения в качестве параметра. Существует 65 536 различных 16-разрядных значений; умножив 65 536 на 512 байт в секторе, получим 32 Мбайт. Что касается числа секторов на диске, оно ограничено возможностями операционной системы. В DOS 4.0 для обработки запросов на считывание секторов нижнего уровня используются 32-разрядные параметры.
Предел в 2 Гбайт на самом деле обусловлен не проблемами операционной системы, а существующими программами. На диске емкостью 2 Гбайт и более кластеры имеют размер 64 Кбайт, или 65 536 байт (см. рис. 2). Но самое большое значение, которое может быть представлено в 16 разрядах, составляет 65 535; 64 Кбайт - слишком большая величина для 16 разрядов. В Microsoft обнаружили, что при разработке многих существующих в настоящее время программ их авторы исходили из предположения, что значение числа байт в кластере умещается в 16 разрядах.
Рис. 2. С увеличением размеров диска единица в двоичном 8-разрядном представлении числа секторов в кластере смещается влево. При смещении единицы за крайнюю левую цифровую позицию возникает ошибка превышения размера 4 Гбайт. Размер кластера указан в виде 16-разрядных двоичных чисел. И вновь единица смещается влево, а при смещении ее за крайнюю левую позицию возникает "2-Гбайт кризис".
Ограничения на размеры секторов и кластеров в FAT16
Размер диска |
Число секторов в кластере |
Размер кластера |
||
Десятичное |
Двоичное |
Десятичное |
Двоичное |
|
Менее 128 Мбайт |
4 |
00000100 |
2 Кбайт |
0000100000000000 |
Менее 256 Мбайт |
8 |
00001000 |
4 Кбайт |
0001000000000000 |
Менее 512 Мбайт |
16 |
00010000 |
8 Кбайт |
0010000000000000 |
Менее 1 Гбайт |
32 |
00100000 |
16 Кбайт |
0100000000000000 |
Менее 2 Гбайт |
64 |
01000000 |
32 Кбайт |
1000000000000000 |
Менее 4 Гбайт |
128 |
10000000 |
64 Кбайт |
ОШИБКА: проблема для существующих программ |
4 Гбайт и более |
256 |
ОШИБКА: проблема для ОС |
Даже если такой проблемы не возникло при объеме в 2 Гбайт, то операционная система все равно не сможет работать с дисками емкостью свыше 4 Гбайт. При использовании FAT16 число секторов в кластере сохраняется самой ОС в одном байте блока параметров диска, устанавливаемого ОС. Это число должно быть кратным степени 2 и при этом меньше 256. Таким образом, в кластер может входить не более 128 секторов, или 64 Кбайт. В итоге даже если ограничение в 2 Гбайт снимается, система FAT16 приемлема лишь для дисков емкостью менее 4 Гбайт.
В файловой системе FAT32 как элементы FAT, так и номера секторов - 32-разрядные. Вот что это значит: умножим 4 294 967 296 различных 32-разрядных значений на 512 байт в секторе и получим огромное число 2 Тбайт (2 199 023 255 552 байт), которое представляет собой максимально возможную емкость диска при использовании FAT32.
Некоторое устранение потерь
Теперь, когда допустимое число кластеров и число секторов одинаковы, видимо, можно было бы предположить, что для минимизации потерь места на диске в FAT32 будут использоваться кластеры, состоящие только из одного сектора. Но в этом вопросе необходим какой-то компромисс, поэтому в спецификации FAT32 размер кластера для накопителей емкостью до 8 Гбайт составляет 4 Кбайт.
Зависимость размера кластера от емкости диска
Емкость диска, Гбайт Размер кластера, Кбайт
Менее 8 4
Менее 16 8
Менее 32 16
32 и более 32
Одним из факторов, сыгравшим роль в принятии такого решения, стало то, что теперь нужно учитывать и размер самой FAT. Операционная система сохраняет две копии FAT, поэтому под элемент каждого кластера в FAT требуется 8 байт. На 2-Гбайт диске FAT займет 32 Мбайт его пространства при размере кластера 512 байт. А если размер кластера составляет 4 Кбайт, для хранения двух таблиц FAT потребуется всего 4 Мбайт, т. е. будет сэкономлено 28 Мбайт.
Но причиной для компромисса послужили не только соображения экономии дискового пространства; не были забыты и вопросы производительности. Для ускорения доступа к диску встроенная программа дискового кэша VCACHE загружает всю FAT в оперативную память. Очевидно, что проще добиться этого, если каждая отдельная таблица FAT занимает 2 Мбайт, а не 16 Мбайт. И не беспокойтесь о том, что увеличение числа кластеров и удвоение размера элементов FAT приведут к снижению эффективности VCACHE: для FAT32 предусмотрен новый метод работы с кэшем, который, согласно заявлениям Microsoft, повышает общую производительность.
Другие изменения в FAT32
Чтобы обеспечить возможность работы с возросшим числом кластеров, в записи каталога для каждого файла должно выделяться 4 байт для начального кластера файла (вместо 2 байт в системе FAT16). Традиционно каждая запись в каталоге состоит из 32 байт (рис. 1). В середине этой записи 10 байт не используются (байты с 12-го по 21-й), которые Microsoft зарезервировала для своих собственных нужд в будущем. Два из них теперь отводятся как дополнительные байты, необходимые для указания начального кластера в системе FAT32.
Операционная система всегда предусматривала наличие на диске двух экземпляров FAT, но использовался только один из них. С переходом к FAT32 операционная система может работать с любой из этих копий. Еще одно изменение состоит в том, что корневой каталог, раньше имевший фиксированный размер и строго определенное место на диске, теперь можно свободно наращивать по мере необходимости подобно подкаталогу. Теперь не существует ограничений на число записей в корневом каталоге. Это особенно важно, поскольку под каждое длинное имя файла используется несколько записей каталога.
Сочетание перемещаемого корневого каталога и возможности использования обеих копий FAT - неплохие предпосылки для беспрепятственного динамического изменения размеров разделов диска, например уменьшени раздела с целью высвобождения места для другой операционной системы. Этот новый подход менее опасен, чем применявшиеся в программах независимых поставщиков для изменения разделов диска при работе с FAT16. (Хот в Windows нет утилит, использующих возможности FAT32, такие средства реализованы в программах независимых фирм, например в Partition Magic 3.0 фирмы PowerQuest и PartitionIt фирмы Quarterdeck.)
Предостережения
Следует заметить, что FAT32 рассчитана только на Windows 95. В Microsoft не давали обещаний подготовить Windows NT к ее использованию и намекнули, что и не собираются этого делать. Однако в фирме заявляют, что, если в Windows NT 5.0 не будет средств для работы с FAT32, то в ней будет предусмотрена утилита для отображения дисков файловой системы FAT32 в NTFS ("родную" файловую систему Windows NT), поэтому те, кто собирается обновить свою систему, могут не беспокоиться. Однако в настоящее время, если вы хотите установить Windows NT и Windows 95 на одной машине, вам нужно будет убедиться, что совместно используемое этими двумя операционными системами дисковое пространство организовано в соответствии с FAT16, а не FAT32, которую не "воспринимает" система Windows NT, и не NTFS, которую не "понимает" Windows 95.
Вам также следует помнить, что, поскольку поле для размера файла в записи каталога занимает 32 разряда, размер отдельного файла не может превышать 4 Гбайт.
Наконец, при любых существенных изменениях файловой системы, видимо, такие утилиты для работы с дисками на нижнем уровне, как Norton Utilities, перестанут работать. Необходимо перейти на их обновленные версии. Подсистемы управления файлами и программы просмотра (например, Norton Navigator) должны работать и с системой FAT32.
Если мы остановимся на FAT32, то пройдет еще 15 лет, прежде чем мы достигнем рубежа 2 Тбайт, и нам придется переходить на FAT64. Учитывая разговоры об объектно-ориентированных файловых системах, можно с той же степенью уверенности предсказать отказ от FAT, с которой мы могли предсказать в 1987 г. отход от FAT до достижения предела в 2 Гбайт.
Цель работы: изучить файловую систему HPFS.
Высокоэффективная Файловая Система (HPFS) для OS/2 решает все проблемы FAT. HPFS работает по методу устройства блока произвольного доступа, и также содержит модуль программного обеспечения, который транслирует файловые запросы из прикладных программ к драйверам устройств. HPFS также является инсталлируемой файловой системой, которая делает возможным обращение к нескольким несовместимым структурам тома системы OS/2 одновременно. Превосходная производительность достигается благодаря использованию продвинутых структур данных, интеллектуального кэширования, предварительного чтения и отложенной записи. Дисковое пространство используется более экономно благодаря использованию разбиения на секторы. HPFS также включает значительно улучшенную отказоустойчивость. При необходимости программы используют расширенные атрибуты и длинные имена файлов. Высокоэффективная Файловая Система (далее HPFS), которая впервые появилась в OS/2 System Version 1.2, была разработана Gordon Letwin, главным архитектором операционной системы OS/2.
HPFS Структура Тома
HPFS-тома используют размер сектора 512 байтов и имеют максимальный размер 2199Gb. HPFS том имеет очень небольшое количество фиксированных структур. Секторы 015 тома (BootBlock, имя тома, 32 бита ID, дисковая программа начальной загрузки). Начальная загрузка относительно сложна (в стандартах MSDOS) и может использовать HPFS в ограниченном режиме. Сектора 16 и 17 известны как SuperBlock и SpareBlock соответственно. SuperBlock изменяется только при помощи утилит. Он содержит указатели свободного пространства, список плохих блоков, полосу блока каталога, и корневую директорию. Он также содержит дату, соответствующую последней проверке и восстановлению утилитой CHKDSK/F. SpareBlock содержит различные флажки и указатели которые будут обсуждаться позже; Он изменяется, хотя нечасто, при работе системы. Остаток диска разделен на 8MB полосы. Каждая полоса имеет собственный список свободного пространства, где биты представляют каждый сектор. Бит 0 если сектор использован 1 если сектор доступен. Списки размещаются в начале или хвосте списка. Одна полоса, размещенная в "центре" диска, называется полосой блока каталога и обрабатывается специально. Обратите внимание, что размер полосы зависит от текущей реализации и может изменяться в более поздних версиях файловой системы.
Файлы и Fnodes
Каждый каталог или файл в HPFS-томе закрепляется за фундаментальным объектом файловой системы, называемым Fnode (произносится "eff node"). Каждый Fnode занимает одиночный сектор и содержит управляющую информацию, хронологию доступа, расширенные атрибуты и списки управления доступом, длину и первые 15 символов имени, и структуру распределения. Fnode всегда находится рядом с каталогом или файлом, который он представляет. Структура распределения в Fnode может принимать несколько форм, в зависимости от размера каталога или файлов. HPFS просматривает файл как совокупность одного или более секторов. Из прикладной программы это не видно; файл появляется как непрерывный поток байтов.
Каталоги
Каталоги, подобно файлам, регистрируются в Fnodes. Для корневой директории Fnodes находится в SuperBlock. Fnodes для некорневых каталогов определяются через входы подкаталога. Каталоги могут увеличиваться до любого размера и состоят из блоков каталога 2 КБ, которые распределяются как четыре последовательных сектора на диске. Файловая система делает попытку распределить блоки каталога в полосе каталога, которая размещается около “центра” диска. Если полоса каталога полна, блоки каталога распределяются там, где есть свободное место.
Каждый блок каталога 2 КБ состоит из большого количества входов каталога. Вход каталога содержит несколько полей, включая штампы времени и даты, Fnode указатель, длина имени каталога или файла, имя непосредственно, и указатель. Каждый вход начинается словом, которое содержит длину. Число блоков каталога и входов различно при различной длине имени. Если средняя длина имени файла 13 символов, средний блок каталога будет содержать приблизительно 40 входов. Блоки каталога входов сортируются в двоичном лексическом порядке по полям имени в алфавитном порядке для алфавита США. Последний блок каталога входа - запись, которая отмечает конец блока. Когда каталог получает слишком большой файл, который нужно сохранить в одном блоке, он увеличивает размер добавлением блоков 2 КБ, которые организуются как B-Tree. При поиске файловая система извлекает указатель B-Tree из входа. Если это не указатель, то поиск неудачен; иначе файловая система следует за указателем в следующий каталог и продолжает поиск. Небольшая арифметика дает внушительную статистику. При использование 40 входов на блок, блоки каталога дерева с двумя уровнями могут содержать 1640 входов, каталога и дерева с тремя уровнями могут содержать на удивление 65640 входов. Другими словами, некоторый файл может быть найден в типичном каталоге из 65640 файлов максимум за три обращения. Это намного лучше файловой системы FAT, где в самом плохом случае более чем 4000 секторов нужно прочитать для нахождения файла. Структура каталога B-Tree имеет интересные импликации. Создание файла, переименование или стирание может приводить к каскадированию блоков каталогов. Фактически, переименование может терпеть неудачу из-за недостатка дискового пространства, даже если файл непосредственно в размерах не увеличился. Во избежание этого “бедствия”, HPFS поддерживает маленький пул свободных блоков, которые могут использоваться при “аварии”; указатель на этот пул свободных блоков сохраняется в SpareBlock.
Расширенные Атрибуты
Атрибуты Файла - информация о файле. FAT поддерживает только небольшое количество простых атрибутов (доступный только для чтения, системный, скрытый, архив) которые фактически сохраняются как флажки бита на входе каталога файла; эти атрибуты не доступны, если файл открыт. HPFS поддерживает те же самые атрибуты, что и файловая система FAT по историческим причинам, но он также поддерживает и новую форму fileassociated, то есть информацию, называемую Расширенными Атрибутами (EAs). Каждый EA концептуально подобен переменной окружения.
Значение имени
В 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.
B Tree и 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
NTFS превосходно справляется с обработкой больших массивов данных (см. табл. 1) и достаточно хорошо проявляет себя при работе с томами объемом 400 Мбайт и выше. Поскольку в основу структуры каталогов NTFS заложена эффективная структура данных, называемая <бинарным деревом>, время поиска файлов в NTFS не связано линейной зависимостью с их количеством (в отличие от систем на базе FAT).
NTFS также обладает определенными средствами самовосстановления, поэтому для разделов NTFS пользователям никогда не придется использовать утилиты восстановления диска. В частности, удаляемые файлы в NTFS помещаются в <корзину> (Recycle Bin). Пользователи могут восстановить удаленные файлы без помощи утилиты Undelete или ее аналогов. Однако NTFS также поддерживает различные механизмы проверки целостности системы, включая ведение журналов транзакций, позволяющих воспроизвести все файловые операции записи по специальному системному журналу.
Цель лабораторной работы:
Структура распределения памяти в среде 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.
Регистры общего назначения
К регистрам общего назначения относятся регистры AX, BX, CX и DX (их четыре). Это многофункциональные регистры.
Регистр указателя команды
Регистр IP обычно применяется в комбинации с регистром CS и определяет адрес следующей команды.
Регистр флагов состояния
В регистре флагов обычно находятся девять флагов состояния процессора (каждый флаг занимает 1 бит). Эти флаги определяют результат конкретных операций, выполняемых под управлением MS-DOS.
Регистры памяти
регистр памяти включает 2 байта данных (или 16 битов). Реально регистры общего назначения однобайтные. Так, регистр AX включает регистр AH (который составляет старший байт регистра AX) и регистр AL (который составляет младший байт регистра AX). Аналогично, регистры BH, BL, CH, CL, DH и DL - однобайтные.
Вся память делится на conventional (от 1 до 1 Mb) и extended. В данных момент expanded память встречается редко и мы не будем ее упоминать, кроме как результат использования эмулятора (EMM386.EXE, QEMM386, 386MAX). Первый 1 Mb состоит из conventional (640K) и резервных 384K, которые содержат в себе буфера видеопамяти, код BIOSа для видео и дополнительных устройств. Неиспользованные блоки могут использоваться для загрузки DOS-пpогpамм. Для этого ваш менеджер памяти создает upper memory blocks (UMB). UMB (или upper memory) позволяет расширить область памяти, в которую возможна загрузка резидентных программ/драйверов (на всякий случай, не надо забывать, что мизерная часть TSR-пpогpамм не работает при загрузке в адресное пространство выше 640 Kb), что освобождает первые 640K для работы других DOS-пpогpамм.
Существует только один путь создания UMB -- через использование менеджеров памяти. Мы рассмотрим стандартную и входящий в поставку EMM386.EXE. Итак, минимальный набор для организации UMB:
config.sys
dos = high,umb
device = himem.sys
device = emm386.exe noems
Если нужна EMS-память, то придется заменить "noems" на "auto" или "frame=<64K_buffer_addr>" и надо задать блоки UMB с помощью команды "ram=<start_addr>-<end_addr>". Пример:
[...]
device = emm386.exe ram=b000-b7ff frame=c800
Загpузку пpогpамм в UMB нужно производить через использование команд DeviceHigh=<driver> (в config.sys) и LH <program>.
Вывод: Мы разобрали структуру распределения памяти в среде DOS.
Цель работы: описать особенности работы операционных систем Windows 95, Windows NT с сетями различных типов.
Windows 95
Сети Microsoft.
Client for Microsoft Networks (клиент для сетей Microsoft) – 32-битный сетевой клиент защищенного режима для Windows 95, содержащий редиректор и другие программные компоненты для доступа к сетям Microsoft. Клиент для сетей Microsoft способен также взаимодействовать (с рядом ограничений) с другими Microsoft-совместимыми серверами на базе протокола SMB (Server Message Block), например, IBM LAN Server, DEC PATHWORKS, AT&T StarLAN и LAN Manager for UNIX Systems.
Вы можете установить клиента Microsoft как единственный вид сетевой поддержки в Windows 95 либо использовать его совместно с клиентом Client for NetWare Networks (Клиент для сетей NetWare) или сетевыми клиентами для других типов сетей.
Сетевая поддержка для компьютеров, работающих с клиентом для сетей Microsoft, включает в себя все сетевые возможности, встроенные в Windows 95:
Автоматическая установка, конфигурирование компьютеров через профили пользователей и системную политику;
Доступ к сетям по телефонным линиям, защита на уровне доступа к разделяемым ресурсам и сквозная защита на уровне пользователей, а также наличие средств удаленного администрирования;
Унифицированный вход в систему и автоматическое восстановление соединения с сетевыми ресурсами.
А вот каковы важнейшие дополнительные преимущества, обеспечиваемые клиентом для сетей Microsoft.
Высокая производительность без использования стандартной памяти. Клиент для сетей Microsoft построен исключительно на 32-разрядных компонентах сетевой поддержки защищенного режима; как и драйвер файловой системы, использует кеш Windows 95 (VCACHE). Он работает с 32-битными версиями NetBEUI, Microsoft TCP/IP, а также Microsoft IPX/SPX-совместимым протоколом и удовлетворяющими спецификации NDIS 3.1 драйверами сетевых адаптеров. Этот клиент защищенного режима рассчитан на работу в многозадачной среде, обеспечивает устойчивые рабочие характеристики и не занимает стандартную память MS-DOS.
Сервис однорангового разделения ресурсов защищенного режима. С помощью сервиса File and Printer Sharing for Microsoft Networks (Служба доступа к файлам и принтерам сетей Microsoft) компьютер с установленным клиентом для сетей Microsoft можно использовать как сервер в одноранговой сети.
Защита ресурсов и другие виды поддержки в сетях Windows NT. Серверы Windows NT можно применять для проверки правильности регистрации пользователей и обеспечения сквозной защиты разделяемых ресурсов на компьютерах под управлением Windows 95. Такие компьютеры могут распознавать и использовать длинные имена файлов на серверах Windows NT, поскольку в обеих операционных системах применяется одинаковый алгоритм для длинных имен файлов и псевдонимов (aliases).
Кроме того, компьютеры под управлением Windows 95 можно загружать как с локального гибкого или жесткого диска, так и с сетевого диска – общую копию Windows 95 размещенную на сервере Windows NT.
Сети NetWare.
Windows 95 можно запускать на рабочих станциях NetWare, использующих серверы Novell NetWare версий 2.15, 2.2, 3.х и 4.х. Для этого подходят несколько сетевых клиентов:
Новый 32-битный клиент защищенного режима – клиент для сетей NetWare (разработанный Microsoft);
Сетевой клиент реального режима – Novell NetWare 3.x (NETX);
Сетевой клиент реального режима – Novell NetWare 4.x (VLM).
Какого бы клиента вы не выбрали, встроенные средства и команды Windows 95 позволяют выполнять практически все базовые сетевые операции и административные задачи. Клиент для сетей NetWare способен обрабатывать сценарии регистрации и поддерживает все 16-битные утилиты командной строки NetWare 3.х и большую часть утилит NetWare 4.x, поэтому их можно использовать так же, как и при работе с клиентами NETX и VLM под управлением MS-DOS или ранних версий Windows.
Windows 95 предоставляет полностью 32-битное программное обеспечение защищенного режима для сетей NetWare, включая сетевой клиент (называемый также редиректором), IPX/SPX-совместимый протокол, драйверы сетевых адаптеров и средства администрирования. С помощью клиента для сетей NetWare пользователи Windows 95 получают доступ к сервису серверов NetWare, просматривают серверы NetWare и подключаются к ним, отправляют задания на печать, применяя при этом как сетевой пользовательский интерфейс Windows 95, так и утилиты NetWare.
Независимо от типа клиента Windows 95 обеспечивает следующие возможности для поддержки компьютеров работающих в сетях NetWare:
Автоматическую установку и настройку Windows 95 на рабочих станциях NetWare;
Запуск общей копии Windows 95 для удаленной загрузки рабочих станций и другие разделяемые конфигурации;
Принудительную установку параметров рабочего стола и системы с помощью системной политики;
Архивацию данных для Cheyenne ARCserve и Arcada Backup Exec, а также Simple Network Management Protocols (SNMP);
Полную интеграцию сетевых ресурсов в Network Neighborhood (Сетевое окружение) и такие стандартные элементы управления, как диалоговые окна Open или Save As;
Кэширование пароля для сетевых соединений и защиту на уровне пользователя со сквозным контролем на серверах NetWare;
Размещение заданий на печать в очередях NetWare с использованием метода Point and Print («Указал - печатай»). Кроме того, с помощью сервиса Microsoft Print Services for NetWare Networks (на базе Win32), доступного на компакт-диске с дистрибутивом Windows 95, можно перенаправлять задания из очередей печати NetWare на принтеры, подключенные к компьютерам с клиентом для сетей NetWare.
Сети других поставщиков.
Интегрированная сетевая поддержка – ключевая особенность Windows 95. Новая архитектура с поддержкой широкого спектра различных сетей значительно упростила установку средств для работы как с одной, так и с несколькими сетями. На одном компьютере можно установить любое количество 32-битных сетевых клиентов защищенного режима и один 16-битный клиент реального режима.
В Windows 95 включено два сетевых клиента защищенного режима, а также встроена поддержка нескольких 16-битных сетевых клиентов реального режима. В большинстве случаев – кроме клиентов, встроенных в Windows 95,- понадобится и программное обеспечение от поставщиков соответствующих сетей:
Artisoft LANtastic версии 5.0 и выше;
Banyan VINES версии 5.52 и выше;
DEC PATHWORKS версии 5.0 и выше;
IBM OS/2 LAN Server;
Novell NetWare версии 3.11 и выше;
SunSoft PC-NFS версии 5.0 и выше.
Хотя и допускается одновременная работа с любым числом 32-битных сетевых клиентов, 16-битный сетевой клиент может быть только один.
Сетевое программное обеспечение должно функционировать еще до установки Windows 95, чтобы Setup могла распознать сеть и автоматически установить для нее поддержку.
Если у поставщика Вашей сети пока нет 32-битного сетевого клиента защищенного режима, совместимого с Windows 95, и если Вы не запускаете (или не можете запустить) клиента для сетей Microsoft в дополнение к другим сетевым клиентам, тогда Вам недоступны преимущества сетевой поддержки защищенного режима Windows 95:
Эффективность 32-битных сетевых компонентов защищенного режима, в том числе поддержка Plug&Play, длинных имен файлов, кэширования со стороны клиента, автоматического восстановления подсоединений и другие усовершенствования;
Унифицированный вход в систему и навигация в сети через пользовательский интерфейс Windows 95, а также средства управления сетью;
Профили пользователей для управления конфигурациями рабочих столов.
Windows NT.
В Windows NT входят следующие средства, обеспечивающие работу с различными видами сетей:
Клиентские сервисы для сетей Netware
Удаленный доступ в сеть
TCP/IP, в том числе PPP, SLIP, DHCP и WINS
NetBEUI
NWLink IPX/SPX
Стандарт сокетов Windows, используемый популярными приложениями Internet
RPC для современных приложений архитектуры клиент-сервер
Одноранговые сервисы
Средства связи с Internet
В целях повышения производительности все вышеперечисленные используемые сетевые протоколы и сервисы в Windows NT сделаны 32-рарядными. Данный набор встроенных средств сетевой поддержки обеспечивает следующие преимущества:
Простота инсталляции и интеграции с существующими сетями
Ускоренный обмен данными через сеть, что идеально подходит для полномасштабного использования технологий клиент-сервер
Существенное повышение стабильности по сравнению с редиректорами реального режима
Возможность одновременной работы нескольких редиректоров
Сетевой интерфейс Windows NT прозрачен для пользователя; пользователи могут просматривать в поисках нужного сервера множество разнородных сетей
Сетевые протоколы Windows NT.
TCP/IP
Включение протокола TCP/IP – идеальное решение, если требуется обеспечить межсетевое взаимодействие через глобальные сети и сетевые маршрутизаторы. 32 – разрядный стек TCP/IP, встроенный в состав Windows NT, включает как SLIP, так и PPP. Microsoft TCP/IP в комбинации с Windows NT представляет собой отличное решение для корпоративных гетерогенных сетей, включающих разнотипные системы, которые обладают возможностью наращивания.
Если в качестве протокола корпоративной сети используется TCP/IP, для организации необходимо выработать схему адресации IP. Если в составе сети имеются серверы Windows NT, то для упрощения централизованного управления IP – адресацией, можно использовать сервисы DHCP и WINS.
ОС Windows NT дает возможность пользователям работать с сервисом удаленного доступа RAS, используя одновременно несколько IP – адресов.
Если ОС Windows NT использует TCP/IP в качестве транспортного протокола, то компьютеры могут поддерживать коммуникации с иными системами типа рабочих станций и серверов UNIX, а также с принтерами, сконфигурированными на использование IP, без необходимости в дополнительном сетевом программном обеспечении.
NetBEUI
NetBEUI представляет собой эффективный и быстрый протокол небольшого объема, оптимизированный для небольших локальных сетей, насчитывающих от 20 до 200 рабочих станций. NetBEUI не обеспечивает трафика через маршрутизаторы, однако эффективно обеспечивает двунаправленный трафик, как ориентированный, так и не ориентированный на соединения, в пределах одного сетевого сегмента. NetBEUI представляет собой самоконфигурирующийся и самонастраиваемый протокол. Его инсталляция и привязка к плате сетевого адаптера осуществляются автоматически в процессе установки Windows NT.
NWLink IPX/SPX.
В состав Windows NT входит протокол NWLink, представляющий собой реализацию транспортных протоколов межсетевого обмена пакетами (IPX) / последовательного обмена пакетами (SPX), используемый в среде NetWare. NWLink NetBIOS представляет собой расширенную Microsoft реализацию протокола Novell NetBIOS. Он используется дл передачи пакетов а Novell NetBIOS, и компьютерами Windows NT или только компьютерами Windows NT.
Реализация Microsoft протоколов IPX, SPX и NetBIOS может бесконфликтно и в прозрачном для пользователя режиме сосуществовать с любыми другими сетевыми протоколами, привязанными к плате сетевого адаптера.
DLC (Data Link Control).
Протокол управления каналом данных DLC (Data Link Control), поставляемый в составе Windows NT, используется не столько для обеспечения сетевых возможностей Windows NT, сколько для доступа к мэйнфреймам IBM. Например, такой протокол, как Microsoft SNA Server for Windows NT, использует драйвер устройства протокола DLC при поддержке коммуникаций с мэйнфреймами через интерфейс Token Ring. Кроме того, DLC используется для поддержки связи с принтерами, подключенными не к серверам, а непосредственно в сеть.
Протокол Windows NT DLC позволяет компьютерам, работающим под управлением ОС Windows NT, подключаться к мэйнфреймам IBM, используя эмуляторы 3270. Кроме того, можно подключаться и к компьютерам IBM AS/400 с помощью эмулятора 5250. Протокол DLC работает в сетях Ethernet или в кольцевых сетях с маркерным доступом через драйверы подуровня управления доступом к среде (MAC - драйверы).
Протокол DLC может работать как с программами, написанными для Windows NT, так и с программами MS-DOS и 16 – разрядными приложениями Windows.
Apple Talk.
Протокол AppleTalk применяется для доставки данных через сети, в которых имеется компьютер, работающий под управлением Windows NT, сконфигурированный для использования сервисов Windows NT для Macintosh. Работающие станции Apple Macintosh, поддерживающие этот протокол, могут совместно использовать файлы и принтеры.
Протокол AppleTalk используется разработчиками прикладного программного обеспечения, создающими кросс-платформные приложения для Windows NT и Macintosh. При передаче файлов через сети Ethernet или для удаленной отладки присутствие в сети сервисов Windows NT для Macintosh не требуется.
Другие 32-разрядные сетевые протоколы.
Если вы используете сети сторонних поставщиков, то следует поискать 32-разрядные компоненты. Существуют готовые решения для сетей Banyan Vines, и многие поставщики предлагают распределенные решения NFS (Network File System), обеспечивающие более удобную интеграцию с UNIX – системами.
Вывод: мы описали особенности работы операционных систем Windows 95, Windows NT с сетями различных типов.