1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sched.h>
#include<sys/wait.h>
#include<errno.h>
main()
{
int ret,pid;
int politique,status,priorite;
struct timespec quantum;
struct sched_param param;
ret=fork();
if(ret==0)
{ /* Processus fils */
pid=getpid();
printf("je suis le fils ma priorité d'ordonnancement est : %d \n",getpriority(PRIO_PROCESS,pid));
politique=sched_getscheduler(pid);
if(politique==SCHED_RR)
printf("je suis le fils ma prorité d'ordonnancement est SCHED_RR \n");
if(politique==SCHED_FIFO)
printf("je suis le fils, ma prorité d'ordonnancement est SCHED_FIFO \n");
if(politique==SCHED_OTHER)
printf("je suis le fils, ma prorité d'ordonnancement est SCHED_OTHER \n");
param.sched_priority =10;
setpriority(PRIO_PROCESS, pid, 10);
if(sched_setscheduler(pid, SCHED_FIFO, ¶m) == -1)
perror("problème scheduler");
priorite = getpriority(PRIO_PROCESS, pid);
printf("je suis le fils, ma priorité d'ordonnancement est: %d\n", priorite);
politique = sched_getscheduleur(pid);
if(politique == SCHED_RR)
printf("je suis le fils, ma politique d'ordonnancement est: SCHED_RR \n");
if(politique == SCHED_FIFO)
printf("je suis le fils, ma politique d'ordonnancement est: SCHED_FIFO \n");
if(politique == SCHED_OTHER)
printf("je suis le fils, ma politique d'ordonnancement est: SCHED_OTHER \n");
}
else /* Processus pére */
{
printf("Voici les priorités min et max de la politique SCHED_FIFO, %d, %d\n",
sched_get_priority_min(SCHED_FIFO), sched_get_priority_max(SCHED_FIFO));
printf("Voici les priorités min et max de la politique SCHED_RR, %d, %d\n",
sched_get_priority_min(SCHED_RR), sched_get_priority_max(SCHED_RR));
sched_rr_get_interval(getpid(), &quantum);
printf("Voici les valeurs du quantum de la politique SCHED_RR, %d secondes, %d nanosecondes \n",
quantum.tv_sec, quantum.tv_nsec);
wait(&status);
}
} |
Partager