2009-06-29 2 views
1

Таким образом, OS многозадачность и запускает один процесс в данный момент (при условии, что это одноядерная машина). Есть ли способ отслеживать/опросить и находить, какой процесс работал в какое время и в какое время он был помещен в очередь и возвращен обратно. Есть ли системные вызовы для этого?. Есть ли способ достичь этого, не изменяя источник ядра Linux.Как определить, какой процесс работает в данный момент?

ответ

5

Я думаю, вам нужно lttng, он определенно даст вам продуманный вид функции переключения задачи системы (и многое другое) с помощью средства просмотра lttng. Часть ядра Lttng была объединена с текущим ядром Linux, и вы можете использовать его, если ваше ядро ​​включило эту функцию. Here - это несколько снимков экрана для lttng.

+1

Это именно то, что я искал. Спасибо. :) –

0

Я не думаю, что вы можете сделать это изначально. AFAIK linux не отслеживает эту информацию.

0

Это нелогичный вопрос. Если вы запрашиваете ОС из сценария/процесса, тогда активная программа ... YOURS.

Хотя я думаю, если вы хотите историю вы можете посмотреть каталог /proc или выход из ps

+0

Это нелогичный вопрос. Возможно, он плохо сформирован/правильно установлен. –

+0

Если у вас есть одно ядро, в зависимости от того, какой процесс выполняет мониторинг, он должен обнаружить, что он сам работает. – MarkR

Смежные вопросы