2017-05-04 329 views
0

所以,從我的理解當一個程序由用戶運行時,它被放置到內存上,然後它被轉移到CPU執行。 CPU不能直接訪問物理內存,因此它創建邏輯地址,然後將其映射到物理地址。程序exectuion進程和虛擬內存

CPU如何知道何時創建邏輯地址,CPU是否知道它即將收到一些指令,從而準備一個邏輯地址?在什麼時候創建虛擬內存?

回答

0
  1. CPU可以直接訪問物理內存。程序不會傳輸到CPU(忽略緩存)。

  2. 操作系統創建並維護邏輯到物理地址轉換的頁表。一個調用操作系統服務將邏輯地址範圍映射到進程地址空間。

+0

一旦程序加載到RAM中,CPU請求數據或操作系統是否將數據發送到CPU?第一條指令如何發送給CPU,以便它知道如何根據第一條指令請求其他指令。 – sorryiamrookie

+0

程序加載程序設置虛擬地址空間。當程序開始執行時,它會觸發[很多]頁面錯誤,因爲它仍然在磁盤上。當CPU第一次嘗試訪問它們時,頁面被加載。 – user3344003