作業系統 前言03 程式執行過程

2021-10-24 19:36:10 字數 1877 閱讀 7605

cpu讀取pc指標指向的指令,將他匯入指令暫存器.pc(program counter)程式計數器,也是一種暫存器。

2.cpu分析指令暫存器中的內容,並分析指令的型別和引數.

3.如果是計算機型別指令,就交給邏輯單元計算;如果是儲存型別的指令,難就由控制單元執行.

4.pc指標自增,並準備獲取在一條指令

如果是32位的機器上,指令就是32個bit(4 byte) ,需要4個記憶體位址,所以自增4指令的執行速度:通過石英晶體的脈衝轉化成時鐘訊號驅動的,每次高低電平的轉換就是乙個週期。我們稱為時鐘週期。

1.編譯器通過分析,發現 11 和 15 是資料,因此編譯好的程式啟動時,會在記憶體中開闢出乙個專門的區域存這樣的常數,這個專門用來儲存常數的區域,就是資料段,如下圖所示:

2.編譯器將a=11+15轉換成了 4 條指令,程式啟動後,這些指令被匯入了乙個專門用來儲存指令的區域,也就是正文段。如上圖所示,這 4 條指令被儲存到了 0x200-0x20c 的區域中:

3.具體執行的時候,pc 指標先指向 0x200 位置,然後依次執行這 4 條指令。

構造指令的過程,叫作指令的編碼,通常由編譯器完成;解析指令的過程,叫作指令的解碼,由 cpu 完成。由此可見 cpu 內部有乙個迴圈:

上面 4 個步驟,我們叫作 cpu 的指令週期。cpu 的工作就是乙個週期接著乙個週期,周而復始。

不同型別(不同 opcode)的指令、引數個數、每個引數的位寬,都不一樣。而引數可以是以下這三種型別:

論是暫存器、記憶體位址還是數值,它們都是數字。

i/o 型別的指令,比如處理和記憶體間資料交換的指令 store/load 等;。

計算機型別指令,最多處理兩個暫存器,加減法,位運算,比較大小

跳轉型別指令,用處就是修改pc指標,比如程式設計中大家經常遇到需要條件判斷+跳轉的邏輯,比如 if-else,swtich-case、函式呼叫等.

**訊號型別的指令,**比如傳送中斷的指令trap;

閒置cpu的指令nup,一般 cpu 都有這樣一條指令,執行後 cpu 會空轉乙個週期。

將兩個暫存器的值相加的 add 指令。

將乙個暫存器和乙個整數相加的 addi 指令。

直接定址:直接載入乙個記憶體位址中的資料到暫存器的指令la.

暫存器定址:直接將乙個數值匯入暫存器的指令li.

**間接定址:**將乙個暫存器中的數值作為位址,然後再去載入這個位址中的資料的指令lw.

因此定址模式是從指令如何獲取資料的角度,對指令的一種分類,目的是給編寫指令的人更多選擇。

指令的執行速度:通過石英晶體的脈衝轉化成時鐘訊號驅動的,每次高低電平的轉換就是乙個週期。我們稱為時鐘週期。

通過石英晶體的脈衝轉換成時鐘訊號驅動,每次高低電平的轉換就是乙個週期,我們稱為時鐘週期

【解析】 分類討論:

如果說的是 64 位寬 cpu,那麼有 2 個優勢:

如果 32 位/64 位說的是程式,

那麼說的是指令是 64 位還是 32 位的。

作業系統 前言02 程式是如何執行

我們先來看一道常規的面試題 相比 32 位,64 位的優勢是什麼?電腦科學方面有兩個巨大的貢獻 圖靈機的內部構造 圖靈機如何執行程式 運算流程是 圖靈機構造的這一台機器,主要功能就是讀寫紙帶然後計算 紙帶中有資料 也有控制字元 也就是指令 計算機結構分成以下 5 個部分 這個模型也被稱為馮諾依曼模型...

作業系統前言總結

作業系統 4個基本特徵 併發共享 虛擬非同步 其實同時共享微觀的角度看是交替訪問 虛擬特性比如4核的cpu電腦卻可以同時開啟許多程式不僅僅是4個程式 虛擬儲存器和虛擬處理器 時分復用 空分復用 發展歷史 1.手工作業系統 早期的打孔機,打孔表示01 2.單道批處理系統 離線輸入輸出,並監督程式負責控...

挑戰408 作業系統(17) 程式的執行過程

進入了儲存管理的部分了。也是作業系統中的一大難題。這部分接在組成原理複習完儲存器部分來複習,會對儲存器和儲存系統會有個更深入的感觸。記憶體管理的物件是記憶體,記憶體管理的方案有很多,從簡單的單一連續分配到頁式端式儲存方案,各有優點。為作業系統選擇儲存方案,依賴於很多因素,特別是硬體的支援。下面先來看...