作業系統到底是個什麼鬼 (二)

2021-10-19 18:07:14 字數 1363 閱讀 7154

指令的執行

首先說明一點:程式是指令的集合

程式的執行就是按照某種控制流程執行指令的過程。

乙個單一指令需要的處理叫做指令週期

乙個指令週期需要兩個步驟:

取指週期

執行週期

執行指令的硬體是大名鼎鼎的cpu,cpu看似很複雜,其實很簡單,它的構成無非就是運算器,儲存器再就是控制器,cpu為了方便執行指令,科學家設計了大量的暫存器,就是為了暫時儲存指令的;

其中最重要的是這兩種:

指令暫存器(ir)

儲存的是已經取到的指令

具體的幹活流程是這樣的:

比如,現在執行的是2指令,pc中存放的就是3,;

2執行完了之後,程式計數器pc裡面放的是啥就執行啥,放的是3就執行3;

執行完3之後把3放在指令暫存器ir中,與此同時,程式計數器pc加一,也就是變成了4;

然後再執行4,執行完了之後把4再放入指令暫存器ir中,與此同時,程式計數器pc再加一變成5;

…… 就這樣,迴圈往復

指令的動作

指令中包含處理器要採取動作的位

假如要執行1+2這樣的操作,其中的+就是操作碼,位址碼儲存的就是1和2的位址。

處理器解釋指令並執行要求的動作,這些動作可以分為:

處理器與儲存器之間的指令或資料傳送的操作

處理器與i/o裝置之間的指令或資料傳送的操作

算術運算操作或者是邏輯運算操作

控制運算操作,也就是我修改指令的執行順序的操作

程序管理

剛才提到指令,其實就是為了說明程式的執行,那麼程式都來了,程序還會遠嗎?

程式的執行就是程序!程序可是作業系統的核心!

程序的描述

1.程式的順序執行

先進入記憶體的程式先執行,在乙個程式執行完畢之前,不能執行其他程式

特點:封閉性

其實就是獨佔資源

順序性大家排好隊乙個個執行

可再現性

也就是無論執行多少次結果都一樣

問題:不能使輸入機、處理器和印表機同時幹活。

2.程式的併發執行

在同一時間間隔內執行多個程式,乙個程式結束前可以執行其他的程式

特點:間斷性

程式在cpu上執行時斷斷續續

失去封閉性

系統的狀態不再只對正在執行的程式可見

不可再現性

同乙個程式輸入相同的情況下多次執行,可能出現不同的結果

程式和程序的對比

1.程式是靜態的,程序是動態的,程序是併發執行的程式在某個資料集合上的執行過程

2.程式是指令的集合,程式是由指令組成的,而程序是由程序控制塊(pcd)、使用者資料段和正文段組成

3.程式是永久的,無論何時,至少不解除安裝永遠都會待在硬碟裡,程序是暫時的,程式執行結束程序也就消失了

IPU到底是個什麼鬼?

在 i.mx6 應用處理器中,有乙個很重要的單元 ipu image processing unit 影象處理單元。影象處理單元的目標是提供從影象輸入 攝像頭感測器 電視訊號輸入等 到顯示裝置 lcd顯示屏 tv輸出 外部影象處理單元等 端到端的資料流訊號處理的全面支援。ipu庫 ipu libra...

volatile到底是個什麼鬼 詳解

先看乙個現象,main執行緒對run變數的修改對於t執行緒不可見,導致了t執行緒無法停止 static boolean run true public static void main string args throws interruptedexception t.start sleep 1 r...

關於Redux到底是個什麼鬼

我們故事的主人公,小明。小明大學剛畢業,擺脫了宿舍的集體生活,自己在外面租了個一室一廳的小公寓住。這是客廳的平面圖 一天小明邀請小馬來家裡做客。小馬說 呀你家的家具擺放位置好奇特!這種通過眼睛看到的視覺效果,就是react。每乙個家具都是乙個component,各種不同的components組成了乙...