Linux核心高優先順序執行緒的應用

2021-10-05 08:30:14 字數 865 閱讀 4565

struct kthread_worker	test_kworker;

struct task_struct *test_kworker_task;

struct kthread_work test_kwork;

static void test_kthread_work_handle(struct kthread_work *work)

} printk("%s exit\n", __function__);

}void test_kthread_queue(void)

; init_kthread_worker(&test_kworker);

test_kworker_task = kthread_run(kthread_worker_fn,

&test_kworker, "test kthread worker");

if (is_err(test_kworker_task))

init_kthread_work(&test_kwork, test_kthread_work_handle);

sched_setscheduler(test_kworker_task, sched_fifo, ¶m);

}

關於linux的優先順序

linux系統中,進執行緒優先順序是0~139,nice的範圍是 -20 ~ 19。值越小,優先順序越高。優先順序 0 ~ 99屬於rt級,可以使用sched_fifo排程策略,100 ~ 139屬於普通級,一般使用sched_normal/sched_batch。預設情況下建立的task優先順序是120,即對應nice值為0。

注:不是所有的linux系統都支援sched_fifo排程策略

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

個人理解,核心級執行緒和程序是一樣的,前者與posix執行緒 pthread 有很大的區別。因此,核心的程序排程策略和系統呼叫也適用於核心級執行緒。排程策略有三種 1.sched normal 非實時排程策略,預設情況下是100 139,由nice值決定 2.sched fifo實時排程策略,先到先...

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...