組排程屬於cgroup中的cpu子系統
cpu子系統的所有操作都在cpu_cgrp_subsys 中有定義
struct cgroup_subsys cpu_cgrp_subsys = ;
我們這裡以css_alloc 為例
static struct cgroup_subsys_state *
cpu_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
#建立排程組
tg = sched_create_group(parent);
if (is_err(tg))
return err_ptr(-enomem);
return &tg->css;
}struct task_group *sched_create_group(struct task_group *parent)
int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
}當程序要加入組排程是會呼叫attach
static void cpu_cgroup_attach(struct cgroup_taskset *tset)
void sched_move_task(struct task_struct *tsk)
這裡以enqueue_task 為例
static inline void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
cgroup學習(七) cpu子系統
cpu子系統 對於cpu子系統最常見的引數就是cpu.shares,我們來通過 cgroup學習 三 偽檔案 的 來跟蹤一下對該引數的讀寫操作。通過systemtap我們可以看到讀的bt cat cpu.shares 2327 cat cpu shares read u64 call trace 0...
作業系統 CPU排程
控制 協調多個程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 n個程序就緒,等待上m m 1 個cpu執行,需要決策哪個程序分配給哪個cpu執行 排程時機 核心對中斷 異常 系統呼叫處理後返回使用者態時 就緒佇列的改變引發重新排程 如程序正常終止 ...
作業系統面試 cpu排程
cpu排程是多道程式設計的基礎。本文是對作業系統概念 第七版 第五章 cpu排程的學習總結,不足之處歡迎各位博友提出,共同進步。1 介紹cpu排程常見概念。2 介紹cpu排程演算法以及特點。1 cpu排程決策發生的情況 a 當乙個程序從執行態到等待狀態。i o請求 b 執行狀態到就緒態 中斷 c 等...