天天看點

【os學習】之 程序(Process)與線程(Thread)

一、程序(Process)

①定義:程序是程序實體的運作過程,是系統進行資源配置設定和排程的一個獨立機關。

② 程序控制塊:配置一個專門的資料結構——程序控制塊(Process Control Block,PCB),系統利用PCB來描述程序的基本情況和運作狀态,進而控制和管理程序。(常駐記憶體)

③程序映像:由程式段、相關資料段和PCB三部分組成。(程序實體)

④所謂程序:所謂建立程序,實際上是建立程序映像中的PCB;而撤銷程序,實際上是撤銷程序的PCB

⑤程序狀态:1)運作狀态,2)就緒狀态,3)阻塞狀态,4)建立狀态,5)結束狀态。

⑥程序特征:1)動态性,2)并發性,3)獨立性,4)異步性,5)結構性。

⑦程序通信:1)共享存儲,2)消息傳遞,3)管道通信

應用連結:​​Java 應用 Process​​

二、線程(Thread)

①定義:是程序中的一個實體,是被系統獨立排程和配置設定的基本機關。

②組成:是一個基本的CPU執行單元,也是程式執行流的最小單元,由線程ID 、程式計數器、寄存器集合和堆棧組成。

③系統資源:線程自己不擁有系統資源,隻擁有一點在運作中必不可少的資源,但它可與同屬一個程序的其他線程共享程序鎖擁有的全部資源。

④線程狀态:1)就緒,2)阻塞,3)運作。

⑤線程實作:1)使用者級線程(User-Level Thread,ULT) ,2)核心級線程(Kernel-Level-Thread,KLT)

應用連結:​​Java 應用 Thread​​

繼續閱讀