標籤:資料 linux io 時間 學習 關係
緩衝方式:
直接映射
N路關聯
緩衝策略:
write through:通寫
write back:回寫
進程類別:
互動式進程(IO密集型)
批處理進程(CPU密集型)
即時進程(Real-time)
CPU: 時間片長,優先順序低
IO:時間片短,優先順序高
Linux優先順序:priority
即時優先順序: 1-99,數字越小,優先順序越低
靜態優先順序:100-139,資料越小,優先順序越高
即時優先順序比靜態優先順序高
nice值:調整靜態優先順序 -20,19:100,139 0:120
ps -eo:顯示加中括弧的進程為核心線程
調度類別:
即時進程:
SCHED_FIFO:First In First Out
SHCED_RR: Round Robin
SCHED_Other: 用來調度100-139之間的進程
動態優先順序:
dynamic priority = max (100, min ( static priority - bonus + 5, 139))
bonus: 0-10
手動調整優先順序:
100-139: nice
nice N COMMAND
renice -n # PID
chrt -p [prio] PID
1-99:
chrt -f -p [prio] PID
chrt -r -p [prio] PID
chrt -f -p [prio] COMMAND
ps -e -o class,rtprio,pri,nice,cmd
CFS(complete Fair Scheduler):完全公平調度
SMP:對稱多路處理
NUMA:非統一記憶體存取
CPU affinity: CPU姻親關係
numastat
numactl
numad
taskset: 綁定進程至某CPU上
mask:0x0000 0001(轉換成二進位,1表示一顆CPU,從零開始)
taskset -p mask pid
taskset -p -c 0-2,7 101
應該將中斷綁定至那些非隔離的CPU上,從而避免那些隔離的CPU處理中斷程式:
echo CPU_MASK > /proc/irq/<irq number>/smp_affinity