Linux 進程的基礎概念

什麼是進程?

運行中的程序,是將程序腳本放入內核執行。


進程創建

內核會首先創建Init進程,再由Init進程管理其他進程。進程都是由其父進程創建的。


進程優先級

0-139:

           1-99 實時優先級 數字越大 優先級越高

           100-139 靜態優先級 數字越小 優先級越高

nice值:-20~19 算是微調自己的優先級,但是優先級只能調低,不能調高。


虛擬內存

使用Page frame實現,page frame就是分頁。將不連續的物理內存(物理地址空間)以虛擬(線性地址)的方式提供給進程使用。每個分頁默認是4K。


IPC

進程間通信, Inter process Communication

同一主機上的通信:1、signal 2、shm(share memory) 3、semerphor(類似於旗語,協議語言)

不同主機上的通信:1、RPC(remote procecure call 遠程過程調用) 2、socket(套接字,遠程過程調用也基於套接字)


Linux內核的多任務是搶佔式多任務


進程類型

1、守護進程 daemon 一般由內核啓動的進程

2、前臺進程 用戶通過終端啓動的進程

注意:有些守護進程可以通過終端啓動


進程狀態

1、運行狀態

2、就緒狀態

3、睡眠狀態

                    可中斷:interruptable(CPU 時間已經耗盡)

                    不可中斷:uninterruptable(進程的數據沒有從磁盤調入到內存中完畢,進程就處於不可中斷狀態,喚醒也沒用,數據不完整)

4、停止狀態  暫停於內存中,但不會被調度。除非手動啓動

5、僵死狀態 zombie只能通過父進程處理。出現這種狀態的一個情況就是子進程在運行時父進程掛了。


進程加載數據

進程請求內核從磁盤讀入數據,那麼內核先要將磁盤數據讀入內核內存,再從內核內存複製到進程內存中。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章