溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

計(jì)算機(jī)中不產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是什么

發(fā)布時(shí)間:2021-01-16 09:28:34 來源:億速云 閱讀:558 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)計(jì)算機(jī)中不產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

不會(huì)產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是:分段式存儲(chǔ)管理。在分段存儲(chǔ)管理方式中,作業(yè)的地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息。每個(gè)段都從0開始編址,并采用一段連續(xù)的地址空間。整個(gè)作業(yè)的地址空間由于是分成多個(gè)段,因而是二維的。

不會(huì)產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是:分段式存儲(chǔ)管理。分頁式存儲(chǔ)管理才有內(nèi)部碎片,分段式存儲(chǔ)管理有外部碎片。

分頁式存儲(chǔ)管理

分頁存儲(chǔ)管理是將一個(gè)進(jìn)程的邏輯地址空間分成若干個(gè)大小相等的片,稱為頁面或頁,并為各頁加以編號(hào),從0開始,如第0頁、第1頁等。

相應(yīng)地,也把內(nèi)存空間分成與頁面相同大小的若干個(gè)存儲(chǔ)塊,稱為(物理)塊或頁框(frame),也同樣為它們加以編號(hào),如0#塊、1#塊等等。在為進(jìn)程分配內(nèi)存時(shí),以塊為單位將進(jìn)程中的若干個(gè)頁分別裝入到多個(gè)可以不相鄰接的物理塊中。由于進(jìn)程的最后一頁經(jīng)常裝不滿一塊而形成了不可利用的碎片,稱之為“頁內(nèi)碎片”。

分段式存儲(chǔ)管理

引入分段存儲(chǔ)管理方式的目的,則主要是為了滿足用戶(程序員)在編程和使用上多方面的要求,其中有些要求是其它幾種存儲(chǔ)管理方式所難以滿足的。因此,這種存儲(chǔ)管理方式已成為當(dāng)今所有存儲(chǔ)管理方式的基礎(chǔ)。

在分段存儲(chǔ)管理方式中,作業(yè)的地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息。例如,有主程序段MAIN、子程序段X、數(shù)據(jù)段D及棧段S等。每個(gè)段都有自己的名字。為了實(shí)現(xiàn)簡單起見,通??捎靡粋€(gè)段號(hào)來代替段名,每個(gè)段都從0開始編址,并采用一段連續(xù)的地址空間。段的長度由相應(yīng)的邏輯信息組的長度決定,因而各段長度不等。整個(gè)作業(yè)的地址空間由于是分成多個(gè)段,因而是二維的,亦即,其邏輯地址由段號(hào)(段名)和段內(nèi)地址所組成。

分段地址中的地址具有如下結(jié)構(gòu):

計(jì)算機(jī)中不產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是什么

在該地址結(jié)構(gòu)中,允許一個(gè)作業(yè)最長有 64 K個(gè)段,每個(gè)段的最大長度為64 KB。 分段方式已得到許多編譯程序的支持,編譯程序能自動(dòng)地根據(jù)源程序的情況而產(chǎn)生若干個(gè)段。例如,Pascal編譯程序可以為全局變量、用于存儲(chǔ)相應(yīng)參數(shù)及返回地址的過程調(diào)用棧、每個(gè)過程或函數(shù)的代碼部分、每個(gè)過程或函數(shù)的局部變量等等,分別建立各自的段。類似地,F(xiàn)ortran編譯程序可以為公共塊(Common block)建立單獨(dú)的段,也可以為數(shù)組分配一個(gè)單獨(dú)的段。裝入程序?qū)⒀b入所有這些段,并為每個(gè)段賦予一個(gè)段號(hào)。

引入分段存儲(chǔ)管理方式,主要是為了滿足用戶和程序員的下述一系列需要:

1) 方便編程

通常,用戶把自己的作業(yè)按照邏輯關(guān)系劃分為若干個(gè)段,每個(gè)段都是從0開始編址,并有自己的名字和長度。因此,希望要訪問的邏輯地址是由段名(段號(hào))和段內(nèi)偏移量(段內(nèi)地址)決定的。例如,下述的兩條指令便是使用段名和段內(nèi)地址:

LOAD 1,[A] |〈D〉;

STORE 1,[B] |〈C〉;

其中,前一條指令的含義是將分段A中D單元內(nèi)的值讀入寄存器1;后一條指令的含義是將寄存器1的內(nèi)容存入B分段的C單元中。

2) 信息共享

在實(shí)現(xiàn)對(duì)程序和數(shù)據(jù)的共享時(shí),是以信息的邏輯單位為基礎(chǔ)的。比如,共享某個(gè)例程和函數(shù)。分頁系統(tǒng)中的“頁”只是存放信息的物理單位(塊),并無完整的意義,不便于實(shí)現(xiàn)共享;然而段卻是信息的邏輯單位。由此可知,為了實(shí)現(xiàn)段的共享,希望存儲(chǔ)管理能與用戶程序分段的組織方式相適應(yīng)。

3) 信息保護(hù)

信息保護(hù)同樣是對(duì)信息的邏輯單位進(jìn)行保護(hù),因此,分段管理方式能更有效和方便地實(shí)現(xiàn)信息保護(hù)功能。

4) 動(dòng)態(tài)增長

在實(shí)際應(yīng)用中,往往有些段,特別是數(shù)據(jù)段,在使用過程中會(huì)不斷地增長,而事先又無法確切地知道數(shù)據(jù)段會(huì)增長到多大。前述的其它幾種存儲(chǔ)管理方式,都難以應(yīng)付這種動(dòng)態(tài)增長的情況,而分段存儲(chǔ)管理方式卻能較好地解決這一問題。

5) 動(dòng)態(tài)鏈接

動(dòng)態(tài)鏈接是指在作業(yè)運(yùn)行之前,并不把幾個(gè)目標(biāo)程序段鏈接起來。要運(yùn)行時(shí),先將主程序所對(duì)應(yīng)的目標(biāo)程序裝入內(nèi)存并啟動(dòng)運(yùn)行,當(dāng)運(yùn)行過程中又需要調(diào)用某段時(shí),才將該段(目標(biāo)程序)調(diào)入內(nèi)存并進(jìn)行鏈接??梢?,動(dòng)態(tài)鏈接也要求以段作為管理的單位。

關(guān)于“計(jì)算機(jī)中不產(chǎn)生內(nèi)部碎片的存儲(chǔ)管理是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI