Priority 99 SCHED_FIFO process getting crowded out?

this is from sched_setscheduler (2) - Linux man page:

"Processes scheduled under one of the real-time policies (SCHED_FIFO, SCHED_RR) have a value of sched_priority ranging from 1 (low) to 99 (high)."

"The SCHED_FIFO process runs until it is blocked by an I / O request, it is unloaded by a higher priority process, or it calls sched_yield (2)."

I have the following code:

struct sched_param sp;
memset( &sp, 0, sizeof(sp) );
sp.sched_priority = 99;
sched_setscheduler( 0, SCHED_FIFO, &sp );

The process should now run with the highest possible priority (99) and should never be unloaded.

So, when it starts the following loop:

while ( 1 ) ;

it should work forever, and no other process should be started.

, , . , .

2 , . 97% -100%. .

. .

, SCHED_FIFO 99 ?

+4
1

, , , . . , .

, : SCHED_FIFO , RT SCHED_OTHER, . :

, 2.6.25, rt_bandwidth - 0,95 1,0 . , 5% CPU , SCHED_FIFO.

+5

All Articles