程序優先順序是乙個程序對於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 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...