天天看點

Linux學習筆記7-1程序運作原理

1,程式與程序

程式是一組指令及參數的集合,按照既定的邏輯控制計算機運作用來完成特定任務

程序是運作着的程式,是作業系統執行的基本機關,是程式運作的過程,動态,有生命周期及運作狀态

2,程序生命周期

父程序複制自己的位址空間(fork)建立一個新的(子)程序結構。每個新程序配置設定唯一的程序ID(PID),滿足跟蹤安全性之需。PID和父程序(PPID)是子程序環境的元素,任何程序都可以建立子程序,所有程序都是第一系統程序的後代

Centos5/6: init

Centos7: systemd

3,父子程序的關系

子程序是由一個程序所産生的程序,産生這個子程序的程序成為父程序,在linux系統中,使用系統程序調用fork建立程序。fork複制的内容包括父程序的資料和堆棧以及父程序的程序環境。父程序終止子程序自然終止

子程序繼承父程序的安全性身份,過去和目前的檔案描述符,端口,資源特權,環境變量,程式代碼。随後,子程序可能exec自己的程式代碼。通常,父程序在子程序運作期間處于睡眠(sleeping)狀态。當子程序完成時,發出(exit)信号請求,在退出時,子程序已經關閉或丢棄了其資源環境,剩餘的部分稱為僵停(僵屍Zombie)。父程序在子程序退出時收到信号而被喚醒,清理剩餘的結構,然後繼續執行自己的程式代碼

繼續閱讀