1. 程式人生 > >程序控制程式設計預習需要注意的地方

程序控制程式設計預習需要注意的地方

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回收;用“signalSIGCHLDSIG_IGN)”通知核心,子程序結束後,核心會回收。

8. 程序退出

Linux 中,程序退出表示程序即將結束。在Linux 中程序分為正常退出和異常退出兩種。

正常退出:

main()函式中執行return

呼叫exit()函式

呼叫_exit()函式

異常退出:

呼叫about函式

程序收到某個訊號,而該訊號使程序終止。