Linux 程序優先順序以及環境變數

2021-10-21 11:36:53 字數 1538 閱讀 4608

程序優先順序是乙個程序對於cpu資源獲取的優先權

存在優先順序的原因:

互動式程序:直接與使用者進行互動的程序 (要求能被cpu優先處理)

批處理程序:在後台有週期性迴圈工作的程序

優先順序的作用:讓作業系統執行的更加良好

優先順序就是乙個數值,數值越小優先順序越高。

建立乙個能容下140個程序的佇列,每個佇列都有相應的下標,下標就是程序的優先順序,數值越小優先順序越高。建立乙個bitmap整形陣列,乙個有160個bit位,用來儲存對應位置的程序是否存有pcb塊,作業系統可以根據是否存在pcb塊來快速呼叫程序,而不需要每次排程都要判斷下乙個程序是否存在pcb塊。作業系統還將這兩個陣列複製了一遍,active指標指向的佇列程序,當時間片結束就會轉到expire指標指向的佇列中進行排隊。當expire指向的佇列滿時就和active交換指向,依次迴圈排程active指標指向的佇列中程序。這種演算法也叫作多級反饋排程演算法時間複雜度o(1)

環境變數就是配置系統執行環境引數的變數

配置環境變數的好處:使系統執行環境配置更加簡單靈活;可以通過設定環境變數給乙個程序傳遞引數資訊

例如:修改執行的預設路徑

修改前要執行乙個可執行檔案的命令是:./test

修改執行預設路徑為當前目錄:path=$:./

修改後執行乙個可執行檔案的命令是:test

環境變數的操作

env檢視環境變數

set檢視所有變數,包含環境變數

echo檢視單個變數內容echo valname

export設定變數為環境變數export valname

unset刪除環境變數unset valname

main函式的第三個引數int main(int argc, char *ar**, char *env)env用來儲存環境變數

通過乙個全域性變數extern char **environ; (extern宣告乙個變數,這個變數實際上已經在其他地方定義了) environ儲存了所有可以訪問的環境變數的位址

char *getenv(const char *name)通過環境變數名稱獲取乙個指定環境變數的資料

特性:子程序會預設繼承父程序的環境變數

如何在makefile中獲取環境變數?

在makefile中輸入以下**

test:

echo $

執行命令make test

Linux程序優先順序和調整優先順序

linux 是乙個多使用者 多工的作業系統,系統中通常執行著非常多的程序。但是 cpu 在乙個時鐘週期內只能運算一條指令 現在的 cpu 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...

Android學習 程序以及優先順序

1 android中的程序process 當乙個android應用啟動,系統會啟動乙個程序和乙個主線程來執行這個應用。android系統會盡力保持這個程序的穩定和安全。但是,在某些特殊情況下,總會移除舊的程序來 記憶體,用於新的或者重要的程序。當要 記憶體的時候,系統要決定那些程序應該保留,那些程序...

程序優先順序

程序的優先順序可以通過setpriority nice修改優先順序。程序分為普通程序和實時程序。實時程序的優先順序比普通程序的優先順序高。nice的值 20 19值越小優先順序越高。預設為0 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...