基于SQL Server OS的任務(wù)調(diào)度機(jī)制詳解建站知識(shí)
導(dǎo)讀:1建站知識(shí)本篇文章小編為大家介紹,基于SQL Server OS的任務(wù)調(diào)度機(jī)制詳解。需要的朋友參考下網(wǎng)站建設(shè)網(wǎng)站建設(shè)哪家好。
簡介
SQL Server OS是在Windows之上,用于服務(wù)SQL Server的一個(gè)用戶級(jí)別的操作系統(tǒng)層次。它將操作系統(tǒng)部分的功能從整個(gè)SQL Server引擎中抽象出來,單獨(dú)形成一層,以便為存儲(chǔ)引擎提供服務(wù)。SQL Server OS主要提供了任務(wù)調(diào)度、內(nèi)存分配、死鎖檢測(cè)、資源檢測(cè)、鎖管理、Buffer Pool管理等多種功能。本篇文章主要是談一談SQL OS中所提供的任務(wù)調(diào)度機(jī)制。
搶占式(Preemptive)調(diào)度與非搶占式(non-Preemptive)調(diào)度數(shù)據(jù)庫層面的任務(wù)調(diào)度的起源是ACM上的一篇名為“Operating System Support for Database Management”。但是對(duì)于Windows來說建設(shè)網(wǎng)站,在操作系統(tǒng)層面專門加入支持?jǐn)?shù)據(jù)庫的任務(wù)調(diào)度,還不如在SQL Server中專門抽象出來一層進(jìn)行調(diào)度,既然可以抽象出來一層進(jìn)行數(shù)據(jù)庫層面的任務(wù)調(diào)度,那么何不在這個(gè)抽象層進(jìn)行內(nèi)存和IO等的管理呢?這個(gè)想法,就是SQL Server OS的起源。
在Windows NT4之后,Windows任務(wù)調(diào)度是搶占式的,也就是說Windows任務(wù)是根據(jù)任務(wù)的優(yōu)先級(jí)和時(shí)間片來決定。如果一個(gè)任務(wù)的時(shí)間片用完,或是有更高優(yōu)先級(jí)的任務(wù)正在等待,那么操作系統(tǒng)可以強(qiáng)制剝奪正在運(yùn)行的線程(線程是任務(wù)調(diào)度的基本單位)所占用的CPU,將CPU資源讓給其它線程。
但是對(duì)于SQL Server來說,這種非合作式的、基于時(shí)間片的任務(wù)調(diào)度機(jī)制就不那么合適了。如果SQL Server使用Windows內(nèi)的任務(wù)調(diào)度機(jī)制來進(jìn)行任務(wù)調(diào)度的話,Windows不會(huì)根據(jù)SQL Server的調(diào)度機(jī)制進(jìn)行優(yōu)化,只是根據(jù)時(shí)間片和優(yōu)先級(jí)來中斷線程,這會(huì)導(dǎo)致如下兩個(gè)缺陷:
Windows不會(huì)知道SQL Server中任務(wù)(也就是SQL OS中的Task,會(huì)在文章后面講到)的最佳中斷點(diǎn),這勢(shì)必會(huì)造成更多的Context Switch(Context Switch代價(jià)非常非常高昂,需要線程字用戶態(tài)和核心態(tài)之間轉(zhuǎn)換),因?yàn)閃indows調(diào)度不是線程本身決定是否該出讓CPU,而是由Windows決定。Windows并不會(huì)知道當(dāng)前數(shù)據(jù)庫中對(duì)應(yīng)的線程是否正在做關(guān)鍵任務(wù),只會(huì)不分青紅皂白的奪取線程的CPU。 連入SQL Server的連接不可能一直在執(zhí)行,每一個(gè)Batch之間會(huì)有大量空閑時(shí)間。如果每個(gè)連接都需要單獨(dú)占用一個(gè)線程,那么SQL Server維護(hù)這些線程就需要消耗額外的資源,這是很不明智的。而對(duì)于SQL Server OS來說,線程調(diào)度采用的合作模式而不是搶占模式。這是因?yàn)檫@些數(shù)據(jù)庫內(nèi)的任務(wù)都在SQL Server這個(gè)SandBox之內(nèi),SQL Server充分相信其內(nèi)線程,所以除非線程主動(dòng)放棄CPU,SQL Server OS不會(huì)強(qiáng)制剝奪線程的CPU。這樣一來,雖然Worker之間的切換依然是通過Windows網(wǎng)站seo優(yōu)化的Context Switch進(jìn)行,但這種合作模式會(huì)大大減少所需Context Switch的次數(shù)。
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章基于SQL Server OS的任務(wù)調(diào)度機(jī)制詳解建站知識(shí)主要講述詳解,機(jī)制,SQL網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_6074.html
為你推薦與基于SQL Server OS的任務(wù)調(diào)度機(jī)制詳解建站知識(shí)相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時(shí)期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12