国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

RobertLove--KernelTrap訪談之一

2019-11-04 20:51:33
字體:
來源:轉載
供稿:網友

  摘要
  本周,KernelTrap采訪了當前負責維護可搶占內核補丁的Robert Love。他使用linux已經7年了,為現在的內核作出了很多貢獻。他的話,是這一切的最佳描述...
  JA: 請談談您的個人情況...
  
  RL: 我現在是Gainesville佛羅里達大學計算機與數學專業的學生,家鄉
  
  在Ft. Lauderdale, FL(note: FL for Florida)。我還沒結婚,但
  
  有一個很不錯的女朋友。我編程的愛好在于操作系統和數學/科學計算。
  
  
  JA: 何時畢業,畢業后有什么計劃?
  
  RL: 2004年。但我還是想留在學校里繼續讀書以獲得更高的學位,非凡是
  
  經濟仍停滯在當前的狀況(remains as-is)。
  
  
  
  JA: 來自 Ft. Lauderdale, FL.的什么地方?我住在那里的Lauderhill。
  
  RL: 我出生于Pembroke Pines,在那里長大。
  
  
  JA: 您什么時候開始接觸Linux?
  
  RL:
  
  第一次在我的PC上運行Linux是在1994年年末,當時用的是1.0版的內核;
  
  這也是我第一次真實的Unix體驗。我的那臺PC是386SX(感謝媽媽),在
  
  轉而運行Linux之前,它之上運行的操作系統是Windows 95 beta。我在
  
  使用2.0版時進步更大,從2.2版開始則完全轉向了Linux,此后一直只使
  
  用Linux。
  
  我轉向Linux有一個顯而易見的原因: 我相信Linux是一個強大健全有著優
  
  秀應用軟件的系統。然而更重要的原因是它使我能對系統以及圍繞它的社區
  
  的有充分的接觸。
  
  
  JA: 你可不可以描述一下1.0版內核相比現在的2.4版的幾個要害區別?
  
  RL: 假如1.0和2.4有幾頁代碼是相同的,我將會非常驚奇。兩者沒有任何
  
  相同的地方。
  
  
  
  JA: 安裝和使用1.0版的內核是什么樣的情形,有哪些軟件可以使用?
  
  RL: 幸運的是,1994/1995年,Linux發展良好。那時SLS和Slackware
  
  都提供了全功能的發行版。我最初使用Slackware2.0。那時你必須以磁盤
  
  
  集(disk sets)的形式將Linux安裝文件下載到磁盤上,可能你現在仍這么
  
  做。我記得磁盤集A是核心,磁盤集N提供網絡支持,等等。那時Linux已經
  
  支持網絡了,X也可以使用(XFree86 2.0),也支持很多硬件。
  
  和今天相比,最大的問題是缺少文檔,安裝又非常復雜。我記得起初我曾因
  
  為沒辦法讓PPP用Linux;假如那時我可以使用PPP的話,我可能早就轉向
  
  Linux了。
  
  
  JA: 您為內核做出的貢獻有哪些?
  
  RL: 目前我主要的時間是花在可搶占內核補丁的維護上。這個補丁可以使低
  
  優先級的進程被剝奪,即使它當前處于核心態,結果是改善了系統的響應時間。
  
  這個補丁最初是MontaVista-一個偉大的公司-的杰作,所以我和他們以及這
  
  個社區(Linux社區)的其他成員密切合作。這是一個很有趣的項目。我們正把
  
  目標是將它加入到2.5版的內核中。
  
  
  我的工作是非常隨機的。修正bugs,優化,作一些旨在使系統簡潔的清理。我
  
  也寫過i815和AMD761 AGP GART的代碼,也維護著其他一些的零碎的補丁。
  
  
  JA: 為了使得內核可搶占,您的補丁對內核作了哪些必要的修改?
  
  RL: 我們的模型是當內核不被鎖定時,任何時刻都可被搶占。根據這個設計,
  
  當一個事件激活更高優先級的進程時,系統將會剝奪當前正在運行的進程,轉
  
  而運行這個更高優先級的進程。
  
  我們必須修改entry.S中的中斷代碼來避免某些情況并能在中斷處理過程返回
  
  
  時發生搶占。但是我們不能在臨界區內搶占,這和在SMP環境下的臨界區中不允
  
  許并發的道理相同,所以我們防止了持有自旋鎖(spinlock)時被搶占的情況。
  
  bottom half handler和scheduler同樣需要修改,以保證在它們運行時不
  
  發生搶占。
  
  
  JA: 時至今日,您認為您的補丁的穩定性如何?我的所有工作都在一臺獨立的
  
  Linux服務器上完成,我不斷為它升級內核和軟件。改善系統的響應固然有吸引
  
  力,但您有沒有考慮過對一臺不間斷運行的服務器來說,補丁是否足夠穩定呢?
  
  RL: 補丁非常穩定。我可以非常有信心地鼓勵任何人來使用它。我們有很多用戶,
  
  收到了很多反饋。我想我們已去除了明顯的漏洞(bugs)。我在自己的主系統中
  
  使用這個補丁。
  
  最重要的是我們知道它的設計和實現是正確的。使用了我們最新的補丁之后,我
  
  感覺我們已解決了所有的問題。
  
  
  JA: 在您看來,系統響應時間上的改進有多明顯呢?
  
  RL: 非常明顯。
  
  我們曾經記錄過200%的系統延遲方面的提高。安裝了可搶占內核補丁后,系統的
  
  平均延遲大約為1ms,不會超過10ms。仍有些長時間的鎖占用會影響響應,導致
  
  有些延遲達到100ms甚至更長。幸運的是這些情況只在特定情況下出現,就像切
  
  換虛擬控制臺(switching VCs)。
  
  
  JA: 現在還有另外一個最終目標相同的補丁(由Andrew Morton維護),跟您的
  
  
  有何不同?
  
  RL: 這兩個補丁所針對的問題都是內核是非搶占的。也就是說,處于內核態的任
  
  務會一直運行,直到其運行結束或主動交還控制權。假如用戶態事件在內核操作
  
  的時段發生,用戶程序必須等待內核完成本次運行。這個等待就導致了系統延遲,
  
  而它(系統延遲)正是我們要去改進的。
  
  Andrew的低延遲補丁在內核的各策略點(note: Andrew認為可能引發長時間延
  
  遲的點)加入了條件調度調用(conditional scheduling calls),這些調度
  
  非常有效地使長時間的內核操作作出讓步:"我很樂意讓別人先運行。有沒有想運
  
  行的任務啊?假如有的話,就先運行吧!"這樣拆分了長時間的操作,降低了相應
  
  內核運行點的系統延遲。
  
  搶占式補丁工作機理則很不一樣。它修改內核本身以答應核心代碼被搶占,所以
  
  上述問題甚至根本不會存在。假如有任務需要運行,它就會運行,系統響應從中
  
  受益(note: 減少了響應時間,改善了系統響應)。
  
  
  JA: 在最新的lkml 中,您提到有可能將兩個補丁組合起來。這是您現在的工作
  
  方向嗎?
  
  RL: 這當然是需要考慮的。由于我們不能在系統被鎖定時搶占(note: 即使內核
  
  打了可搶占補丁),長時間的鎖對系統延遲來說是一個很大的威脅。鎖的延時很可
  
  能就成了那段時間系統的延遲。
  
  一種解決方法是像Andrew的補丁所做的那樣拆分這些鎖。這將成為合并部分他的
  
  補丁到搶占式補丁的目的,或者更現實一些,做一個他的低延遲補丁的搶占式版本。
  
  他的patch中的在內核被鎖定時的任何條件調度都可能是有用的(note: 對于改進
  
  
  我們的patch)。
  
  這個方向(note: 拆分長時間的占用鎖)的第一步是標識出長時間被占用的鎖,這
  
  正是搶占統計(PReempt-stats)補丁所做的。這種方法衡量禁止搶占的時間并報
  
  告導致這個結果的鎖。
  
  以上僅僅是針對長時間鎖的一種解決方法。
  
  
  JA: 您所標識的內核的哪些部分會出現這種長時間鎖呢?
  
  RL: 控制臺層,過去可能出現非常長時間的鎖,幸運的是,最近
  
  Andrew Morton修正了很多這方面的問題。Frame buffer的代碼會屏蔽中斷很
  
  長時間以避免往其輸出太多。假如滾屏太多,延遲甚至可能達到500ms。切換虛擬
  
  終端的情況也很糟糕,blkdev_close()會很長時間的占用一個鎖。有些模塊操作
  
  很耗時。假如VM開始出現顛簸(thrashing),它也會導致很多延遲,因為顛簸時
  
  VM會占用一個鎖。VFS也有一些長時間占用的鎖。
  
  
  JA: 將您的補丁加入2.5可能性多大?會有哪些阻礙?
  
  RL: 這完全取決于Linus先生對這個補丁的看法以及其他hacker的意見。Linus
  
  之前曾表示他對這個想法很感愛好,我希望他的愛好可以幫著將這個補丁加入內核。
  
  作為一個獨立的補丁,我們有很廣泛的用戶基礎,這顯然非常有用。我們收到了很
  
  多反饋,包括一些顯示這個patch對系統帶來巨大的改善的評測。
  
  反對意見是,搶占式內核降低了系統的吞吐量。這是要害點,也是我們需要非凡說
  
  明的。現在的多數測試顯示了0~5%的吞吐量損失--我想相對于200%的響應提升這
  
  是值得的!另一些測試則顯示了系統吞吐量的提升,因為我們更好的排列了系統的處
  
  
  理流程(thread better)。退一步,對于那些無法接受吞吐損失的系統,搶占式
  
  內核只是一個可選。
  
  
  JA: 您開發時主要使用哪些工具?請描述一下您的環境、計算機和使用的方法。
  
  RL: 我使用最多的主機是PIII-733(384MB內存+U2W SCSI磁盤)。我也有一臺
  
  IBM ThinkPad,還有撒滿一地的舊工具(not


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾市| 沁水县| 西平县| 芮城县| 嘉峪关市| 勃利县| 太仓市| 陆良县| 南和县| 隆化县| 区。| 神农架林区| 钟山县| 邹平县| 海林市| 治多县| 五大连池市| 云梦县| 河西区| 屯留县| 勃利县| 游戏| 黄石市| 含山县| 施秉县| 金湖县| 白朗县| 锡林郭勒盟| 阿拉善左旗| 聊城市| 金山区| 竹北市| 抚顺市| 紫云| 交城县| 岳普湖县| 石林| 武强县| 舞阳县| 策勒县| 武胜县|