Android程序排程cgroups的簡單介紹

2021-07-22 17:51:02 字數 1202 閱讀 8502

cgroups的定義

維基百科的解釋為:cgroups,其名稱源自控制組群(control groups)的簡寫,是linux核心的乙個功能,用來限制,控制與分離乙個程序組群的資源(如cpu、記憶體、磁碟輸入輸出等)。

android中的cgroups

android中的cgroups關於cpu的一般有兩個,分別位於:

其內部的各個檔案的作用介紹如下:

cpu.shares

root@***x:/dev/cpuctl # cat cpu.shares

cat cpu.shares

1024

而bg_non_interactive下的cpu.shares值為52

cpu.rt_period_us與cpu.rt_runtime_us

cpu.rt_period_us用來設定cgroup獲得cpu資源的週期,單位為微秒。 cpu.rt_runtime_us用來設定cgroup中的任務可以最長獲得cpu資源的時間,單位為微秒。最長的獲取cpu資源時間取決於邏輯cpu的數量。比如cpu.rt_runtime_us設定為200000(0.2秒),cpu.rt_period_us設定為1000000(1秒)。在單個邏輯cpu上的獲得時間為每秒為0.2秒。 2個邏輯cpu,獲得的時間則是0.4秒。

在android中,乙個應用(程序)既可以由前台程序切換到bg_non_interactive,也可以切換回來。

service:當service呼叫startforeground方法後,那麼這個應用程序則是歸類於前台程序。

如何確定程序所屬的cgroups

步驟1: adb shell進入已經root的android裝置終端,獲得程序的pid,如

root@***x:/proc/6566 # ps | grep -i 「video」

u0_a70 6566 498 1514624 79340 sys_epoll_ 7f9ea9cba4 s com.android.videoplayer

步驟2: adb shell cat proc/6566/cgroup

結果若為:

cat cgroup

2:cpu:/bg_non_interactive(後台非互動程序)

1:cpuacct:/uid_10070/pid_6566

若結果為:

2:cpu:/(前台程序)

1:cpuacct:/uid_10070/pid_6566

Android的記憶體,程序排程管理 (二)

在執行乙個程式時,按一下房子鍵就可以退到桌面,一般來說按一下退出鍵也可以退到桌面,這兩者有什麼區別呢?其實是有區別的,你應該根據自己的需要靈活選擇 按房子鍵,看起來似乎是退出了,但是其實這個軟體並沒有被關閉,而是轉為了 後台程式 指一般的軟體,不討論特別種類的軟體 按退出鍵,看起來也是退出沒錯,但這...

程序排程演算法(程序排程策略)

程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...

程序排程三 程序排程介紹

一 程序排程介紹 1 程序排程的產生 程序從使用資源方面可以分為如下兩類,不管是i o還是cpu受限類的程序,cpu都希望再盡可能短的時間 完成更多的工作,但另一方面,又希望盡可能的減少資源 i o或cpu 的消耗,這兩則之間存在矛盾,所以程序 的排程管理就是來協調兩者之間的衝突。型別別稱 描述示例...