Windows系統技術的研究

2021-04-17 21:26:46 字數 1380 閱讀 4905

windows系統技術的研究

潘愛民,2008.5.23

最近兩年來,一直在鑽研windows系統技術,之所以做這件事情,源於兩年前的乙個想法,我想看看windows系統到底是怎麼響應使用者請求的,特別是當系統效能表現很差的時候,更想知道應用程式和作業系統在忙些什麼。

乙個看似簡單的想法,在實現過程中走了不少彎路,前前後後有許多名來自國內最好學校的大學生和研究生跟我一起探索。真的要感謝他們,要不然我未必能堅持下來。

從某種程度上,我感覺差不多已經實現了當初的想法,雖然仍有不少細節尚待完成,但那已經不很重要了。我們有了一套比較系統化的方法,可以揭開許多謎團。每當發現一些意想不到的問題根源的時候,那種感覺真的很好。下面是兩個很有意思的例子,寫出來跟大家分享。

(1) 在我的一台電腦上,每當進入乙個目錄的時候,視窗總要停滯好一會兒,有時候,右鍵選單也有這問題。這給我的感覺很不好,我下決心要找到原因。可重現的問題總是不難查詢根源,尤其對於有好奇心和耐心的人而言。後來我們發現,這是因為有乙個檔案型別關聯到乙個遠端路徑上,而遠端路徑所指的那台機器已經不存在了。所以,每次當explorer處理這種檔案型別時(比如顯示圖示、增加有關的選單項等),發出的遠端請求都要等到超時,如果遠端請求發生在使用者介面執行緒中,那麼介面停滯也就不可避免了。

(2) 有一天深夜在家,我的系統在搜尋無線網路的時候發生極不正常的現象,而且不可重現,幸好,我當時開啟了我們開發的乙個工具,把那段紀錄資訊拿下來分析,半自動半手動地很快找到了原因。在windows底層的乙個驅動程式中,有乙個5000次的迴圈,在迴圈中,它檢查乙個標記值然後睡眠1毫秒。但是我可以清楚地觀察到,迴圈中實際的睡眠時間總是15或16毫秒。所以,程式**本身的意圖是執行5000*1ms=5秒,但實際執行時間超過了5000*15ms=75秒。至於為什麼sleep(1ms)變成了sleep(15ms),我只做簡單解釋。在現代作業系統中,執行緒排程精度差不多都在10ms以上,多核版本的windows xp是15ms。

鑽研的過程非常有樂趣,我們搞清楚了windows底下的執行緒們是如何協作做事情的。抓住這些要點,我相信,大多數異常行為我們都有可能解釋清楚,但如何自動完成做並非易事。

其實我寫的程式非常少,但是我們對於程式的理解在不斷加深,最初我特別關注呼叫棧(call stack),到後來更加關注系統全域性的協作,一步步的經驗積累,讓我們不斷地化解系統的複雜性。向系統的複雜性挑戰,非常有意思!

除了沿著已有的作業系統實現來考慮問題,我們也在研究和思考現代作業系統的發展和變革。畢竟硬體技術的飛速發展,使得個人電腦的系統環境發生了質的變化。多核處理器和64位系統的普及,將會帶來挑戰和機遇。

順便提一下,根據這幾年的工作經歷,我發現精通系統技術的人才太少,無論是學生還是工業界的從業人員,都鮮有碰到者,或許是因為我接觸人太少的緣故。我很希望能做些工作來帶動一些人,但似乎個人的努力總是很渺小。如果在校學生對系統技術很有興趣,也有不錯的基礎,我很願意跟你們交流。

其他技術 windows重灌系統

裝機之前注意事項 在可以開機的情況下,我們可以使用window自帶的工具來重灌我們的系統。若無法直接開啟可以解壓 3.開啟安裝檔案 4.根據引導安裝系統 不可開機的情況下只能借助掛載裝置來重灌電腦,比如 u盤光碟等 在這裡我們使用u盤作為安裝介質 首先我們需要乙個可以正常開機的電腦 接受法律條例 將...

移動終端管理系統的關鍵技術研究 轉貼

移動終端管理系統的關鍵技術研究 2007年9月10日10 50 中國聯通 1 前言 隨著移動資料業務日趨豐富和複雜,業務對終端的依賴性越來越高。移動終端作為使用者使用移動業務的載體,已成為移動運營服務體系中不可或缺的重要組成部分。未來終端製造商推出新產品的週期將越來越短,運營商推出新業務的產品週期也...

引擎技術研究之Shader技術

shader 技術屬於 gpu的渲染技術,其相應語言是高階著色器語言 high level shader language 簡稱hlsl hlsl 主要作用為將一些複雜的影象處理快速而又有效率地在顯示卡上完成。在 directx 中有兩種 shader 頂點著色器 vertex shader vs ...