• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大城小魔

            天下難事,必作于易;天下大事,必作于細

              C++博客 ::  :: 聯(lián)系 :: 聚合  :: 管理

            公告


            最新評論

            第一章:內(nèi)存管理機制

             

            第一節(jié):機制與策略


            內(nèi)存的訪問和操作涉及了大量分門別類的內(nèi)容。必須施以措施保證訪問有效內(nèi)存,并對應正確的實際物理存儲器。如果在內(nèi)存保護模式下,處理器還應當負責確保執(zhí)行中的任務不去訪問禁止訪問的內(nèi)存。多任務操作系統(tǒng)就是基于內(nèi)存保護服務構(gòu)建的系統(tǒng)。如果使用了虛擬內(nèi)存,系統(tǒng)會維護一個重要的內(nèi)存信息記錄,用以追蹤記錄任務所屬的硬盤扇區(qū)(譯注:即是虛擬內(nèi)存)它比你想象的要復雜得多,并且每個環(huán)節(jié)都要求萬無一失。

                注解在 Intel平臺上,如果內(nèi)存子系統(tǒng)設(shè)置了錯誤的數(shù)據(jù)結(jié)構(gòu),處理器將其作為所謂的(triple fault)三次錯誤來處理。所謂Intel平臺上的(double fault)二次錯誤是指當處理器去處理已發(fā)生的異常錯誤時再次發(fā)生了異常錯誤。當(double fault)二級錯誤處理失敗,三級錯誤產(chǎn)生,系統(tǒng)置入停機過程狀態(tài)。一般說來,Intel系統(tǒng)如果發(fā)生這種類型的錯誤,會重啟系統(tǒng)。

                為了保證執(zhí)行速度,處理器廠商在芯片內(nèi)部賦予了高級內(nèi)存管理的能力。這使操作系統(tǒng)商得以將大量,單調(diào)乏味,冗余的內(nèi)存管理工作交由處理器去完成,處理器內(nèi)部可以以更快的速度處理各種錯誤校驗。但是這同樣也產(chǎn)生了操作系統(tǒng)商在一定程度上限定于特定的硬件平臺的副作用。

                為提升了性能,盡管失去了移植性,但是仍然是很值得的。如果操作系統(tǒng)完全去擔當實現(xiàn)了比如分頁,分段處理功能的責任,很明顯那會比得益于從處理器內(nèi)建(內(nèi)存管理)功能的那種方案要慢得多。想象如果真要在那種有操作系統(tǒng)實現(xiàn)的內(nèi)存保護模式的操作系統(tǒng)上,玩類似Quake3那樣密集圖形的實時游戲,游戲根本沒法玩。

                 注解:你或許會問,我是否能提供一個測定的數(shù)值說明操作系統(tǒng)到底會變得多慢。我承認我給出了一些揮舞胳膊(arm-waving)的結(jié)論。根據(jù)1993年Wahbe.Lucoo.et al(請參見“引用”章節(jié))的一篇論文指出。他們使用了一種稱為“沙盒”(sandboxing)的技術(shù),將應用程序中的代碼模塊分離隔離起來。使用該技術(shù)以后,帶來了4%的執(zhí)行速度的提升。你能夠想象要添加虛擬內(nèi)存技術(shù)以及權(quán)限訪問方案的這樣一個龐大的結(jié)構(gòu),將會給你帶來什么。


            題外話

            揮舞胳膊(arm-waving)的結(jié)論,是一種沒有經(jīng)過嚴謹數(shù)學表達方式求證過的一般建議。數(shù)學表達方式的好處是可以對完全含糊不清的事物做出定論:結(jié)論只有是或者否。對于揮舞胳膊(arm-waving)的結(jié)論來說趨向于避開十分嚴格的邏輯推理更偏向于借助直覺作為判別依據(jù)。這樣推理是最值得懷疑的,不僅因為直覺常常是錯誤的,同樣也因為依據(jù)直覺的判別是模棱兩可的。例如,爭論世界是否是平的人趨向于依賴揮舞胳膊(arm-waving)方式的結(jié)論。



                  
            注解:當初Dave Cutle在創(chuàng)造Windows NT時,大部分的注意力都集中在操作系統(tǒng)的硬件抽象層(HAL)上。該想法指操作系統(tǒng)盡可能的和硬件分離,該獨立的代碼層位于底層硬件。通過這樣的設(shè)計有助于解決我在幾分鐘前提到的硬件依賴的問題。NT平臺真的可以運行在兩類面向UNIX的硬件平臺之上了,Dave也因此功成名就。這其中包括 Digital的 Alpha處理器和MPS RISC的處理器。問題是微軟公司無法在硬件平臺上施展他們的一些高層的技術(shù),如DCOM技術(shù)不能在Intel以外的硬件平臺上運行,對于基于二進制標準的對象技術(shù)來說這樣的情況更加頻繁出現(xiàn)。

             

             勝利總是屬于偏好運行速度的解決方案。一位前任Control Data工程師告訴我,當Seymour Cray 在研發(fā)6600時,他碰巧得到一塊比他當時使用的更快的一種芯片。可是該芯片總是出現(xiàn)意想不到的運算錯誤。Seymour 為該芯片搭建了一系列精巧的運行環(huán)境。公司執(zhí)行高管們沒有反對Seymour的做法,不想打擾這位作為大概是數(shù)據(jù)控制中心最有價值的技術(shù)非凡的工程師。不幸的是,他們的倉庫里堆積了滿滿的最初的那種老芯片。不能夠丟棄掉那些老芯片,必須設(shè)法都用上他們,于是誕生了CDC300,一個比6600運行速度慢并且廉價的產(chǎn)品。
            我的觀點:Seymour 眷顧更快的芯片,即使它們不是那么穩(wěn)定。
            速度原則:
                追求速度的趨勢結(jié)果使得現(xiàn)有的商業(yè)操作系統(tǒng)都具備自己的內(nèi)存管理服務并深深植根于硬件所規(guī)定的數(shù)據(jù)結(jié)構(gòu)和協(xié)議標準。處理器提供基本的內(nèi)存管理功能集。這些功能保證功能機制設(shè)置的平衡。它取決于操作系統(tǒng)是否決定使用處理的內(nèi)存管理機制。如果是,則使用處理器的內(nèi)存管理。操作系統(tǒng)創(chuàng)建這樣的策略來權(quán)衡和控制內(nèi)存管理機制。

            下一章節(jié),我會從硬件的角度來解釋,硬件如何提供內(nèi)存訪問和控制的機制。


             




            Memory Management:Alogorithms and Implementation in C/C++
            by Bill Blunden

            Wordware Publishing © 2003 (360 pages)

            This book presents several concrete implementations of garbage collection and explicit memory management algorithms.

            原書下載 地址

            posted on 2008-11-27 14:03 momor 閱讀(1562) 評論(1)  編輯 收藏 引用 所屬分類: 翻譯

            Feedback

            # re: C/C++ 內(nèi)存管理算法與實現(xiàn)--第一章:內(nèi)存管理機制 (翻譯連載) 2008-11-28 01:16 陳梓瀚(vczh)
            這本書我也讀了,后來在我自己的腳本引擎里面實現(xiàn)了一次mark-compact。  回復  更多評論
              

            亚洲国产二区三区久久| 免费无码国产欧美久久18| 久久精品aⅴ无码中文字字幕不卡| 色妞色综合久久夜夜| 久久久久女人精品毛片| 国产一久久香蕉国产线看观看| 99久久精品国产一区二区三区| 亚洲国产精品成人久久蜜臀| 日韩精品久久无码人妻中文字幕| 久久精品国产亚洲网站| 久久最新免费视频| 99久久人妻无码精品系列蜜桃| 久久亚洲欧洲国产综合| 久久精品国产网红主播| 欧美性大战久久久久久| 久久精品人成免费| 亚洲人AV永久一区二区三区久久 | 久久精品中文闷骚内射| 国产高潮久久免费观看| 人妻精品久久无码区| 一本色道久久88综合日韩精品 | 久久精品国产99久久久古代| 国产99久久九九精品无码| 97久久精品无码一区二区| 亚洲精品美女久久久久99小说| 久久国产精品久久国产精品| 日本久久久久亚洲中字幕 | 久久婷婷人人澡人人爽人人爱| 国内精品久久久久久不卡影院| 久久丫精品国产亚洲av| 亚洲国产一成人久久精品| 亚洲欧美久久久久9999| 久久国产高清一区二区三区| 天天久久狠狠色综合| 久久99国产精品久久| 国产一区二区三区久久| 97久久精品无码一区二区| 久久久久久久久久久精品尤物| 久久久精品国产亚洲成人满18免费网站 | 久久影院综合精品| 伊人久久大香线蕉亚洲五月天|