1、linux中進程的概念
進程是具有一定功能的程序關於一個數據集合的一次運行活動,是處於活動狀態的計算機程序。
進程在生存期間可能處於三種基本狀態:運行態、就緒態、等待態。
在多處理操作系統中,進程具有獨立的權限和職責。如果系統中某個進程崩潰,不會影響到其他的進程。每個進程運行在各自的虛擬地址空間中,通過一定的通信機制,他們之間才能發生聯繫。
2、linux中每個進程用一個task_struct數據結構來表示。數組task包含指向系統中所有task_struct結構的指針。
3、linxu中,通過命令ps顯示當前正在運行的進程。 ps aux顯示所有的進程。可以配合grep以及管道命令進行查找工作。
4、進程有唯一的標識號(ID),另外進程還有real user ID, real group ID,effective user ID, effective group Id。一般情況下,他們是相同的,都是運行該進程的用戶ID。但我們設置set_user_ID標記位後,real user ID不變,但effective user ID 編程了文件owner ID,組也一樣,區別就是設置標記位:set_group_ID。Shell裏面用chmod 6755 filename ,suid和sgid位對應了6裏面的4和2兩個位,suid的是4,sgid的是2。
5、linux進程有兩種運行模式:用戶模式、系統模式。進程通過系統調用在這兩種模式之間切換。
可運行進程只是一個等待cpu資源的進程。(因爲時間片切換)