(一)程序的概念
程序是執行一個程式時所配置設定的資源,資源包括占用的cpu,記憶體等,是一個動态運作過程。
(二)程序的組成
正文段
使用者資料段
系統資料段
程序控制塊(pcb)
cpu寄存器值
堆棧
(三)程序控制塊PCB
程序控制塊是系統用來控制和管理程序,獲得程序狀态和程序存在特征的唯一辨別。
包括:
程序辨別 PID
程序使用者 UID
程序狀态
程序的優先級
檔案描述符表
(四)程序的三種類型
(1)互動程序:在shell下啟動,即可在前台運作也可在背景運作。
ctrl + c 或者 關閉終端 程序結束
(2)批處理程序:和終端無關,是被送出到一個作業隊列中一邊順序執行(腳本運作)
(3)系統守護程序(監控程序):和終端無關(不占用終端),始終在背景運作,和linux系統共存亡
init是Linux系統操作中不可缺少的程式之一。所謂的init程序,它是一個由核心啟動的使用者級程序。
核心自行啟動(已經被載入記憶體,開始運作,并已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導程序。是以,init始終是第一個程序(其程序編号始終為1)。 其它所有程序都是init程序的子孫。init程序是不可殺的(即不能通過kill 指令殺掉程序)!
(五)程序的三種狀态
- 運作狀态(R):程序已經獲得CPU,正在運作,在多處理器系統中,會有多個程序同時處于運作狀态。
- 就緒狀态:程序獲得了除了CPU之外的所有的必要資源,隻要獲得CPU就可以立即執行,此時的程序處于就緒态。
-
阻塞狀态(停止态 T):處于執行狀态的程序由于發生某些事件而暫時無法繼續執行,放棄處理器而處于暫停狀态,此時程序就處于阻塞(執行受到阻塞)狀态。
可中斷 S
不可中斷 D
備注:
(1)五态 :外加 建立态和終止态
(2)僵屍态(Z):等待回收資源的程序狀态,無法被喚醒。
死亡态 :已終止程序,但是程序控制塊pcb沒有被釋放。