--- title: Process (行程) - 從零開始的開源地下城 tags: Linux, Linux讀書會, Kernel, 從零開始的開源地下城, COMBO-tw description: 介紹與Linux Kernel相關基本知識 lang: zh-Hant GA: G-2QY5YFX2BV --- # Process (行程) ###### tags: `Linux` ## 目錄 [TOC] ## 簡介 ### Program 程式碼及資料的集合,存在於硬碟的某個區塊 ### Process 根據[維基百科](https://zh.wikipedia.org/zh-tw/行程)定義,當program被執行時就會變成process,process才是program真正執行的實體,當process執行後,會需要額外的資源,包含程式計數器(process counter)、堆疊(stack)、資料區段(data section)、堆積(heap)。 ### Process status process在執行時會用五種不同的狀態來表示,包含: * New : 產生一個Process * Ready :當一個process準備就緒可以被執行 * Running : * Waiting : * Terminated : * 狀態轉換 1.New → Ready : 2.Ready → Running : 3.Running → Ready : 4.Running → Waiting : [排程](/@combo-tw/BJAvyI0Br) 5.Waiting → Ready : 6.Running → Terminated : ![Process status](https://d1dwq032kyr03c.cloudfront.net/upload/images/20181018/20112132KBjrIfyEp6.png) <!--![Process status](https://hackmd.io/_uploads/HypdfoZL2.png)--> ### Process Control Block(PCB) #### PID (實作) ### 記憶體中的Process ### Program 與 Process 差異 ## 實作 readelf elf ## 參考資料 * [Wikipedia-Process](https://en.wikipedia.org/wiki/Process_(computing)) * [In-Memory Layout of a Process](https://gabrieletolomei.wordpress.com/miscellanea/operating-systems/in-memory-layout/) * [Difference Between Program and Process](https://techdifferences.com/difference-between-program-and-process.html#targetText=The%20major%20difference%20between%20program,to%20be%20a%20passive%20one.) * [Program,Process,Thread](https://programming.im.ncnu.edu.tw/J_Chapter9.htm) * [iT邦幫忙process概念](https://ithelp.ithome.com.tw/articles/10202866)