使用者態和核心態
程序在執行時一般存在兩種狀態:使用者態、核心態。
使用者態是指程序在執行使用者**,核心態時指程序在執行核心**,所以在linux中每個程序都存在兩個棧分別使用者使用者態和核心態的執行。
使用者空間和核心空間
在32位系統中linux程序的虛擬記憶體為4gb,linux核心將這4g位元組的空間分為兩部分。將最高的1g位元組(從虛擬位址0xc0000000到0xffffffff),供核心使用,稱為「核心空間」,linux核心空間由系統內的所有程序共享,這裡存放在整個核心的**和所有的核心模組,以及核心所維護的資料。而將較低的3g位元組(從虛擬位址 0x00000000到0xbfffffff),供各個程序使用,稱為「使用者空間,這個空間對系統中的其他程序是不可見的。於是,從具體程序的角度來看,每個程序可以擁有4g位元組的虛擬空間。
詳細了解推薦:
虛擬記憶體簡介
前面描述的所有作業系統基礎知識都是程序和cpu資源相關的內容,另乙個作業系統中和程序相關的比較重要的話題是記憶體資源。作業系統主要目的是執行程式,而程式在執行時,程式自身以及程式所訪問的資料 所產生的資料都在記憶體裡 至少所有資料的流向都會經過記憶體 此外,現代作業系統可以同時執行多個程序,而每個程...
Linux程序的虛擬記憶體
使用者程序的虛擬位址空間是linux的乙個重要的抽象 它為每個執行程序提供了同樣的系統檢視,這使得多個程序可以同時執行,而不會干擾到其他程序記憶體中的內容。每個應用程式都有自己的線性位址空間,與所有其他應用程式隔開。各程序虛擬位址空間起始於0,延伸到task sieze 1,其上是核心位址空間。使用...
程序虛擬記憶體模型
以32位的作業系統為例,32位的作業系統每個程序對應的虛擬記憶體為4g 232 其中核心區1g,使用者區3g 程序控制塊pcb 1.pcb是程序存在的資料結構,系統通過pcb的存在而感知程序的存在 2.系統通過pcb對程序進行排程和管理 3.程序 pcb 與pid是一對一關係,而與程式檔案之間是多對...