1. 程式人生 > >程序/執行緒/協程/管程/纖程 筆記

程序/執行緒/協程/管程/纖程 筆記

下面是『雜談』,以前的我不重視基本概念。現在就需要惡補了。

認識CPU

百度百科

中央處理器(CPU,Central Processing Unit)是一塊超大規模的積體電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。

基本組成:

中央處理器主要包括運算器(算術邏輯運算單元,ALU,Arithmetic Logic Unit)和高速緩衝儲存器(Cache)及實現它們之間聯絡的資料(Data)、控制及狀態的匯流排(Bus)。它與內部儲存器(Memory)和輸入/輸出(I/O)裝置合稱為電子計算機三大核心部件。

核心:算術邏輯運算單元,也就是一個指令執行電路。就ALU而言,不存在什麼程序、執行緒、棧(更加別說堆了)等高階概念,CPU的指令數量相對較少。他處理流程就是,執行PC暫存器給的指令(實際情況肯定比這個複雜的多,還有各種異常等)。

從上面可以得知:

  1. 程式的執行錯誤絕大部分是系統給出的,如:段錯誤,資源受限等
  2. 任何層次的*程切換/排程都是需要額外資源的;

編譯雜談

程式編譯執行流程是:把程式碼按照一定規則(APCS或者其他)編譯成機器指令,APCS規定了棧等資訊。 逆向過程就是:把那些機器指令按照APCS協議用匯編的形式表示出來。高階的甚至用偽C程式碼表示(這個過程就是彙編與C直接的轉換協議)。

PS:APCS:ARM過程呼叫標準。

  1. 暫存器命名;
  2. 設計關鍵:函式呼叫,快,小,易於優化;
  3. 函式應當可以妥善處理棧;