什麼是進程?
進程是已啟動的可執行程序的運行實例,進程有以下組成部分:進程的生命周期
父進程復制自己的地址空間(fork)創建一個新的(子)進程結構。每個新進程分配一個唯一的進程 ID (PID),滿足跟蹤安全性
之需。PID 和 父進程 ID (PPID)是子進程環境的元素,任何進程都可以創建子進程,所有進程都是第一個系統進程的後代:
Centos5/6: init
Centos7: systemd
子進程繼承父進程的安全性身份、過去和當前的文件描述符、端口和資源特權、環境變量,以及程序代碼。隨後,子進程可能exec
自己的程序代碼。通常,父進程在子進程運行期間處於睡眠(sleeping)狀態。當子進程完成時發出(exit)信號請求,在退出時,
子進程已經關閉或丟棄了其資源環境,剩余的部分稱之為僵停(僵屍Zombie)。父進程在子進程退出時收到信號而被喚醒,清理剩
余的結構,然後繼續執行其自己的程序代碼。
進程狀態:
在多任務處理操作系統中,每個CPU(或核心)在一個時間點上只能處理一個進程。在進程運行時,它對CPU 時間和資源分配的要求
會不斷變化,從而為進程分配一個狀態,它隨著環境要求而改變。