操作系统原理:连续的内存分配
一、由于內(nèi)存釋放導(dǎo)致的內(nèi)存碎片的問題
?空閑內(nèi)存碎片化可能導(dǎo)致很多的內(nèi)存不會被利用。內(nèi)存碎片包含兩種,一種時內(nèi)部碎片,一種時外部碎片,所謂的內(nèi)部碎片,就是分配給應(yīng)用程序使用但是實際卻無法被利用的碎片,而外部碎片是在分配單元里的未使用內(nèi)存。當(dāng)程序從硬盤加載到內(nèi)存中的時候就需要一串比較長的連續(xù)內(nèi)存空間。因此,操作系統(tǒng)需要管理內(nèi)存空間
?
二、分區(qū)的動態(tài)分配
假如由三塊可用的內(nèi)存空間,1K ,2K ,500B。假如需要分配一個400B內(nèi)存空間給程序
1)內(nèi)存空間的分配策略——首次適配
所謂的首次適配,就是第一次匹配到滿足要求的內(nèi)存空間,最后程序的內(nèi)存空間將會在這1K上去分配出400B的空間。此方法需要對地址進(jìn)行排序,按順序查找出首次適配的空閑內(nèi)存。在內(nèi)存回收的時候,要考慮到連續(xù)內(nèi)存空間的合并問題。此方法容易產(chǎn)生較多的外部碎片,但是算法簡單,分配完后的空閑內(nèi)存可能還可以保留較大的空間等待接下來的分配。
2)內(nèi)存空間的分配策略——最佳適配
所謂最佳適配,就是匹配到最適合的且滿足要求的內(nèi)存空間,最匹配的空間塊是500B。對內(nèi)存塊size排序,這個方法劣勢就是最后的分配的內(nèi)存空間會十分小無法利用。
3)內(nèi)存空間的分配策略——最差適配
所謂最差適配與最佳適配算法,先利用最大的空閑內(nèi)存塊。匹配的空間塊是2K。對內(nèi)存塊size排序,缺點,運行久了時候,大請求可能就會分配不了。
?
以上三種各有利弊,并沒有哪一種內(nèi)存管理方法是普適的,通常會根據(jù)不同的需求來匹配不同的匹配方法。
?
三、壓縮式碎片整理
面對程序間的內(nèi)存碎片,考慮的是調(diào)整程序的空間位置,從而變成一個連續(xù)被利用的塊,騰出一個連續(xù)的空間空間。壓縮碎片整理通過“拷貝”(重定位)的方式來“移動”程序正在使用的內(nèi)存空間。要考慮的問題是:什么時候進(jìn)行調(diào)整分配合適?開銷是否大??
首先程序運行的時候不能移動內(nèi)存空間,而是在程序等待,暫停運行的時候進(jìn)行移動。 如果利用空間過大,要移動復(fù)制的空間也就大,這個造成的開銷是否會導(dǎo)致操作系統(tǒng)的正常運行?
?
四、交換式碎片整理
將硬盤利用起來。當(dāng)成一個備份。當(dāng)程序的暫停運行的時間,將暫停運行的程序的內(nèi)存空間數(shù)據(jù)移動到硬盤上,當(dāng)再運行程序時,將硬盤上備份的數(shù)據(jù)丟回內(nèi)存上重新分配。這需要考慮的問題是,哪一部分的內(nèi)存空間被換到硬盤上合適 ?何時進(jìn)行換入換出操作?
總結(jié)
以上是生活随笔為你收集整理的操作系统原理:连续的内存分配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统原理: 计算机的体系结构、内存的
- 下一篇: 操作系统原理 : 非连续的内存分配,分段