Re: Temps réel

Top Page

Reply to this message
Author: Frédéric
Date:  
To: ML Guilde
Subject: Re: Temps réel
Le Jeudi 16 Juin 2005 14:12, Edgar Bonet a écrit :

Merci pour les explications.

> > dans le premier cas, comment mettre ça en oeuvre ?
>
> #include <stdio.h>
> #include <sys/mman.h>
> #include <sched.h>
>
> /*
>  * Become a real time process.
>  * Returs 0 on success, -1 on error.
>  */
> int become_real_time(void)
> {
>     struct sched_param priority;

>
>     if (mlockall(MCL_CURRENT | MCL_FUTURE) == -1) {
>         perror("mlockall");
>         return -1;
>     }

>
>     priority.sched_priority = 10;
>     if (sched_setscheduler(0, SCHED_FIFO, &priority) == -1) {
>         perror("sched_setscheduler");
>         return -1;
>     }

>
>     return 0;
> }

>
> La valeur de priority.sched_priority n'a pas d'importance tant que tu as
> un seul processus temps réel. Il faut juste qu'elle soit > 0 et
> < sched_get_priority_max() (99 en principe, c.f. le man).
>
> Il faut bien entendu être root, sinon tu te prends EPERM.


Ok, mais dans le cas d'un programme comme rosengarden, je suppose que c'est
déjà fait. Donc suffit-il de le lancer root ? Rien d'autre à configurer
dans le noyau ?

--
Frédéric

http://www.gbiloba.org