日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

操作系统--内存管理方式

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统--内存管理方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

“碎片的內(nèi)存”描述一個(gè)系統(tǒng)中所有不可用的空閑內(nèi)存。這些資源之所以仍然未被使用,是因?yàn)樨?fù)責(zé)分配內(nèi)存的分配器使這些內(nèi)存無(wú)法使用。這一問(wèn)題通常都會(huì)發(fā)生,原因在于空閑內(nèi)存以小而不連續(xù)方式出現(xiàn)在不同的位置。由于分 配方法決定內(nèi)存碎片是否是一個(gè)問(wèn)題,因此內(nèi)存分配器在保證空閑資源可用性方面扮演著重要的角色。

?

internal fragmentation:when memory allocated to a process is larger than requested memory,?

the difference between these two numbers is internal fragmentation.

?

external fragmentation:External fragments exists when total memory space exists to satisfy a request,

but it is not continous. storage is broken into little pieces.?

?

在內(nèi)存管理中,內(nèi)部碎片是已經(jīng)被分配出去的的內(nèi)存空間大于請(qǐng)求所需的內(nèi)存空間。

外部碎片是指還沒有分配出去,但是由于大小太小而無(wú)法分配給申請(qǐng)空間的新進(jìn)程的內(nèi)存空間空閑塊。

?

固定分區(qū)存在內(nèi)部碎片,可變式分區(qū)分配會(huì)存在外部碎片;

頁(yè)式虛擬存儲(chǔ)系統(tǒng)存在內(nèi)部碎片;段式虛擬存儲(chǔ)系統(tǒng),存在外部碎片

?

為了有效的利用內(nèi)存,使內(nèi)存產(chǎn)生更少的碎片,要對(duì)內(nèi)存分頁(yè),內(nèi)存以頁(yè)為單位來(lái)使用,最后一頁(yè)往往裝不滿,于是形成了內(nèi)部碎片。

為了共享要分段,在段的換入換出時(shí)形成外部碎片,比如5K的段換出后,有一個(gè)4k的段進(jìn)來(lái)放到原來(lái)5k的地方,于是形成1k的外部碎片。

?

---------------------------------------------------------------------------------------------------------

存儲(chǔ)器是個(gè)寶貴但卻有限的資源。一流的操作系統(tǒng),需要能夠有效地管理及利用存儲(chǔ)器。

內(nèi)存為程序分配空間有四種分配方式:

1、連續(xù)分配方式

2、基本分頁(yè)存儲(chǔ)管理方式

3、基本分段存儲(chǔ)管理方式

4、段頁(yè)式存儲(chǔ)管理方式

?

連續(xù)分配方式

首先講連續(xù)分配方式。連續(xù)分配方式出現(xiàn)的時(shí)間比較早,曾廣泛應(yīng)用于20世紀(jì)60~70年代的OS中,但是它至今仍然在內(nèi)存管理方式中占有一席之地,原因在于它實(shí)現(xiàn)起來(lái)比較方便,所需的硬件支持最少。連續(xù)分配方式又可細(xì)分為四種:單一連續(xù)分配、固定分區(qū)分配、動(dòng)態(tài)分區(qū)分配和動(dòng)態(tài)重定位分區(qū)分配。

?

其中固定分區(qū)分配方式,因?yàn)榉謪^(qū)固定,所以缺乏靈活性,即當(dāng)程序太小時(shí),會(huì)造成內(nèi)存空間的浪費(fèi);程序太大時(shí),一個(gè)分區(qū)又不足以容納,致使程序無(wú)法運(yùn)行。但盡管如此,當(dāng)一臺(tái)計(jì)算機(jī)去控制多個(gè)相同對(duì)象的時(shí)候,由于這些對(duì)象內(nèi)存大小相同,所以完全可以采用這種內(nèi)存管理方式,而且是最高效的。這里我們可以看出存儲(chǔ)器管理機(jī)制的多面性:即沒有那種存儲(chǔ)器管理機(jī)制是完全沒有用的,在適合的場(chǎng)合下,一種被認(rèn)為最不合理的分配方案卻可能稱為最高效的分配方案。一切都要從實(shí)際問(wèn)題出發(fā),進(jìn)行設(shè)計(jì)。

?

為了解決固定分區(qū)分配方式的缺乏靈活性,出現(xiàn)了動(dòng)態(tài)分配方式。動(dòng)態(tài)分配方式采用一些尋表的方式,查找能符合程序需要的空閑內(nèi)存分區(qū)。但代價(jià)是增加了系統(tǒng)運(yùn)行的開銷,而且內(nèi)存空閑表本身是一個(gè)文件,必然會(huì)占用一部分寶貴的內(nèi)存資源,而且有些算法還會(huì)增加內(nèi)存碎片。

?

可重定位分區(qū)分配通過(guò)對(duì)程序?qū)崿F(xiàn)成定位,從而可以將內(nèi)存塊進(jìn)行搬移,將小塊拼成大塊,將小空閑“緊湊”成大空閑,騰出較大的內(nèi)存以容納新的程序進(jìn)程。

?

基本分頁(yè)存儲(chǔ)管理方式

連續(xù)分配方式會(huì)形成許多“碎片”,雖然可以通過(guò)“緊湊”方式將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。所以提出了“離散分配方式”的想法。如果離散分配的基本單位是頁(yè),則稱為分頁(yè)管理方式;如果離散分配的基本單位是段,則稱為分段管理方式。

?

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

?

在分頁(yè)系統(tǒng)中,允許將進(jìn)程的各個(gè)頁(yè)離散地存儲(chǔ)在內(nèi)存不同的物理塊中,但系統(tǒng)應(yīng)能保證進(jìn)程的正確運(yùn)行,即能在內(nèi)存中找到每個(gè)頁(yè)面所對(duì)應(yīng)的物理塊。為此,系統(tǒng)又為每個(gè)進(jìn)程建立了一張頁(yè)面映像表,簡(jiǎn)稱頁(yè)表。在進(jìn)程地址空間內(nèi)的所有頁(yè),依次在頁(yè)表中有一頁(yè)表項(xiàng),其中記錄了相應(yīng)頁(yè)在內(nèi)存中對(duì)應(yīng)的物理塊號(hào)。在配置了頁(yè)表后,進(jìn)程執(zhí)行時(shí),通過(guò)查找該表,即可找到每頁(yè)在內(nèi)存中的物理塊號(hào)。可見,頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射。

?

為了能夠?qū)⒂脩舻刂房臻g中的邏輯地址,變換為內(nèi)存空間中的物理地址,在系統(tǒng)中必須設(shè)置地址變換機(jī)構(gòu)。地址變換任務(wù)是借助于頁(yè)表來(lái)完成的。

頁(yè)表的功能可由一組專門的寄存器來(lái)實(shí)現(xiàn)。由于寄存器成本較高,且大多數(shù)現(xiàn)代計(jì)算機(jī)的頁(yè)表又很大,使頁(yè)表項(xiàng)總數(shù)可達(dá)幾千甚至幾十萬(wàn)個(gè),顯然這些頁(yè)表項(xiàng)不可能都用寄存器來(lái)實(shí)現(xiàn),因此,頁(yè)表大多駐留在內(nèi)存中。因?yàn)橐粋€(gè)進(jìn)程可以通過(guò)它的PCB來(lái)時(shí)時(shí)保存自己的狀態(tài),等到CPU要處理它的時(shí)候才將PCB交給寄存器,所以,系統(tǒng)中雖然可以運(yùn)行多個(gè)進(jìn)程,但也只需要一個(gè)頁(yè)表寄存器就可以了。

?

由于頁(yè)表是存放在內(nèi)存中的,這使得CPU在每存取一個(gè)數(shù)據(jù)時(shí),都要兩次訪問(wèn)內(nèi)存。為了提高地址變換速度,在地址變化機(jī)構(gòu)中增設(shè)了一個(gè)具有并行查詢能力的告訴緩沖寄存器,又稱為“聯(lián)想寄存器”(Associative Lookaside Buffer)。

?

在單級(jí)頁(yè)表的基礎(chǔ)上,為了適應(yīng)非常大的邏輯地址空間,出現(xiàn)了兩級(jí)和多級(jí)頁(yè)表,但是,他們的原理和單級(jí)頁(yè)表是一樣的,只不過(guò)為了適應(yīng)地址變換層次的增加,需要在地址變換機(jī)構(gòu)中增設(shè)外層的頁(yè)表寄存器。

?

基本分段存儲(chǔ)管理方式

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

?

(1)方便編程;

(2)信息共享:分頁(yè)系統(tǒng)中的“頁(yè)”只是存放信息的物理單位(塊),并無(wú)完整的意義,不便于實(shí)現(xiàn)共享;然而段卻是信息的邏輯單位。由此可知,為了實(shí)現(xiàn)段的共享,希望存儲(chǔ)器管理能與用戶程序分段的組織方式相適應(yīng)。

(3)信息保護(hù);

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

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

?

分段管理方式和分頁(yè)管理方式在實(shí)現(xiàn)思路上是很相似的,只不過(guò)他們的基本單位不同。分段有段表,也有地址變換機(jī)構(gòu),為了提高檢索速度,同樣增設(shè)聯(lián)想寄存器。所以有些具體細(xì)節(jié)在這個(gè)不再贅述。

?

分頁(yè)和分段的主要區(qū)別:

1、兩者相似之處:兩者都采用離散分配方式,且都要通過(guò)地址映射機(jī)構(gòu)來(lái)實(shí)現(xiàn)地址變換。

2、兩者不同之處:

(1)頁(yè)是信息的物理單位,分頁(yè)是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率。或者說(shuō),分頁(yè)僅僅是由于系統(tǒng)管理的需要而不是 ? ? ?用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是為了能更好地滿足用戶的需要。

(2)頁(yè)的大小固定且由系統(tǒng)決定,而段的長(zhǎng)度卻不固定。

(3)分頁(yè)的作業(yè)地址空間是一維的,即單一的線性地址空間;而分段的作業(yè)地址空間則是二維的。

?

段頁(yè)式存儲(chǔ)管理方式

前面所介紹的分頁(yè)和分段存儲(chǔ)管理方式都各有優(yōu)缺點(diǎn)。分頁(yè)系統(tǒng)能有效地提高內(nèi)存利用率,而分段系統(tǒng)則能很好地滿足用戶需求。我們希望能夠把兩者的優(yōu)點(diǎn)結(jié)合,于是出現(xiàn)了段頁(yè)式存儲(chǔ)管理方式。

?

段頁(yè)式系統(tǒng)的基本原理,是分段和分頁(yè)原理的結(jié)合,即先將用戶程序分成若干個(gè)段,再把每個(gè)段分成若干個(gè)頁(yè),并為每一個(gè)段賦予一個(gè)段名。在段頁(yè)式系統(tǒng)中,地址結(jié)構(gòu)由段號(hào)、段內(nèi)頁(yè)號(hào)和頁(yè)內(nèi)地址三部分所組成。

?

和前兩種存儲(chǔ)管理方式相同,段頁(yè)式存儲(chǔ)管理方式同樣需要增設(shè)聯(lián)想寄存器。

?

離散分配方式基于將一個(gè)進(jìn)程直接分散地分配到許多不相鄰的分區(qū)中的思想,分為分頁(yè)式存儲(chǔ)管理,分段存儲(chǔ)管理和段頁(yè)式存儲(chǔ)管理. 分頁(yè)式存儲(chǔ)管理旨在提高內(nèi)存利用率,滿足系統(tǒng)管理的需要,分段式存儲(chǔ)管理則旨在滿足用戶(程序員)的需要,在實(shí)現(xiàn)共享和保護(hù)方面優(yōu)于分頁(yè)式存儲(chǔ)管理,而段頁(yè)式存儲(chǔ)管理則是將兩者結(jié)合起來(lái),取長(zhǎng)補(bǔ)短,即具有分段系統(tǒng)便于實(shí)現(xiàn),可共享,易于保護(hù),可動(dòng)態(tài)鏈接等優(yōu)點(diǎn),又能像分頁(yè)系統(tǒng)那樣很好的解決外部碎片的問(wèn)題,以及為各個(gè)分段可離散分配內(nèi)存等問(wèn)題,顯然是一種比較有效的存儲(chǔ)管理方式。

轉(zhuǎn)載于:https://www.cnblogs.com/cane/p/3972010.html

總結(jié)

以上是生活随笔為你收集整理的操作系统--内存管理方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。