Waltzing Through the Parallel Extensions June CTP: Synchronization Primitives

Wednesday, June 11, 2008

Just a few days ago, the Parallel Extensions team has released a new CTP of the Parallel Extensions for .NET 3.5, a.k.a. PFX.  This new CTP is not just a bunch of bug fixes - it's packed with new functionality for us to explore.  (I've written some introduction bits on the December '07 CTP in the past, so you might want to read them if you haven't played with the PFX yet.) In this post series, we will look at most of the interesting new functionality. Synchronization Primitives This release contains a significant number of synchronization-related primitives, providing better...

Next Generation Production Debugging: Demo 6

Thursday, April 10, 2008

This is the last in a series of posts summarizing my TechEd 2008 presentation titled "Next Generation Production Debugging".  Previous posts in the series: Introduction and first demo (or how to survive without a debugger) Taking dump files and opening them up; analyzing a memory leak Dissecting deadlocks (native and managed) Analyzing an invalid handle situation After spending some quality time with the debugger, analyzing an invalid handle situation, I approached the final demo.  In this particular case, the application is requested to perform some heavy processing operation on a set of images (I called...

Next Generation Production Debugging: Demo 4

Tuesday, April 8, 2008

After utilizing WinDbg and SOS to diagnose a memory leak in our application, I shifted focus to a whole different category of problems - deadlocks. By issuing the "Move" command on a particular picture in the client application, the user ends up with a non-responsive UI.  We can't tell for sure whether the reason for the hang is in the UI or in the WCF service being called without forcing our way in with a debugger. However, there's a basic way of diagnosing deadlocks on Windows Vista and Windows Server 2008, which is built in into the operating system...

Next Generation Production Debugging: Demo 2 and Demo 3

After seeing what can be done without a debugger, it was time to dive in and start experimenting with actual production debugging techniques.  I briefly explained what debugging symbols are (and how you configure your debugger to download symbols for Microsoft product automatically - just set the _NT_SYMBOL_PATH environment variable to srv*C:\Symbols*http://msdl.microsoft.com/download/symbols), and continued to demonstrate how a dump file can be generated.  The one thing many people don't know yet is that on any Windows version you can generate a dump with the tools out of the box, without resorting to any external debugging package. On NT 5.2...

Next Generation Production Debugging: Slides, Code and Demo Transcripts (Demo 1)

Monday, April 7, 2008

To each and every one of you who attended my TechEd session - thanks!  There are so many interesting talks and I appreciate the fact you have chosen mine. As I promised, this post is a summary of slides, demo code and the transcripts of each demo I've shown throughout the session.  (As soon as the session recording will be available, I will update this post with a link to it.) I divided the demo transcripts into a series of posts because they are fairly long.  You can find everything I've written regarding the TechEd at the TechEd08 blog...

XPerf – Windows Performance Toolkit

Saturday, March 15, 2008

Event Tracing for Windows has been with us since Windows 2000.  It is an infrastructure for raising events from various system components, and has only been used by a small number of kernel-mode entities.  In Windows XP, MOF files (familiar from WMI provider metadata) were used to describe events.  Finally, in Windows Vista and Windows Server 2008 events were described by XML manifests, an investment was made in popularizing ETW, and hundreds of new event providers were added. What kind of information is generated by all these providers?  Well, first of all, there's the Windows Event Log which consumes...

Windows Server 2008 Open House Presentation and Demos

Friday, March 14, 2008

Alon Fliess and I have presented at three Open House sessions at Microsoft on the subject of the upcoming Windows Server 2008.  My last session was February 21, several days after the RTM but still a few days before the Heroes Happen {Here} launch event. Several participants asked for the slides and demos (in past sessions as well), so I decided to upload everything to my SkyDrive for everyone's convenience.  The subjects covered in the latest presentation follow: Introduction to Windows Server 2008 - Reliability, Manageability, Optimizations Application Restart and Recovery - Utilizing the Restart Manager Kernel Transaction...
no comments

Synchronization Objects and Vista’s Wait Chain Traversal

Wednesday, February 6, 2008

Debugging issues which have to do with synchronization objects, such as deadlocks and other types of hangs, has traditionally been a very difficult task.  Normally left to consultants, it was a great source of income too. How does Windows actually keep track of synchronization objects?  What does Vista have to do with this (as the title of the post suggests)?  If this floats your boat, read on. The Win32 synchronization objects, as well as their managed counterparts (such as the .NET Monitor, EventWaitHandle and others) are merely a convenient API wrapper around synchronization primitives provided by the...
one comment

Who Accessed My File?

Monday, January 21, 2008

A few years ago, I recall needing to know (programmatically) which user has accessed a particular file.  As part of a legacy system, this couldn't make the code base any worse.  The idea was that there's a configuration file sitting on a network share; access to it is granted to only a single user at any given time.  However, other users requesting access want to know why access is being denied - i.e., which user is holding them from accessing the file.  This information would be displayed to them, and then they were able to go and (physically) kick...
tags: , ,
one comment

User Account Control Helpers Library

Saturday, January 19, 2008

I've just released a preliminary version of the User Account Control Helpers Library, a bunch of code meant to assist developers targeting Windows Vista with the inevitable adaptation to UAC. This preliminary release addresses two major hurdles in porting applications to Vista: Embedding an application manifest in each and every executable to specify a requested execution level; Interacting with the UAC mechanism for application compatibility purposes. UAC in a Nutshell The primary goal of the UAC mechanism is improving security in the Windows operating system.  This worthy objective is achieved on two axes: Making more actions in...
tags: ,
no comments