作業系統Day1位址空間與位址生成

2022-09-11 19:24:14 字數 815 閱讀 7103

1.位址空間

分成(1)實體地址空間 (2)邏輯位址空間

二者之間的關係:

*邏輯位址空間的生成:程式——》彙編--》linker——》loader

*實體地址的生成:記憶體的邏輯位址空間會有乙個到實體地址的對映,cpu的mmu表示了乙個邏輯位址對應的實體地址,作業系統最重要的功能使在其中做了乙個對應位址的安全檢測。

**連續記憶體的分配

記憶體碎片問題 (1)外部碎片 (2)內部碎片

記憶體分配演算法:(1)首次適配 (2)最優適配 (3)最差適配

(1)首次適配:按位址排序的空間列表,容易產生外部碎片

(2)最優適配演算法:選擇差值最小的空閒塊,容易產生很多沒使用的微小碎片。

(3) 最差分配演算法,選擇差值最大的空閒塊,破碎了大塊的空閒塊以至於無法被分配

**進一步處理使得記憶體碎片消失的辦法

(1)壓縮碎片整理:重置所有程式以合併空塊,要求所有的程式是動態可以重置的,缺陷:重複拷貝,記憶體開銷比較大

(2)交換式碎片整理:搶占等待的程式

**非連續物理記憶體的分配

(1)分段

(2)分頁

(3)頁表

連續記憶體分配的缺點:

(1)記憶體利用率低

(2)有外碎片和內碎片對的問題

非連續記憶體的分配優點:

(1)允許共享**和資料

(2)支援動態鏈結和動態載入

缺點:從虛擬記憶體到實體地址之間轉換的開銷比較大

分段:(1)分段的定址 (2)如何實現定址

分段:分割成堆、棧、程式資料、庫

分段定址對方案: 段號+偏移(cpu mmu進行定址)

作業系統day1

作業系統 抽象是管理複雜性的關鍵 資訊科技中,微電子是基礎,計算機和通訊設施是載體,而軟體是核心,是計算機的靈魂,而軟體中的作業系統就更是核心了,它為豐富的應用環境奠定了最堅實的基礎。第一次把微電子,通訊,軟體三個相近的專業領域的分工搞清楚誒,一直覺得這些專業都學差不太多的專業課,做差不提多的專案 ...

作業系統原理 程序位址空間

先回憶一下elf檔案的組織結構,可以看這篇文章 linux 鏈結與elf檔案。程式執行後程序位址空間布局則和作業系統密切相關。在將應用程式載入到記憶體空間執行時,作業系統負責 段與資料段的載入,並在記憶體中為這些段分配空間。linux的程序位址空間大致如下 核心虛擬儲存器包含了核心的 和資料結構。核...

Linux作業系統 程序位址空間

程序獲得線性區的情況 建立乙個新的程序,fork execve 正在執行的程序,裝入乙個不同的程式,pid不變,但是線性位址空間重新分配。execve mmap檔案對映,建立乙個線性區來對映這個檔案 使用者態堆疊的擴充套件 ipc共享記憶體,與其他程序共享資料,核心給該程序分配乙個線性區 系統中的所...