cpu子系統的組排程

2021-08-20 06:37:46 字數 834 閱讀 5199

組排程屬於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 等...