Антон Шепитько [email protected] Системные активности...

30

Post on 19-Dec-2015

237 views

Category:

Documents


9 download

TRANSCRIPT

Изменения на уровне платформы

Антон Шепитько[email protected]

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.