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 ?