Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реферат - Архитектура MS Windows 9х

.pdf
Скачиваний:
42
Добавлен:
02.05.2014
Размер:
221.87 Кб
Скачать

1

Организация памяти Windows

Используется виртуальная адресация – такой способ управления памятью, при котором адресуемая памяти ПК делится между процессами и прозрачно отображается на доступные области физической памяти. Центральный процессор делит доступное адресное пространство на страницы по 4 Кб общим числом 220~1 млн., что дает 4 Гб (232=4 Гб) адресуемой памяти при 32 битной шине адреса. Они распределяются следующим образом.

4Гб

ОС

Код 0 кольца

Системная

 

 

 

 

Ядро системы

область

 

 

 

3Гб

 

 

 

 

 

Модули DLL и другие

Разделяемая

 

 

 

 

разделяемые объекты

 

 

Модули commdlg.dll,

область

 

 

 

2Гб

 

comdlg32.dll

 

 

 

 

 

Программы

Программы

 

 

 

 

W32 и W16

 

4Мб

 

Область

 

 

Программы

 

 

 

 

W16

приложений

 

 

1Мб

 

 

 

 

Программы

 

 

 

 

 

 

MS-DOS

 

 

 

 

 

Диспетчер виртуальной памяти (ДВП) устанавливает соответствие между виртуальными адресами станиц и их физическим расположением в ОЗУ или на жестком диске. Обмен страницами регулирует ДВП. Редко используемые страницы откладываются на жесткий диск в файл подкачки (файл виртуальной памяти). Он имеет динамический размер и может располагаться во фрагментированных участках, а также использовать сжатые диски.

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

Архитектура Windows

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Средства

 

 

 

 

 

 

 

 

 

 

 

пользовательског

 

 

 

Приложения

 

 

 

 

о интерфейса 32-

 

 

 

 

 

 

 

 

 

 

 

разрядная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оболочка

 

 

 

 

Реестр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ядро Windows

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Диспетчер

 

 

Диспетчер

 

 

Диспетчер

 

 

 

виртуальной

 

 

настраиваемой

 

 

конфигурации

 

 

 

машины (ДВМ)

 

 

файловой

 

 

 

 

 

 

 

VMM

 

 

системы

 

 

 

 

 

 

 

 

 

 

IFS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Драйверы устройств

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аппаратные средства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ядро Windows

 

 

 

 

 

 

 

 

 

 

16-разрядная часть

 

32-разрядная часть

 

 

krnl386.exe

 

 

 

 

 

 

kernel32.dll

 

 

user.exe

 

 

 

 

 

 

user32.dll

 

 

gdi.exe

 

 

 

 

 

 

gdi32.dll

Каждый компонент включает пару: одну 32-разрядную DLL и одну 16разрядную, реализованную в модуле exe. Везде, где это дает заметный выигрыш в производительности, используется 32-разрядный код. Существующий 16-разрядный сохранен там, где без него нельзя обойтись, где 32-разрядный код не дает существенного увеличения производительности или для совместимости с реальным режимом.

Kernel – ядро

Модуль ядра операционной системы (krnl386.exe и kernel32.dll) обеспечивает базовые функциональные возможности операционной системы: поддержку файлового ввода/выводы, управление виртуальной памятью и планирование задач. Модуль krnl386.exe инициализирует в процессе загрузки

3

32-разрядную часть kernel.dll.Kernel отвечает за выделение виртуальной памяти, разрешение импорт-ссылок и выполняет поддержку подкачки страниц по запросу. При выполнении программы модуль отвечает за исполнение потоков каждого процесса и распределение между ними процессорного времени. Обработка исключений – еще одна функция ядра. Исключение – событие, возникающее при выполнении программы и требующее вмешательства для прерывания нормального потока управления. При этом управление передается самой программе для принятия решения. Также kernel обеспечивает взаимодействие 16-разрядного и 32-разрядного кодов, применяя для преобразования 16-разрядного формата в 32-разрядный специальный процесс – трансформацию.

User – пользователь

Модуль user обслуживает события, генерируемые пользователем: управляет вводом с клавиатуры, от мыши и других координатных устройств, а также вводом через интерфейс пользователя (окнами, значками, меню и др.), также управляет взаимодействием со звуковыми драйверами, таймером и коммуникационными портами. Кроме того, выполняет операции асинхронного ввода для любого ввода в систему и приложения.

Основные функции выполняет модуль user.exe. Модуль user32.dll выполняет переадресацию вызовов 16-разрядному модулю.

GDI (Graphic Device Interface) – интерфейс графического устройства

Это – графическая система, управляющая процессами отображения всех объектов Windows на экране и поддерживающая графический вывод на принтеры и другие устройства. Она отвечает за прорисовку графических примитивов, манипуляции растровыми изображениями и взаимодействие с аппаратно-независимыми графическими драйверами. Для реализации работы системы разработана 32-разрядная графическая машина – DIB-машина (Device Independent Bitmaps, аппаратно-независимая растровая графика). Она содержит набор оптимизированных универсальных графических функций для работы с графическими устройствами – монохромными, 16-цветными, 256-цветными, 16-разрядными (high color), 32-разрядными (true color) и

поддерживает прорисовку линий по методу Безье. Механизм сопоставления цветов изображения (ICM – Image Color Matching) обеспечивает соответствие между цветами экрана и устройств вывода.

4

Диспетчер конфигурации

Управляет конфигурированием системы, используется для поддержки функциональных возможностей технологии plug-and-play. В процессе конфигурирования могут участвовать множество шин различных архитектур и устройств. Диспетчер конфигурации для идентификации каждой шины работает с рядом подкомпонент.

Диспетчер

конфигурации

Перечислитель

Арбитр

Драйвер устройства

BIOS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шина

 

 

 

 

Шина

 

 

 

Шина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Устройство

 

 

 

Устройство

 

 

 

Устройство

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Диспетчер конфигурации вызывает шинные перечислители – драйверы, ответственные за создание дерева устройств. Дерево устройств – иерархическое представление всех шин и устройств в компьютере. Каждая шина и устройство рассматриваются как узел. В процессе перечисления устройств шинный перечислитель отыскивает и собирает информацию от драйверов устройств или от BIOS. Для каждого устройства загружается драйвер, который после загрузки ждет, какие ресурсы будут выделены ему Диспетчером конфигурации. Эту функцию выполняет арбитр ресурсов. По окончании процессов конфигурирования системы Диспетчер конфигурации информирует драйверы устройств о конфигурации соответствующих устройств. Этот процесс повторяется, когда BIOS обнаруживает в системе новое устройство.

Диспетчер виртуальной машины (ДВМ)

Работу диспетчера обеспечивает файл vmm32.vxd. Выделяет ресурсы каждому приложению и системному процессу, выполняемому на компьютере. Создает и поддерживает виртуальную среду, в которой исполняются программы и системные процессы.

Виртуальная машина – среда в оперативной памяти ПК, которая кажется приложению отдельным компьютером – с теми же ресурсами, что и у физического компьютера.

5

В Windows создается одна виртуальная машина (ВМ) (системная) в которой используются все системные процессы, Win-16 и Win-32 приложения, и по отдельной виртуальной машине для каждой программы

DOS.

Системная ВМ

 

 

 

 

 

 

 

ВМ

 

 

 

 

 

 

 

 

 

 

 

 

DOS

 

Win-32

 

Win-16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Win-32

 

Win-16

 

 

 

 

 

 

 

ВМ

 

 

 

 

 

 

 

 

 

 

 

DOS

 

 

 

 

 

 

 

 

 

 

 

 

 

Win-32

 

Win-16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Основные функции ДВМ:

распределение процессорного времени;

подкачка страниц памяти;

поддержка режима MS-DOS для программ DOS.

За выделение системных ресурсов приложениям и другим выполняемым на компьютере процессам, а также за распределение процессорного времени отвечает планировщик процессов. Исполняемое Win32 приложение называется процессом. Процесс состоим как минимум из одного потока. Поток – часть кода программы, которую можно выполнять одновременно с другими частями кода. Поток использует память и системные ресурсы, выделяемые процессу, но не обращается к операционной системе. В каждый момент времени может выполнятся один поток.

Для одновременного выполнения нескольких процессов в Windows применяются два метода: кооперативная многозадачность и вытесняющая (корпоративная) многозадачность.

При кооперативной многозадачности (использовалась в оболочке Windows 3.*) приложения работают в едином пространстве. Каждому приложению выделяется процессорное время в соответствии с его приоритетом. Значение приоритета фиксировано и не изменяется операционной системой. Для операционной системы они представляют единый процесс.

В режиме вытесняющей многозадачности (приложения Win-32 и DOSпрограммы) каждый поток выполняется определенное количество времени, пока приоритет другого потока не превысит его приоритет. Приоритеты распределяются операционной системой, поэтому один процесс или поток не

6

может захватить монопольное управление. Каждому приложению отводится определенное количество процессорного времени.

Механизм планирования приоритетов следующий. В конкретный момент времени каждый поток имеет определенный приоритет 0 … 32. Управление процессом переходит к потоку, имеющему наивысший приоритет. Приоритеты потоков динамически изменяются планировщиком. Имеется два планировщика: первичный и вторичный.

Первичный вычисляет приоритеты потоков, вторичный определяет количество процессорного времени, выделяемого потоку. Время выделяется квантами: 1 квант20 мс. Каждый квант первичный планировщик выбирает поток с наивысшим приоритетом и передает ему управление. Если потоки имеют одинаковые приоритеты, то каждому выделяется равное количество времени.

Вторичный планировщик повышает или понижает приоритеты по следующим правилам:

1)повышается приоритет потоков, находящихся в ожидании пользовательского ввода;

2)если у потока наинизший приоритет, то он начинает повышаться, и наоборот;

3)периодически повышается приоритет каждого потока, чтобы потоки не зависали.