Kim Shearer Senior Program Manager Microsoft Corporation SESSION CODE: DPR308.

Slides:



Advertisements
Similar presentations
Steve Smith Senior Architect The Code Project SESSION CODE: DPR304.
Advertisements

Integrating Drivers and Applications with Windows Power Management Pat Stemen microsoft.com Program Manager Microsoft Corporation.
 Pat Stemen Senior Program Manager Microsoft Corporation PC02.
Server Architecture Models Operating Systems Hebrew University Spring 2004.
Dean Paron Product Unit Manager Microsoft Corporation SESSION CODE: WSV335 © 2010 Microsoft Corporation. All rights reserved.
Jason Tolley Technical Director ROK Technology Pty Ltd SESSION CODE: WEM305.
Matt Steele Senior Program Manager Microsoft Corporation SESSION CODE: SIA326.
Khalid Siddiqui Senior Architect, Mobility Center of Excellence Microsoft Corporation SESSION CODE: WPH311.
Sometimes it is the stuff you know that hinders true progress.
Juergen Thomas Principal Program Manager Microsoft Corporation SESSION CODE: DAT314.
The Secrets of Effective Technical Talks: How to Explain Tech without Tucking Them In! Presented by Mark Minasi and Mark Russinovich SESSION CODE: SIA334.
Ashwin Sarin Program Manager Microsoft Corporation SESSION CODE: COS204.
Maciej Pilecki Consultant, SQL Server MVP Project Botticelli Ltd. SESSION CODE: DAT403.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM307.
Boris Jabes Senior Program Manager Microsoft Corporation SESSION CODE: DEV319 Scale & Productivity in Visual C
Peter Provost Sr. Program Manager Microsoft Corporation SESSION CODE: DEV403.
Gail Warren Director, Online Services Microsoft Corporation SESSION CODE: COS201.
Joe SchulmanAdrienne WuProgram ManagerMicrosoft Corporation SESSION CODE: SIA319.
END USER TOOLS AND PERFORMANCE MANAGEMENT APPS Excel PerformancePoint Svcs/ProClarity BI PLATFORM SQL Server Reporting Services SQL Server Reporting Services.
Janssen Jones Virtual Machine MVP Indiana University SESSION CODE: VIR403.
Tim Crabb Sr. Program Manager Microsoft Corporation SESSION CODE: VIR302.
Jim Harrison Program Manager, Forefront TMG Microsoft Corporation SESSION CODE: SIA325.
Suhail Dutta Program Manager Microsoft Corporation SESSION CODE: DEV402.
Chandrika Shankarnarayan Senior Program Manager Microsoft Corporation SESSION CODE: ASI301.
Satya SK Jayanty Director & Principal Architect D BI A Solutions Peter Saddow Senior Program Manager Microsoft Corporation -SQL Server SESSION CODE: DAT312.
1 Nelly Porter Group Program Manager Remote Desktop Virtualization Microsoft Corporation SESSION CODE: WSV309.
Thomas Deml Principal Program Manager Web Platform and Tools Microsoft Corporation SESSION CODE: WEB308.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
Omar Khan SESSION CODE: WSV331. Simplification.
Iftekhar Hussain Partner Technology Advisor Microsoft Corporation SESSION CODE: VIR309.
Jeff King Senior Program Manager, Visual Studio Microsoft Corporation SESSION CODE: WEB305.
Lori Dirks Expression Community Manager Microsoft Corporation SESSION CODE: WEB309.

Vineet Sarda Senior Consultant Microsoft Corporation SESSION CODE: WCL302.
Chris Mayo Microsoft Corporation SESSION CODE: UNC207.
Michael Kleef Senior Technical Product Manager Microsoft Corporation SESSION CODE: VIR311.
Kyle Marsh Principal Program Manager Microsoft Corporation WCL305.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM308.
Richard Campbell Co-Founder Strangeloop Networks SESSION CODE: WEB315.
Younus Aftab Program Manager Microsoft Corporation SESSION CODE: WSV324.
Srinath Venkatasubramanian Alliance Manager Sonata Software Limited SESSION CODE: BIP203.
SESSION CODE: MGT205 Chris Harris Program Manager Microsoft Corporation.
Reza Chitsaz Senior Program Manager Microsoft Corporation SESSION CODE: DEV302 Building a SharePoint Collaboration Application in Visual Studio 2010.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP305.
Thomas Deml Principal Program Manager Microsoft Corporation SESSION CODE: WSV317.
Pat Altimore Sr. Consultant Microsoft Corporation SESSION CODE: WCL321.
David Ollason Lead Program Manager Microsoft Corporation SESSION CODE: UNC322 The New Communicator “14” Platform.
BIO202 | Building Effective Data Visualizations and Maps with Microsoft SQL Server 2008 Reporting Services BIU08-INT | Using.
Martin Woodward Program Manager Microsoft Corporation SESSION CODE: DEV308.
Ulrich (Uli) Homann Chief Architect, WW Enterprise Services Microsoft Corporation SESSION CODE: ARC305.
SESSION CODE: COS301. So what do we do?
Mir Rosenberg & Refaat Issa Program Managers Microsoft Corporation SESSION CODE: WSV401.
Dustin Johnson Microsoft Practice Lead Dell, Inc. SESSION CODE: UNC302.
David A. Carley Senior SDE Microsoft Corporation SESSION CODE: DEV318.
Lynn Langit Microsoft – Developer Evangelist.
By: Paul D. Sheriff or SESSION CODE: WCL206.
Cube Measure Group Measure Partition Cube Dimension Dimension Attribute Attribute Relationship Hierarchy Level Cube Attribute Cube Hierarchy.
Brian A. Randell Senior Consultant MCW Technologies SESSION CODE: DEV311.
Christophe Fiessinger & Jan Kalis Senior Technical Product Manager Microsoft Corporation SESSION CODE: OSP209.
Ken Getz Senior Consultant MCW Technologies, LLC SESSION CODE: WCL202.
Mark Russinovich Technical Fellow Microsoft Corporation SESSION CODE: WCL315.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP319.
OPERATING SYSTEMS CS3502 Fall 2017
Excel Services Deployment and Administration
Customer Experiences With Business Intelligence
Tech Ed North America /15/2018 4:14 AM Required Slide
Team Foundation Server 2010 for Everyone
Lap Around the Windows Azure Platform
Building BI applications using PowerPivot for Excel
Presentation transcript:

Kim Shearer Senior Program Manager Microsoft Corporation SESSION CODE: DPR308

Increasing IT Footprint Decreasing Productivity Rising Costs Continual Demand for New Services Traditional Application Architecture Typical Operational Practices Inefficient IT

Increasing IT Footprint Decreasing Productivity Rising Costs Stressed Power Systems

Increasing IT Footprint Decreasing Productivity Rising Costs Increasing IT Power Increasing Regulatory attention Shareholder & NGO Scrutiny Power Constraints & Outages Grid Local Stressed Power Systems

Increasing IT Footprint Decreasing Productivity Rising Costs Manageable Service Demands Smart Application Resource Use New Operational Practices Stressed Power Systems Efficient IT

ReliableReliable & SecureReliable, Secure & Efficient

Increase Server Utilization Centralized PC Power Management Increase Server Utilization Centralized PC Power Management Rightsizing Efficient Power Supply Remove Unnecessary Components Rightsizing Efficient Power Supply Remove Unnecessary Components Energy Efficient & Aware Applications Platform Power Management Low-power components Building Management Infrastructure Hardware Package Applications Operating System Silicon Improve Data Center PUE Increase Facility Utilization Improve Data Center PUE Increase Facility Utilization

Client Reduced battery life – important user feature Cost of system insomnia (additional cost to enterprises) Poor user experience (laptop as bag warmer) Cloud Less effective virtualization/consolidation More servers - Increased Capex/Opex/disposal Stressed power and cooling systems

Enables transition to a low power mode while saving OS and application state Allows active system to reduce power needs without negatively impacting user productivity Provides users and administrators with controls to save energy

Hardware OSApplications Power Efficient System Power Efficient System

“Energy Smart” Application Allows the system to reduce power when possible Respects user preferences to save energy Responds to system state and power source changes

Client Code Verify system sleep and display power management behavior Server Code Measure application energy consumption Establish goals and a schedule for improvement All Code Detect and analyze timer resolution changes Encourage use of timer coalesce

Verizon185,000 PCs$7 million savings FedEx20,000 PCs$1 million savings

Function nameDescription PowerCreateRequestCreates a power context object and returns a handle to it. PowerClearRequestRemoves an outstanding availability request on a particular request context object PowerSetRequestActivates a power availability request and indicates the type of request.

void EatBatteryLife() { HANDLE sharedResource = NULL; //spawn multiple threads, one of which does this: while (sharedResource == NULL) { waitTime++; Sleep(1);//or just keep spinning on a lock or mutex } DO NOT DO THIS

//thread 1’s code void UpdateSharedResource() { //set sharedResource sharedResource = UpdateResource(); //Set sharedResourceIsReadyEvent to signaled SetEvent(sharedResourceIsReadyEvent); } /thread 2's code void ConsumeSharedResource() { DWORD dwWaitResult; dwWaitResult = WaitForSingleObject( sharedResourceIsReadyEvent, INFINITE); // indefinite wait switch (dwWaitResult) { case WAIT_OBJECT_0: // // TODO: use sharedResource // break; default: return 0; }

Windows 7 Vista

BOOL WINAPI SetWaitableTimerEx( __in HANDLE hTimer, __in const LARGE_INTEGER *lpDueTime, __in LONG lPeriod, __in_opt PTIMERAPCROUTINE pfnCompletionRoutine, __in_opt LPVOID lpArgToCompletionRoutine, __in_opt PREASON_CONTEXT WakeContext, __in ULONG TolerableDelay );

void CreateAndSetPeriodicTimer() { myTimer = CreateWaitableTimerEx(NULL, TimerName,//string with chosen timer name NULL, TIMER_MODIFY_STATE);//required security attribute to call //SetWaitableTimerEx bError = SetWaitableTimerEx(myTimer, DueTime,//UTC due time 10000,//periodic timer duration is ten seconds CompletionRoutinePointer,//APC completion routine ArgsToCompletionRoutine,//completion routine arguments WakeContext,//only if waking the machine 1000);//tolerable delay is one second //DO WORK bError = CancelWaitableTimer(myTimer);//be sure to cancel periodic timers! }

// // Register for Power Setting Notifications. // // The RegisterPowerSettingNotification API returns a handle to the // registration which we cache in a local variable so that we can // unregister when the window is closed. We also do the registration here // because it is explicitly obvious that the dialog is initialized and the // handle to the window is valid. // hPowerPersonality = RegisterPowerSettingNotification(m_hWnd, &GUID_POWERSCHEME_PERSONALITY, DEVICE_NOTIFY_WINDOW_HANDLE); hBatteryPercentage = RegisterPowerSettingNotification(m_hWnd, &GUID_BATTERY_PERCENTAGE_REMAINING, DEVICE_NOTIFY_WINDOW_HANDLE); hACDCSource = RegisterPowerSettingNotification(m_hWnd, &GUID_ACDC_POWER_SOURCE, DEVICE_NOTIFY_WINDOW_HANDLE);

//Custom handler for processing WM_POWERBROADCAST messages LRESULT CPowerMonDlg::OnWMPowerBroadcast(WPARAM wParam, LPARAM lParam) { … switch(LOWORD(wParam)) { case PBT_POWERSETTINGCHANGE: // // This is the type of message sent by the power manager when a // power event such as a power plan personality or a system power source // change event occurs. We need to take the // POWERBROADCAST_SETTING struct pointed to by the lParam and // analyze it to determine what setting changed. // PowerMessageSetting = (PPOWERBROADCAST_SETTING)lParam; if (IsEqualGUID(PowerMessageSetting->PowerSetting, GUID_POWERSCHEME_PERSONALITY) && PowerMessageSetting->DataLength == sizeof(GUID)) { // // This is a powerscheme personality change. // Determine power scheme, then take appropriate actions // PowerMessageGUID = *(GUID*)PowerMessageSetting->Data; if (IsEqualGUID(PowerMessageGUID, GUID_TYPICAL_POWER_SAVINGS)){ // Balanced

SQL Server 2008 R2 Avoided use of 1ms timer resolution Adobe Flash 10.1 Release Candidate Power Availability Requests Indirect (close audio channel on multi-media pause) Direct (prevent display dimming when playing video in visible window) Contextual timer resolution changes Default when loaded doing nothing or paused 1ms only when rendering video Frame-rate throttling Drop video to 2fps when rendering video in hidden window

Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31 st You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year