Linux程序狀態

2021-08-27 12:48:56 字數 2045 閱讀 9394

程序管理

程序常用命令

|-w檢視當前系統資訊

|-ps程序檢視命令

|-kill終止程序

|-乙個存放記憶體中的特殊目錄/proc

|-程序的優先順序

|-程序的掛起與恢復

|-通過top命令檢視程序

計畫任務

|-計畫任務的重要性

|-一次性計畫at和batch

|-週期性計畫crontab

程序管理的概念

程序和程式區別

1.程式是靜態概念,本身作為一種軟體資源長期儲存;而程序是程式的執行過程,它是動態概念,有一定的生命期,是動態產生和消亡的。

2.程式和程序無一一對應關係。乙個程式可以由多個時程公用;另一一方面,乙個程序在活動中有可順序地執行若干個程式

父子程序的關係

1.子程序是由乙個程序所產生的程序,產生這個子程序的程序稱為父程序

2.在linux系統中,使用系統呼叫fork建立程序。fork複製的內容包括父程序的資料和堆疊段以及父程序的程序環境。

3.父程序終止子程序自然終止。

前台程序和後台程序

前台程序

在shell提示處理打入命令後,建立乙個子程序,執行命令,shell等待命令退出,然後返回到對使用者給出提示符。這條命令與shell非同步執行,即在前台執行,使用者在它完成之前不能執行別乙個命令。

後台程序

在shell提示處打入命令,若後隨乙個&,shell建立子程序執行此命令,但不等待命令退出,而直接返回到對使用者給出提示。這條命令與shell同步執行,即在後台執行。「後台程序必須是非互動式的」

程序的狀態

◆執行狀態(task_running)

當程序正在被cpu執行,或已經準備就緒隨時可由排程程式執行,則稱該程序為處於執行狀態(running)。程序可以在核心態執行,也可以在使用者態執行。當系統資源已經可用時,程序就被喚醒而進入準備執行狀態,該狀態稱為就緒態。這些狀態(圖中中間一列)在核心中表示方法相同,都被成為處於task_running狀態。

◆可中斷睡眠狀態(task_interruptible)

當程序處於可中斷等待狀態時,系統不會排程該進行執行。當系統產生乙個中斷或者釋放了程序正在等待的資源,或者程序收到乙個訊號,都可以喚醒程序轉換到就緒狀態(執行狀態)。

◆暫停狀態(task_stopped)

當程序收到訊號sigstop、sigtstp、sigttin或sigttou時就會進入暫停狀態。可向其傳送sigcont訊號讓程序轉換到可執行狀態。

◆僵死狀態(task_zombie)

當程序已停止執行,但其父程序還沒有詢問其狀態時,則稱該程序處於僵死狀態。

◆不可中斷睡眠狀態(task_uninterruptible)

與可中斷睡眠狀態類似。但處於該狀態的程序只有被使用wake_up()函式明確喚醒時才能轉換到可執行的就緒狀態。

當乙個程序的執行時間片用完,系統就會使用排程程式強制切換到其它的程序去執行。另外,如果程序在核心態執行時需要等待系統的某個資源,此時該程序就會呼叫

sleep_on()或sleep_on_interruptible()自願地放棄cpu的使用權,而讓排程程式去執行其它程序。程序則進入睡眠狀

態(task_uninterruptible或task_interruptible)。

只有當程序從「核心執行態」轉移到「睡眠狀態」時,核心才會進行程序切換操作。在核心態下執行的程序不能被其它程序搶占,而且乙個程序不能改變另乙個程序的狀態。為了避免程序切換時造成核心資料錯誤,核心在執行臨界區**時會禁止一切中斷。

ps:程序已死亡,但父程序沒有收屍,該程序就成殭屍程序

殭屍程序不開啟任何檔案,幾乎不佔記憶體,但是佔據程序表的資源,程序表記錄

pid、

程序狀態、

cpu時間等

殭屍狀態是每個子程序結束時必經的狀態

系統監控中出現大量殭屍程序,應檢查其父程序**

linux 程序 狀態

程序在執行過程中會根據環境來改變state。linux程序有以下狀態 running 程序處於執行 它是系統的當前程序 或者準備執行狀態 它在等待系統將cpu分配給它 waiting 程序在等待乙個事件或者資源。linux將等待程序分成兩類 可中斷與不可中斷。可中斷等待程序可以被訊號中斷 不可中斷等...

linux程序狀態

1.r task running,正在執行或者處於就緒狀態 很多作業系統教科書將正在cpu上執行的程序定義為running狀態 而將可執行但是尚未被排程執行的程序定義為ready狀態,這兩種狀態在linux下統一為 task running狀態。例子 ps aux 會看到ps這個程式命令的執行狀態是...

Linux程序狀態

在linux中,常見的程序狀態有以下幾種 task running 0 程序正在執行或者等待被排程執行 task interruptible 1 程序由於等待某個系統資源或者某個事件而處於掛起 睡眠 狀態。對其傳送訊號 signal 可以將其喚醒 進入task running狀態 task unin...