當前位置:首頁 » 服務存儲 » 存儲器分體管理例子
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲器分體管理例子

發布時間: 2023-03-23 02:11:37

1. 《高級操作系統》題目:動態分區存儲管理系統,作出空閑區表和空閑隊列。

1、固定分區存儲管理
其基本思想是將內存劃分成若干固定大小的分區,每個分區中最多隻能裝入一個作業。當作業申請內存時,系統按一定的演算法為其選擇一個適當的分區,並裝入內存運行。由於分區大小是事先固定的,因而可容納作業的大小受到限制,而且當用戶作業的地址空間小於分區的存儲空間時,造成存儲空間浪費。

一、空間的分配與回收

系統設置一張「分區分配表」來描述各分區的使用情況,登記的內容應包括:分區號、起始地址、長度和佔用標志。其中佔用標志為「0」時,表示目前該分區空閑;否則登記佔用作業名(或作業號)。有滑鋒了「分區分配表」,空間分配與回收工作是比較簡單的。

二、地址轉換和存儲保護

固定分區管理可以採用靜態重定位方式進行地址映射。

為了實現存儲保護,處理器設置了一對「下限寄存器」和「上限寄存器」。當一個已經被裝入主存儲器的作業能夠得到處理器運行時,進程調度應記錄當前運行作業所在的分區號,且把該分區的下限地址和上限地址分別送入下限寄存器和上限寄存器中。處理器執行該作業的指令時必須核對其要訪問的絕對地址是否越界。

三、多作業隊列的固定分區管理

為避免小作業被分配到大的分區中造成空間的浪費,可採用多作業隊列的方法。即系統按分區數設置多個作業隊列,將作業按其大小排到不同的隊列中,一個隊列對應某一個分區,以提高內存利用率。

2、可變分區存儲管理
可變分區存儲管理不是預先將內存劃分分區,而是在作業裝入內存時建立分區,使分區的大小正好與作業要求的存儲空間相等。這種處理方式使內存分配有較大的靈活性,也提高了內存利用率。但是隨著對內存不斷地分配、釋放操作會引起存儲碎片的產生。

一、空間的分配與回收

採用可變分區存儲管理,系統中的分區個數與分區的大小都在不斷地變化,系統利用「空閑區表」來管理內存中的空閑分區,其中登記空閑區的起始地址、長度和狀態。當有作業要進入內存時,在「空閑區表」中查找狀態為「未分配」且長度大於或等於作業的空閑分區分配給作業,並做適當調整;當一個作業運行完成時,應將該作業佔用的空間作為空閑區歸還給系統。

可以採用首先適應演算法、最佳(優)適應演算法和最壞適應演算法三種分配策略之一進行內存分配。

二、地址轉換和存儲保護

可變分區存儲管理一般採用動態重定位的方式,為實現地址重定位和存儲保護,系統設置相應的硬體:基址/限長寄存器(或上界/下界寄存器)、加法器、比較線路等。

基址寄存器用來存放程序在內存的起始地址,限長寄存器用來存放程序的長度。處理機在執行時,用程序中的相對地址加上基址寄存器中的基地址,形成一個絕對地址,並將相睜慶對地址與限長寄存器進行計算比較,檢查是否發生地址越界。

三、存儲碎片與程序的移動

所謂碎片是指內存中出現的一些零散的小空閑區域。由於碎片都很小,無法再利用。如果內存中碎片很多,將會造成嚴重的存儲資源浪費。解決碎片的方法是移動所有的佔用區域,使所有的空閑區合並成一片連續區域,這一技術稱為移動技術(緊湊技術)。移動技術除了可解決碎片問題還使內存中的作業進行擴充。顯然,移動帶來系統開銷加大,並且當一個作業如果正與外設進行I/O時,該作業是無法移動的。

3、頁式存儲管理

基本原理

1.等分內存

頁式存儲管理將內存空間劃分成等長的若干區域,每個區域悉讓握的大小一般取2的整數冪,稱為一個物理頁面有時稱為塊。內存的所有物理頁面從0開始編號,稱作物理頁號。

2.邏輯地址

系統將程序的邏輯空間按照同樣大小也劃分成若干頁面,稱為邏輯頁面也稱為頁。程序的各個邏輯頁面從0開始依次編號,稱作邏輯頁號或相對頁號。每個頁面內從0開始編址,稱為頁內地址。程序中的邏輯地址由兩部分組成:

邏輯地址
頁號p
頁內地址 d

3.內存分配

系統可用一張「位示圖」來登記內存中各塊的分配情況,存儲分配時以頁面(塊)為單位,並按程序的頁數多少進行分配。相鄰的頁面在內存中不一定相鄰,即分配給程序的內存塊之間不一定連續。

對程序地址空間的分頁是系統自動進行的,即對用戶是透明的。由於頁面尺寸為2的整數次冪,故相對地址中的高位部分即為頁號,低位部分為頁內地址。

3.5.2實現原理

1.頁表

系統為每個進程建立一張頁表,用於記錄進程邏輯頁面與內存物理頁面之間的對應關系。地址空間有多少頁,該頁表裡就登記多少行,且按邏輯頁的順序排列,形如:

邏輯頁號
主存塊號

0
B0

1
B1

2
B2

3
B3

2.地址映射過程

頁式存儲管理採用動態重定位,即在程序的執行過程中完成地址轉換。處理器每執行一條指令,就將指令中的邏輯地址(p,d)取來從中得到邏輯頁號(p),硬體機構按此頁號查頁表,得到內存的塊號B』,便形成絕對地址(B』,d),處理器即按此地址訪問主存。

3.頁面的共享與保護

當多個不同進程中需要有相同頁面信息時,可以在主存中只保留一個副本,只要讓這些進程各自的有關項中指向內存同一塊號即可。同時在頁表中設置相應的「存取許可權」,對不同進程的訪問許可權進行各種必要的限制。

4、段式存儲管理

基本原理

1.邏輯地址空間

程序按邏輯上有完整意義的段來劃分,稱為邏輯段。例如主程序、子程序、數據等都可各成一段。將一個程序的所有邏輯段從0開始編號,稱為段號。每一個邏輯段都是從0開始編址,稱為段內地址。

2.邏輯地址

程序中的邏輯地址由段號和段內地址(s,d)兩部分組成。

3.內存分配

系統不進行預先劃分,而是以段為單位進行內存分配,為每一個邏輯段分配一個連續的內存區(物理段)。邏輯上連續的段在內存不一定連續存放。

3.6.2實現方法

1.段表

系統為每個進程建立一張段表,用於記錄進程的邏輯段與內存物理段之間的對應關系,至少應包括邏輯段號、物理段首地址和該段長度三項內容。

2.建立空閑區表

系統中設立一張內存空閑區表,記錄內存中空閑區域情況,用於段的分配和回收內存。

3.地址映射過程

段式存儲管理採用動態重定位,處理器每執行一條指令,就將指令中的邏輯地址(s,d)取來從中得到邏輯段號(s),硬體機構按此段號查段表,得到該段在內存的首地址S』, 該段在內存的首地址S』加上段內地址d,便形成絕對地址(S』+d),處理器即按此地址訪問主存。

5、段頁式存儲管理

頁式存儲管理的特徵是等分內存,解決了碎片問題;段式存儲管理的特徵是邏輯分段,便於實現共享。為了保持頁式和段式上的優點,結合兩種存儲管理方案,形成了段頁式存儲管理。

段頁式存儲管理的基本思想是:把內存劃分為大小相等的頁面;將程序按其邏輯關系劃分為若干段;再按照頁面的大小,把每一段劃分成若干頁面。程序的邏輯地址由三部分組成,形式如下:

邏輯地址
段號s
頁號p
頁內地址d

內存是以頁為基本單位分配給每個程序的,在邏輯上相鄰的頁面內存不一定相鄰。

系統為每個進程建立一張段表,為進程的每一段各建立一張頁表。地址轉換過程,要經過查段表、頁表後才能得到最終的物理地址。
1、固定分區存儲管理
其基本思想是將內存劃分成若干固定大小的分區,每個分區中最多隻能裝入一個作業。當作業申請內存時,系統按一定的演算法為其選擇一個適當的分區,並裝入內存運行。由於分區大小是事先固定的,因而可容納作業的大小受到限制,而且當用戶作業的地址空間小於分區的存儲空間時,造成存儲空間浪費。

一、空間的分配與回收

系統設置一張「分區分配表」來描述各分區的使用情況,登記的內容應包括:分區號、起始地址、長度和佔用標志。其中佔用標志為「0」時,表示目前該分區空閑;否則登記佔用作業名(或作業號)。有了「分區分配表」,空間分配與回收工作是比較簡單的。

二、地址轉換和存儲保護

固定分區管理可以採用靜態重定位方式進行地址映射。

為了實現存儲保護,處理器設置了一對「下限寄存器」和「上限寄存器」。當一個已經被裝入主存儲器的作業能夠得到處理器運行時,進程調度應記錄當前運行作業所在的分區號,且把該分區的下限地址和上限地址分別送入下限寄存器和上限寄存器中。處理器執行該作業的指令時必須核對其要訪問的絕對地址是否越界。

三、多作業隊列的固定分區管理

為避免小作業被分配到大的分區中造成空間的浪費,可採用多作業隊列的方法。即系統按分區數設置多個作業隊列,將作業按其大小排到不同的隊列中,一個隊列對應某一個分區,以提高內存利用率。

2、可變分區存儲管理
可變分區存儲管理不是預先將內存劃分分區,而是在作業裝入內存時建立分區,使分區的大小正好與作業要求的存儲空間相等。這種處理方式使內存分配有較大的靈活性,也提高了內存利用率。但是隨著對內存不斷地分配、釋放操作會引起存儲碎片的產生。

一、空間的分配與回收

採用可變分區存儲管理,系統中的分區個數與分區的大小都在不斷地變化,系統利用「空閑區表」來管理內存中的空閑分區,其中登記空閑區的起始地址、長度和狀態。當有作業要進入內存時,在「空閑區表」中查找狀態為「未分配」且長度大於或等於作業的空閑分區分配給作業,並做適當調整;當一個作業運行完成時,應將該作業佔用的空間作為空閑區歸還給系統。

可以採用首先適應演算法、最佳(優)適應演算法和最壞適應演算法三種分配策略之一進行內存分配。

二、地址轉換和存儲保護

可變分區存儲管理一般採用動態重定位的方式,為實現地址重定位和存儲保護,系統設置相應的硬體:基址/限長寄存器(或上界/下界寄存器)、加法器、比較線路等。

基址寄存器用來存放程序在內存的起始地址,限長寄存器用來存放程序的長度。處理機在執行時,用程序中的相對地址加上基址寄存器中的基地址,形成一個絕對地址,並將相對地址與限長寄存器進行計算比較,檢查是否發生地址越界。

三、存儲碎片與程序的移動

所謂碎片是指內存中出現的一些零散的小空閑區域。由於碎片都很小,無法再利用。如果內存中碎片很多,將會造成嚴重的存儲資源浪費。解決碎片的方法是移動所有的佔用區域,使所有的空閑區合並成一片連續區域,這一技術稱為移動技術(緊湊技術)。移動技術除了可解決碎片問題還使內存中的作業進行擴充。顯然,移動帶來系統開銷加大,並且當一個作業如果正與外設進行I/O時,該作業是無法移動的。

3、頁式存儲管理

基本原理

1.等分內存

頁式存儲管理將內存空間劃分成等長的若干區域,每個區域的大小一般取2的整數冪,稱為一個物理頁面有時稱為塊。內存的所有物理頁面從0開始編號,稱作物理頁號。

2.邏輯地址

系統將程序的邏輯空間按照同樣大小也劃分成若干頁面,稱為邏輯頁面也稱為頁。程序的各個邏輯頁面從0開始依次編號,稱作邏輯頁號或相對頁號。每個頁面內從0開始編址,稱為頁內地址。程序中的邏輯地址由兩部分組成:

邏輯地址
頁號p
頁內地址 d

3.內存分配

系統可用一張「位示圖」來登記內存中各塊的分配情況,存儲分配時以頁面(塊)為單位,並按程序的頁數多少進行分配。相鄰的頁面在內存中不一定相鄰,即分配給程序的內存塊之間不一定連續。

對程序地址空間的分頁是系統自動進行的,即對用戶是透明的。由於頁面尺寸為2的整數次冪,故相對地址中的高位部分即為頁號,低位部分為頁內地址。

3.5.2實現原理

1.頁表

系統為每個進程建立一張頁表,用於記錄進程邏輯頁面與內存物理頁面之間的對應關系。地址空間有多少頁,該頁表裡就登記多少行,且按邏輯頁的順序排列,形如:

邏輯頁號
主存塊號

0
B0

1
B1

2
B2

3
B3

2.地址映射過程

頁式存儲管理採用動態重定位,即在程序的執行過程中完成地址轉換。處理器每執行一條指令,就將指令中的邏輯地址(p,d)取來從中得到邏輯頁號(p),硬體機構按此頁號查頁表,得到內存的塊號B』,便形成絕對地址(B』,d),處理器即按此地址訪問主存。

3.頁面的共享與保護

當多個不同進程中需要有相同頁面信息時,可以在主存中只保留一個副本,只要讓這些進程各自的有關項中指向內存同一塊號即可。同時在頁表中設置相應的「存取許可權」,對不同進程的訪問許可權進行各種必要的限制。

4、段式存儲管理

基本原理

1.邏輯地址空間

程序按邏輯上有完整意義的段來劃分,稱為邏輯段。例如主程序、子程序、數據等都可各成一段。將一個程序的所有邏輯段從0開始編號,稱為段號。每一個邏輯段都是從0開始編址,稱為段內地址。

2.邏輯地址

程序中的邏輯地址由段號和段內地址(s,d)兩部分組成。

3.內存分配

系統不進行預先劃分,而是以段為單位進行內存分配,為每一個邏輯段分配一個連續的內存區(物理段)。邏輯上連續的段在內存不一定連續存放。

3.6.2實現方法

1.段表

系統為每個進程建立一張段表,用於記錄進程的邏輯段與內存物理段之間的對應關系,至少應包括邏輯段號、物理段首地址和該段長度三項內容。

2.建立空閑區表

系統中設立一張內存空閑區表,記錄內存中空閑區域情況,用於段的分配和回收內存。

3.地址映射過程

段式存儲管理採用動態重定位,處理器每執行一條指令,就將指令中的邏輯地址(s,d)取來從中得到邏輯段號(s),硬體機構按此段號查段表,得到該段在內存的首地址S』, 該段在內存的首地址S』加上段內地址d,便形成絕對地址(S』+d),處理器即按此地址訪問主存。

5、段頁式存儲管理

頁式存儲管理的特徵是等分內存,解決了碎片問題;段式存儲管理的特徵是邏輯分段,便於實現共享。為了保持頁式和段式上的優點,結合兩種存儲管理方案,形成了段頁式存儲管理。

段頁式存儲管理的基本思想是:把內存劃分為大小相等的頁面;將程序按其邏輯關系劃分為若干段;再按照頁面的大小,把每一段劃分成若干頁面。程序的邏輯地址由三部分組成,形式如下:

邏輯地址
段號s
頁號p
頁內地址d

內存是以頁為基本單位分配給每個程序的,在邏輯上相鄰的頁面內存不一定相鄰。

系統為每個進程建立一張段表,為進程的每一段各建立一張頁表。地址轉換過程,要經過查段表、頁表後才能得到最終的物理地址。

2. 什麼是儲存器的奇偶分體

8086系統中1M位元組的存儲器地址空間實際上分成兩個512K位元組的存儲體——「偶存儲體」和「奇存儲體」,偶存儲體同8086的低8位數據匯流排D0~D7相連,奇存儲體同 8086的高8位數據線D8~D15相連,地址匯流排的A1~A19同兩個存儲體中的地址線A0~A18 相連,最低位地址線A0和「匯流排高允許」BHE*用來分別選擇偶存儲體和奇存儲體。這種連接方法稱為「奇偶分體」。

3. 除了8086CPU還有什麼CPU儲存器使用分體管理方法 如何使用的

當cpu向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當符合xms規范管理的擴展內存區。其驅動程序為himem.sys,ems內存 符合ems,zdhawg。

8086裡面提供了一個叫做地址加法器的東西,可以將要訪問的地址從16位加工成20位的地址。以這個20位地址為起點CPU可以向後訪問64KB的內存,如果需要訪問更多地址,則可以用地址加法器生成一個更大的起點地址(段基址),再從此起點向後又可以訪問64KB內存。

(3)存儲器分體管理例子擴展閱讀:

Intel 8086擁有四個16位的通用寄存器,也能夠當作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標)。資料寄存器通常由指腔掘令隱含地使用,針對暫存值需要復雜的寄存器褲旁配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個內存位址,所以其中一個操胡圓橡作數必須是一個寄存器。運算結果會儲存在操作數中的一個寄存器。

4. 存儲管理方式要求對每一個作業都分配一組地址連續的內存單元

英文名稱:Memory 拼音:nèi cún 【內存簡介】 在計算機的組成結構中,有一個很重要的部分,就是存儲器。存儲器是用來存儲程序和數據的部件,對於計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器(簡稱內存)。 內存是電腦中的主要部件,它是相對於外存而言的。我們平常使用的程序,如Windows98系統、打字軟體、游戲軟體等,一般都是安裝在硬碟等外存上的,但僅此是不能使用其功能的,必須把它們調入內存中運行,才能真正使用其功能,我們平時輸入一段文字,或玩一個游戲,其實都是在內存中進行的。通常我們把要永久保存的、大量的數據存儲在外存上,而把一些臨時的或少量的數據和程序放在內存上。 【內存概述】 內存就是存儲程序以及數據的地方,比如當我們在使用WPS處理文稿時,當你在鍵盤上敲入字元時,它就被存入內存中,當你選擇存檔時,內存中的數據才會被存入硬(磁)盤。在進一步理解它之前,還應認識一下它的物理概念。 內存一般採用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)。只不過因為RAM是其中最重要的存儲器。S(SYSNECRONOUS)DRAM 同步動態隨機存取存儲器:SDRAM為168腳,這是目前PENTIUM及以上機型使用的內存。SDRAM將CPU與RAM通過一個相同的時鍾鎖在一起,使CPU和RAM能夠共享一個時鍾周期,以相同的速度同步工作,每一個時鍾脈沖的上升沿便開始傳遞數據,速度比EDO內存提高50%。DDR(DOUBLE DATA RAGE)RAM :SDRAM的更新換代產品,他允許在時鍾脈沖的上升沿和下降沿傳輸數據,這樣不需要提高時鍾的頻率就能加倍提高SDRAM的速度。 ●只讀存儲器(ROM) ROM表示只讀存儲器(Read Only Memory),在製造ROM的時候,信息(數據或程序)就被存入並永久保存。這些信息只能讀出,一般不能寫入,即使機器掉電,這些數據也不會丟失。ROM一般用於存放計算機的基本程序和數據,如BIOS ROM。其物理外形一般是雙列直插式(DIP)的集成塊。 ●隨機存儲器(RAM) 隨機存儲器(Random Access Memory)表示既可以從中讀取數據,也可以寫入數據。當機器電源關閉時,存於其中的數據就會丟失。我們通常購買或升級的內存條就是用作電腦的內存,內存條(SIMM)就是將RAM集成塊集中在一起的一小塊電路板,它插在計算機中的內存插槽上,以減少RAM集成塊佔用的空間。目前市場上常見的內存條有256M/條、512M/條、1G/條等。 ●高速緩沖存儲器(Cache) Cache也是我們經常遇到的概念,它位於CPU與內存之間,是一個讀寫速度比內存更快的存儲器。當CPU向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當CPU再次需要這些數據時,CPU就從高速緩沖存儲器讀取數據,而不是訪問較慢的內存,當然,如需要的數據在Cache中沒有,CPU會再去讀取內存中的數據。 ●物理存儲器和地址空間 物理存儲器和存儲地址空間是兩個不同的概念。但是由於這兩者有十分密切的關系,而且兩者都用B、KB、MB、GB來度量其容量大小,因此容易產生認識上的混淆。初學者弄清這兩個不同的概念,有助於進一步認識內存儲器和用好內存儲器。 物理存儲器是指實際存在的具體存儲器晶元。如主板上裝插的內存條和裝載有系統的BIOS的ROM晶元,顯示卡上的顯示RAM晶元和裝載顯示BIOS的ROM晶元,以及各種適配卡上的RAM晶元和ROM晶元都是物理存儲器。 存儲地址空間是指對存儲器編碼(編碼地址)的范圍。所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個號碼,通常叫作「編址」。分配一個號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是所謂的「定址」(所以,有人也把地址空間稱為定址空間)。 地址空間的大小和物理存儲器的大小並不一定相等。舉個例子來說明這個問題:某層樓共有17個房間,其編號為801~817。這17個房間是物理的,而其地址空間採用了三位編碼,其范圍是800~899共100個地址,可見地址空間是大於實際房間數量的。 對於386以上檔次的微機,其地址匯流排為32位,因此地址空間可達2的23次方,即4GB。但實際上我們所配置的物理存儲器通常只有1MB、2MB、4MB、8MB、16MB、32MB等,遠小於地址空間所允許的范圍。 好了,現在可以解釋為什麼會產生諸如:常規內存、保留內存、上位內存、高端內存、擴充內存和擴展內存等不同內存類型。

5. 8086系統中的存儲器為什麼要採用分段結構有什麼好處

8086CPU中的寄存器都是16位的,16位的地址只能訪問64KB的內存。086系統中的物理地址是由20根地址匯流排形成的,要做到對20位地址空間進行訪問,就需要兩部分地址,在8086系統中,就是由段基址和偏移地址兩部分構成。

這兩個地址都是16位的,將這兩個地址採用相加的方式組成20位地址去訪問存儲器。在8086系統的地址形成中,當段地址確定後,該段的定址范圍就已經確定,其容量不大於64KB。同時,通過修改段寄存器內容,可達到邏輯段在整個1MB存儲空間中浮動。

各個邏輯段之間可以緊密相連,可以中間有間隔,也可以相互重疊(部分重疊,甚至完全重疊)。採用段基址和偏移地址方式組成物理地址的優點是:滿足對8086系統的1MB存儲空間的訪問,同時在大部分指令中只要提供16位的偏移地址即可。

(5)存儲器分體管理例子擴展閱讀

把段的起始單元的物理地址除以16的結果稱為段地址,它為16位,寫成十六進制是4位:XXXXH。顯然,段地址決定了段在lMB空間中的位置。段內各存儲單元相對段的起始單元都有一個距離,稱為段內偏移量。

在對內存進行操作時,段地址先確定下來,然後給出不同的段內偏移量,就可以實現段內的定址。段地址也是可以改變的,即段在1MB空間中的位置是可變的,因而可實現1MB的全范圍定址。

由於採用了分段結構,因此可以把每一個存儲單元看成是具有兩種類型的地址:物理地址和邏輯地址。物理地址就是實際地址,它具有20位的地址值,它惟一地標識1MB存儲空間的某一存儲單元。CPU與存儲器之間的信息交換都是使用這個物理地址。

邏輯地址是編程時所使用的地址,它由段地址和段內偏移量組成。邏輯地址和物理地址的關系為:物理地址=段地址16+段內偏移量。由邏輯地址形成物理地址是由匯流排介面部件中的電路實現的。

6. 常用的內存管理機制有哪幾種

嵌入式系統所用到的內存管理機制主要有以下兩種:
1、虛擬內存管理機制:
有一些嵌入式處理器提供了MMU,在MMU具備內存地址映射和定址功能,它使操作系統的內存管理更加方便。如果存在MMU ,操作系統會使用它完成從虛擬地址到物理地址的轉換, 所有的應用程序只需要使用虛擬地址定址數據。 這種使用虛擬地址定址整個系統的主存和輔存的方式在現代操作系統中被稱為虛擬內存。MMU 便是實現虛擬內存的必要條件。
虛擬內存的管理方法使系統既可以運行體積比物理內存還要大的應用程序,也可以實現「按需調頁」策略,既滿足了程序的運行速度,又節約了物理內存空間。
在L inux系統中,虛擬內存機制的實現實現為我們提供了一個典型的例子:在不同的體系結構下, 使用了三級或者兩級頁式管理,利用MMU 完成從虛擬地址到物理地址之間的轉換。基於虛擬內存管理的內存最大好處是:由於不同進程有自己單獨的進程空間,十分有效的提高了系統可靠性和安全性。
2、非虛擬內存管理機制:
在實時性要求比較高的情況下,很多嵌入式系統並不需要虛擬內存機制:因為虛擬內存機制會導致不確定性的 I/O阻塞時間, 使得程序運行時間不可預期,這是實時嵌入式系統的致命缺陷;另外,從嵌入式處理器的成本考慮,大多採用不裝配MMU 的嵌入式微處理器。所以大多嵌入式系統採用的是實存儲器管理策略。因而對於內存的訪問是直接的,它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出,所有程序中訪問的地址都是實際的物理地址;而且,大多數嵌入式操作系統對內存空間沒有保護,各個進程實際上共享一個運行空間。一個進程在執行前,系統必須為它分配足夠的連續地址空間,然後全部載入主存儲器的連續空間。
由此可見,嵌入式系統的開發人員不得不參與系統的內存管理。從編譯內核開始,開發人員必須告訴系統這塊開發板到底擁有多少內存;在開發應用程序時,必須考慮內存的分配情況並關注應用程序需要運行空間的大小。另外,由於採用實存儲器管理策略,用戶程序同內核以及其它用戶程序在一個地址空間,程序開發時要保證不侵犯其它程序的地址空間,以使得程序不至於破壞系統的正常工作,或導致其它程序的運行異常;因而,嵌入式系統的開發人員對軟體中的一些內存操作要格外小心。
UCOS就是使用非虛擬內存管理的一個例子,在UCOS中,所有的任務共享所有的物理內存,任務之間沒有內存保護機制,這樣能夠提高系統的相應時間,但是任務內存操作不當,會引起系統崩潰。

7. 虛擬存儲器由什麼組成

1、虛擬存儲器由主存儲器和聯機工和凱作的外部存儲器共同組成。
2、虛擬內存的作用:內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡,從而使計算機進入假死狀態。為了解決這個問題,Windows中運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,當內存佔用完時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。舉一個例子來說,如果電腦只有128MB物理內存的話,當讀取一個容量為200MB的文件時,就必須要用到比較大的虛擬內存,文件被內存讀取之裂前後就會先儲存到虛擬內存,等待內存把文件全部儲存到虛擬內存之後,跟著就會把虛擬內里儲肆棚清存的文件釋放到原來的安裝目錄里了。
更多關於虛擬存儲器由什麼組成,進入:https://www.abcgonglue.com/ask/b96b921616095801.html?zd查看更多內容

8. 能舉幾個例子嗎在計算機里,ROM,RAM,外存分別包括哪幾個盤C盤D盤

RAM-RamdomAccessMemory易揮發性隨機存取存儲器,高速存取,讀寫時間相等,且與地址無關,如計算機內存等。

ROM-Read Only Memory只讀存儲器。斷電後信息不丟失,如計算機啟動用的BIOS晶元。存取速度很低,(較RAM而言)且不能改寫。由於不能改寫信息,不能升級,現已很少使用。

外存指外儲存器,指除計算機內存及CPU緩存以外的儲存器,此類儲存器一般斷電後仍然能保存數據。常見的外存儲器有硬碟、軟盤、光碟、U盤等。
C盤、D盤一般是指硬碟分區

9. 操作系統內存管理發展史

內存是計算機很重要的一個資源,因為程序只有被載入到內存中才可以運行;此外,CPU所需要的指令與數據也都是來自內存的。可以說,內存是影響計算機性能的一個很重要的因素。
隨著技術的發展,現在計算機的內存容量已經有了很大的增長,但是程序大小的增長速度比內存容量的增長速度要快得多。正如帕金森定律所指出,「不論存儲器有多大,程序都可以把它填滿」。所以問題來了,當一個程序大小超過內存容量時,如何把調入內存中?這篇文章將總結內存管理的一些技術。

在介紹內存管理的細節前,先要了解一下分層存儲器體系(一圖勝千言)。

分層存儲體系這個模型並不是一開始就有的,而是隨著計算機的發展來一步步完善,最終才形成了現在的體系。所以,分層存儲體系的發展歷史也是這篇文章的一個線索。

早期的計算機是沒有存儲器抽象的,直接將物理內存暴露給程序。可以把內存想像成中醫中放草葯的盒子,每個盒子都有標記放的是哪種草葯,當有兩種草葯同時放到一個盒子中去,就會出現醫療事故。
所以,這種情況下的內存管理是有問題的:

為了解決保護和重定位的問題,人們創造了一個新的內存抽象:地址空間。地址空間是一個進程可用於定址內存的一套地址集合。每個進程都有一個自己的地址空間,並且這個地址空間獨立於其他的地址空間。
地址空間在現實生活中有多的應用。比如電話的區號,北京是010,上海是021。這樣即使同一個電話號碼,區號不同也能區分開來。
考慮上個例子中的程序A、B,如果使用地址空間的話,B程序跳轉28,就不會跳轉到A程序的指令了。因為兩個28分別屬於不同地址空間。

了解地址空間這個概念,接下來看一下計算機是如何實現將兩個28映射到不同地址空間里的。
經典的辦法是給每個CPU配置兩個寄存---基址寄存器和界限寄存器。基址寄存器記錄程序的起始物理地址,界限寄存器記錄程序的長度。

還是用這個圖舉例,程序A的基址為0,界限為16384,程序B基址為16384,界限值為32768。每次一個進程訪問內存時,取一條指令,讀或寫一個數據字,CPU硬體會把地址發送到內存匯流排前自動把基址值加到進程發出的地址上。比如,進程A發出的訪問地址是28,而A的基址是0,那麼,A實際訪問的物理地址就是28,而進程B的基址為16384,加上28,得到的地址為16412,進程B實際訪問的地址是16412.這樣就解決了之前提到過的絕對物理地址所帶來的問題。

按照帕金森定律,「不論存儲器有多大,程序都可以把它填滿」。當程序大小超過內存容量時,計算機應該如何管理內存?
有兩種處理內存超載的通用方法。一種是交換技術,即把一個進程完整調入內存,使該進程運行一段數據啊in,然後存回磁碟。空閑進程主要存在於磁碟上,所以,當他們不運行的時候不會佔用內存。另一種是虛擬內存,該策略允許程序在只有一部分被調入內存的情況下運行。
我們重點關注虛擬內存。大體包含以下內容:

虛擬內存基本思想是每個程序都有自己的地址空間,這個空間被分割成多個塊。每個塊稱作一頁或頁面。每一頁有連續的地址范圍。這些頁被映射到物理內存,但是並不是所有的頁都必須在內存中才能運行程序。當程序引用到一部分在物理內存中的地址空間時,由硬體執行必要的映射。當程序引用到一部分不在物理內存中的的地址空間時,由操作系統負責將缺失的部分裝入物理內存並重新執行失敗的指令。

至此,對操作系統中的內存管理有了一個大體的了解,如內存模型對象的發展過程,每種內存管理的優缺點。同時我感受到了提出問題,解決問題這條線索也是閱讀計算機書籍的一個思路。

10. 存儲器的原理是什麼

存儲器講述工作原理及作用

介紹

存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。

2.按存取方式分類

(1)隨機存儲器(RAM):如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間與存儲單元的物理位置無關,則這種存儲器稱為隨機存儲器(RAM)。RAM主要用來存放各種輸入/輸出的程序、數據、中間運算結果以及存放與外界交換的信息和做堆棧用。隨機存儲器主要充當高速緩沖存儲器和主存儲器。

(2)串列訪問存儲器(SAS):如果存儲器只能按某種順序來存取,也就是說,存取時間與存儲單元的物理位置有關,則這種存儲器稱為串列訪問存儲器。串列存儲器又可分為順序存取存儲器(SAM)和直接存取存儲器(DAM)。順序存取存儲器是完全的串列訪問存儲器,如磁帶,信息以順序的方式從存儲介質的始端開始寫入(或讀出);直接存取存儲器是部分串列訪問存儲器,如磁碟存儲器,它介於順序存取和隨機存取之間。

(3)只讀存儲器(ROM):只讀存儲器是一種對其內容只能讀不能寫入的存儲器,即預先一次寫入的存儲器。通常用來存放固定不變的信息。如經常用作微程序控制存儲器。目前已有可重寫的只讀存儲器。常見的有掩模ROM(MROM),可擦除可編程ROM(EPROM),電可擦除可編程ROM(EEPROM).ROM的電路比RAM的簡單、集成度高,成本低,且是一種非易失性存儲器,計算機常把一些管理、監控程序、成熟的用戶程序放在ROM中。

3.按信息的可保存性分類

非永久記憶的存儲器:斷電後信息就消失的存儲器,如半導體讀/寫存儲器RAM。

永久性記憶的存儲器:斷電後仍能保存信息的存儲器,如磁性材料做成的存儲器以及半導體ROM。

4.按在計算機系統中的作用分

根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。

能力影響

從寫命令轉換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據匯流排在一定時間內保持休止狀態,這樣就不能充分利用存儲器通道。此外,寬並行匯流排和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決於系統的特定應用。有效數據速率隨著時間而變化,常低於峰值數據速率。在某些系統中,有效數據速率可下降到峰值速率的10%以下。

通常,這些系統受益於那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 TRANSMETA等公司已經指出,在測量基於CPU的系統的性能時,時鍾頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許並不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統的性能。

影響有效數據速率的參數

有幾類影響有效數據速率的參數,其一是導致數據匯流排進入若干周期的停止狀態。在這類參數中,匯流排轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發系統結構中的大部分延遲問題。

匯流排轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統為例,該系統對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統的有效數據速率與其峰值速率相當。不過,假設100個時鍾周期中,存儲器控制器從讀轉換到寫。由於這個轉換需要6個時鍾周期,有效的數據速率下降到峰值速率的 94%。在這100個時鍾周期中,如果存儲器控制器將匯流排從寫轉換到讀的話,將會丟失更多的時鍾周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79%。表1顯示出針幾種高性能存儲器技術類似的計算結果。

顯然,所有的存儲器技術並不相同。需要很多匯流排轉換的系統設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統能將處理事務分組成非常長的讀寫序列,那麼匯流排轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。

DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對於還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。

大多數存儲器技術有4個或者8個庫,在數十個時鍾周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。

存儲器讀事務處理

考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突。控制器必須在打開一個頁和打開後續頁之間等待一個tRC時間,這樣增加了與頁循環相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定於I/O,並主要受限於DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20%到30%。

在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決於很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。

第三種情況,每個事務處理就是一次頁命中,在開放頁中定址不同的列地址。控制器不必訪問關閉頁,允許完全利用匯流排,這樣就得到一種理想的情況,即有效數據速率等於峰值速率。

第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器介面中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。

然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20%。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。

實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據匯流排無中斷地運行,在開放一個行之後,只須讀取很少量的數據,即使不需要額外的數據。

另外一種減少存儲器系統有效帶寬的主要特性被歸類到列存取粒度范疇,它規定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易於量化的巨大影響。因為它規定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統帶來了問題。例如,一個需要來自兩列各8位元組的16位元組存取粒度系統,必須讀取總共32位元組以存取兩個位置。因為只需要32個位元組中的16個位元組,系統的有效數據速率降低到峰值速率的50%。匯流排帶寬和脈沖時間長度這兩個結構參數規定了存儲器系統的存取粒度。

匯流排帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對於一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規定對於指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1。總的列存取粒度很簡單:列存取粒度=匯流排寬度×脈沖時間長度。

很多系統架構僅僅通過增加DRAM器件和存儲匯流排帶寬就能增加存儲系統的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那麼8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。

首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器匯流排所能達到的最大值。具有256位甚或512位存儲匯流排的圖形控制器已並不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規劃工程師以及電路板設計工程師不能找到採用便宜的、商業上可行的方法來對這么多信號進行布線的矽片區域。僅僅增加匯流排寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。

假設某個特定存儲技術的脈沖時間長度等於1,對於一個存儲器處理,512位寬系統的存取粒度為512位(或者64位元組)。如果控制器只需要一小段數據,那麼剩下的數據就被浪費掉,這就降低了系統的有效數據速率。例如,只需要存儲系統32位元組數據的控制器將浪費剩餘的32位元組,進而導致有效的數據速率等於50%的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器介面數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大於1。

選擇技巧

存儲器的類型將決定整個嵌入式系統的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統是採用電池供電還是由市電供電,應用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數據或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對於較小的系統,微控制器自帶的存儲器就有可能滿足系統要求,而較大的系統可能要求增加外部存儲器。為嵌入式系統選擇存儲器類型時,需要考慮一些設計參數,包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統總成本。

選擇存儲器時應遵循的基本原則

1、內部存儲器與外部存儲器

一般情況下,當確定了存儲程序代碼和數據所需要的存儲空間之後,設計工程師將決定是採用內部存儲器還是外部存儲器。通常情況下,內部存儲器的性價比最高但靈活性最低,因此設計工程師必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,人們通常選擇能滿足應用要求的存儲器容量最小的微控制器,因此在預測代碼規模的時候要必須特別小心,因為代碼規模增大可能要求更換微控制器。目前市場上存在各種規模的外部存儲器器件,我們很容易通過增加存儲器來適應代碼規模的增加。有時這意味著以封裝尺寸相同但容量更大的存儲器替代現有的存儲器,或者在匯流排上增加存儲器。即使微控制器帶有內部存儲器,也可以通過增加外部串列EEPROM或快閃記憶體來滿足系統對非易失性存儲器的需求。

2、引導存儲器

在較大的微控制器系統或基於處理器的系統中,設計工程師可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。例如,如果沒有外部的定址匯流排或串列引導介面,通常使用內部存儲器,而不需要專門的引導器件。但在一些沒有內部程序存儲器的系統中,初始化是操作代碼的一部分,因此所有代碼都將駐留在同一個外部程序存儲器中。某些微控制器既有內部存儲器也有外部定址匯流排,在這種情況下,引導代碼將駐留在內部存儲器中,而操作代碼在外部存儲器中。這很可能是最安全的方法,因為改變操作代碼時不會出現意外地修改引導代碼。在所有情況下,引導存儲器都必須是非易失性存儲器。

可以使用任何類型的存儲器來滿足嵌入式系統的要求,但終端應用和總成本要求通常是影響我們做出決策的主要因素。有時,把幾個類型的存儲器結合起來使用能更好地滿足應用系統的要求。例如,一些PDA設計同時使用易失性存儲器和非易失性存儲器作為程序存儲器和數據存儲器。把永久的程序保存在非易失性ROM中,而把由用戶下載的程序和數據存儲在有電池支持的易失性DRAM中。不管選擇哪種存儲器類型,在確定將被用於最終應用系統的存儲器之前,設計工程師必須仔細折中考慮各種設計因素。