LINUX.ORG.RU

Что подсчитывает системный вызов getrusage на уровне ядра?


0

0

Сабж.

Например, если процесс читает или пишет файл, будет ли планировщик отбивать такты "вхолостую" ожидая и эти такты будут записаны на счет процесса? Или подсчитывается только полезное время?

Ответ на: комментарий от mv

В sys попадет только полезное время или временные задержки обусловленные тормозами аппаратного обеспечения тоже будут посчитаны (при условии, что драйвер устройства работает на уровне ядра)?

Или это уже будет целиком зависеть от драйвера?

Frakhtan-teh ★★
() автор топика

тока полезное. Т.е. sleep(100) не "запишет" в usertime 100сек потому что это не требовало ресурсов машины.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Любое ожидание реализуется через sleep?

Диск прогружен, а я читаю 1 байт из файла. Байт будет прочитан не в первый же такт, верно?

Frakhtan-teh ★★
() автор топика
Ответ на: комментарий от Frakhtan-teh

Твоя задача будет висеть в состоянии "io blocked". В это время ни ядро ни твой процесс ничего хавать не будут потому что общение с диском идёт по dma. Как только диск передаст данные проснётся ядро, возьмёт прочитанные данные и вернёт управление твоей программе.

true_admin ★★★★★
()
Ответ на: комментарий от Frakhtan-teh

Если временная задержка будет реализована циклом, то да, процесс жрёт своё время. Если вызывает sleep, то ядро запоминает, когда этот процесс нужно дёрнуть и шедуллит другой.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.