#include #include #include #include _syscall1 ( int, fork_rt_process, int , deadline ); int main ( int argc, char * argv[] ) { int pid = -1; long deadline = 0; struct sched_param tmp; tmp.sched_priority = 98; if ( argc != 2 ) { printf ( "USE:%s deadline\n", argv[0] ); return; } deadline = time(NULL) + atoi ( argv[1] ); pid = fork (); if ( pid == 0 ) { int i = 0; int code = sched_setscheduler ( getpid(), SCHED_FIFO, &tmp ); while ( 1 ) { printf ( "New PID:%d:%d\n", getpid(),i ); i++; if ( (long) time(NULL) > deadline ) break; } printf ( "End of PID:%d,%d\n", getpid(),code ); } else { wait(); } }