linux優先順序
① linux下給路由設置優先順序
路由器怎麼設置優先順序,首先看路由器能不能分配網速或帶寬,要看路由器有沒有這個功能。有這功能就可以設置; 其次,那些有帶寬分配功能的路由器,一般也都是基於電腦的IP地址來進行網速或帶寬分配。
② 如何修改linux系統中進程的優先順序
可以用nice和renice
nice設定進程相對優先順序
-20~19
共40個級別,nice值越大,優先順序越低
renice
重新設定優先順序
renice
[nice
level]
[PID]
-n:指定許可權
-u:指定用戶姓名或ip
-g:指定組
-p:進程PID
例:
renice
+1
987
-u
test
root
-p
32
##更改PID為987和32的nice
level,外加所有root和test擁有的進程
③ linux操作系統設置優先順序的問題
linux下調整進程優先順序
進程的優先順序決定了進程是否優先被cpu分配資源進行處理。
在cpu資源十分充足時,每個正在運行的進程都能分配到足夠的資源進行處理,此時調整進程的優先順序是沒有什麼意義的;
如果cpu資源緊張時,top查看cpu使用達到90%以上時,優先順序高的進程將被優先分配資源去執行。
如果此時手頭有一個非常緊要的任務要執行,比如傳輸一個非常重要的數據或是准備給客戶發一封非常緊急的郵件,
你希望這些任務優先地被執行完成,那麼就需要調整這些任務的優先順序了。
優先順序的值=優先系數+nice值
優先系數由系統內核決定,不可更改
nice值可以手動更改,范圍是
-20~19
優先順序的值越低,優先順序越高;優先順序的值越高,優先順序越低。
所以想調整成最高優先順序的話,就將nice值設為-20;想調整成最低優先順序的話,將nice值設為19。
調整優先順序:
1、任務未運行前進行調整
#
nice
-n-20
sh
/xxx/xxx.sh
--以最高優先順序運行xxx.sh這個腳本
#
nice
-n19
sh
/xxx/xxx.sh
--以最低優先順序運行xxx.sh這個腳本
2、任務已經開始運行的情況下調整
①
#
top
--查看系統當前進程運行情況
>
r
--鍵入小r
>
PID
to
renice:
--提示輸入運行的進程的pid
>
Renice
PID
23302
to
value:
--把這個進程的nice值設置為多少,根據需要進行調整
②
#
renice
-20
PID
將進程的nice值改為-20
#
renice
19
PID
將進程的nice值改為19
轉載紅黑聯盟:linux下調整進程優先順序
④ linux內核線程怎麼設置優先順序
Linux內核的三種調度策略:
1,SCHED_OTHER
分時調度策略,
2,SCHED_FIFO實時調度策略,先到先服務。一旦佔用cpu則一直運行。一直運行直到有更高優先順序任務到達或自己放棄
3,SCHED_RR實時調度策略,時間片輪轉。當進程的時間片用完,系統將重新分配時間片,並置於就緒隊列尾。放在隊列尾保證了所有具有相同優先順序的RR任務的調度公平
Linux線程優先順序設置
首先,可以通過以下兩個函數來獲得線程可以設置的最高和最低優先順序,函數中的策略即上述三種策略的宏定義:
int
sched_get_priority_max(int
policy);
int
sched_get_priority_min(int
policy);
SCHED_OTHER是不支持優先順序使用的,而SCHED_FIFO和SCHED_RR支持優先順序的使用,他們分別為1和99,數值越大優先順序越高。
設置和獲取優先順序通過以下兩個函數:
int
pthread_attr_setschedparam(pthread_attr_t
*attr,
const
struct
sched_param
*param);
int
pthread_attr_getschedparam(const
pthread_attr_t
*attr,
struct
sched_param
*param);
例如以下代碼創建了一個優先順序為10的線程:
struct
sched_param
{
int
__sched_priority;
//所要設定的線程優先順序
};
例:創建優先順序為10的線程
pthread_attr_t
attr;
struct
sched_param
param;
pthread_attr_init(&attr);
pthread_attr_setschedpolicy(&attr,
SCHED_RR);
param.sched_priority
=
10;
pthread_attr_setschedparam(&attr,
¶m);
pthread_create(xxx
,
&attr
,
xxx
,
xxx);
pthread_attr_destroy(&attr);
⑤ 有哪種系統是進程優先順序數值大的優先順序高的 linux系統進程優先順序最高優先順序是-20,最低優先順序是19嗎
linux系統的優先順序數確實是這樣的。需要注意的是普通用戶只能在0~19之間調整應用程序的優先權值,只有超級用戶有權調整更高的優先權值(從-20~19)。
linux系統屬於這種數值越小優先順序越高,數值越大優先順序越低的系統。windows屬於那種優先數值大的優先順序高的系統。windows是優先數值大的優先順序高的系統。這個優先順序只對可以搶占的系統有效的。
(5)linux優先順序擴展閱讀:
進程是有優先順序的。如果即將被運行的進程的優先順序比正在運行的進程的優先順序高,則系統可以強行剝奪正在運行的進程的CPU,讓優先順序高的進程先運行。
由於具有降低優先順序的任務長時間佔用共享資源,造成申請該資源的優先順序最高的進程始終處於等待狀態,此時其他比佔用資源優先順序高但比等待資源進程優先順序低的進程將獲得處理器的使用權,並先於優先順序最高的處於等待狀態的進程先結束,稱這種現象為優先順序反轉。
⑥ linux查看線程優先順序命令
用top或者ps -l查看進程會發現有PR(PRI) NI兩個欄位:
NI 是優先值,是用戶層面的概念, PR是進程的實際優先順序, 是給內核(kernel)看(用)的。
一般情況下,PR=NI+20, 如果一個進程的優先順序PR是20, 那麼它的NI(nice)值就是20-20=0。
進程調度優先順序是從-20到19,一共40個級別,數字越大,表示進程的優先順序越低。默認時候,進程的優先順序是0。查看進程優先順序有兩個辦法:ps和top。top命令顯示的NI列的值。或者可以使用ps -efl來查看,也是在ni列表示了進程的優先順序。《Linux就該這么學》 一起學習,進程的優先順序可以在程序運行的時候設置,也可以在程序運行過程中動態的修改。
⑦ 在Linux下怎麼修改當前線程的優先順序
注意:盡量不要修改系統默認優先順序
Thread類與線程優先順序相關的屬性和方法:
MAX_PRIORITY : 線程可以具有最高優先順序
MIN_PRIORITY : 線程可以具有的最低優先順序
NORM_PRIORITY : 分配給線程的默認優先順序
getPriority() : 獲得線程的優先順序
setPriority() : 修改線程的優先順序
java">importjava.util.Scanner;
{
publicstaticThread[]getThreads(){
ThreadGroupgroup=Thread.currentThread().getThreadGroup();
Thread[]threads=newThread[group.activeCount()];
group.enumerate(threads);
System.out.println("線程ID "+"線程名稱 "+"線程優先順序");
for(Threadthread:threads){
System.out.println(thread.getId()+" "+thread.getName()+" "+thread.getPriority());;
}
returnthreads;
}
publicstaticStringinput(){
Scannersc=newScanner(System.in);
Stringstr=sc.nextLine();
returnstr;
}
(Thread[]threads){
System.out.println("請輸入您要修改的線程的ID");
inti=Integer.parseInt(input());
intcount=-1;
for(Threadthread:threads){
if(thread.getId()==i){
System.out.println("請輸入您要修改成的優先順序別:");
intpriroty=Integer.parseInt(input());
thread.setPriority(priroty);
break;
}else{
count++;
}
}
if(count==threads.length-1){
System.out.println("找不到您要的線程");
}
getThreads();
}
publicstaticvoidmain(String[]args){
modifyPriority(getThreads());
}
}