Windows 7: Designing Efficient Background Processes
Download
Report
Transcript Windows 7: Designing Efficient Background Processes
PC19
Vikram Singh
Program Manager
Microsoft Corporation
Performance
• Responsiveness to the user
• Consumes resources from
foreground applications
• Boot, Shutdown, Logoff, etc.
Security
• Activity may require system
privileges
• Successful attack may
compromise entire system
Reliability
• Memory leaks
• System crashes, hangs
• Dependent application
crashes
Power Consumption
• Extra disk, CPU utilization
• Decrease in battery life
• Prevents idle efficiencies
required
Resource
Quantity
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
50
40
30
20
10
0
Boot Time
Shutdown Time
seconds
seconds
24.7
46.1
Clean
IT
45
30
15
0
0%
Clean
IT
15 second trace
15 second trace
4%
30
Disk Read Count
Idle CPU Utilization
8%
25.6
40,000
1.01%
6.04%
Clean
IT
20,000
0
10,192
Clean
31,401
IT
Scheduled Task
Windows Service
• Continuous activity
from boot to
shutdown
• Service Control
Manager (SCM)
programming model
• Can specify
dependency
• Short
duration action
• Idle activity
• Take action
on user login
• Standalone
executable or
out-of-process
COM server
• Generally execute
in user session
Auto_Start
Auto_Start
Trigger-Start
Trigger
TabletInputService
Trigger-Start
Service Name
Description
Trigger Type
AELookupSvc
Processes application compatibility cache
requests for applications as they are launched
Custom ETW
BDESVC
Provides BitLocker client services for user
interface and auto-unlocking of data volumes
Custom ETW
BTHSERV
The Bluetooth service supports discovery and
association of remote Bluetooth devices.
Device
SensorsMTPMonitor
Monitors MTP (Media Transfer Protocol) sensors
(such as a cell phone with a GPS receiver) to
communicate sensor data to programs
Device
TabletInputService
Enables Tablet PC pen and ink functionality
Device
WinDefend
Protection against spyware and potentially
unwanted software
Group Policy
Trigger-Start
Demand_Start
[DllImport(“advapi32.dll”, SetLastError=true)]
Public static extern bool ChangeServiceConfig2(
IntPtr hService,
uint32 dwInfoLevel,
IntPtr lpInfo
);
Const uint32 SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6
// Example UPS Service
protected override void OnStart (string[] args)
{
IntPtr ServiceHandle;
IntPtr RequiredPrivilegesString;
// set required privileges
string RequiredPrivileges =
“SeShutdownPrivilege\0\0”;
RequiredPrivilegesString =
Marshal.StringToHGlobalAuto(RequiredPrivileges);
ChangeServiceConfig2(
this.ServiceHandle,
SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO,
RequiredPrivilegesString
);
}
Kernel
Detects Idle Condition
Task Scheduler
(schedule)
Launches Task
Power Efficiency
Diagnostics
(powercfg.exe)
Trigger-Start
Auto_Start
http://go.microsoft.com/fwlink/?LinkId=128622
http://download.microsoft.com/download/9/c/5/9c5b21678017-4bae-9fde-d599bac8184a/Vista_Services.doc
http://msdn.microsoft.com/enus/library/ms685150(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa383614.aspx
http://www.microsoft.com/whdc/system/sysperf/perftools.
mspx
www.microsoftpdc.com
© 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.