Top Banner
61

Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Mar 31, 2015

Download

Documents

Eva Greener
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.
Page 2: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Windows 7 and Windows Server 2008 R2 Kernel Changes

Mark RussinovichTechnical FellowCore Operating System DivisionMicrosoft CorporationWCL402

Page 3: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

About MeTechnical Fellow, MicrosoftCo-founder and Chief Software Architect of Winternals Software Co-author of Windows Internals 4th and 5th Edition and Inside Windows 2000 3rd Edition with David SolomonAuthor of TechNet Sysinternals

Home of blog and forumsContributing Editor TechNet Magazine, Windows IT Pro MagazinePh.D. in Computer Engineering

Page 4: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Scope of the Talk

Talk covers key enhancements to the Windows 7 and Windows Server 2008 R2 kernel and related core components

Performance, scalability, power efficiency, security…Virtualization covered in my talk earlier today

Many other significant improvements not coveredNew taskbar (Superbar), DirectX enhancements including D2D, DWrite and GPGPU, Home Group, Branch Cache, DirectAccess, Device Stage, PowerShell v2 and Troubleshooting Packs

Page 5: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

The Kernel

Windows 7 and Server 2008 R2 based on same kernelAs promised, Server 2008 R2 is 64-bit only

Wow64 is an optional component on Server Core6.1 version number for application compatibility

Does not reflect number of major Windows NT-based releasesDoes not reflect amount of change in the systemAnticipated that many applications would check for Vista major version (6) at the time of release

Page 6: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 7: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

MinWin

MinWin is first step at creating architectural partitionsCan be built, booted and tested separately from the rest of the systemHigher layers can evolve independently

MinWin was defined as set of components required to boot and access network

“Cutler’s NT”: Kernel, file system driver, TCP/IP stack, device drivers, servicesNo servicing, WMI, graphics, audio or shell

MinWin footprint: 150 binaries, 25MB on disk, 40MB in-memory

Page 8: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

MinWin Layering

Shell,Graphics,Multimedia,Layered Services,Applets, Etc.

Kernel, HAL,TCP/IP,File Systems,Drivers,Core System Services

MinWin

Page 9: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

DLL Refactoring

Required some DLLs to be “refactored” to remove dependencies on higher layersApplications outside of MinWin use legacy DLLs

DLLs forward calls to MinWin APIs into MinWin DLLsExample:

Kernel32.dll -> Kernelbase.dllAdvapi32.dll -> Kernelbase.dll

Page 10: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

API Sets

Problem: DLLs contain multiple API setsTies API contracts with DLL implementation

API Sets are virtual DLLsInternal API architecture is separated from implementationVirtual DLLs can be combined at build time for efficiency

MinWin APIs first ones factored into virtual DLLs:E.g. MICROSOFT-WINDOWS-SYSTEM-ERRORHANDLING-L1-1-0.DLLNumbers are layer in the system, major and minor version of API

Page 11: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Mapping Virtual DLLs to Logical DLLsThe mapping of virtual to logical is stored in a schema that’s embedded in Apisetschema.dll

Kernel reads schema during boot and maps it into every process for quick lookupLoader refers to schema for DLL loads that are pathless to find mapping

Virtual DLLs images present on system for application compatibility with tools like Dependency Walker

Not used by loader

Virtual DLL 1

Virtual DLL 1\2

ApiSetSchema.dll Logical DLL

Loader

Page 12: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Console Window Support

As part of re-architecture, Windows message loop for cmd.exe moved into Conhost.exe

Was in Csrss.exeAlso closes User Interface Privilege Isolation hole

Conhost processes keyboard inputIs child of Csrss.exeCmd.exe processes commands

Page 13: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 14: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Client Footprint Reduction

Over 400 footprint reductions across all components

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 15: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Server Footprint Reduction

W2K3 WS08 SP1 WS08 R20

50

100

150

200

250

Idle Reference Set

Enterprise FullEnterprise Core

MB

Page 16: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Memory Optimizations

DWM re-architecture reduces memory footprint per window by 50%Registry read into paged pool

Was memory mapped beforeImproves performance because views into registry file don’t need to be mapped and unmapped

Page 17: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Working Set ImprovementsWorking set is amount of RAM memory manager assigns to process or kernel memory typeMemory manager tuned to reduce impact of run-away processes

Processes that grow quickly reuse their own pages more aggressivelyUses 8 aging levels (3-bits) instead of 4 (2-bits)

System cache, paged pool, and pageable system code now each have own working set

Now, each tuned according to specific usage, which improves memory usageReduces impact of file copies on system code

System Cache, Paged Pool, System Code P1 P2 …

System Cache P1 P2 …Paged Pool System Code

Vista, Server 2008

Windows 7, Server 2008 R2

Page 18: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

PerfTrack

PerfTrack: 300 user-visible scenarios identifiedExamples: open start menu, open control panel, booting

Performance goals set for each featureInstrumented with begin/end events Data sampled from Customer Experience Program and fed back to feature teams

Click Start Menu

Great OK Bad

Start Menu Open

Page 20: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 21: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Keys to Power EfficiencyKeep idle and stay idle

Minimize running services and tasksAvoid background processingLet LPs and sockets stay idle so that they enter deep sleep (C states)

0 10 20 30 40 50 60 70 80 90 100 -

5.00 10.00 15.00 20.00 25.00 30.00 35.00 40.00

System Power vs. CPU Uti-lization(Idle)

CPU Utilization (%)

To

tal

Syste

m P

ow

er

(Watt

s)

+10% CPU = +1.25W +1.25W = -8.3% battery

Page 22: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Core Parking

Before, CPU workload distributed fairly evenly across LPs

Even if utilization lowCore Parking tries to keep load on fewest LPs possible

Allows others to sleepIs aware of socket topology

Newer processors put sockets into deep sleep if cores are idle

Core Parking active on server and SMT (hyperthreaded systems only)

Best returns on medium utilization workloadsClients tend to run at extremes (0 or 100)

Page 23: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Core Parking DesignPower management timer fires every 50ms

Performs P-state managementCalculates average utilization and implements core parking policy

Determines which LPs to “park” and which to “unpark”:Unpark cores if average for unparked is > increase thresholdPark cores if average for unparked < decrease threshold Parked cores above parking threshold also unparkedAt least one CPU in each NUMA node left unparked

Power manager notifies scheduler of updated parking decisionScheduler avoids parked cores

Overridden by hard affinity and thread ideal processor if no others availableInterrupts and DPCs not affected

Page 24: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Core Parking Operation

Socket 0

Core 0

Core 1

Core 0

Core 1

Socket 1

Core 1

Core 0

Core 0

Core 1

Workload

Page 25: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Unified Background Process Manager (UBPM)

UBPM infrastructure unifies mechanism for event-based process start and stop

Implemented in Service Control Manager to avoid creating another processAll events are based on ETW events

UBPM is a central manager of ETW consumer registration and notification

UBPM clients:Task scheduler: new Taskhost processesService Control Manager: trigger-started services

Page 26: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Trigger-Started ServicesBefore, services typically started at system boot and ran until shutdownServices can now specify specific start and stop conditions (triggers):

Device class arrival and removalBthserv: start on bluetooth device class arrival

IP address arrival and removalLmhosts: start on first and stop on last IP address availability

Firewall port eventBrowser: open of NS and DGM ports

Domain join and unjoinW32Time: start on join, stop on unjoin

Custom ETW eventAppid: start when SRP enabled

Triggers are stored in service registry keyUse “sc qtriggerinfo” to view service triggers

Page 27: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Timer CoalescingStaying idle requires minimizing timer interruptsBefore, periodic timers had independent cycles even when period was the sameNew timer APIs permit timer coalescing

Application or driver specifies tolerable delayTimer system shifts timer firing to align periods on a coalescing interval:

50ms, 100ms, 250ms, 1s

Timer tick15.6 ms

Periodic Timer Events

Windows 7

Vista

Page 28: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Intelligent Timer Tick Distribution

Before, primary timer interrupt on LP 0 propagated timer to all other LPs

LP0 timer updates system tick count and clockTimer interrupt for all LPs updates process and thread runtimes, checks for thread quantum endEven if LP was idle, it had to service interrupt

Now, timer system propagates timer only to processors that aren’t idle

Also called tick skippingNon-timer interrupts still wake LP

Page 29: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 30: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Fault Tolerant Heap (FTH)

Heap corruption is a major cause of unreliability15% of all user-mode crashes30% of user-mode crashes during shutdownVery difficult to analyze and fix

FTH reduces impact of heap misuseMonitors for heap corruption crashesApplies mitigations dynamicallyRemoves mitigation if unsuccessfulReturns debug information for use by ISVs

Page 31: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

FTHAfter a process crash, FTH starts watching for additional crashes

If process crashes two four times in the next hour in Ntdll.dll, FTH applies appcompat shimOnce shim applies, shim assigned weight and FTH monitors for successful mitigations

If process crashes or mitigations not applied, shim weight reducedIf process survives and mitigation applied, shim weight increasedIf shim weight goes below zero, shim removed

FTH shim operation:Validates all heap operations using native heapKeeps 4MB of freed buffers to mitigate double-freesPads allocations < 4096-8 bytes by 8 bytes

Page 32: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Process Reflection

Problem: want to capture dumps of processes that appear hung or that have leaked memory

Don’t want to terminate processDon’t want to suspend process for lengthy dump operationDon’t want to scan device memory

Process Reflection creates clone of process for dump and analysis

Modeled on native fork() supportMakes copy that’s safe to memory scanUsed by leak detection diagnosticUsed by cross-process hang detection diagnostic

Page 33: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 34: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

User Account Control Levels

Windows 7 introduces 2 new UAC levels User can tune notification versus convenience Applies to protected-administrator only

Page 35: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

User Account Control LevelsHigh: Vista equivalent

Prompts for: all elevationsPrompts on: secure desktop

Medium: defaultPrompts for: non-Windows elevations

Windows means:Signed by Windows certificateIn secure locationDoesn’t accept control command-line (e.g. cmd.exe)

Prompts on: secure desktopLow:

Prompts for: non-Windows elevationsPrompts on: standard desktop

Avoids black flash and user can interact with desktopPossible appcompat issues with 3rd-party accessibility applications

Off: UAC offNo Protected Mode IENo file system or registry virtualization

Page 36: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Virtual AccountsWant better isolation than existing service accounts

Don’t want to manage passwordsVirtual accounts are like service accounts:

Process runs with virtual SID as principalCan ACL objects to that SID

System-managed passwordShow up as computer account when accessing network

Services can specify a virtual accountAccount name must be “NT SERVICE\<service>”

Service control manager verifies that service name matches account name Service control manager creates a user profile for the account

Also used by IIS app pool and SQL Server

Page 37: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Managed Service AccountsServices sometimes require network identity e.g. SQL, IISBefore, domain account was only option

Required administrator to manage password and Service Principal Names (SPN)Management could cause outage while clients updated to use new password

Windows Server 2008 R2 Active Directory introduces Managed Service Accounts (MSA)

New AD classPassword and SPN automatically managed by AD like computer accountsConfigured via PowerShell scriptsLimitation: can be assigned to one system only

Page 38: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

BitLocker

Vista introduced BitLocker Drive EncryptionEncrypts fixed volumesMultiple ways to store key:

TPM, PIN, USB key, multi-factorUses a volume filter driver so that encryption is transparent to system

Windows now BitLocker readyAlways creates hidden system partition

Page 39: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

BitLocker-to-Go

Windows 7 adds support for removable mediaKey is protected by password or smartcardVirtual FAT volume with drive decrypting utility makes volume accessible down level

Page 40: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

BitLocker-to-Go Format

MetaData

Readme.txt

Wizard.exe

Visible but RO

Hidden files - Must be accessed using BitLockerToGo.exe

Invisible Visible, mapped as a volume

Autorun.inf

BitLocker protected volume

FAT32 Partition

BitLocker Data File(COV 0000.ER)

BitLocker Data File(COV 0000.BL)

VirtualBlock

View on Down-Level System

Page 41: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Agenda

Componentization and LayeringPerformancePower EfficiencyReliabilitySecurityMulti- and Many-Core Processing

Page 42: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Dynamic Fair Share Scheduling (DFSS)

Before, no quality of service for Remote Desktop (formerly called Terminal Server) users

One user could hog server’s CPUNow, Remote Desktop role automatically enables DFSS

Sessions are given weight 1-9 (default is 5)Internal API can set weight

Each session given CPU budget over 150ms interval: Cycles per Interval / Total Weights * Session WeightBudget charge happens at every scheduler eventWhen session exceeds quota, its threads go to idle-only queue

Scheduled only when no other session wants to runAt end of interval, all threads made ready to run

Page 43: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

User Mode Scheduling (UMS)

Avoiding lock contention gives the best scalingCooperative scheduling in user-mode avoids contention and context switchesLimitation of Fibers is that the kernel doesn’t know about them

Some system calls have state associated with underling threadIf Fibers make system calls, state can become corrupt

Page 44: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

UMS (Cont)

UMS solves thread state problem by separating user-mode thread and kernel-mode thread

Switching between user-threads doesn’t switch kernel threadWhen a user-mode thread goes into kernel mode, it switches to the corresponding kernel thread

Concurrent runtimes like ConcRT (Visual Studio) will use UMS

Page 45: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Thread Scheduling vs UMS

Core 2

Thread3

Non-running threads

Core 1

Thread4

Thread5

Thread1

Thread2

Thread6

Core 2Core 1

UserThread

2

KernelThread

2

UserThread

1

KernelThread

1

UserThread

3

KernelThread

3

UserThread

4

KernelThread

4

UserThread

5

KernelThread

5

UserThread

6

KernelThread

6

Thread SchedulingCooperative Scheduling

Page 46: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Windows and Logical Processors

Before, the maximum number of Logical Processors (LPs) was dictated by word size

LP state (e.g. idle, affinity) represented in word-sized bitmask32-bit Windows: 32 LPs64-bit Windows: 64 LPs

01631

32-bit Idle Processor Mask

Idle Busy

Page 47: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Windows and Logical Processors (Cont)

With many-core, systems with > 64LPs will become more common

8 socket, six core, 2x SMT (hyperthreaded): 96 LPs

Need to support > 64LP while preserving compatibility

Page 48: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

> 64 LP Support

Solution: LPs divided into GroupsGroup can have a maximum of 64 LPsMaximum of 4 Groups (for maximum of 256 LPs)

Group assignment:One group if 32-bit system or fewer than 65 LPsOtherwise fewest groups necessary to ensure that NUMA nodes don’t cross groups

Close NUMA nodes kept in the same group

Page 49: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Processor Groups

Example: 4 LPs/core, 4 cores/socket, 2 sockets/node, 4 nodes: 128 LPs

Group

NUMA NodeSocket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Socket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

NUMA NodeSocket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Socket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Group

NUMA NodeSocket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Socket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

NUMA NodeSocket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Socket

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

CoreLP

LP

LP

LP

Page 50: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

256 Processor System

Page 51: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Processes, Threads, and Groups

By default, processes are affinitized to have all threads run in a single group

Processes assigned ideal group and ideal node round-robinBy default, thread assigned ideal CPU from process’ ideal node round-robinLegacy affinity APIs apply at group level

Application can take advantage of > 64 LPs by assigning threads to a different group than default

Thread can be affinitized to only the CPUs within a single group

Page 52: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Processes, Threads and Groups

P1T1

P1T2

Group 0 Group 1

P2T1

P2T2

P3T2

P3T1

P4T2

P4T1

Page 53: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Removal of the Memory Manager PFN Lock

Windows tracks the state of pages in physical memoryIn use (in a working set)Not assigned to a working set (on one of several paging lists: free, zero, modified, standby…)

Before, all page state changes protected by global PFN (Physical Frame Number) lockNow, the PFN lock is gone

Pages are now locked individuallyImproves scalability for applications that manage large amounts of memory

Page 54: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Removal of the Dispatcher Lock

Locks serialize access to data structuresPrevents multiple threads from simultaneously modifying data Inhibits scaling because threads must wait for theirturn (contention)

Scheduler Dispatcher lock hottest on server workloadsLock protects all thread state changes (wait, unwait)

To improve scaling, lock was removedEach object protected by its own lockMany operations are lock-free

Page 55: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Scaling Without the Dispatcher Lock

1.7x scaling going from 64 to 128 LPs:

128 LP 256 LP0

500

1000

1500

2000

2500

FibersThreads

OLTP Workload Throughput

Tran

sacti

ons/

min

ute

Page 56: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Summary and More Information

Lots of exciting kernel changes in Windows 7 and Server 2008 R2!

There’s more that I didn’t have time to coverFaster, more scalable, more secure

Further reading:MSDN (SDK and WDK) describes new user and kernel mode APIsLook for my upcoming kernel changes articles in TechNet MagazineWindows Internals 6th Edition (2010)

Page 57: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

question & answer

Page 58: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

www.microsoft.com/teched Sessions On-Demand & Community

http://microsoft.com/technet Resources for IT Professionals

http://microsoft.com/msdn Resources for Developers

www.microsoft.com/learning Microsoft Certification & Training Resources

Resources

www.microsoft.com/learningMicrosoft Certification and Training Resources

Page 59: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Track Resources→Want to find out which Windows Client sessions are best suited to help you in your deployment lifecycle? →Want to talk face-to-face with folks from the Windows Product Team?

Meet us today at the

Springboard Series Lounge, or visit us at www.microsoft.com/springboard

Springboard SeriesThe Springboard Series empowers you to select the right resources, at the right technical

level, at the right point in your Windows® Client adoption and management process. Come see why Springboard Series is your destination for Windows 7.

Page 60: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

Complete an evaluation on CommNet and enter to win!

Page 61: Mark Russinovich Technical Fellow Core Operating System Division Microsoft Corporation WCL402.

© 2009 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.