Управление процессами ядра Linux - PullRequest
0 голосов
/ 30 октября 2010

Во-первых, я признаю, что все, что я спрошу, касается нашей домашней работы, но уверяю вас, я не спрашиваю, не пытаясь, по крайней мере, два часа.

Описание: Мы должны добавить поле с именем max_cpu_percent к типу данных task_struct и манипулировать алгоритмом планирования процессов, чтобы процессы не могли использовать более высокий процент процессора.

например, если я установил поле max_cpu_percent равным 20 для процесса firefox, firefox не сможет использовать более 20% процессорного времени.

Мы написали системный вызов для установки поля max_cpu_percent. Теперь нам нужно посмотреть, работает ли системный вызов или нет, но мы не смогли получить значение поля max_cpu_percent из программы, разнесенной пользователем. Можем ли мы сделать это? и как?

Мы попробовали proc / pid / etc, можем ли мы получить значение с помощью этого утилиты?

Кстати, мы можем добавить сюда дополнительные вопросы, если не смогли избавиться от чего-то другого

Спасибо всем

Решение:

Причина в том, что мы не модифицировали блок кода, записывая выходные данные в запросы proc. В файле array.c есть несколько методов (fs / proc / array.c), в которые мы модифицировали функцию, чтобы она также выводила значение вновь добавленных полей. ядро сейчас компилируется, мы увидим результат примерно через час =)

Это сработало ...

1 Ответ

0 голосов
/ 30 октября 2010

(Если вы просто расширили getrlimit / setrlimit, то к этому моменту все будет готово ...)

Уже есть механизм, где отображаются похожие части task_struct: /proc/<i>$PID</i>/stat/proc/<i>$PID</i>/<i>$TID</i>/stat).Ищите функции proc_tgid_stat и proc_tid_stat.Вы можете добавить новые поля к концам этих файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...