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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

存储管理-存储管理的功能

發布時間:2023/12/15 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 存储管理-存储管理的功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

存儲管理-存儲管理的功能

存儲器為什么比較重要?

存儲器是計算機系統的重要資源之一。任何程序和數據以及各種控制用的數據結構都必須占用一定的存儲空間,因此,存儲管理直接影響系統性能。

存儲器的組成

  • 內存:存由順序編址的塊組成,每塊包含相應的物理單元
  • 外存

內存外存的信息交換式誰控制的?

CPU控制相應的輸入輸出設備實現外存與內存信息的交換。

C語言.c源程序文件變成.exe可執行文件的過程

預編譯->編譯->匯編->鏈接

預編譯

1.刪除所有#define,展開所有宏定義;
2.處理所有條件預編譯指令,如#if,#ifdef,#elif,#else,#endif;
3.處理#include預編譯指令,將被包含的文件插入到該預編譯指令的位置(該過程是遞歸進行的);
4.刪除所有注釋(實際上是被替換為一個空格);
5.添加行號和文件名標識;
6.保留所有#pragma編譯器指令。

編譯過程

(編譯之后生成.s文件)將預處理完的文件進行一系列的詞法分析,語法分析,語義分析以及優化產生相應的匯編代碼文件。

匯編過程

匯編之后生成.o文件,可重定位目標文件)將匯編代碼轉化成機器可以識別的指令。

鏈接過程(重要的步驟,涉及地址和空間的分配)

(鏈接之后生成.exe文件,可執行目標文件)合并多個可重定位目標文件生成可執行目標文件,需要完成的工作包括:地址和空間的分配;符號決議;重定位。

虛擬存儲器

為什么要有虛擬存儲器?

內存雖然訪問速度快,但是太小了,而外存訪問速度慢但是好處是空間大。引出問題,怎么相互彌補一下呢?不經常訪問的數據和程序放到外存中去,只有在需要的時候才調入內存中。

虛擬存儲器是干什么用的?

1.當物理內存不夠用的時候,在硬盤上也就是外存開辟一塊空間當內存用,但是這塊內存不是內存條提供的,所以叫虛擬內存。
例子:玩游戲的時候,你電腦內存1G,如果沒有虛擬內存的話是沒辦法玩的,但是有了虛擬內存就可以玩了

2.執行程序盡管向操作系統申請內存,而不管內存夠不夠用,好像有無限的內存一樣

3.編譯鏈接程序
什么是編譯鏈接程序?源程序要由編譯程序編譯成CPU可以執行的代碼,鏈接程序要把一個進程的不同程序段鏈接起來來讓程序跑起來.

4.為進程提供虛擬空間

虛擬存儲器的定義

進程中的目標代碼、數據等的虛擬地址組成的虛擬空間稱為虛擬存儲器(virtual store或virtual memory)。

虛擬存儲器的特點

1.虛擬存儲器不考慮物理存儲器的大小和信息存放的實際位置,只規定每個進程中互相關連信息的相對位置
2.每個進程擁有自己的虛擬存儲器,且虛擬存儲器的容量由計算機的地址結構和尋址方式確定的,直接尋址時,如果CPU的有效地址長度為16位,則其尋址范圍為0到64K
3.要實現虛擬存儲器到物理存儲器的變換,必須有相應的硬件支
4.每個進程都擁有自己的虛存,且每個虛存的大小不受實際物理存儲器的限制
5.內存只能存放經常被訪問的程序和數據段,訪問或在某一段時間內不會被訪問的信息。進程執行過程中需要這些信息時,從外存中自動調入主存

地址變換

虛擬地址映射到物理地址涉及兩個問題一個是分區問題,一個是虛擬空間的劃分,另外一個是地址映射

虛擬空間的分區

虛擬空間的劃分與計算機系統結構有關。一般劃分為系統空間和進程空間兩個部分,進程空間分為程序區和控制區

地址映射

把虛擬空間中已鏈接和劃分好的內容裝入內存,并將虛擬地址映射為內存地址

靜態地址重定位

靜態地址重定位在虛擬空間程序執行之前由裝配程序完成地址映射工作

特點:

  • 對于虛擬空間內的指令或數據來說,靜態地址重定位只完成一個首地址不同的連續地址變換
  • 所有待執行的程序必須在執行之前完成它們之間的鏈接

優點:不需要硬件支持。
缺點:無法實現虛擬存儲器;必須占用連續的內存空間,并且難以做到程序和數據的共享。

動態地址重定位

動態地址重定位在程序執行過程中,在CPU訪問內存之前,將要訪問的程序或數據地址轉換成內存地址。

特點:動態重定位依靠硬件地址變換機構完成

優點:

  • 可以對內存進行非連續分配
  • 動態重定位提供了實現虛擬存儲器的基礎
  • 有利于程序段的共享

地址重定位機構需要一個(或多個)基地址寄存器BR和一個(或多個)程序虛擬地址寄存器VR。指令或數據的內存地址MA與虛擬地址的關系為:MA=(BR)+(VR)

內外存數據傳輸控制

目的

實現內存擴充

過程

內存和外存之間必須經常地交換數據,即將執行的程序和數據段調入內存,處于等待狀態的程序和數據段調出內存

基本控制方法

用戶自己控制:

覆蓋:
1.要求用戶清楚地了解程序的結構,并指定各程序段調入內存的先后次序
2.覆蓋技術不能實現虛擬存儲器

操作系統控制

交換(swapping)方式

1.交換方式由操作系統把那些在內存中處于等待狀態的進程換出內存,而把那些等待事件已經發生、處于就緒態的進程換入內存
2.交換方式一般不進行部分交換,每次交換除去常駐內存部分后的整個進程
3.交換方式能完成內存擴充任務,但不能實現進程大小不受內存容量限制的虛擬存儲器

請求調入(on demand)方式和預調入(on prefetch)方式

請求調入方式是在程序執行時,如果所要訪問的程序段或數據段不在內存中,則操作系統自動地從外存將有關的程序段和數據段調入內存

預調入由操作系統預測在不遠的將來會訪問到的程序段和數據段部分,并在它們被訪問之前選擇適當的時機調入內存

請求調入方式和預調入方式可以實現進程大小不受內存容量限制的虛擬存儲器

內存的分配與回收

存儲管理模塊要為每一個并發執行的進程分配內存空間。另外,當進程執行結束之后,存儲管理模塊要及時回收該進程所占用的內存資源,以便給其他進程分配空間

策略:
(1) 分配結構:登記內存使用情況,供分配程序使用的表格與鏈表。例如內存空閑區表、空閑區隊列等。
(2) 放置策略:確定調入內存的程序和數據在內存中的位置。這是一種選擇內存空閑區的策略。
(3) 交換策略:在需要將某個程序段和數據調入內存時,如果內存中沒有足夠的空閑區,由交換策略確定內存中的哪些程序段和數據段調出內存,以便騰出足夠的空間。
(4) 調入策略:外存中的程序段和數據段什么時間按什么樣的控制方式進入內存。調入策略與內外存數據交換的控制方式有關。
(5) 回收策略:回收策略包括兩點,一是回收的時機,二是調整回收空閑區和已存在空閑區。

內存信息的共享與保護

共享

在多道程序設計環境下,內存中的許多用戶或系統程序和數據段可供不同的用戶進程共享。這種資源共享將會提高內存的利用率

保護

內存信息保護方法有硬件法、軟件法和軟硬件結合三種:

上下界保護法是一種常用的硬件保護法

為每個進程設置一對上下界寄存器,分別放置被保護程序和數據段的起始地址和終止地址。
程序執行過程中,對內存進行訪問操作時首先進行訪址合法性檢查,即檢查重定位后的內存地址是否在上、下界寄存器規定的范圍之內。
在規定的范圍之內,訪問是合法的;否則是非法的,并產生訪址越界中斷。

保護鍵法也是一種常用的存儲保護法
為每一個被保護存儲塊分配一個單獨的保護鍵。在程序狀態字中設置相應的保護鍵開關字段,不同進程賦予不同的開關代碼與被保護的存儲塊中的保護鍵匹配。保護鍵可設置成對讀寫同時保護或只對讀、寫進行單項保護。

保護鍵0對2K到4K的存儲區進行讀寫同時保護的,保護鍵2對4K到6K的存儲區進行寫保護。

如果開關字與保護鍵匹配或存儲塊未受到保護,則訪問該存儲塊是允許的,否則將產生訪問出錯中斷。

界限寄存器與CPU的用戶態或核心態工作方式相結合的保護方式

在這種保護模式下,用戶態進程只能訪問界限寄存器規定范圍內的內存部分,核心態進程可以訪問整個內存地址空間

總結

以上是生活随笔為你收集整理的存储管理-存储管理的功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。