程序(process)和執行緒(thread)是作業系統的基本概念
1.計算機的核心是cpu,它承擔了所有的計算任務
2.單個cpu一次只能執行乙個任務
3.程序它代表cpu所能處理的單個任務。任一時刻,cpu總是執行乙個程序,其他程序處於非執行狀態
4.乙個程序可以包括多個執行緒。
5.乙個程序的記憶體空間是共享的,每個執行緒都可以使用這些共享記憶體。
6.乙個執行緒使用某些共享記憶體時,其他執行緒必須等它結束,才能使用這一塊記憶體。
7.乙個防止其他執行緒使用的簡單方法"互斥鎖"(mutual exclusion,縮寫 mutex),防止多個執行緒同時讀寫某一塊記憶體區域。
8.某些記憶體區域,只能供給固定數目的執行緒使用。
作業系統的設計,因此可以歸結為三點:
(1)以多程序形式,允許多個任務同時執行;
(2)以多執行緒形式,允許單個任務分成不同的部分執行;
(3)提供協調機制,一方面防止程序之間和執行緒之間產生衝突,另一方面允許程序之間和執行緒之間共享資源。
程序和執行緒的關係
程序是系統資源管理的最小單位,執行緒是程式執行的最小單位。執行緒和程序十分相似,不同的只是執行緒比程序小。首先,執行緒採用了多個執行緒可共享資源的設計思想。例如,它們的操作大部分都是在同一位址空間進行的。其次,從乙個執行緒切換到另一線程所花費的代價比程序低。再次,程序本身的資訊在記憶體中占用的空間比...
linux執行緒和程序的關係
linux的執行緒與程序,和傳統的執行緒與程序不太一樣。傳統的windows系統下,在核心中都有專門支援執行緒的機制,所以把執行緒叫做輕量級程序。從linux核心角度來看,執行緒和程序的本質上並無太大區別,因為他們共用了一套結構體,和排程演算法。對比一下執行緒和程序的建立就可以知道 執行緒建立 cl...
Linux的程序和執行緒關係
一 理解linux的程序,執行緒,pid,lwp,tid,tgid 程序是資源分配的基本單位,執行緒是排程的基本單位 程序是資源的集合,這些資源包括記憶體位址空間,檔案描述符等等,乙個程序中的多個執行緒共享這些資源。cpu對任務進行排程時,可排程的基本單位 dispatchable entity 是...