• <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>

            大城小魔

            天下難事,必作于易;天下大事,必作于細(xì)

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

            公告


            最新評論

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

             

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


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

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

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

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

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


            題外話

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



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

             

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

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


             




            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 閱讀(1556) 評論(1)  編輯 收藏 引用 所屬分類: 翻譯

            Feedback

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

            日产精品久久久一区二区| 久久国产精品偷99| 久久久久人妻一区二区三区vr| 欧美亚洲国产精品久久| 亚洲中文字幕无码一久久区| 国产精品禁18久久久夂久| 久久久久国产精品三级网| 久久精品国产亚洲av麻豆蜜芽 | 国产无套内射久久久国产| 99久久精品国产高清一区二区| av无码久久久久久不卡网站| 精品无码久久久久久久动漫| 日韩电影久久久被窝网| 日韩精品无码久久久久久| 国产巨作麻豆欧美亚洲综合久久| 久久人人爽人人爽人人爽| 久久久久久狠狠丁香| 亚洲中文字幕无码久久2020 | 久久精品国产亚洲av麻豆图片 | 久久这里只有精品18| 亚州日韩精品专区久久久| 91精品国产综合久久久久久| 久久久久婷婷| 国内精品欧美久久精品| 少妇久久久久久被弄高潮| 久久性精品| 99久久亚洲综合精品成人| 久久婷婷五月综合成人D啪 | 久久亚洲中文字幕精品有坂深雪| 日日狠狠久久偷偷色综合96蜜桃 | 婷婷五月深深久久精品| 色老头网站久久网| 久久影视国产亚洲| 久久99精品久久久久久野外 | 成人精品一区二区久久| 狠狠色丁香久久婷婷综合五月 | 91精品久久久久久无码| 久久99精品国产| 久久se精品一区二区影院| 久久国产精品99精品国产| 精品人妻久久久久久888|