2010-10-30 158 views
0

首先,我承認我會問的所有事情都是關於我們的作業,但我向你保證,如果不掙扎至少兩個小時,我不會問。Linux內核進程管理

描述:我們應該爲task_struct數據類型添加一個名爲max_cpu_percent的字段並操作進程調度算法,以便進程不能使用更高比例的cpu。

例如,如果我將max_cpu_percent字段設置爲20爲firefox進程,firefox將無法使用超過20%的cpu。

我們寫了一個系統調用來設置max_cpu_percent字段。現在我們需要查看系統調用是否有效,但是我們無法從用戶間隔程序中獲取max_cpu_percent字段的值。 我們可以這樣做嗎?如何?

我們試過proc/pid/etc我們可以使用這個util得到值嗎?

順便說一句,這裏我們可以添加更多的問題,如果我們不能擺脫別的東西

感謝所有

解決方案:

的原因是,我們沒有修改代碼塊的寫入輸出到proc查詢。 在array.c文件(fs/proc/array.c)中有一些方法,我們修改了函數,以便也打印新添加的字段值。內核現正整理約一小時後,我們會看到結果=)

它的工作...

+0

你說你嘗試使用/ proc/pid。你發現了什麼? – Khaled 2010-10-30 16:11:14

+0

字段的列表,但不是cpu_max_percent,我們嘗試了列表中的某些內容,比如/ proc/pid/attr,但這並沒有幫助。我仍在閱讀/ proc,但還找不到。 – mehmet6parmak 2010-10-30 16:17:42

回答

0

(如果你簡單地擴展getrlimit/setrlimit,那麼你會完事了......)

已經有一個機制,其中task_struct的相似部分被暴露:/proc/$PID/stat(和/proc/$PID/$TID/stat)。尋找功能proc_tgid_statproc_tid_stat。您可以將新字段添加到這些文件的末尾。