作業系統 儲存管理

2021-06-06 20:54:58 字數 2652 閱讀 1693

儲存管理中大概涉及到了下圖所示的這些知識點。

在了解儲存管理之前,我們必須要知道計算機當中有那些儲存器,這些儲存器有那些特點,他們是如何工作的!如下圖所示:

除了上面這三種儲存器,還有暫存器。

暫存器是**處理器內的組成部分。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、資料和位址。在**處理器的控制部件中,包含的暫存器有指令暫存器(ir)和程式計數器(pc)。在**處理器的算術及邏輯部件中,包含的暫存器有累加器(acc)。

他們這四種儲存器各自有各自的特點,各自有各自的功能,也有不同的管理方法。當然了從目的上講,對與儲存器的管理目的無非有兩點:1、讓有限的空間能夠儲存更多的東西。2、從使用上更加快捷方便。

cache的引入本身就是為了匹配cpu和記憶體不同的工作速度的。這就可見人們精益求精的精神。

對於儲存管理主要是對記憶體的管理,包括分成兩個方面:分割槽儲存、分頁儲存、分段儲存、段頁式、虛擬儲存。

分割槽儲存管理:

分割槽儲存管理又分成三部分:固定分割槽儲存管理管理、可變分割槽儲存管理、可重定位儲存。

固定分割槽儲存管理

把主存可分配的使用者區域預先劃分成若干個連續區。(劃分好之後就不能再變了——區個數和區大小)各個區的大小可以相同,也可以不同。

通過分割槽分配表記錄分割槽的使用情況。通過此表來對記憶體進行**,提供下一次分配。

既然已經按照這種方式儲存了,就應該考慮一下如何在這種方式下提高主存的利用率。  

1)  按照經常出現的作業的大小和數量來劃分分割槽,盡可能使各個分割槽被充分利用。

2)  將分割槽按由小到大的順序排列,當作業進入時從先往後查詢大小剛剛合適的分割槽。

3)  按作業大小分成不同的佇列,不同的佇列等待響應大小的分割槽。

可變分割槽儲存管理不是預先把主儲存器中的使用者區域劃分分割槽,而是在作業要求裝入主儲存器時,根據作業需要的主存空間大小和當時主存空間使用情況來決定是否為作業分配乙個分割槽。這樣就和固定分割槽不一樣了,他的分割槽大小不定,分割槽個數也確定。

可變分割槽常用的分配演算法有:最先適應、最優適應、最快適應。

最先適應是順序的查詢,找到第一塊滿足作業需求的空閒塊,然後佔據作業需要的一部分,剩下的部分等待下一次分配(這裡是和固定分割槽的最大區別,固定分割槽每乙個分割槽只能存放乙個作業,剩下的空間是不能再提供給其他作業使用的,造成很大的資源浪費)。

只是這樣按照物理順序的查詢的話,我們對這些空間的控制很小,不知道是多大的一塊空間被我們分割了。本身可以接受較大的需求較大的作業的空間很有可能被我們切掉了一部分,而變的無法使用。所以就對此作出了改進,把空閒區域地順序從小到大登記在空間區表中。

最優適應演算法,第一綜合了上面的改進,以及固定分割槽的方式。將空閒區按照從小到大排序,然後順序的查詢剛好滿足作業要求的空閒區。這樣可以盡可能的保證大空間完整。但是在長期採用這樣的儲存方式的話會產生很多較小的不連續的小空間不能被利用和大空間的形成。

最差適應方式,這中演算法和最優的做法基本一樣,只不過是每一次都用最大的空間區解決作業的要求。剩下的空間還能給其他的作業使用。

上面基本上把基本演算法說了一下,其實前面的演算法各自有各自的優點和缺陷。那就要看我們是什麼需求了!

在可變分割槽中還有一種非常重要的技術——移動技術。就是將所有被使用過的空間移動到一起,當然空閒的空間也就連到一起了。這樣分配起來就容易多了。每次**的空間也融合到一起。雖然分配空間上很容易了,但是移動以儲存的作業也會增加系統開銷。

分頁儲存管理、分段儲存管理、段頁式儲存管理

這三種儲存方式非常相似,都是將主存以及作業進行劃分,通過不同的儲存方式,將作業儲存調入到主存當中去。

頁式儲存先將主存以及作業分成一頁一頁的,頁的大小是固定的。不過主存叫做塊,大小與作業的頁相同。當程式被調入主存的時,選擇乙個沒有被使用過的頁面將程式調入,然後在暫存器的頁表中記錄下頁號和塊號的對應。

由於頁式儲存存在一些弊端,他顯得那麼死板。一些程式可能就剩下很少的東西了也能佔據一頁的空間。或是兩者關係非常緊密但是被儲存在不同的頁中,在執行和互動上存在問題。所以引出了段式儲存,和頁式相比優點在於,不同的段長度可以不同也可以相同。這樣一來就很好的解決了切斷聯絡或是浪費空間的問題了。但是在頁表中必須記錄各段的長度。

段頁式從名稱來看就知道是頁式儲存和段式儲存的融合,綜合了他們各自的優點。

虛擬儲存

從上面的這些儲存來看,都必須把作業全部都調入到記憶體當中去才可以。如果是乙個非常大的軟體如果一直沒有足夠的空間,那該軟體就永遠無法執行。

為了解決此問題,引入了虛擬儲存。

虛擬儲存的書上也講了一大堆,其大概可以這樣理解。如果較大的作業想要執行,將先將其當前使用的模組調入記憶體當中去去執行。用到其他模組式再調入,暫時用不到的模組就暫時存放在硬碟當中。

通過這樣的方式,將龐大的作業虛構成乙個整體。

對儲存管理大概就寫這麼,其實一塊內容都非常相似。只要掌握他們的相同部分和之間的區別就可以了,這樣也就節省了我們的大腦。單獨使用的時候,再將其構造出來就可以了~

作業系統儲存管理

分段單元 分頁單元 邏輯位址 段基址 32位偏移量 線性位址 虛擬位址,0 4gb 實體地址 6個段暫存器 cs code段 ss stack段 ds data段 es fs gs 通用段暫存器 16位的段選擇符就存放在以上段暫存器中 線性位址 4gb 被分成以固定長度為單位的組,即頁。頁內部連續的...

作業系統 儲存管理

儲存管理 1 所謂虛擬儲存技術,即在記憶體中保留一部分程式或資料,在外存 硬碟 中放置整個位址空間的副本。程式執行過程中可以隨機訪問記憶體中的資料或程式,但需要的程式或資料不在記憶體中時,就將記憶體中的部分內容根據情況寫回外存,然後從外存調入所需程式或資料,實現作業內部的區域性對換,從而允許程式的位...

作業系統 儲存管理

儲存器 cpu暫存器 快取 主存 外存 編譯 鏈結 載入 編譯 把目標 翻譯為可重定位 包括 資料段 文字段 棧段。載入 在載入乙個絕對程式之前,儲存管理器會分配一塊主存給程序,然後載入器把絕對程式和資料段拷到分配的儲存器中。聯結器將絕對程式中所有的位址設定成好像模組 都是從主存位置0處載入的。靜態...