1. 程式人生 > >linux系統程式設計--程序相關概念

linux系統程式設計--程序相關概念

程式和程序

程式:二進位制檔案,佔用的磁碟空間,還沒執行
程序:啟動的程式,資料在記憶體中,佔用系統資源(CPU,實體記憶體)

並行和併發

併發:不是一個時間點的概念,而是一個時間段的概念,某個時間段內處理的請求數量
並行:增加伺服器或cpu對請求的處理

一個cpu把一個時間段分成若干時間碎片,每個時間碎片只能處理一個程序,交替的處理程序

pcb(程序控制塊)

常見內部成員:
- 程序id
- 程序的狀態:初始,就緒,執行,掛起,終止
- 程序切換時,需要儲存和恢復一些CPU暫存器
- 描述虛擬地址空間的資訊
- 描述控制終端的資訊
- 當前工作目錄
- umask掩碼
- 檔案描述符表
- 和訊號相關的資訊
- 使用者id和組id
- 會話和程序組
- 程序可以使用的資源上限

程序狀態

執行資格(可以去搶cpu)和執行權(獲得cpu)
kill -9 pid (無條件殺死程序)

程序控制

程序如何生成子程序,fork函式

fork的返回值

>0 父程序的返回值
=0 子程序的返回值

子程序建立成果之後,程式碼的執行位置

如何區分父子程序

通過fork函式返回值