第六章 可執行檔案的裝載與程序 (總結)

2021-06-06 22:11:31 字數 800 閱讀 6777

6.1 程序虛擬位址空間

可能通過判斷c語言程式中指標所佔的空間來計算虛擬位址空間的大小,一般c語言指標大小的倍數與虛擬空間的位數相同,如32位平台下的指標為32位。

6.2裝載的方式

1) 覆蓋裝入(overlay)

2)頁對映(paging) :是虛擬儲存機制的一部分,現在用的較多。

有一些演算法來排程哪些頁被裝載物理記憶體。如fifo(先進先出)、lur(最少使用)等。

6.3可執行檔案的裝載過程

6.3.1程序的建立

1)建立虛擬位址空間,即建立虛擬空間與物理空間的對映關係。

2)讀取可執行檔案頭,並且建立虛擬空間與可執行檔案的對映關係。

3)將cpu指令暫存器設定成可執行檔案入口,啟動執行。

6.3.2 頁錯誤

此時可執行檔案的指令和資料才真正裝入記憶體。

注:在記憶體中程序最多可使用3g的記憶體空間; 位址空間從0xc0000000-0xffffffff共1g的記憶體空間主要分配給作業系統。

堆的最大申請數量:在linux下大概最大2.9g

段位址對齊

程序在啟動時應該進行相應的程序棧初始化。

可執行檔案裝載與程序 動態鏈結

我們知道,可執行檔案只有裝載到記憶體以後才能被cpu執行。要了解裝載的過程,就必須先了解程序的虛擬位址空間的概念。一,程序虛擬位址空間的概念 1,程序和程式的區別 程式是靜態的概念,是未裝入記憶體的 程序是動態的概念,有時候也叫它 runtime 是已經裝入記憶體並且跑了起來的。2,程序虛擬位址空間...

第六章(4)終止執行緒的執行

終止執行緒的執行 若要終止執行緒的執行,可以使用下面的方法 執行緒函式返回 最好使用這種方法 通過呼叫 exitthread 函式,執行緒將自行撤消 最好不要使用這種方法 同乙個程序或另乙個程序中的執行緒呼叫 terminatethread 函式 應該避免使用這種方法 包含執行緒的程序終止執行 應該...

第六章Linux的檔案許可權與目錄配置

一 linux使用者分類 1 linux使用者分為 檔案 目錄 所有者 own 同組內的 使用者組,其他人 2 乙個天神 root 幾乎能完成任何事。二 目錄許可權的意義 目錄的許可權和檔案的許可權存在一些不同,檔案許可權的w不能刪除,而目錄的w可以刪除目錄和他下面的檔案,但是目錄的r只能看,不能進...