linux重要知識清單:進程管理

相關的系統調度

  • fork():  用於創建進程,Linux中進程的創建者與被創建者是父子關係
  • clone():克隆,真正實現創建進程的操作,fork()是不帶參數的,clone()是帶參數的,通過不同的參數後,可以不僅僅做fork(),也能做其他的創建進程的方式
  • exec():加載外部存儲器的一段代碼,把一個可執行文件,加載到當前的進程執行環境中。往往是和fork()和clone搭配使用的。
  • exit():退出;進程生命週期結束就會執行exit(),消亡時exit()會把這個信息通知父進程,父進程根據這些信息做出相應的反映。
  • wait4(): 子進程的運行情況需要通過一些方式將信息反饋給父進程,這個系統調用和反饋信息密切相關;等待相應的子進程反饋相應的數據狀態信息
  • waitpid():同上

進程描述符

進程描述符是用來在操作系統中標識一個進程的

slab機制

slab機制的linux進行進程描述符分配的一種機制。

比如土司面報被切成很多片,每一塊就是slab.

內存區間通過動態分配機制分配下來,這個區間按照一定的結構尺寸切成若干份,在使用時就在若干份存儲區間中去申請,每次去分配一塊,每塊對應的就是具體應用的數據結構的尺寸;應用在進程描述符時,每個slab的尺寸就是進程描述符的尺寸。

Linux爲什麼用這種機制而不是使用動態分配內存呢?

針對資源要被頻繁使用歸還的使用slab機制就可以提升很大的效率

分配進程描述符

2.6內核之前,在每個進程內核棧末端來分配。

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