操作系統存儲管理一些策略

存儲管理的的基本目的:提高內存的使用率並方便用戶使用內存。

一個存儲管理系統完成內存的分配與回收、地址重定位、存儲保護與擴充內存等四個方面的功能。

 

分區存儲管理:分爲固定式分區與可變式分區存儲管理

對於固定式分區存儲管理來說,其分區大小是固定的,而一個作業的大小不可能與固定的分區大小剛好相等,所以容易產生內部碎片問題,即已分配給某作業的固定分區中有作業使用不到的空閒內存區域。
而可變式分區存儲管理較好地解決了內部碎片問題,一個作業需要多大內存就分配給它多大內存。
 
緊湊:隨着多道作業的分配與完成,內存區域從一開始的一個整體劃分成零散的、已分配區域與未分配區域交叉混雜的狀態,此時,經常出現外部碎片問題,即系統中一些小的內存區域不足以放入任何作業,變成無法使用的碎片。爲解決這一問題,人們可以採用緊湊技術,使碎片集中起來變成一個大分區,供用戶作業使用,但需要花費大量處理機時間。
 
分頁技術:解決碎片問題的比較好的方法是採用分頁技術,在分頁式存儲管理系統中,因存儲區劃分成固定大小的塊,而用戶作業也劃分成與塊相等的若干頁,每個作業調入內存時,除最後一個頁面可能有頁內碎片出現外,其餘頁不存在碎片問題,一般來說,平均每個作業可能有半頁的內部碎片。
 
虛擬存儲管理技術:分頁式存儲管理技術較爲有效地利用了內存空間。但某個作業全部調入內存後,可能有些內容是作業在運行過程中用不到的部分,這部分無用的內容佔用了內存,而急需進入內存運行的作業卻可能因爲內存不足而無法調入,再加上大作業(超過內存可使用的總容量)在小內存無法運行的問題,採用了虛擬存儲管理技術。請求分頁存儲管理較好地實現了多道程序對內存的共享。
 
抖  動:請求分頁存儲管理在實施過程中,可能出現這樣的情況,剛換出的頁面又因程序的需要而要換入,即出現系統抖動問題。抖動問題與程序的執行特性有關,也與置換算法有關,是比較複雜的。抖動現象可使得整個系統的頁面置換非常頻繁,以致大部分的機器時間花費在來回進行頁面置換上,只有一小部分時間用於程序的實際運行,從而直接影響到整個系統的效率。
 
 
工作集:解決抖動問題最根本的方法是控制多道程序的道數,使得每個用戶作業都有足夠的內存空間可供使用。但作業的個數又不能太少,否則,會影響處理機的利用率。最好是使處理機利用率較高,又不致於使系統發生抖動,這是一個很難解決的問題,牽扯到程序的局部性問題,並需藉助於工作集模型。
    所謂工作集,就是程序在某一小段時間內所訪問的不同頁面的集合。如果用W(t,Δt)表示從(t-Δt)開始到t 之間所訪問的頁面集合,那麼W就是作業在時間t 上的工作集。工作集是對程序局部的一個近似模擬,如果我們能找出一個作業的各個工作集,並求出其頁面數最大者,就可確定該作業所需內存量,並由此確定系統內多道程序的最大個數。  
    在實踐中,是通過模擬程序執行的方法,每經過10ms或10000次內存訪問輸出一個工作集,以此找到所有工作集並求出其所需頁面數的最大者,然後作爲內存分配和防止抖動的依據。
 
 
 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章