大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 詳解Linux內(nèi)核的tick機(jī)制

詳解Linux內(nèi)核的tick機(jī)制

更新時(shí)間:2020-12-17 17:55:36 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4003次

在當(dāng)前已經(jīng)是多核心SMP時(shí)代,作為多用戶,多任務(wù)的Linux操作系統(tǒng)仍然通過分時(shí)復(fù)用的方式,即給一個(gè)個(gè)任務(wù)分配不同的時(shí)間片從而實(shí)現(xiàn)用戶感知上的多任務(wù)。而各種中斷則擁有最高的響應(yīng)權(quán)限,可以直接導(dǎo)致線程的切換。這時(shí)候就需要用到Linux內(nèi)核的tick機(jī)制來調(diào)節(jié)這一現(xiàn)象。

 

我們要知道低時(shí)延和大吞吐量有的時(shí)候是沖突的。解決低時(shí)延,系統(tǒng)需要多個(gè)不斷切換的線程接收用戶端的數(shù)據(jù)——想象一下加特林機(jī)槍的射速是通過多槍管輪流發(fā)射達(dá)到低時(shí)延的目的;而大吞吐量往往需要一個(gè)不受干擾的持續(xù)運(yùn)行狀態(tài)——就如一條生產(chǎn)線,每一次更換產(chǎn)品都會(huì)帶來一系列的時(shí)間損失。

 

傳統(tǒng)上非實(shí)時(shí)搶占內(nèi)核Linux采用了一個(gè)相對(duì)固定的時(shí)間周期為不同的進(jìn)程、線程切換CPU時(shí)間。在運(yùn)行的過程中,如果kernel需要獲得控制權(quán)——主要是完成一些CPU重新調(diào)度以及定時(shí)器觸發(fā)之類的任務(wù),則需要通過timer tick方式以一個(gè)固定的周期觸發(fā)。這個(gè)過程其實(shí)對(duì)于該CPU上正在運(yùn)行的任務(wù)來說是非常不友好的。考慮到在大多數(shù)的機(jī)器上任務(wù)的數(shù)量遠(yuǎn)遠(yuǎn)多于CPU核心的數(shù)量,一次強(qiáng)行的中斷將直接導(dǎo)致出現(xiàn)流水線清空的問題。可見這個(gè)時(shí)間的設(shè)定對(duì)整個(gè)系統(tǒng)的時(shí)延/吞吐量非常關(guān)鍵。在不斷的均衡 latency和throughput的幾次修改之后,社區(qū)總算決定修改這一部分的設(shè)定。

 

然后就有了tickless idle(dyntick)模式,Ubuntu desktop版本默認(rèn)就是選擇了這個(gè)模式。個(gè)人覺得這個(gè)模式完全是為了筆記本電腦這類的能耗敏感設(shè)備設(shè)計(jì)的。CPU在啟用了能耗管理功能之后會(huì)對(duì)空閑的CPU降頻節(jié)能,而這個(gè)過程并不一定能在1ms內(nèi)結(jié)束。如果這個(gè)空閑的CPU在此時(shí)接受了每1ms就會(huì)發(fā)送的time ticket之后,立馬又被喚醒,往復(fù)這個(gè)過程之后,系統(tǒng)無法進(jìn)入節(jié)能模式。一句話解釋tickless idle模式:不向沒有任務(wù)的CPU發(fā)送定時(shí)器中斷。

 

另外一個(gè)就是tickless模式,這個(gè)才是重點(diǎn),Centos 操作系統(tǒng)默認(rèn)就是啟用了這個(gè)模式。這是一個(gè)完全針對(duì)吞吐量優(yōu)化的模式。同樣一句話的解釋:在多CPU系統(tǒng)上,如果當(dāng)前的CPU沒有任務(wù)或者只有一個(gè)任務(wù)的前提下,系統(tǒng)將不向該CPU發(fā)送timer tick。

 

在當(dāng)前的Linux內(nèi)核配置中g(shù)eneral setup -> timer subsystem配置中可以實(shí)現(xiàn)對(duì)上述3個(gè)模式進(jìn)行切換,編譯安裝內(nèi)核之后生效。從timer ticker的發(fā)送策略上講,如果要完全體現(xiàn)tickless的優(yōu)勢,CPU必須滿足如下嚴(yán)苛條件:

 

1.該CPU上只有一個(gè)任務(wù)。

2.這個(gè)唯一的任務(wù)不需要系統(tǒng)調(diào)用,即始終保持在用戶態(tài)。

3.長時(shí)間不間斷地任務(wù),并保持內(nèi)核不會(huì)再這個(gè)過程中重新調(diào)度此CPU。

 

滿足這個(gè)配置的簡單方式就不得不提到一個(gè)內(nèi)核啟動(dòng)入?yún)ⅲ篿solcpus=<CPUs>。這個(gè)入?yún)⒌男Ч歉綦x部分CPU不參與內(nèi)核調(diào)度。用戶必須通過taskset/cgroup的方式實(shí)現(xiàn)用戶調(diào)度。而且如果涉及多任務(wù),同樣需要用戶調(diào)度。這也是Linux內(nèi)核的tick機(jī)制的關(guān)鍵所在。

 

Linux內(nèi)核的tick機(jī)制可謂神秘莫測,然而令你意想不到的是,Linux的奧妙遠(yuǎn)不止如此,在本站的Linux教程中還有Linux系統(tǒng)中各種各樣的機(jī)制的詳細(xì)介紹和原理分析,這些機(jī)制共同構(gòu)建了Linux的內(nèi)核體系結(jié)構(gòu),為Linux的各種功能的實(shí)現(xiàn)發(fā)揮著獨(dú)特的作用。


提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产免费区 | 大香线一本| 日韩欧美精品综合一区二区三区 | 四虎午夜剧场 | 蕾丝视频在线看片国产 | 四虎久久 | 中国老太婆bbbbbxxxxx | 99久久精品国产综合一区 | 阿v天堂2017| 欧美一级成人 | 欧美无吗| 97影院理伦在线观看 | 精品伊人网 | 欧美日韩加勒比一区二区三区 | 日韩成人国产精品视频 | 欧美日韩精品国产一区二区 | 伊人久久影院 | 天天操天天摸天天爽 | 亚洲天天干 | 国产线路一| 四虎影院观看 | 亚洲精品色综合色在线观看 | 中文字幕精品一区二区三区在线 | 四虎影视884aa·com | 中文字幕曰韩一区二区不卡 | 国产呦系列 欧美呦 日韩呦 | 四虎永久在线精品免费影视 | 午夜在线观看免费影院 | 四虎影视免费永久在线观看黄 | 国内精品视频在线观看 | 国产精品欧美亚洲韩国日本 | 91视频香蕉 | 日韩精品亚洲一级在线观看 | 狠狠色噜噜狠狠狠米奇9999 | 国内夫妇精品对白在线播放 | 六色视频| 亚洲一区二区免费视频 | 99精品国产高清一区二区麻豆 | 好好的曰com久久 | 欧美在线免费观看视频 | 114毛片免费观看网站 |