Linux 小白從零搞懂程序 1

2021-10-17 05:19:59 字數 1163 閱讀 2349

linux程序概念(上)

馮諾依曼體系結構—現代計算機的硬體結構:

(1)採用儲存程式方式,指令和資料不加區別混合儲存在同乙個儲存器中,資料和程式在記憶體中是沒有區別的,它們都是記憶體中的資料,當eip指標指向哪 cpu就載入那段記憶體中的資料,如果是不正確的指令格式,cpu就會發生錯誤中斷. 在現在cpu的保護模式中,每個記憶體段都有其描述符,這個描述符記錄著這個記憶體段的訪問許可權(可讀,可寫,可執行).這就變相的指定了哪些記憶體中儲存的是指令哪些是資料)

指令和資料都可以送到運算器進行運算,即由指令組成的程式是可以修改的。

(2)儲存器是按位址訪問的線性編址的一維結構,每個單元的位數是固定的。

(3)指令由操作碼和位址碼組成。操作碼指明本指令的操作型別,位址碼指明運算元和位址。運算元本身無資料型別的標誌,它的資料型別由操作碼確定。

(4)通過執行指令直接發出控制訊號控制計算機的操作。指令在儲存器中按其執行順序存放,由指令計數器指明要執行的指令所在的單元位址。指令計數器只有乙個,一般按順序遞增,但執行順序可按運算結果或當時的外界條件而改變。

(5)以運算器為中心,i/o裝置與儲存器間的資料傳送都要經過運算器。

(6)資料以二進位制表示。

作業系統(核心+外核):直白點說就可以看成是乙個搞管理的軟體,管理計算機上的硬體系統。

我們使用者就是通過訪問作業系統從而完成對系統的操作,但是使用者不可以直接訪問核心,因此核心會向外提供訪問介面以供使用者訪問操作,這些介面便是系統呼叫。

簡單描述:程序就是乙個進行中的程式。

深刻理解:

先從cpu的分時機制說起:cpu的分時機制就是實現系統執行多個程式的技術。cpu只負責執行指令、處理指令,而處理哪乙個指令cpu並不關心,這就體現出了作業系統的程序管理—對程式執行排程的管理。實際上,每個程式都是以時間片極其快速的輪迴執行,並不是真正的同時執行。

那麼作業系統是如何排程管理的呢?

作業系統先將每乙個程式的執行資訊儲存下來,進行排程管理的時候就會知道這個程式上次執行到了**。也就是說作業系統對每乙個執行程式都有乙個描述資訊,這個描述資訊就叫做pcb。作業系統正是通過乙個程式執行的描述,讓乙個程式執行起來的。

所以,深刻的理解下,對於作業系統來說,程序就是pcb!!

Linux 小白從零搞懂程序(2)

linux程序概念 下 程序狀態 每個pcb都會描述乙個執行的狀態資訊,通過狀態資訊,告訴作業系統當前這個程序在幹什麼,而狀態又分為一下三種 在linux中,對以上狀態加以細分 1 就緒以及執行 即正在執行的程序 2 可中斷休眠狀態 可被打斷的休眠,後進入執行 3 不可中斷休眠狀態 只能通過滿足某些...

科研小白從零高階(一) 引語

之前自學python之類的已經過去了,就不再記錄。1 專注 2 向牛人學習,要讓載體效率最高。找到會的人,會的實驗室,效率最高。3 善假於物。4 投資時間。比如學工具兩小時,該工具每天可給我減少1小時。但沒有看到更高效的方式,自己就不知道。很多時候,自己很忙,只是太低效了。有這樣一種意識,當發現某件...

從零學起vue(學習筆記1)

1 響應式資料繫結2 組合的檢視組建 3 傳遞引數 1 首先需要宣告掛載點 el demo 2 然後傳資料 data data 實現響應的資料繫結 vm.message 使用object.definedproperty中的setter getter 資料,監控對資料的操作 ie8不相容 mdn 模板...