這兩天一直在看linxu程序和執行緒的東西,總是效率比較低,這麼一點基礎的東西還看了這麼久。該自我反省一下。
首先來看看程序。程序分為三個部分,程序控制塊,程式段和資料段。程序是乙個有生命的實體,程式是乙個沒有生命的實體。只有cpu賦予程式生命的時候,程式才成為乙個活動的實體,我們稱之為「程序」。每乙個程序都有自己的位址空間。一般包括文字區(**區),資料區,堆疊。文字區儲存程式執行的**;資料區儲存變數和動態分配的記憶體;棧區儲存活動過程呼叫的指令和區域性變數。程序是資源管理的最小單元。
再來看看執行緒。執行緒又被稱為輕量級程序。不同的程序之間有不同的**空間和資料空間,但是同乙個程序之內的執行緒卻共享該程序的資料空間和**空間。不僅如此,它們還共享程序開啟的檔案描述符,訊號控制代碼,訊號處理器和當前目錄狀態,以及程序id和程序組id。但是每個執行緒也有自己獨佔的資源,包括:執行緒id,執行緒堆疊,程式計數器和錯誤返回碼,執行緒優先順序,訊號遮蔽碼等。
Linux程序和執行緒
linux核心只有程序,沒有執行緒的概念。非要說區別,那就是執行緒沒有自己的單獨的位址空間 mm struct 執行緒和其父程序共享位址空間。pthread呼叫fork clone vm 來建立新的程序,子程序與父程序共享vm空間。注意,這裡實際上是共享mm struct結構,子程序甚至沒有建立自己...
linux 程序和執行緒
程序和執行緒 程序 process 和執行緒 thread 是作業系統的基本概念,下面用乙個模擬,來解釋它們。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一次只能供給乙個車間使用。也就是說,乙個車間開工的時候,其他車間都必須停工。背後的含義就...
linux 程序和執行緒
程序 程序是作業系統的核心,是執行任務的單元。程序都是有對應的實體,每乙個程序被建立,系統會為他分配儲存空間等必要資源,然後在核心管理區為該程序建立管理節點,方便控制和控制程序的執行。執行緒 執行緒的作業系統的運算排程的最小單元,是包含在程序之中。1 目的 程序和執行緒都是用實現多工併發的技術收端,...