Ключевые слова:idle, proccess, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Boris Tobotras 2:5020/510 Thu 17 Sep 98 21:13
Subj : Re: idle priority
________________________________________________________________________________
>>>>> "Leonid" == Leonid Broukhis writes:
Leonid> Вероятность того, что nice 19 процесс _реально отберет_ квант у
Leonid> более приоритетного процесса настолько мала,
Uh-oh. С чего это она мала?
Leonid> что мне бы хотелось видеть реальные цифры увеличения пропускной
Leonid> способности системы после введения SCHED_IDLE. Иначе не поверю.
# include <sys/types.h>
# include <unistd.h>
# include <signal.h>
# include <sched.h>
volatile int done;
long counter;
void canceller( int n )
{
done = 1;
}
void do_something( void )
{
if ( ++counter == 0 )
printf( "Overflow!!!\n" );
}
void run_normal( void )
{
signal( SIGALRM, canceller );
alarm( 10 );
counter = 0;
done = 0;
while ( !done )
do_something();
printf( "Counted to %ld\n", counter );
}
void run_niced( void )
{
nice( 19 );
while ( 1 )
;
}
void run_idle( void )
{
struct sched_param s;
s.sched_priority = 0;
sched_setscheduler(getpid(), SCHED_IDLE, &s );
while ( 1 )
;
}
main( void )
{
int pid;
run_normal();
if ( ( pid = fork() ) ) {
run_normal();
kill( pid, SIGTERM );
}
else
run_niced();
if ( ( pid = fork() ) ) {
run_normal();
kill( pid, SIGTERM );
}
else
run_idle();
}
Запускаем:
ttyp5 ~/src/misc> ./sched-test
Counted to 109703090
Counted to 100909374
Counted to 109746777
29.250u 0.010s 0:30.17 96.9% 0+0k 0+0io 188pf+0w
Итого -- 9% чистого процессорного времени съедено niced до 19
процессом. Теперь прикинь, если б это был не while(1), а что-то,
ведущее к хотя бы небольшому пейджингу. Все еще не похоже, что это
отбирает ресурсы системы?
Leonid> PS. "Cool feature" - функциональность, которую приятно иметь, но
Leonid> которая нафиг никому не нужна. Hе тот ли это случай?
>>
>> Hет. Я себе сделал, -- оказывается, нужна.
Leonid> Это вполне может быть иллюзией. Hужны замеры, сбор статистики и
Leonid> т.п., иначе это не computer science, а знахарство.
А за козла ответишь :)
--
Best regards, -- Boris.
-- Что вы тут делаете?
-- Внушаю жалость.
--- Gnus v5.5/XEmacs 20.3 - "London" * Origin: Linux inside (2:5020/510@fidonet)