核心執行緒優先順序的設定

2022-02-21 00:53:04 字數 1040 閱讀 9822

個人理解,核心級執行緒和程序是一樣的,前者與posix執行緒(pthread)有很大的區別。因此,核心的程序排程策略和系統呼叫也適用於核心級執行緒。

排程策略有三種:

1.sched_normal 非實時排程策略,預設情況下是100~139,由nice值決定;

2.sched_fifo實時排程策略,先到先服務。一旦占用cpu則一直執行。一直執行直到有更高優先順序任務到達或自己放棄

3.sched_rr實時排程策略,時間片輪轉。當程序的時間片用完,系統將重新分配時間片,並置於就緒佇列尾。同樣可以被高優先順序搶占。

兩種實時優先順序範圍在0至max_rt_prio-1之間,預設為0到99。

nice()  

設定程序的nice值

sched_setscheduler()

設定程序的排程策略

sched_getscheduler()

獲取程序的排程策略

sched_setparam()

設定程序的實時優先順序

sched_getparam()

獲取程序的實時優先順序

sched_get_priority_max()

獲取實時優先順序的最大值

sched_get_priority_min()

獲取實時優先順序的最小值

sched_rr_get_interval()

獲取程序的時間片值

sched_setaffinity()

設定程序的處理器的親和力

sched_getaffinity()

獲取程序的處理器的親和力

sched_yield()

暫時讓出處理器

設定時需要用到struct sched_param這個結構。

以下為我寫的核心執行緒中的部分**:

struct

sched_param param;

param.sched_priority = 99

; sched_setscheduler(current, sched_fifo, ¶m)//

出錯時返回-1

執行緒優先順序的設定

執行緒的優先順序 1 10,10為最高端別,1為最低級別,5為預設級別 thread.min priority 最小優先順序 thread.max priority 最高優先順序 thread.norm priority 預設優先順序 設定優先順序 public class jointhread2 ...

cortex M核心優先順序設定

cortex m核心中 每個中斷都有乙個8位的優先順序設定暫存器 這個8位的暫存器可以分為搶占優先順序和子優先順序兩個部分 通過設定優先順序組設定 搶占優先順序和子優先順序有什麼用?舉例說明 有兩個中斷a b a的搶占優先順序比b的高 當b發生中斷,正在執行b的中斷服務函式時 a發生了中斷,這個時候...

Linux執行緒優先順序設定

本程式會讓系統失去i o響應,不建議去執行!include include include include include include void thr fun void arg if policy sched fifo else if policy sched other else if po...