Реферат: Контроллер связываемых объектов

Стандартный режим Windows 3.0 требовал для работы микропроцессор 80286 и всего 1 Мбайт памяти - 640 Кбайт стандартной и 384 Кбайт дополнительной (настоящая работа начиналась при объеме памяти 4 Мбайт). Для приложений Windows использовалась расширенная память (ХМS). Для программ МS-DOS, загружаемых из-под Windows, применялась обычная память и переключение микропроцессора из защищенного режима в реальный.

Более полно использовал аппаратные ресурсы 386-й Расширенный режим Windows . В этом режиме версии Windows 3.0 и 3.1 работали с виртуальной памятью, имевший примерно втрое больший объем, чем физическая оперативная память. Приложениям МSDOS в 386-м Расширенном режиме отводилась произвольная область памяти, которая в виртуальном режиме 8086 размечалась как обычная память MS DOS . По умолчанию МS-DOS программы загружались занимая, как обычно, весь экран, но могли быть переведены в графическое окно - стандартное окно Windows. Приложения МS-DOS, запущенное из-под Windows в 386-м Расширенном режиме, работало в виртуальной машине, иными словами, считало себя загруженным на своем собственном компьютере и знать не знало о существовании Windows.

Разумеется, для работы в 386-м Расширенном режиме требовался компьютер с микропроцессором не ниже 80386. Объявленные требования к объему памяти (2 Мбайт) опять-таки не стоило принимать всерьез. Минимумом являлись 4 Мбайт памяти, а для более или менее серьезной работы требовались 8 Mбайт или больше.

Структура ядра Windows . Способ, при помощи которого одна и та же система может работать в трех принципиально разных режимах, ориентированных на совершенно разные микропроцессоры, заключается в следующем.

Ядро Windows состоит из трех компонентов Kernel ,User и GDI. При помощи дополнительных DLL-файлов (динамически загружаемых библиотек) поддерживаются отображением стандартных диалоговых окон, протоколы DDЕ (динамического связывания данных) и ОLЕ (связывания и встраивания объектов), взаимодействие с драйверами устройств ввода-вывода и другие черты Windows. Windows -драйверы устройств бывают, кстати, двух видов - “обычные” DLL-драйверы и 386драйверы, последние предназначены опять-таки для работы только в 386-м Расширенном режиме Windows.

Наиболее низкоуровневой частью ядра Windows являетсямодуль Kernel, управляющий распределением памяти, процессами, файловым вводом-выводом и так далее. В разных режимах работы Windows 3.О функции Kernel выполняли различные файлы: kernel.ЕХЕ для Реального режима krnl286.Еxe для Стандартного режима, КrnlЗ86.ЕХЕ для 38б-го Расширенного режима.

Так что Windows 3.0 была разработана как операционная система, имеющая три разных ядра. Когда был упразднен Реальный режим работы, из комплекта поставки Windows 3.1 и исчез файл Kernel.dll. Следующий шаг был сделан, Windows 3.11 для рабочих групп - эта система работала только в 386-м Расширенном режиме. Модуль User (user.ЕХЕ) служит для работы с клавиатурой, мышью, таймером и портами, а также выполняет функции отображения элементов графического интерфейса (окон, меню). Он управляет такими драйверами, как, например, различные драйверы клавиатуры и мыши.

Наконец, модуль GDI(интерфейс графических устройств, файл GDI.ЕХЕ) поддерживает графические процедуры - прорисовку линий, закрашивание, отображение шрифтов (начиная с Windows 3.1 - все операции со шрифтами TrueType) и взаимодействует с драйверами графических устройств - дисплея и принтера. С Windows 3.1 поставлялось более десятка драйверов видеоадаптеров. Для поддержки принтеров в Windows 3.1 впервые была применена архитектура мини-драйверов. Универсальный драйвер принтера NIDRV.DLL выполнял аппаратно-независимые функции печати -несколько десятков мини-драйверов, поставляемых производителями, дополняли универсальный драйвер функциями обходимыми специально для поддержки конкретных устройств и не повторяли уже написанный общий код.

1.1.3. Windows 95

В 1996 году фирмой Microsoft , была выпушена следующая версия операционной системы Windows. Которая была названа фирмой 32 разрядной многозадачной графической системой. / 1 /

Архитектура Windows 95. Что должна была сделать Microsoft, чтобы прийти к 32-разрядной операционной системе с обеспечением вытесняющей многозадачности, которая бы при этом оставалась полностью совместима с прикладными программами для Windows3.x и MS-DOS, не требовала бы для работы самой МS DOS и “умещалась” в четырех мегабайтах оперативной памяти ?

Фирмой Microsoft уже выпущены системы, удовлетворяющие самым серьезным требованиям к управлению памятью и процессами, - WindowsNТ SERVER и WindowsNТ workstation (выпущены версии 3.51 и готовятся к выпуску 3.52), Однако эти системы сами предъявляют серьезнейшие требования к аппаратуре, а заодно и к пользователю. WindowsNТ SERVER предназначается не для десятковмиллионов потребителей Windows, а для сетевого администрирования. WindowsNТ workstation нужна тем пользователям, которые используют приложения с высокой интенсивностью вычислительной обработки, тем, кто нуждается в высокой степени безопасности данных, и тем, кто больше беспокоится о надежности системы, чем о совместимости с приложениями для MS DOS и Windows3.x.

Всех остальных пользователей на порядок больше, и им нужнее “легкая” система.

Ядро Windows 95. Ядро Windows 95, как и во всех предыдущих версиях Windows, имеет трехуровневую структуру Kernel -User- GDI. Все эти модули должны бы быть 32-разрядными, но в действительности полностью 32-разрядной сделана только самая низкоуровневая часть ядра Windows 95 - Кегне1. Вполне понятно, что, объявляя о 32-разрядной системе, Microsoft обязана была выполнить в 32-разрядном коде хотя бы такие базовые вещи, как функции ввода- вывода, управления памятью и процессами, поддержку сетевой и файловой систем.

Что касается двух других модулей ядра, то расчеты показали, что полностью 32-разрядные USER и GDI вместе потребуют для работы более 1 Мбайт памяти, Windows 95 использует 1б-разрядный код, когда он необходим для обеспечения совместимости или если 32-разрядное кодирование нецелесообразно, то есть увеличило бы расход памяти без заметного увеличения производительности.

Поэтому модуль User, остался в Windows 95 преимущественно 1б-разрядным, а его 32-разрядная часть используется для переадресации вызовов 32-разрядных приложений 16-разрядному блоку. Большая часть функций ОВ1, включая подсистему буферизации входных и выходных потоков, подсистему печати, растеризатор шрифтов TrueТуре и основные операции рисования, перенесена в 32-разрядный модуль, оставшийся 16-разрядный код описывает управление окнами. 16-разрядные функции ядра Windows 95 написаны преимущественно на ассемблере .Что же касается Kernel, то его 16-разрядная часть задействуется только при загрузке Windows 95 и используется только для инициализации 32-разрядной части Kernel. Сам Kernel32 никогда не обращается к Kernel16. На рис.1.2.показано, для каких функций используется 32-разрядный код, а для каких 16-разрядный код модулей ядра Windows 95.

Многозадачность. Анализируя выполнение под Windows 95 16-разрядных приложений для Windows3.x и МS-DOS, мы видим по большейчасти знакомые, хотя и серьезно улучшенные методы Windows3.x.

Как показано на рис. 1.3., 16-разрядные приложения для Windows (“приложения win16”) выполняются в общем пространстве адресов в пределах системной виртуальной машины. Такие варианты, как выполнение каждого приложения win16 в отдельной виртуальной машине (чтовозможновОS/2) или полная эмуляция Windows3.x в пределах операционной системы (как это делается в Windows NТ).

32-разрядные приложения, созданные с учетом требований Windows 95 (“приложения win32”), выполняются в режиме “подлинной” вытесняющей многозадачности. Кроме того, Windows 95 поддерживает многопоточные приложения, способные запускать параллельно несколько процессов.

Для каждого win32-приложения и для области адресов приложений win1б используются отдельные очереди сообщений. Таким образом, приложения win16 фактически изолированы от остальных процессов. Кроме того, в Windows 95 примененные методы очистки и восстановления системы в случае ошибок. Если ошибка в программе, выполняющейся под Windows3.x, могла запросто “обрушить всю” систему, то ошибка в одном из приложений под Windows 95 обычно не влияет на выполнение остальных программ. Низкоуровневые компоненты операционной системы изолированы от прикладных программ, поскольку пользуются сервисом другого уровня защиты микропроцессора 80386.

Использование памяти. Для разработчиков программного обеспечения 1ВМ РС долгие годы оставалась камнем преткновения сегментированная модель памяти 1б-разрядных микропроцессоров 8088/86 и 80286.

Сегментом является непрерывная область памяти, адресуемая 16-разрядными числами ( 64 Кбайт ). Для того чтобы использовать более б4 Кбайт памяти, пришлось разработать систему адресации памяти при помощи двух чисел - адреса начала сегмента и 1б-разрядного смещения внутри сегмента. Микропроцессоры 80386, способные оперировать 32-разрядными адресами, могли бы без всяких премудростей ( и отнимающих время вычислений! ) адресовать до 4 Гбайт, оперативной памяти, Но МS-DOS и Windows3.x вынужденно продолжали использовать устаревшую сегментированную модель памяти.

Для win32-приложений доступна плоская ( несегментированная) модель памяти Windows 95. Система полностью использует адресуемую память 38б-х процессоров, при этом прикладные программы могут работать с объемом памяти до 2 Гбайт, остальные 2 Гбайт Windows 95 использует для собственных нужд. Файл виртуальной памяти Windows 95 имеет динамический размер, ограниченный только объемом жесткого диска и не зависящий от фрагментации.

Использование системных ресурсов . Под системными ресурсами в терминологии Windows понимают области памяти, используемые модулями USER и GDI. В ресурсах GDI располагается информация о графических объектах, используемых системой в данный момент. Ресурсы USER включают информацию об окнах, меню и так далее. Для того чтобы максимально ускорить процедуру обращения к ресурсам USER и GDI, в Windows3.x их объемы ограничили сегментами по б4 Кбайт. Каждое порожденное системой окно отнимало примерно 2% системных ресурсов, а когда процент свободных системных ресурсов падал до 20%, загрузка новых приложений становилась невозможной.

Большая часть ресурсов Windows 95 хранится в областях памяти с 32-разрядной адресацией, Соответственно объем ресурсов Windows 95 практически неограничен. Те из старых Windows -программ, которые непосредственно обращаются к системным ресурсам, могут использовать их под Windows 95 так же, как и прежде.

Файловая система .Одно из самых назойливых ограничений систем МS-DOS и Windows3.x - имена файлов, состоящие не более чем из 11 (8+3) символов. Новая файловая система позволяет win32-приложениям пользоваться длинными (до 255 символов) именами файлов и при этом остается полностью совместимой с FAT. Разумеется, пользоваться такими именами файлов гораздо удобнее.

Некоторые компоненты новой файловой системы были использованы еще в Windows 3.11 для рабочих групп - драйвер устанавливаемых файловых систем, 32-разрядный драйвер FАТ,32-разрядное кэширование жесткого диска. Все эти черты получили дальнейшее развитие в Windows 95. Кроме того, появились 32-разрядный драйвер CD-ROM, более мощная подсистема блокового ввода-вывода и другие черты.

Поддержка драйверов устройств . аиболее громоздкие МS-DOS драйверы, занимавшие больше всего места в базовой памяти или UMB, теперь не нужны при использовании оболочки защищенного режима. Согласно документации Microsoft система Windows 95 обеспечивает:

· полную поддержку разделения доступа к файлам, заменяя резидентную программу SНАRЕ.ЕХЕ;

К-во Просмотров: 162
Бесплатно скачать Реферат: Контроллер связываемых объектов