Linux 程序的基本概念

2021-10-02 21:42:46 字數 2302 閱讀 3661

在了解程序之前先要知道作業系統的基本原理。

作業系統是管理計算機硬體與軟體資源的電腦程式,是計算機系統的核心與基石。簡單理解就是,作業系統包括核心與其他程式兩部分。

設計作業系統就是方便使用者與硬體進行互動,幫助使用者管理軟硬體資源。那麼怎麼管理呢?

例如:學生、班長、班主任,學生被班長管理,班長又受班主任管理,層層遞進。

總的來說,作業系統管理軟硬體資源,就是先對其進行描述,再對其進行組織管理。

概念

程序是乙個執行中的程式,但是作業系統將執行中的程式描述起來,通過描述來實現對程式的執行排程,這個描述資訊就是作業系統排程乙個程式執行的實體。

task_struct中包含的內容(pcb中的內容)

作業系統組織程序的方式:通過鍊錶的形式將task_struct結構體存在核心中。

cpu的分時機制(時間片輪轉)

cpu對每乙個程序的處理時間都非常的短,處理完後,切換下乙個程序,不停的進行輪詢處理。

程序的檢視

程序建立

fork函式,它從存在中的程序建立乙個新程序,該新程序稱為子程序,原程序稱為父程序。

#include

#include

int res =

fork()

;

fork返回值:

fork建立子程序之後,通常要用if分流

#include

#include

#include

intmain()

else

if(ret ==0)

else

return0;

}

使用fork建立子程序,新的程序(子程序)會複製父程序(**共享,資料獨有),用fork建立出來的子程序,只是拷貝fork函式後面的資料,之前的不會拷貝。

程序狀態

程序的狀態有:就緒態,執行態、阻塞態。

linux下程序的狀態:

程序狀態檢視的方法:ps -aux/-axj

產生原因:父程序提前退出,子程序就被稱為「孤兒程序」,子程序成為後台程序,並且子程序被1號程序所收養,其父程序變為1號程序。

#include

#include

#include

intmain()

else

if(ret ==0)

else

return0;

}

子程序退出後,資源沒有釋放,處於僵死狀態。

產生原因:子程序優先于父程序退出,父程序正在執行其他操作,沒有關注子程序退出,這時候作業系統為了保護子程序退出的原因,不會釋放子程序中的資源,子程序既沒有執行,也沒有退出,處於僵死狀態,成為殭屍程序。

殭屍程序的危害怎麼避免產生殭屍程序

在作業系統中,用來指定作業系統的執行環境的引數。

常見的環境變數

檢視環境變數

每個程式都有乙個環境表,環境表類似於乙個指向陣列的指標,在陣列中存放乙個個環境引數。

檢視環境變數的方法:

}由於子程序會複製父程序的pcb,所以父程序的環境變數,子程序可以被繼承。

linux 程序 一 基本概念

1,程序的基本概念 簡單來說程序就是執行期的程式,但是同時程序也不至於此,它還包括了其它資源 如開啟的檔案,掛起的訊號等等 linux是乙個多工多使用者作業系統,乙個任務 task 就是乙個程序 process 即程序 任務,在linux系統中,程序和執行緒共享一系列的資源 位址空間,檔案,訊號,名...

Linux中程序的基本概念

程序是什麼?程序 站在使用者角度,程序是執行中的程式。站在作業系統角度,程序好像c 中乙個乙個的類一樣。這些類中有各種各樣的描述程序的東西,當然還有各種各樣的方法用來去為使用者做事情。當然作業系統管理著這些類,讓這些類執行或者不執行。那麼這個類就叫做pcb,在linux下叫做task struct,...

程序基本概念

程式在計算機上的一次執行過程。即進行中的程式。程序 是活的,動態的。有生命週期。只能對應乙個程式。程式 是死的,靜態的。指令的集合。可以對應多個程序。就緒 程序已獲得除cpu以外的所有必要的資源 獲得cpu立即執行。執行 程式正在cpu上執行。阻塞 等待某個事件發生而無法執行時 放棄cpu。task...