目錄
為沙市等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及沙市網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、成都做網(wǎng)站、沙市網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!1.1程序運(yùn)行的基本過(guò)程
1.1.1 編輯、編譯、鏈接、裝入
1.1.2鏈接的三種方式
1.1.3裝入的三種方式
1.2內(nèi)存管理基本概念?
1.2.1內(nèi)存保護(hù)
1.2.2內(nèi)存空間擴(kuò)充
1.2.3地址轉(zhuǎn)換功能
1.2.4內(nèi)存空間的分配與回收
1.2.4.1連續(xù)分配管理方式
1.2.4.1.1單一連續(xù)分配
1.2.4.1.2固定分區(qū)分配
1.2.4.1.3動(dòng)態(tài)分區(qū)分配
1.2.4.2基本分頁(yè)存儲(chǔ)管理
1.2.4.2.1基本地址變換機(jī)構(gòu)
1.2.4.2.2具有快表的地址變換機(jī)構(gòu)?
1.2.4.2.3二級(jí)頁(yè)表
1.2.4.3基本分段存儲(chǔ)管理
1.2.4.3.1基本地址變換機(jī)構(gòu)
1.2.4.3.2段的共享與保護(hù)?
1.2.4.4段頁(yè)式管理??
1.2.4.4.1基本地址變換機(jī)構(gòu)?
1.2.4.5三種離散分配方式對(duì)比
系統(tǒng)中只需設(shè)置一個(gè)重定位寄存器,只需在切換程序執(zhí)行時(shí)重置寄存器內(nèi)容。?
1.2.2內(nèi)存空間擴(kuò)充這里覆蓋與交換大綱已刪,虛擬存儲(chǔ)技術(shù)將在下一小節(jié)重點(diǎn)學(xué)習(xí)。
1.2.3地址轉(zhuǎn)換功能為了能夠?qū)⒂脩舫绦蜓b入內(nèi)存,必須為它分配一定大小的內(nèi)存空間。這就引出了存儲(chǔ)管理方式。
存儲(chǔ)管理方式隨著操作系統(tǒng)的發(fā)展而發(fā)展。在操作系統(tǒng)由單道向多道發(fā)展時(shí),存儲(chǔ)管理方式便由單一連續(xù)分配發(fā)展為固定分區(qū)分配。為了能更好地適應(yīng)不同大小的程序要求,又從固定分區(qū)分配發(fā)展為動(dòng)態(tài)分區(qū)分配。
為了更好地提高內(nèi)存的利用率,進(jìn)而從以上的連續(xù)分配方式發(fā)展到以下的離散分配方式——頁(yè)式存儲(chǔ)管理。為了滿足用戶在編程和使用方面的要求,又引入了分段存儲(chǔ)管理。而段頁(yè)式存儲(chǔ)管理集中了分頁(yè)管理和分段管理的優(yōu)點(diǎn)。
1.2.4.1連續(xù)分配管理方式 1.2.4.1.1單一連續(xù)分配內(nèi)存被分為系統(tǒng)區(qū)和用戶區(qū)。系統(tǒng)區(qū)通常位于內(nèi)存的低地址部分,用于存放操作系統(tǒng)相關(guān)數(shù)據(jù);用戶區(qū)用于存放用戶進(jìn)程相關(guān)數(shù)據(jù)。內(nèi)存中只能有一道用戶程序,用戶程序獨(dú)占整個(gè)用戶區(qū)空間。
優(yōu)點(diǎn):無(wú)外部碎片;可以采用覆蓋技術(shù)擴(kuò)充內(nèi)存;不一定需要采取內(nèi)存保護(hù)。
缺點(diǎn):只能用于單用戶、單任務(wù)的操作系統(tǒng)中;有內(nèi)部碎片;存儲(chǔ)器利用率極低。
1.2.4.1.2固定分區(qū)分配又稱可變分區(qū)分配。這種分配方式不會(huì)預(yù)先劃分內(nèi)存分區(qū),而是在進(jìn)程裝入內(nèi)存時(shí),根據(jù)進(jìn)程的大小動(dòng)態(tài)地建立分區(qū),并使分區(qū)的大小正好適合進(jìn)程的需要。因此系統(tǒng)分區(qū)的大小和數(shù)目是可變的。?
1.2.4.2基本分頁(yè)存儲(chǔ)管理引入頁(yè)面和頁(yè)框?
分頁(yè)管理不會(huì)產(chǎn)生外部碎片,每個(gè)進(jìn)程平均只產(chǎn)生半個(gè)塊大小的內(nèi)部碎片。
內(nèi)存空間:頁(yè)框=頁(yè)幀=內(nèi)存塊=物理塊=物理頁(yè)面。
進(jìn)程的邏輯地址空間:頁(yè)=頁(yè)面。
給它們編號(hào)之后它們的編號(hào)也是對(duì)應(yīng)的。
操作系統(tǒng)以頁(yè)框?yàn)閱挝粸楦鱾€(gè)進(jìn)程分配內(nèi)存空間。進(jìn)程的每個(gè)頁(yè)面分別放入一個(gè)頁(yè)框中。進(jìn)程的頁(yè)面和內(nèi)存的頁(yè)框有一一對(duì)應(yīng)的關(guān)系。各個(gè)頁(yè)面不必連續(xù)存放,可以放到不相鄰的各個(gè)頁(yè)框中,這正是離散分配方式的特點(diǎn)。?
地址結(jié)構(gòu)?
在計(jì)算機(jī)內(nèi)部,地址是用二進(jìn)制表示的,如果頁(yè)面大小剛好是2的整數(shù)冪,則計(jì)算機(jī)硬件可以很快速地把邏輯地址拆分成頁(yè)號(hào)和頁(yè)內(nèi)偏移量(頁(yè)內(nèi)地址)。?
頁(yè)面大小=物理塊大小=頁(yè)內(nèi)地址位數(shù)=邏輯地址結(jié)構(gòu)=頁(yè)內(nèi)偏移量位數(shù)?!?”的意思在這里是這些概念是可以互相求得的。
當(dāng)然下面這兩個(gè)公式在頁(yè)面大小不是2的整數(shù)冪時(shí)也是適用的:
然后通過(guò)頁(yè)號(hào)查詢頁(yè)表,可知頁(yè)面在內(nèi)存中的起始地址。
頁(yè)面在內(nèi)存中的起始地址+頁(yè)內(nèi)偏移量=實(shí)際的物理地址。
引入頁(yè)表
引入頁(yè)表這一數(shù)據(jù)結(jié)構(gòu)來(lái)找到進(jìn)程的每個(gè)頁(yè)面在內(nèi)存中的位置。每個(gè)進(jìn)程都有一張頁(yè)表且存在于內(nèi)存中。
即頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射。
頁(yè)表的頁(yè)號(hào)是隱藏(類似數(shù)組),所以存儲(chǔ)頁(yè)表時(shí)不用考慮頁(yè)號(hào)。
而內(nèi)存塊大小=頁(yè)面大小,假設(shè)內(nèi)存塊大小為2^20,由于計(jì)算機(jī)以字節(jié)分配地址空間,我們至少需要3B=24位即2^24來(lái)表示塊號(hào)。因此每個(gè)頁(yè)表項(xiàng)占3B。
那么我們已經(jīng)有了頁(yè)表初始地址時(shí)如何在內(nèi)存中找到想要的頁(yè)號(hào)呢?頁(yè)號(hào) i 的地址= F?+ 3 * i。(F為頁(yè)表在內(nèi)存中的初始地址,3為每個(gè)頁(yè)表項(xiàng)占3個(gè)字節(jié)空間)。
我們有了塊號(hào)J之后如何在內(nèi)存中找到想要的內(nèi)存塊地址呢??jī)?nèi)存塊J的地址=J*內(nèi)存塊大?。?yè)面大?。?/p>
對(duì)頁(yè)表項(xiàng)長(zhǎng)度的進(jìn)一步討論
為了使i號(hào)頁(yè)表項(xiàng)地址=頁(yè)表在內(nèi)存中始地址F+3*i這個(gè)公式成立,整個(gè)頁(yè)表的頁(yè)表項(xiàng)必須是在內(nèi)存中地址連續(xù)地存儲(chǔ)。但實(shí)際上可能會(huì)發(fā)生下面這種情況:
解決方法是讓每個(gè)頁(yè)框正好存放整數(shù)個(gè)頁(yè)表項(xiàng),所以可以讓頁(yè)表項(xiàng)長(zhǎng)度為4B。
頁(yè)表項(xiàng)長(zhǎng)度和頁(yè)面大小辨析
注:頁(yè)面大小和頁(yè)表項(xiàng)長(zhǎng)度容易混淆,頁(yè)面大小是根據(jù)進(jìn)程的平均大小、頁(yè)表長(zhǎng)度等因素劃分的。頁(yè)表項(xiàng)長(zhǎng)度是用來(lái)指示“頁(yè)面對(duì)應(yīng)的物理塊”在內(nèi)存中的編號(hào)。
1.2.4.2.1基本地址變換機(jī)構(gòu)通常會(huì)在系統(tǒng)中設(shè)置一個(gè)頁(yè)表寄存器(PTR),存放頁(yè)表在內(nèi)存中的起始地址F和頁(yè)表長(zhǎng)度M。進(jìn)程未執(zhí)行時(shí),頁(yè)表的始址和頁(yè)表長(zhǎng)度放在PCB中,當(dāng)進(jìn)程被調(diào)度時(shí),操作系統(tǒng)內(nèi)核會(huì)把它們放到PTR中。
1.2.4.2.2具有快表的地址變換機(jī)構(gòu)?快表,又稱聯(lián)想寄存器(TLB,translation lookaside buffer),是一種cache,用來(lái)存放最近訪問(wèn)的頁(yè)表項(xiàng)的副本,加快地址變換的速度。與此對(duì)應(yīng),內(nèi)存中的頁(yè)表稱為慢表。
1.2.4.2.3二級(jí)頁(yè)表問(wèn)題一:頁(yè)表必須連續(xù)存放,因此當(dāng)頁(yè)表很大時(shí),需要占用很多個(gè)連續(xù)的頁(yè)框。
根據(jù)對(duì)分頁(yè)管理方式的思想將原來(lái)的較長(zhǎng)的頁(yè)表進(jìn)行分頁(yè)。?
補(bǔ)充:若采用多級(jí)頁(yè)表機(jī)制,各級(jí)頁(yè)表的大小不能超過(guò)一個(gè)頁(yè)面。
問(wèn)題二:沒(méi)有必要讓整個(gè)頁(yè)表常駐內(nèi)存,因?yàn)檫M(jìn)程在一段時(shí)間內(nèi)可能只需要訪問(wèn)某幾個(gè)特定的頁(yè)面。
可以在需要訪問(wèn)頁(yè)面時(shí)才把頁(yè)面調(diào)入內(nèi)存(虛擬存儲(chǔ)技術(shù))??梢栽陧?yè)表項(xiàng)中增加一個(gè)標(biāo)志位,用于表示該頁(yè)面是否已經(jīng)調(diào)入內(nèi)存。
1.2.4.3基本分段存儲(chǔ)管理分段?
進(jìn)程的地址空間:按照程序自身的邏輯關(guān)系劃分為若干個(gè)段,每個(gè)段都有一個(gè)段名(在低級(jí)語(yǔ)言中,程序員使用段名來(lái)編程),每段從0開(kāi)始編址。
內(nèi)存分配規(guī)則:以段位單位進(jìn)行分配,每個(gè)段在內(nèi)存中占據(jù)連續(xù)空間,但各段之間可以不相鄰。
段表?
第一次訪存,查內(nèi)存中的段表,第二次訪存,訪問(wèn)目標(biāo)內(nèi)存單元。
1.2.4.3.2段的共享與保護(hù)?分段比分頁(yè)更容易實(shí)現(xiàn)信息的共享和保護(hù)。
不能被修改的代碼稱為純代碼或可重入代碼(不屬于臨界資源),這樣的代碼是可以共享的??尚薷牡拇a是不能共享的(比如,有一個(gè)代碼段中有很多變量,各進(jìn)程并發(fā)地同時(shí)訪問(wèn)可能造成數(shù)據(jù)不一致)
1.2.4.4段頁(yè)式管理?段頁(yè)式管理中,“分段”對(duì)用戶是可見(jiàn)的,程序員編程時(shí)需要顯式地給出段號(hào)、段內(nèi)地址。而將各段“分頁(yè)”對(duì)用戶是不可見(jiàn)的。系統(tǒng)會(huì)根據(jù)段內(nèi)地址自動(dòng)劃分頁(yè)號(hào)和頁(yè)內(nèi)偏移量。因此段頁(yè)式管理的地址結(jié)構(gòu)是二維的。?
1.2.4.4.1基本地址變換機(jī)構(gòu)?注意這里的段表和段式管理方式的段表的不同。?
第一次訪存,查段表;第二次訪存,查頁(yè)表;第三次訪存,訪問(wèn)目標(biāo)內(nèi)存單元。
頁(yè)表和段表同樣存儲(chǔ)在內(nèi)存中,系統(tǒng)提供給用戶的物理地址空間為總空間大小減去頁(yè)表或段表所占空間大小。?
1.2.4.5三種離散分配方式對(duì)比頁(yè)是信息的物理單位,對(duì)用戶是不可見(jiàn)的。
段是信息的邏輯單位,對(duì)用戶是可見(jiàn)的。?
分頁(yè)的用戶進(jìn)程地址空間是一維的。
分段的用戶進(jìn)程地址空間是二維的。
段頁(yè)式的用戶進(jìn)程地址空間是二維的
在不引入快表和多級(jí)頁(yè)表時(shí):
分頁(yè)二次訪存,分段二次訪存,段頁(yè)式三次訪存。
總結(jié):學(xué)習(xí)存儲(chǔ)管理方式時(shí)要注意以下問(wèn)題:邏輯地址;表項(xiàng)結(jié)構(gòu);尋址過(guò)程。此外還有快表和多級(jí)頁(yè)表的引入目的。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
新聞名稱:三、內(nèi)存管理(一)存儲(chǔ)器管理-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article30/pgipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、服務(wù)器托管、網(wǎng)站維護(hù)、全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站建設(shè)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容