Антон Шепитько [email protected] Системные активности...
Post on 19-Dec-2015
237 views
TRANSCRIPT
3
Системные активности которые не были запущены непосредственно пользователем
Сервисы, Задачи по расписанию, некоторые COM процессы и т.д.
Встречаются повсеместно:
Индексирование при поиске
Проверки по требованиям безопасности
Управление сетью
Управление устройствами
Фоновые процессы
4
Влияние фоновых процессов
Производительность
• Время реакции на действия пользователя
• Конкуренция за ресурсы с «основными» приложениями
• Logoff, и т.д..
Надежность• Утечки памяти• Падения системы• Падения зависимых
приложений
Безопасность• Может требовать
системный привилегий• Успешная атака может
«положить» всю систему
Потребление энергии
• Диск, процессор• Уменьшает время
работы от батареи
5
Внутренняя оценка 49 сервисов (во время загрузки)
Не критичны для загрузкиКритичны и нужны для своих сценариев
Влияние фоновых процессов
Ресурс Количество
File I/O 47,286
Copy-on-Write (COW) Pages 4,656 (~18MB)
Memory Pages (Total) 15,967 (~60MB)
Registry Operations 38,508
Threads 367
6
Сервисы и задачиС
ер
ви
сы • Все время работают
• Программная модель Service Control Manager (SCM)
• Могут указывать зависимости
Зад
ачи
• Короткие задачи• Отдельные exe или
out-of-process COM
• Обычно в пользовательской сессии
7
Auto_Start сервис стартует при загрузке и никогда не завершается
Чаще всего используетсяПрост для разработчиков — всегда работает!
ПроблемыУвеличивает время загрузки
Много Auto_Start сервисов ждут редких событий
Windows Services: Auto_Start
8
Trigger-Start запуск сервиса при необходимости
SCM регистрируется на события:Подключение устройстваПолучение/смена IP адресаПодключение или выход и доменаИзменение групповых политикДругое
SCM стартует или завершает зарегистрированные сервисы
Windows 7: Сервисы Trigger-Start
9
СамоостановкаЕсли нет запросов и задач и Trigger-Start или Demand_Start
Выключение компьютераНе используйте SERVICE_ACCEPT_SHUTDOWN без необходимостиНе надо чистить память если сервис - standalone processСтарайтесь завершиться не более чем за 200ms
Завершение работы сервисов
10
КалендарьЗагрузкаLogonIdleЗапись в Event logБлокировка/разблокировка компьютера
Триггеры для задач
11
Idle conditionОстановиться при выходе из IdleТолько при работе от сетиОстановка при работе от батареиВыход из sleepПри сетевых соединениях
Условия для задач
12
Windows Web Services API
Работа с web services из native кодаWin32 APIНе требует .Net Framework
Работает со стеком WS-* SOAPWindows Communication Foundation (WCF)ASP .Net XML Web Services (ASMX)Не Microsoft реализации
Системный компонент Windows 7Доступен на Windows XP/Vista/2003/2008
13
WWSAPI и WCF
WWSAPI пара к WCFИспользуйте WCF в управляемом кодеИспользуйте WWSAPI в нативном коде
Похожие программные моделиXML, Message, Channels (message-oriented)Service Model (function-oriented)
14
Web Services
Client Web Service
EndpointA B C
EndpointA B C
EndpointA B C
EndpointABC
Service Proxy
WSDL
XSDService HostCode
GeneratorCode
Generator
15
Уровни Windows Web Services API
Ваш код
Network I/O
Service Model
Channel Layer
XML Layer
Err
ors
Heap
Asyn
c
Con
text
16
Service Model
Автоматически управляет коммуникацией
Service Proxy на клиентеService Host на сервере
Обмен сообщениями – это вызов функций
Клиент вызывает сгенерированные функцииСервер реализует callback
Управляется контрактомWsUtil.exe генерирует C код из WSDL/XSD
17
Windows Web Services API
Ваш код
Network I/O
Service Model
Channel Layer
XML Layer
Err
ors
Heap
Asyn
c
Con
text
18
Channel Layer
Полный контроль над коммуникацией (Web Services вместо C)Сообщения
Посланные или полученные данныеСостоит из заголовка и тела
КаналАбстракция для протокола обмена сообщениями Унифицированный API для 3 транспортов (HTTP, TCP, UDP)Свойства для тюнинга
19
Windows Web Services API
Ваш код
Network I/O
Service Model
Channel Layer
XML Layer
Err
ors
Heap
Asyn
c
Con
text
20
XML Layer
Полный доступ к содержимому сообщенийУнифицированный API для кодирования
Text, Binary, MTOMSOAP подмножество XML 1.0XmlBuffer
Хранение XML в памятиXmlReader and XmlWriter
Последовательный доступ
21
Поддерживаемые конфигурации
TransportsHTTP, TCP, UDP
XML EncodingsText, Binary, and MTOM
EnvelopeSOAP 1.1 and 1.2
AddressingWS-Addressing 0.9 and 1.0
MetadataWSDL 1.1, XML Schema 1.0WS-MetadataExchange 1.1WS-Transfer March 2006
SecurityWS-Security 1.0 and 1.1 (partial)WS-Trust February 2005 and 1.3 (partial)WS-SecureConversation 1.1 and 1.3 (partial)
PolicyWS-Policy from March 2006 and v.1.2WS-Policy Attachment from March 2006 and 1.2WS-SecurityPolicy 1.1
22
Производительность – TCP
RPC Sapphire WCF0
10000
20000
30000
40000
50000
60000
70000
80000Операций в секунду
Configuration:Server: 2.2 GHz AMD (dual core), 64-bit Windows Server 2008Clients: 2.6 GHz AMD (dual core), 64-bit Windows Vista SP1
TCP/Binary
WWSAPI
23
Производительность – HTTP
RPC Sapphire WCF0
2000
4000
6000
8000
10000
12000
14000
16000
18000Операций в секунду
Configuration:Server: 2.2 GHz AMD (dual core), 64-bit Windows Server 2008Clients: 2.6 GHz AMD (dual core), 64-bit Windows Vista SP1
CPU Utilization > 96%Self-hosted WCF and WWSAPI
HTTP/UTF8
WWSAPI
24
… Ваш компьютер знает где он и настраивает себя в связи со своим положением?
Погода новости события
Время
…Ваш компьютер может чувствовать окружающую среду и подстраиваться под текущие условия?
Подсветка дисплея в зависимости от окружающего света
Оптимизирует элементы интерфейса для лучшей читаемости
Что если…?
25
Устройства позиционирования выставляются как виртуальные COM порты
Эксклюзивный доступ для 1 приложения
Не безопасно
Закрытые форматы данных и протоколы общения
GPS не работает в помещении
Сложно использовать несколько технологий вместе
Сенсоры интегрированы в решения
Приложения должны знать особенности «железа» сенсора
Ограниченное распространение и использование
Ограничения сенсоров сегодня
26
Windows Sensor And Location Platform
Унифицированная модель драйверов для всех видов сенсоров
Физические (GPS, свет)Логические (Wi-Fi триангуляция)
Стандартный API для доступа к сенсорам
Sensor API: C++/COMLocation API: C++/COM, IDispatch
27
Архитектура доступа к сенсору
UMDF Sensor Driver
Sensor Class Extension
Sensor API
Приложение
Можно посмотреть из Control
Panel
Устройство
Приложение
UserSystem
28
Позиционирование
UMDF Sensor Driver
Sensor Class Extension
Sensor API
Gadget or Script Приложение
Можно посмотреть из Control
Panel
Устройство
Location APILocation IDispatch Interface
Приложение
UMDF Sensor Driver
Sensor Class Extension
Логический сенсор(Триангуляция)
UserSystem
29
Единый API для ответа на вопрос “Где я?”Не зависим от провайдера/устройства
Можно использовать даже в скрипте
Автоматический переход между провайдерами
Приоритет у самого точного
Одновременный доступ из множества приложение
Местоположение по умолчаниюЗадается пользователем, когда более ничего не доступно
Преимущества
30
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.