SQLOS Resources

Hello, I recently joined the SQLOS team as a program manager. As it has been a year or so since the SQLOS team blog was active, now seems like a good time to step back and look at how the SQLOS component and sub-components fit into SQL Server architecture in SQL Server, and also to review the SQLOS reference resources currently available on the web. In later articles I plan to drill down on some of these areas, particularly where there is newer functionality or areas that are covered in limited detail elsewhere.

SQLOS Architecture

SQLOS is the SQL Server application layer where all operating system resources are managed. It takes care of memory and buffer management, scheduling, resource governance, exception handling, extended events and IO. It makes calls to the operating system on behald of other SQL layers, and in cases such as scheduling functions as an operating system to efficiently schedule SQL engine resources. The SQLOS layer provides an API for other layers to call when they need require operating resources. The API allows programmers in the other layers to write code without needing to optimize for specifics of the underlying machine arhitecture.

Perhaps the best resource on the web to describe the functionality and purpose of the SQLOS component is Slava Oks's 2005 article: Platform Layer for SQL Server.

This overview diagram of the SQL architecture which shows the SQLOS components was created by Slava and is valid for SQL Server 2005 and 2008:

 In SQL Server 2008 we could add two more SQLOS components to this diagram: Extended Events and the Resource Governor.

Blogging Resources

Team blogs
There were two SQLOS team blogs, this one on MSDN and one on Technet: https://blogs.technet.com/b/sqlos/ 
- the technet blog includes a detailed 2 part article on the Resource Governor, a guide to using Session Wait Statistics for troubleshooting, and how to configure Soft-NUMA on machines with >32 processors.

It makes more sense to maintain a single team SQLOS blog moving forward, so I flipped a coin.. and henceforth we'll try and keep updates to this MSDN one.

Extended Events team blog - The team that wrote the new event infrastructure in SQL Server 2008 known as Extended Events - has their own blog:  Using SQL Server Extended Events. This has some useful how-to articles on using XEvents, and also under-the-hood information on architecture and implementation.

Slava Oks's Blog
Between 2005 and 2007 Slava Oks wrote a detailed series of SQLOS technical articles on his blog: Slava Oks's Weblog. These articles focus mostly on the Yukon release (SQL Server 2005) where the SQLOS architecture was significantly revised, and they remain a very useful resource for SQLOS internals and troubleshooting.


In addition to the online resources mentioned above, a great book that delves into scheduling, memory management and other SQLOS topics is:
Microsoft® SQL Server® 2008 Internals.