linux下程式的優先順序

2021-07-15 16:28:58 字數 854 閱讀 5784

linux下的程序排程優先順序是從-20到19,一共40個級別,

數字越大,表示程序的優先順序越低

。預設時候,程序的優先順序是0。檢視程序優先順序有兩個辦法:ps和top。top命令顯示的ni列的值。或者可以使用ps -efl來檢視,也是在ni列表示了程序的優先順序。

程序的優先順序可以在程式執行的時候設定,也可以在程式執行過程中動態的修改。

運 行的時候設定程序的優先順序可以使用nice命令,比如要使得top命令執行時候的優先順序是5而不是預設的0,則可以使用nice -n 5 top,來使得top命令執行在5的優先級別。如果top命令已經在執行,則有兩個辦法可以動態的調整程序的級別。可以在top中輸入r命令,然後按照提 示輸入top命令對應的程序號,再按照提示輸入要調整到哪個級別。另乙個方法是使用renice命令,幫助如下:

[oracle@rac1 ~]$ renice --help

usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]

此 命令使用也很簡單,可以調整單個程序,乙個使用者或者乙個組的所有程序的優先順序。示例如下:renice +10 -u oracle,此命令把oracle使用者的所有程序的優先順序全部調為10,包括新建立的和已經在執行的oracle使用者的所有程序。此處的+10並不是表 示在現有級別上再往上調整10個級別,而是調整到正10的級別,所以多次執行此命令,程序的優先順序不會再發生變化,將一直停留在+10級別。

注意:如果不是root許可權,則侄只能降排程優先順序而不能提高,即使是自己使用者的程序,自己把它調高了後,優先順序也不能再被調會原來的值了,除非使用root使用者來調回去。

系統重啟後,對程序優先順序的調整全部失效,所有程序的排程回到預設的初始級別。

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

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

linux 執行緒優先順序

linux核心的三種排程方法 1,sched other 分時排程策略,2,sched fifo實時排程策略,先到先服務 3,sched rr實時排程策略,時間片輪轉 sched rr排程和sched fifo排程的程序屬於實時程序,以分時排程的程序是非實時程序。當實時程序準備就緒後,如果當前cpu...

linux執行緒優先順序

建立執行緒的順序 other rr low pri fifo low pri rr high pri fifo high pri rr low pri 可以搶占 other fifo low pri 可以搶占 rr low pri rr high pri 可以搶占 fifo low pri fifo...