描述
SQLOS是一个单独的应用层,它位于SQLServer数据库引擎的最低层,SQLServer和SQL Reporting Services都是在顶层运行。SQLOS介于windows操作系统和SQL server之间。
为什么开发SQLOS
SQLServer的早期版本在存储引擎和实际操作系统之间使用瘦接口层,通过该接口层,SQLServer可以调用操作系统来执行内存分配,计划资源,线程和工作管理,以及同步对象。不过,SQLServer中需要访问这些接口的服务可以位于引擎的任何部分。SQLServer需要管理内存,计划程序,同步对象等,因此任务变得越来越复杂。于是Microsoft公司设计了单独的应用层来管理所有特定于SQLServer的操作系统资源,而不是让引擎的每个部分支持增加的功能。
架构图
上图术语解释
Memory Manager内存管理
Scheduling计划
synchronization同步
hosting API主机API接口
deadlock monitor 死锁监控
resource monitor 资源监控
lazy writer延迟写入
scheduler monitor 监控调度
storage engine 存储引擎
buffer pool缓冲区
query compilation and execution engines查询编译和执行引擎
protocols 协议
external components外部组件
学习资源
SQLSERVER独特的任务调度算法"SQLOS"
http://www.cnblogs.com/lyhabc/archive/2012/10/17/2728724.html
SQLOS - unleashed
http://blogs.msdn.com/b/slavao/archive/2005/02/05/367816.aspx
Set of new features in SQL Server 2005 enabled by SQLOS 
http://blogs.msdn.com/b/slavao/archive/2006/04/12/575185.aspx
SQL Server 2008 SQLOS
http://blogs.technet.com/b/josebda/archive/2009/03/30/sql-server-2008-sqlos.aspx