LINUX進程

1. LINUX 進程有三部分組成,代碼段:存放程序的可執行代碼;數據段:存放程序的全局變量,常量,靜態變量。堆棧段:存放動態分配的內存變量。
2.進程的狀態可分爲:1.運行狀態:進程正在運行或者在運行隊列中等待運行。
                                2.可中斷狀態:進程正在等待某個事件完成。等待過程中可以被信號或定時器喚醒。
                3.不可中斷狀態:進程也正在等到某個事件完成,在等待中不可以被信號或定時器喚醒,必須等待直到等待的事件完成。
                4.僵死狀態:進程已經終止,但進程描述符依然存在,直到進程調用WAIT()函數後釋放。
                5.停止狀態:進程因爲手到了信號後停止運行或該進程正在被跟蹤。
3.進程的創建有兩種方式:1.由操作系統創建。2.由父進程創建。
4.fork()函數:  fork()函數,Linux系統調用
  頭文件:
  #include <unistd.h>
  函數定義:
  int fork( void );
  返回值:
  子進程中返回0,父進程中返回子進程ID,出錯返回-1
  函數說明:
  一個現有進程可以調用fork函數創建一個新進程。由fork創建的新進程被稱爲子進程(child process)。fork函數被調用一次但返回兩次。兩次返回的唯一區別是子進程中返             回0值而父進程中返回子進程ID。
  子進程是父進程的副本,它將獲得父進程數據空間、堆、棧等資源的副本。注意,子進程持有的是上述存儲空間的“副本”,這意味着父子進程間不共享這些存儲空間,它們     之間共享的存儲空間只有代碼段。
5.孤兒進程:是指如果一個子進程的父進程先於子進程結束,子進程就成爲一個孤兒進程,它有INIT進程收養,成爲INIT進程的子進程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章