天天看點

程序-三種類型,三種狀态

(一)程序的概念

程序是執行一個程式時所配置設定的資源,資源包括占用的cpu,記憶體等,是一個動态運作過程。

(二)程序的組成

正文段

使用者資料段

系統資料段

程序控制塊(pcb)

cpu寄存器值

堆棧

(三)程序控制塊PCB

程序控制塊是系統用來控制和管理程序,獲得程序狀态和程序存在特征的唯一辨別。

包括:

程序辨別 PID

程序使用者 UID

程序狀态

程序的優先級

檔案描述符表

(四)程序的三種類型

(1)互動程序:在shell下啟動,即可在前台運作也可在背景運作。

ctrl + c 或者 關閉終端 程序結束

(2)批處理程序:和終端無關,是被送出到一個作業隊列中一邊順序執行(腳本運作)

(3)系統守護程序(監控程序):和終端無關(不占用終端),始終在背景運作,和linux系統共存亡

init是Linux系統操作中不可缺少的程式之一。所謂的init程序,它是一個由核心啟動的使用者級程序。

核心自行啟動(已經被載入記憶體,開始運作,并已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導程序。是以,init始終是第一個程序(其程序編号始終為1)。 其它所有程序都是init程序的子孫。init程序是不可殺的(即不能通過kill 指令殺掉程序)!

(五)程序的三種狀态

  1. 運作狀态(R):程序已經獲得CPU,正在運作,在多處理器系統中,會有多個程序同時處于運作狀态。
  2. 就緒狀态:程序獲得了除了CPU之外的所有的必要資源,隻要獲得CPU就可以立即執行,此時的程序處于就緒态。
  3. 阻塞狀态(停止态 T):處于執行狀态的程序由于發生某些事件而暫時無法繼續執行,放棄處理器而處于暫停狀态,此時程序就處于阻塞(執行受到阻塞)狀态。

    可中斷 S

    不可中斷 D

    備注:

    (1)五态 :外加 建立态和終止态

    (2)僵屍态(Z):等待回收資源的程序狀态,無法被喚醒。

    死亡态 :已終止程序,但是程序控制塊pcb沒有被釋放。

    程式-三種類型,三種狀态