ильичев Windows 7

21
Александр Ильичев Изменения архитектуры Windows 7

Transcript of ильичев Windows 7

Page 1: ильичев Windows 7

Александр Ильичев

Изменения архитектуры Windows 7

Page 2: ильичев Windows 7

О чем мы поговорим• Изменения ядра Windows 7 и Windows Sever 2008 R2

– Производительность, Планировщик пользовательского режима, Память

• Фоновая активность– Загрузка служб, объединение таймеров драйверов и приложений

• Обработка интерфейса Windows 7– Использование Direct2D, DirectWrite

Page 3: ильичев Windows 7

Ядро

• Windows 7 и Server 2008 R2 основаны на одном ядре• Как было обещано, Server 2008 R2 является только 64битным

– Wow64 является опцией для Server Core

• Номер версии 6.1 выбран для обеспечения совместимости– Не отображает номер релиза очередной Windows NT – Не отображает количество изменений в системе– Подразумевается, что многие старые приложения будут проверять

номер Vista (6) при запуске/установке.

Page 4: ильичев Windows 7

PerfTrack• PerfTrack: зарегистрировано 300 видимых для пользователя сценариев, требующих

высокой производительности– Примеры: открытие меню Пуск, открытие Панели управления, загрузкасистемы

• Набор целей по производительности по каждой функции– Отталкивается от начальных и заканчивающих системных событий – Данные от Customer Experience Program передавались командам по функциям

Производительность меню Пуск – Build 7000

Page 5: ильичев Windows 7

Снижение потребления ресурсов

• Снижение более чем на 400 мб

Lapt

opA (x

86)

Lapt

opB (x

86)

ShipA

(x86

)

ShipB

(x86

)

ShipG

(x86

)

ShipH

(x86

)

ShipI

(x86

)

ShipJ

(x86

)

Lapt

opA (x

64)

Lapt

opB (x

64)

ShipB

(x64

)

ShipJ

(x64

)0

200

400

600

800

1000

1200

1400

Vista SP1

Windows 7 Beta

MB

Page 6: ильичев Windows 7

Оптимизация памяти• Переработка DWM (Desktop Window Manager - Aero и т.д.) снизила потребляемость памяти для

каждого окна на 50%• Чтение реестра происходит из файла подкачки

– До этого реестр был закреплен в памяти– Улучшает производительность, поскольку обращения в реестр не требуют их размещения

в таблице памяти• Улучшение механизма управления рабочим набором памяти:

– Рабочий набор – это количество оперативной памяти, выделенное для процесса или ядра– Memory manager снижает урон от «убегающих процессов»

• Быстро растущие процессы переиспользуют свои страницы памяти более агрессивно• Использует 8 «уровней старения» вместо четерех

– Системный кэш, файл подкачки и подкачиваемый системный код теперь имеют раздельные рабочие наборы

• Теперь каждый из них испльзует память в зависимости от своих нужд• Снижается урон от копий файлов в системном коде

Page 7: ильичев Windows 7

Планировщик Пользовательского Режима (UMS)

• Был разработан для приложений, работающих в режиме волокон– Некоторые системные вызовы могут использовать состояние, связанное с

определенным потоком– Если волокна работают на нескольких потоках, состояние может быть

повреждено• UMS решает проблему состояния потока, разделяя режим

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

на соотвествующий поток ядра

Page 8: ильичев Windows 7

Фоновая активность• Службы Trigger-start• Объединение таймеров приложений и

драйверов

Page 9: ильичев Windows 7

Системная активность не вызванная пользователем напрямую Службы, Запланированные задания,

провайдеры WMI и т.д.

Часть практически любого сценария работы пользователя: Индексация поиска Безопасность и работоспособность системы Упарвление сетью Управление устройствами Настройка системы

Что такое фоновая активность?

Page 10: ильичев Windows 7

Ресурс ЗначениеОперации ввода/вывода 47,286

Страницы Copy-on-Write (COW) 4,656 (~18MB)

Страницы памяти (Всего) 15,967 (~60MB)

Операций с реестром 38,508

Потоков 367

• Внутреннее тестирование 49 системных служб– Не критичных для запуска и входа в системы– Критических и необходимых для их индивидуальных сценариев работы

Воздействие фоновой активности

Page 11: ильичев Windows 7

Интересная статистика

• Сравнение чистого образа Vista со средним образом IT-службы (+ 10 фоновых служб)

Чистый IT0

2040

24.7 46.1

Время загрузкисекунды

Чистый IT0

153045

25.6 30

Время выключениясекунды

Чистый IT0%

4%

8%

1.01%6.04%

Загрузка CPU при простоеЗа 15 секунд

Чистый IT0

20,000

40,000

10,19231,401

Счетчик чтения с диска15 second trace

Page 12: ильичев Windows 7

• Автозапуск инициирует запуск службы при загрузке системы. Служба остается включенной всегда

• Самый распространенный тип запуска– Просто для разработчиков – Служба всегда работает

• Проблемы– Время загрузки службы добавляется ко времени загрузки системы– Съедает ресурсы – Многие службы автозапуска ждут редких событий

Службы Windows: Автозапуск

Page 13: ильичев Windows 7

• Trigger-Start использует общую логику слежения за средой системы– Service Control Manager отслеживает следующие события системы:

• Подключение/Отключения устройства• Назначение/снятие IP-адреса• Включение и выход из домена• Изменения групповых политик• Собственное событие ETW (Event Tracing for Windows)

– SCM запускает и останваливает выбранные службы:• Пример:

– TabletInputService запускается только, если подключен дигитайзер (графический планшет)

Windows 7: Trigger-Start Служб

Page 14: ильичев Windows 7

Некоторые службы Trigger-Start Windows 7

Service Name Description Trigger Type

AELookupSvc Обрабатывает запросы по совместимости приложений, после их запуска

Свой ETW

BDESVC Включает поддержку Bitlocker для пользовательского интерфейса и томов диска

Свой ETW

BTHSERV Служба Bluetooth включает обнаружение сигнала Bluetooth и подключение удаленных устройств

Устройство

SensorsMTPMonitor Следит за сенсорами MTP (Media Transfer Protocol – устроства GPS), чтобы передавать данные сенсоров программам

Устройство

TabletInputService Включает функционал Tablet PC Устройство

WinDefend Защита от вредоносного ПО Групповая политика

Page 15: ильичев Windows 7

Объединение таймеров• При простое компьютера, требуется минимизировать прерывания таймеров• Ранее периодические таймеры имели независимые циклы, даже если пирод

был одинаков• Новое API таймеров позволяет использовать их объединение

– Приложение или драйвер определяет допустимую задержку• Система таймеров подстраивает время их заупска под общи интервалы:

– 50мс, 100мс, 250мс, 1с

Каждые15.6 мс

Период Таймеров

Windows 7

Vista

Page 16: ильичев Windows 7

Direct2D и DirectWrite

Применение в Windows 7

Direct2D Обработка 2D-графики Повышенная произовдительность и качество картинки

DirectWrite Вертикальный стек текстовых сервисов Шрифты, Обработка сценариев, Layout

Page 17: ильичев Windows 7

Особенности Direct2D

Ориентирован на рендеринг 2D векторная графика, растровое изображение и текст Аппаратно или Программно

Другие службы Работа с дисплеями/устройствами DXGI Печать XPS Перекодирование изображений WIC Форматирование текста DirectWrite

Page 18: ильичев Windows 7

Особенности Direct2D Совместимость

GDI Direct3D

Производительность Основан на Direct3D 10.1 Меньше потребление ресурсов чем у GDI/GDI+ (в среднем в 4 раза)

Качество картинки Alpha Blending Per-primitive anti-aliasing MSAA посредством Direct3D

Page 19: ильичев Windows 7

Особенности DirectWrite

ClearType Работает с любой технологией

рендеринга Аппаратно ускорен с Direct2D

Page 20: ильичев Windows 7

Рендеринг DirectWrite

Рендеринг может быть осуществим посредствомDirectX, GDI, или других технологий

В 2 раза быстрее GDI

Аппаратное ускорение с Direct2D

Фильтр ClearType и сглаживание выполняется аппаратно Поддерживает аппаратную оптимизацию кэширования данных приложения Сниженная нагрузка на ЦП при отрисовке символов

Page 21: ильичев Windows 7

Вопросы