> et en mettant ca dans un thread TIME_CRITICAL...
> entre le moment ou la donnée arrive physiquement sur le port et ou le
> est debloqué (c'est à dire entre t0 et (1)) , il peut s'écouler un temps
> trés long, et plusieurs threads ont pu prendre la main (normal, y'a pas
> urgence, le systeme bufferise le COM). résultat identique au précedent.
Le système bufferise le COM si on veut. En principe le FileRead rend la
des que le nombre d'octet demandé est arrivé , sauf timeout... sa vitesse
réaction est fonction aussi du baudrate, à combien etes vous configuré !?
Peut être que dans votre cas , vous devriez utiliser le port com en
événementiel... je fais un peu de remoting par COM , j'ai jamais constaté
des 100ms de délai sur acquisition, même avec des thread de basse
donc je ne crois pas que votre délai soit du au multitache windows (à
que vous soyez en train de copier 4 fichiers de 30 Go en permanence sur le
réseau évidemment)
> et en mettant ca dans un thread TIME_CRITICAL...
> entre le moment ou la donnée arrive physiquement sur le port et ou le
> est debloqué (c'est à dire entre t0 et (1)) , il peut s'écouler un temps
> trés long, et plusieurs threads ont pu prendre la main (normal, y'a pas
> urgence, le systeme bufferise le COM). résultat identique au précedent.
Le système bufferise le COM si on veut. En principe le FileRead rend la
des que le nombre d'octet demandé est arrivé , sauf timeout... sa vitesse
réaction est fonction aussi du baudrate, à combien etes vous configuré !?
Peut être que dans votre cas , vous devriez utiliser le port com en
événementiel... je fais un peu de remoting par COM , j'ai jamais constaté
des 100ms de délai sur acquisition, même avec des thread de basse
donc je ne crois pas que votre délai soit du au multitache windows (à
que vous soyez en train de copier 4 fichiers de 30 Go en permanence sur le
réseau évidemment)
> et en mettant ca dans un thread TIME_CRITICAL...
> entre le moment ou la donnée arrive physiquement sur le port et ou le
> est debloqué (c'est à dire entre t0 et (1)) , il peut s'écouler un temps
> trés long, et plusieurs threads ont pu prendre la main (normal, y'a pas
> urgence, le systeme bufferise le COM). résultat identique au précedent.
Le système bufferise le COM si on veut. En principe le FileRead rend la
des que le nombre d'octet demandé est arrivé , sauf timeout... sa vitesse
réaction est fonction aussi du baudrate, à combien etes vous configuré !?
Peut être que dans votre cas , vous devriez utiliser le port com en
événementiel... je fais un peu de remoting par COM , j'ai jamais constaté
des 100ms de délai sur acquisition, même avec des thread de basse
donc je ne crois pas que votre délai soit du au multitache windows (à
que vous soyez en train de copier 4 fichiers de 30 Go en permanence sur le
réseau évidemment)
> et en mettant ca dans un thread TIME_CRITICAL...
pas bête.
mais n'est ce pas qu'un paliatif ?
> réaction est fonction aussi du baudrate, à combien etes vous configuré
38400. la je découvre un truc.
ben y'a du monde dans le train en fait.
une optimisation bien couteuse en calculs qui tourne en permanence, des
écritures régulieres dans la base de données, une autre appli qu'on lance
temps en temps pour faire du reporting sur la base et de l'impression.
quelques threads que je soupsonne de faire de l'attente active. (j'ai cru
comprendre que cette technique bancale, avait tendance a tirer un peu plus
que de rigueur sur le processeur)
et tout ça fait que on a des écarts importants sur la mesure.
> et en mettant ca dans un thread TIME_CRITICAL...
pas bête.
mais n'est ce pas qu'un paliatif ?
> réaction est fonction aussi du baudrate, à combien etes vous configuré
38400. la je découvre un truc.
ben y'a du monde dans le train en fait.
une optimisation bien couteuse en calculs qui tourne en permanence, des
écritures régulieres dans la base de données, une autre appli qu'on lance
temps en temps pour faire du reporting sur la base et de l'impression.
quelques threads que je soupsonne de faire de l'attente active. (j'ai cru
comprendre que cette technique bancale, avait tendance a tirer un peu plus
que de rigueur sur le processeur)
et tout ça fait que on a des écarts importants sur la mesure.
> et en mettant ca dans un thread TIME_CRITICAL...
pas bête.
mais n'est ce pas qu'un paliatif ?
> réaction est fonction aussi du baudrate, à combien etes vous configuré
38400. la je découvre un truc.
ben y'a du monde dans le train en fait.
une optimisation bien couteuse en calculs qui tourne en permanence, des
écritures régulieres dans la base de données, une autre appli qu'on lance
temps en temps pour faire du reporting sur la base et de l'impression.
quelques threads que je soupsonne de faire de l'attente active. (j'ai cru
comprendre que cette technique bancale, avait tendance a tirer un peu plus
que de rigueur sur le processeur)
et tout ça fait que on a des écarts importants sur la mesure.
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> ben y'a du monde dans le train en fait.
> une optimisation bien couteuse en calculs qui tourne en permanence, des
> écritures régulieres dans la base de données, une autre appli qu'on
de
> temps en temps pour faire du reporting sur la base et de l'impression.
plus
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> ben y'a du monde dans le train en fait.
> une optimisation bien couteuse en calculs qui tourne en permanence, des
> écritures régulieres dans la base de données, une autre appli qu'on
de
> temps en temps pour faire du reporting sur la base et de l'impression.
plus
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> ben y'a du monde dans le train en fait.
> une optimisation bien couteuse en calculs qui tourne en permanence, des
> écritures régulieres dans la base de données, une autre appli qu'on
de
> temps en temps pour faire du reporting sur la base et de l'impression.
plus
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
ca fait 4 octets par ms à peu près... donc faut voir la taille des données
que vous recevez et déduire l'erreur temporelle inhérente.
de l'attente active !? vous voulez dire une boucle du style :
while (f_continue)
{
if (thereissomethingtodo) DoIt();
Sleep(10);
}
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
ca fait 4 octets par ms à peu près... donc faut voir la taille des données
que vous recevez et déduire l'erreur temporelle inhérente.
de l'attente active !? vous voulez dire une boucle du style :
while (f_continue)
{
if (thereissomethingtodo) DoIt();
Sleep(10);
}
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
ca fait 4 octets par ms à peu près... donc faut voir la taille des données
que vous recevez et déduire l'erreur temporelle inhérente.
de l'attente active !? vous voulez dire une boucle du style :
while (f_continue)
{
if (thereissomethingtodo) DoIt();
Sleep(10);
}
Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec le
minimum de truc en route... Après ca dépend de la précision que vous
atteindre, faut savoir que rien n'est précis en dessous de la ms sous
Windows et en terme de temps-réel on considère dans l'audio que rien ne
se faire fiablement en dessous de 5 ms.
"Vincent Burel" a écrit dans le message de
news:bmjstd$uqj$
>
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
parceque j'ignore comment fonctionne le TIME_CRITICAL.
j'ai observé à l'oeil les conséquences globales, mais je me demandais si
thread TIME_CRITICAL ne pouvait pas rester prehemptible pour filer la main
un autre thread qui n'a rien foutu depuis 48 heures.
> ca fait 4 octets par ms à peu près... donc faut voir la taille des
> que vous recevez et déduire l'erreur temporelle inhérente.
c'est un Int64
> de l'attente active !? vous voulez dire une boucle du style :
>
> while (f_continue)
> {
> if (thereissomethingtodo) DoIt();
> Sleep(10);
> }
tout pile. avec le 10 qu'on transforme en 1 en accusant au passage "la
gestion des threads d'etre une vraie m... sous windows" parcequ'on loupe
thereissomethingtodo :)
"Vincent Burel" <vincent.burel@wanadoo.fr> a écrit dans le message de
news:bmjstd$uqj$1@news-reader1.wanadoo.fr...
>
> "Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
> news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
parceque j'ignore comment fonctionne le TIME_CRITICAL.
j'ai observé à l'oeil les conséquences globales, mais je me demandais si
thread TIME_CRITICAL ne pouvait pas rester prehemptible pour filer la main
un autre thread qui n'a rien foutu depuis 48 heures.
> ca fait 4 octets par ms à peu près... donc faut voir la taille des
> que vous recevez et déduire l'erreur temporelle inhérente.
c'est un Int64
> de l'attente active !? vous voulez dire une boucle du style :
>
> while (f_continue)
> {
> if (thereissomethingtodo) DoIt();
> Sleep(10);
> }
tout pile. avec le 10 qu'on transforme en 1 en accusant au passage "la
gestion des threads d'etre une vraie m... sous windows" parcequ'on loupe
thereissomethingtodo :)
"Vincent Burel" a écrit dans le message de
news:bmjstd$uqj$
>
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
parceque j'ignore comment fonctionne le TIME_CRITICAL.
j'ai observé à l'oeil les conséquences globales, mais je me demandais si
thread TIME_CRITICAL ne pouvait pas rester prehemptible pour filer la main
un autre thread qui n'a rien foutu depuis 48 heures.
> ca fait 4 octets par ms à peu près... donc faut voir la taille des
> que vous recevez et déduire l'erreur temporelle inhérente.
c'est un Int64
> de l'attente active !? vous voulez dire une boucle du style :
>
> while (f_continue)
> {
> if (thereissomethingtodo) DoIt();
> Sleep(10);
> }
tout pile. avec le 10 qu'on transforme en 1 en accusant au passage "la
gestion des threads d'etre une vraie m... sous windows" parcequ'on loupe
thereissomethingtodo :)
"Vincent Burel" a écrit dans le message de
news:bmjstd$uqj$
>
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > ben y'a du monde dans le train en fait.
> > une optimisation bien couteuse en calculs qui tourne en permanence,
> > écritures régulieres dans la base de données, une autre appli qu'on
lance
> de
> > temps en temps pour faire du reporting sur la base et de l'impression.
> plus
[...]
> Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec
> minimum de truc en route... Après ca dépend de la précision que vous
voulez
> atteindre, faut savoir que rien n'est précis en dessous de la ms sous
> Windows et en terme de temps-réel on considère dans l'audio que rien ne
peut
> se faire fiablement en dessous de 5 ms.
Et au delà de ça, utiliser le thread TIME_CRITICAL pour effectuer les
acquisitions et les "empiler" avec chacune son timestamp dans une file
d'attente... SURTOUT ne pas risquer de bloquer le thread d'acquisition sur
un accès disque (ou pire sur une requête SQL).
Je ne sais pas si on peut
faire ça avec les objets d'échanges standards. AMHA il faut s'allouer une
zone de mémoire partagée suffisamment importante, s'assurer qu'elle ne
pas swapée, et envisager une exclusion mutuelle qui ne fera jamais
le thread d'acquisition. C'est surement possible, mais au prix d'un
que j'ai du mal à évaluer d'ici...
Enfin, sinon, chez nous on fait de "l'acquisition critique" de messages
se promènent sur un bus CAN. Un bête micro-controlleur permet de récupérer
tous les messages sans en louper aucun, et, "quand le PC a le temps", il
vient les relire via une bête liaison série à 9600 bauds. Seule
avoir un débit d'acquisition bien inférieur à celui sur la liaison série,
avoir suffisamment de RAM dans le micro pour bufferiser quelques secondes.
En l'occurrence, 1 journée de technicien électronique + 1 journée de soft
embarqué, c'est pas gratuit mais c'est pas cher, et c'est réutilisable à
l'infini dans un environnement similaire.
"Vincent Burel" <vincent.burel@wanadoo.fr> a écrit dans le message de
news:bmjstd$uqj$1@news-reader1.wanadoo.fr...
>
> "Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
> news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> > ben y'a du monde dans le train en fait.
> > une optimisation bien couteuse en calculs qui tourne en permanence,
> > écritures régulieres dans la base de données, une autre appli qu'on
lance
> de
> > temps en temps pour faire du reporting sur la base et de l'impression.
> plus
[...]
> Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec
> minimum de truc en route... Après ca dépend de la précision que vous
voulez
> atteindre, faut savoir que rien n'est précis en dessous de la ms sous
> Windows et en terme de temps-réel on considère dans l'audio que rien ne
peut
> se faire fiablement en dessous de 5 ms.
Et au delà de ça, utiliser le thread TIME_CRITICAL pour effectuer les
acquisitions et les "empiler" avec chacune son timestamp dans une file
d'attente... SURTOUT ne pas risquer de bloquer le thread d'acquisition sur
un accès disque (ou pire sur une requête SQL).
Je ne sais pas si on peut
faire ça avec les objets d'échanges standards. AMHA il faut s'allouer une
zone de mémoire partagée suffisamment importante, s'assurer qu'elle ne
pas swapée, et envisager une exclusion mutuelle qui ne fera jamais
le thread d'acquisition. C'est surement possible, mais au prix d'un
que j'ai du mal à évaluer d'ici...
Enfin, sinon, chez nous on fait de "l'acquisition critique" de messages
se promènent sur un bus CAN. Un bête micro-controlleur permet de récupérer
tous les messages sans en louper aucun, et, "quand le PC a le temps", il
vient les relire via une bête liaison série à 9600 bauds. Seule
avoir un débit d'acquisition bien inférieur à celui sur la liaison série,
avoir suffisamment de RAM dans le micro pour bufferiser quelques secondes.
En l'occurrence, 1 journée de technicien électronique + 1 journée de soft
embarqué, c'est pas gratuit mais c'est pas cher, et c'est réutilisable à
l'infini dans un environnement similaire.
"Vincent Burel" a écrit dans le message de
news:bmjstd$uqj$
>
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > ben y'a du monde dans le train en fait.
> > une optimisation bien couteuse en calculs qui tourne en permanence,
> > écritures régulieres dans la base de données, une autre appli qu'on
lance
> de
> > temps en temps pour faire du reporting sur la base et de l'impression.
> plus
[...]
> Ben, faudrait peut-être essayer d'abord de faire cette acquisition avec
> minimum de truc en route... Après ca dépend de la précision que vous
voulez
> atteindre, faut savoir que rien n'est précis en dessous de la ms sous
> Windows et en terme de temps-réel on considère dans l'audio que rien ne
peut
> se faire fiablement en dessous de 5 ms.
Et au delà de ça, utiliser le thread TIME_CRITICAL pour effectuer les
acquisitions et les "empiler" avec chacune son timestamp dans une file
d'attente... SURTOUT ne pas risquer de bloquer le thread d'acquisition sur
un accès disque (ou pire sur une requête SQL).
Je ne sais pas si on peut
faire ça avec les objets d'échanges standards. AMHA il faut s'allouer une
zone de mémoire partagée suffisamment importante, s'assurer qu'elle ne
pas swapée, et envisager une exclusion mutuelle qui ne fera jamais
le thread d'acquisition. C'est surement possible, mais au prix d'un
que j'ai du mal à évaluer d'ici...
Enfin, sinon, chez nous on fait de "l'acquisition critique" de messages
se promènent sur un bus CAN. Un bête micro-controlleur permet de récupérer
tous les messages sans en louper aucun, et, "quand le PC a le temps", il
vient les relire via une bête liaison série à 9600 bauds. Seule
avoir un débit d'acquisition bien inférieur à celui sur la liaison série,
avoir suffisamment de RAM dans le micro pour bufferiser quelques secondes.
En l'occurrence, 1 journée de technicien électronique + 1 journée de soft
embarqué, c'est pas gratuit mais c'est pas cher, et c'est réutilisable à
l'infini dans un environnement similaire.
> while (f_continue)
[...]
Ca consomme un peu, tout dépend de la valeur dans le Sleep (sans vulgarité
:-) et si DoIt() est appelé souvent, parce que bon, le test d'un flag ,
par rapport à un Sleep(1), c'est négligeable.
> while (f_continue)
[...]
Ca consomme un peu, tout dépend de la valeur dans le Sleep (sans vulgarité
:-) et si DoIt() est appelé souvent, parce que bon, le test d'un flag ,
par rapport à un Sleep(1), c'est négligeable.
> while (f_continue)
[...]
Ca consomme un peu, tout dépend de la valeur dans le Sleep (sans vulgarité
:-) et si DoIt() est appelé souvent, parce que bon, le test d'un flag ,
par rapport à un Sleep(1), c'est négligeable.
> En français, c'est vite vu : que dalle ;o).
En anglais, les livres de base sont ceux de Walter Oney et de Art
Baker/Jerry Lozano. Quelques sites :
- http://www.chsw.com/ddk/
- http://students.cs.byu.edu/~nbushman/drivers.htm
- http://www.osronline.com/article.cfm?id5
> En français, c'est vite vu : que dalle ;o).
En anglais, les livres de base sont ceux de Walter Oney et de Art
Baker/Jerry Lozano. Quelques sites :
- http://www.chsw.com/ddk/
- http://students.cs.byu.edu/~nbushman/drivers.htm
- http://www.osronline.com/article.cfm?id5
> En français, c'est vite vu : que dalle ;o).
En anglais, les livres de base sont ceux de Walter Oney et de Art
Baker/Jerry Lozano. Quelques sites :
- http://www.chsw.com/ddk/
- http://students.cs.byu.edu/~nbushman/drivers.htm
- http://www.osronline.com/article.cfm?id5
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
"Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
"Ambassadeur Kosh" wrote in message
news:bmjr93$moa$
> > et en mettant ca dans un thread TIME_CRITICAL...
> pas bête.
> mais n'est ce pas qu'un paliatif ?
Ben non. Pourquoi !?
"Vincent Burel" wrote in message
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
Parce que :
1) Laisser un thread avec ce niveau de priorité pendant longtemps (ie
plus de quelques ms) a la facheuse tendance à déstabiliser Windows
(certains de ces services indsipensables n'ayant plus de temps
processeur pour travailler).
2) On peut toujours être préhempté par une interruption.
Il me semble qaue la solution serait d'écrire un driver pour le port
série qui, lorsqu'il recoit l'interruption de données disponible,
lance immédiatement l'acquisition sur la carte dédiée (éventuellement
en levant une autre INT gérée par le driver de la carte
d'acquisition). Par contre, je ne connais pas assez le DDK pour donner
des conseils de mise en oeuvre de ce genre de choses.
"Vincent Burel" <vincent.burel@wanadoo.fr> wrote in message
> "Ambassadeur Kosh" <yanapa@nospamnocry.fr> wrote in message
> news:bmjr93$moa$1@news-reader1.wanadoo.fr...
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
Parce que :
1) Laisser un thread avec ce niveau de priorité pendant longtemps (ie
plus de quelques ms) a la facheuse tendance à déstabiliser Windows
(certains de ces services indsipensables n'ayant plus de temps
processeur pour travailler).
2) On peut toujours être préhempté par une interruption.
Il me semble qaue la solution serait d'écrire un driver pour le port
série qui, lorsqu'il recoit l'interruption de données disponible,
lance immédiatement l'acquisition sur la carte dédiée (éventuellement
en levant une autre INT gérée par le driver de la carte
d'acquisition). Par contre, je ne connais pas assez le DDK pour donner
des conseils de mise en oeuvre de ce genre de choses.
"Vincent Burel" wrote in message
> "Ambassadeur Kosh" wrote in message
> news:bmjr93$moa$
> > > et en mettant ca dans un thread TIME_CRITICAL...
> > pas bête.
> > mais n'est ce pas qu'un paliatif ?
>
> Ben non. Pourquoi !?
Parce que :
1) Laisser un thread avec ce niveau de priorité pendant longtemps (ie
plus de quelques ms) a la facheuse tendance à déstabiliser Windows
(certains de ces services indsipensables n'ayant plus de temps
processeur pour travailler).
2) On peut toujours être préhempté par une interruption.
Il me semble qaue la solution serait d'écrire un driver pour le port
série qui, lorsqu'il recoit l'interruption de données disponible,
lance immédiatement l'acquisition sur la carte dédiée (éventuellement
en levant une autre INT gérée par le driver de la carte
d'acquisition). Par contre, je ne connais pas assez le DDK pour donner
des conseils de mise en oeuvre de ce genre de choses.