程序控制程式設計預習需要注意的地方
1. 程序
程序是可併發執行的程式,實在一個數據集合上的執行過程。
Linux 是一個多工的作業系統,在同一時間內可以對多個程序同時執行。
程序一般分為互動程序、批處理程序、守護程序。
程序屬性:程序ID (PID),父程序(PPID),啟動程序的使用者(UID),所歸屬的組(GID);程序狀態:執行R、休眠S、殭屍Z。
2. 程序管理
Linux程序的管理,是通過管理工具實現的。
監視程序工具 ps
查詢程序工具 pgrep
終止程序的工具 kill 、 killall 、 pkill 、 xkill
監視系統任務的工具 top
3. Linux 程序的三態
三種基本狀態:就緒狀態、執行狀態、阻塞狀態
三種狀態之間的轉換:就緒 -> 執行 執行 -> 就緒
執行 -> 阻塞
阻塞 -> 就緒
4. Linux 程序結構
Linux 的一個程序在記憶體裡有三部分資料——資料段、堆疊段和程式碼段。程式碼段存放了程式程式碼的資料。堆疊段存放的是子程式的返回地址、子程式的引數,以及程式的區域性變數。資料段存放程式的全域性變數,常數,以及動態資料分配的資料空間。
5. Linux 程序排程
6. 程序建立
獲取程序
啟動程序 fork
啟動程序vfork
啟動程序exec 族
啟動程序:system
7. 程序等待
殭屍程序的產生,殭屍程序就是已經結束了的程序,但是還沒有從程序表中刪除。殭屍程序太多會導致程序表裡麵條目滿了,進而導致程序崩潰,不佔用系統資源。
避免殭屍程序:用signal 函式為SIGCHLD 安裝 handle,子程序結束後,父程序會受到該訊號,在handle 中呼叫wait回收;用“signal(SIGCHLD, SIG_IGN)”通知核心,子程序結束後,核心會回收。
8. 程序退出
在Linux 中,程序退出表示程序即將結束。在Linux 中程序分為正常退出和異常退出兩種。
正常退出:
在main()函式中執行return
呼叫exit()函式
呼叫_exit()函式
異常退出:
呼叫about函式
程序收到某個訊號,而該訊號使程序終止。