<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8437955468461641283</id><updated>2011-12-23T16:26:35.133+01:00</updated><category term='nc'/><title type='text'>Real Time Geek</title><subtitle type='html'>Temps réel, considérations purement technico-maniaco-mathématiques...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-2776356272187669726</id><published>2010-01-15T12:56:00.002+01:00</published><updated>2010-01-15T13:09:48.208+01:00</updated><title type='text'></title><content type='html'>Jeudi 14 janvier 2010, réunion de la DAS (Domaine d'Action Stratégique) "Informatique embarquée" du pôle Aerospace Valley, pôle de compétitivité des régions Aquitaine et Midi-Pyrénées, à Agen.&lt;br /&gt;&lt;br /&gt;Le programme de la journée était simple : présentation des activités le matin, et 4 groupes de travail (par PF, Programme Fédérateur) l'après-midi suivi d'une restitution générale de synthèse.&lt;br /&gt;&lt;br /&gt;Le matin, ont été présentés les calendriers, organisations, projets d'ensemble et orientations générales. L'accent a été mis sur la tracabilité et la mesure des retombées des projets subventionnés.&lt;br /&gt;&lt;br /&gt;L'après midi, 4 PF donc : Elec(tronique), IHS (Interaction Homme Système), Diag(nostic), ISAURE (systèmes et logiciels). C'est à cette dernière que j'ai personnellement assisté.&lt;br /&gt;&lt;br /&gt;Synthèse de Elec : Electronique et semi-conducteurs de puissance sont recherchés vivement.&lt;br /&gt;&lt;br /&gt;Synthèse de IHS : on retient 3 éléments : méthodes de conception, IHM moderne et socle technologique.&lt;br /&gt;&lt;br /&gt;Synthèse de PFDIAG : autodiagnostig, et on cible de l'autoréparation pour 2025 !&lt;br /&gt;&lt;br /&gt;Je vais être plus détaille sur ISAURE.&lt;br /&gt;&lt;br /&gt;J'étais invité, n'étant pas (encore ?) membre de ce pôle, en tant qu'intervenant dans un projet initialement créé hors du pôle mais en plein dans son activité. L'idée était du reste de prépareer les appels à la suite du projet en cours.&lt;br /&gt;&lt;br /&gt;Force est de constater que notre projet, sur lequel nous avons jusqu'ici engagé une communication modérée, a suscité bien des interrogations. Babylone a ouvert la boite de Pandore semble-t-il...&lt;br /&gt;&lt;br /&gt;Un &lt;span style="font-weight:bold;"&gt;très&lt;/span&gt; fort intérêt global pour les modèles et éléments Open Source, donc, ainsi que pour les méthodes agiles, qui du coup intéressent les autres métiers non logiciels, certification, systèmes critiques.&lt;br /&gt;&lt;br /&gt;L'accent : se donner les moyens de montrer du produit fini et pas seulement des méthodes et des process. L'industrie les veut !!!&lt;br /&gt;&lt;br /&gt;Synthèse : très intéressant, des discussions très riches et instructives. Mais des personnes très curieuses de Linux et de l'Open Source : à nous de convaincre !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-2776356272187669726?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/2776356272187669726/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=2776356272187669726' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/2776356272187669726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/2776356272187669726'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2010/01/jeudi-14-janvier-2010-reunion-de-la-das.html' title=''/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-8031676023825024787</id><published>2009-11-30T11:10:00.003+01:00</published><updated>2009-11-30T14:16:38.091+01:00</updated><title type='text'>Teaser : Linux to take off</title><content type='html'>Well, fairly aggressive this title is... But by 'takeoff' I mean... embedded in planes ! For yes, one major project has emerged whose aim is to provide tools to ease DO-178 certification. Plus another project to be announced clearly aims at providing an allegedly restricted but nevertheless hard real time kernel based on Linux.&lt;br /&gt;&lt;br /&gt;What real work is not yet done to date ? In my opinion, not much for the description, but this shortly described work means much, a big tedious but careful job to begin.&lt;br /&gt;&lt;br /&gt;The remaining areas of concern ?&lt;br /&gt;&lt;br /&gt;Well, as most drivers are probably following the good practise guidelines implementing interrupt handlers in 2 parts (either task queue or bottom half), a few probably remain. Targetting DO certification, only certified hardware will be of concern though. To aim at making a fully featured RT kernel, the drivers for non-certified hardware will need expertise, and some of the job might be done in the meantime.&lt;br /&gt;&lt;br /&gt;The scheduler does have a superseded O(1) algorithm. The new algorithm, actually diverging at O(ln(n)), is however much faster than the O(1) for all real-life cases (less than 4G processus). Again, no concern here.&lt;br /&gt;&lt;br /&gt;The malloc will need careful audit, then. This will be tedious but I am confident, as Linux use has already spread so that I am sure the audit is already fairly advanced.&lt;br /&gt;&lt;br /&gt;Next idea lies where all the error and exceptions handling functions are. These are the other possibility of undesirable unbounded latency.&lt;br /&gt;&lt;br /&gt;Then what ? After all the work in between have been considrerd, I think we are then almost done. Provided no-one uses the Joystick port any longer (that one can only be driver via active wait), we have then dealt with all things a processus and drivers can do : syscalls, memory, read/write, interrupts, errors...&lt;br /&gt;&lt;br /&gt;The project in which all this work will be issued is to be announced shortly...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-8031676023825024787?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/8031676023825024787/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=8031676023825024787' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/8031676023825024787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/8031676023825024787'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/11/teaser-linux-to-take-off.html' title='Teaser : Linux to take off'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-1929761852003185032</id><published>2009-11-18T11:16:00.002+01:00</published><updated>2009-11-18T11:27:47.931+01:00</updated><title type='text'>OpenBSD's bleeding edge pf</title><content type='html'>Even though I am no networks specialist, I have been involved in the business of having to understant how OpenBSD's packetfilter, aka pf, does round-robin load balancing.&lt;br /&gt;&lt;br /&gt;The why of this expertise was quite straightforward : as pf does round-robin exactly well and balances the load exactly as expected, the first ever target, I mean the first target when the rules are set, has been found not to be the first in the list. This remark possibly matters 0.001% of all potential pf users, but I have then been required to check pf's predictability - an unpredictable pf's first was the most seriously fact feared...&lt;br /&gt;&lt;br /&gt;This holds for OpenBSD 4.2, ie a fairly old one, but pf code has hardly changed since, and I have not seen any change in the lines involved here.&lt;br /&gt;&lt;br /&gt;What happens is that, using BSD's TAILQ structures and macros, pf does choose the first in the list, then iterates before selecting the target. In a word, the first target that the load balancing hits is the &lt;span style="font-weight:bold;"&gt;second&lt;/span&gt; in the list. It is fully predictable and safe : a behaviour well in OpenBSD's tradition.&lt;br /&gt;&lt;br /&gt;In the end, I had to patch the program that generated our pf rules, so the first does come first in the production system...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-1929761852003185032?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/1929761852003185032/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=1929761852003185032' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1929761852003185032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1929761852003185032'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/11/openbsds-bleeding-edge-pf.html' title='OpenBSD&apos;s bleeding edge pf'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-2161368156639236050</id><published>2009-09-08T16:05:00.004+02:00</published><updated>2009-09-08T16:15:00.437+02:00</updated><title type='text'>L'embarqué au service de la sécurité ?</title><content type='html'>Quelques réflexions sur la sécurité routière :&lt;br /&gt;&lt;br /&gt;Au moment où les tristement célèbres boites noires, témoins ultimes des éléments techniques précédant les incidents de vol dans l'aviation, se font frapper d'obsolescence, n'est-il pas temps d'envisager l'utilisation des idées qui ont été à l'origine de leur création, à savoir l'analyse précise des événements afin d'accroitre la sécurité, au profit de la route ?&lt;br /&gt;&lt;br /&gt;En partant d'un format ouvert, signé pour cacheter le contenu, d'événements datés et archivés à chaque événement ressemblant à un accident, le but serait de proposer un dispositif, techniquement dédié à l'analyse des événements pré-accident, dont le but serait principalement de détailler la responsabilité de chacun des petits oublis et/ou libertés avec le code de la route. Ceci pour fournir 2 éléments :&lt;br /&gt;* Un compte-rendu exact des responsabilités engagées,&lt;br /&gt;* Un relevé fiable des causes d'accident.&lt;br /&gt;&lt;br /&gt;Ceci afin de répondre à 2 besoins : la responsabilisation des chauffeurs, d'une part, avec comme principal moteur la conduite sécuritaire car le dispositif ne serait activable qu'en cas d'événement accidentel, et un relevé juste et exhaustif des statistiques des événements déclencheurs d'accident, pour que les forces de l'"ordre" ne soient plus tentés de dire d'un accident pour lequel aucune case ne peut être cochée : "C'est la vitesse" !&lt;br /&gt;&lt;br /&gt;Parce que j'en ai marre de serrer les fesses à chaque fois que, signifiant mon intention d'aller tout droit, je me sens suivi par un hurluberlu qui croit dur comme fer que comme la plupart des gens, je tourne à droite en omettant mon clignotant !!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-2161368156639236050?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/2161368156639236050/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=2161368156639236050' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/2161368156639236050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/2161368156639236050'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/09/lembarque-au-service-de-la-securite.html' title='L&apos;embarqué au service de la sécurité ?'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-8027990978673811669</id><published>2009-08-18T16:16:00.003+02:00</published><updated>2009-08-19T09:02:53.630+02:00</updated><title type='text'>Un NetBook sympa...</title><content type='html'>Depuis l'annonce de l'OpenPandora, je me suis mis à voir en ce curieux engin un fort sympathique instrument à développer en toutes occasions, avec une taille juste bonne pour la poche, et un clavier pensé pour la contrainte du compromis que les doigts de l'utilisateru ne se miniaturise pas...&lt;br /&gt;&lt;br /&gt;Toujours sur la même techno sur base ARM (un ancien de Cambridge comme moi est nécessairement sensible à leurs miracles), le TouchBook de Always Innovating...&lt;br /&gt;&lt;br /&gt;Allez, plus qu'à rêver de la même chose sur base Cortex A9... En attendant, jolie bête : Reprenant la taille des NetBooks les plus sympas à mon avis (9" : en dessous, la résolution de l'écran chute à un simple WVGA, au-dessus on ne gagne plus rien de concret), ajoutant une jolie innovation sur le coup du clavier détachable, ce combiné tablette-ordinateur sous Linux est le gadget de geek qui me fait le plus envie à l'heure actuelle !&lt;br /&gt;&lt;br /&gt;http://www.alwaysinnovating.com/touchbook/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-8027990978673811669?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/8027990978673811669/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=8027990978673811669' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/8027990978673811669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/8027990978673811669'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/08/un-netbook-sympa.html' title='Un NetBook sympa...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-1726228268933857952</id><published>2009-07-20T10:22:00.002+02:00</published><updated>2009-07-20T10:26:15.821+02:00</updated><title type='text'>Latence, préemptibilité and al</title><content type='html'>C'est dit, je me consacre du temps cet été pour me "muscler" au niveau du scheduler et des éléments internes du kernel. Le but : apporter une petite touche avec l'esprit temps-réel. Je ne serai pas le premier à le faire (ni le dernuer j'espère), mais ce serait tellement chouette un kernel RT...&lt;br /&gt;&lt;br /&gt;Si quelqu'un a un pointeur pour des analyses au sujet de FreeBSD sur ce point je suis preneur :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-1726228268933857952?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/1726228268933857952/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=1726228268933857952' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1726228268933857952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1726228268933857952'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/07/latence-preemptibilite-and-al.html' title='Latence, préemptibilité and al'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-1429098369776340546</id><published>2009-06-11T13:29:00.003+02:00</published><updated>2009-06-11T13:35:32.420+02:00</updated><title type='text'>Hors sujet</title><content type='html'>Petite parenthèse 100% hors sujet.&lt;br /&gt;Dans l'actuelle mouvance philosophico-écologique, ne crachons pas sur ce qui est fait jusqu'ici, on a fait bien plus d'effort en 10 ans que pendant tout le reste de l'humanité, le tout grâce à une prise de conscience dont on finissait par désespérer.&lt;br /&gt;Cependant, chassez le libéral, il revient au galop, tout s'est fait en se concentrant sur une seule donnée, puisque comme chacun sait notre monde perçu par les financiers n'existe qu'en 1 dimension... Et la dimension qui a été choisie s'appelle "CO2".&lt;br /&gt;Or il est un domaine où la pollution autre que le CO2 a un aspect manifestement plus nocif et dommageable que le CO2 : les moteurs à combustion spontanée (nommés du patronyme de son inventeur "Diesel"). En effet, une étude suédoise attribue aux échappements du Diesel en Europe presuqe autant de morts par cancer du poumon que... l'amiante, interdite chez nous depuis quelques années déjà !&lt;br /&gt;On pourra dire qu'il s'agit encore d'une avancée écologique, puisque les premiers touchés par les dommages en question sont les mammifères vivant en zône urbaine, à savoir les homo erectus citadinus, aussi les pires pollueurs de la planète : autorégulation...&lt;br /&gt;Je n'adhère pas.&lt;br /&gt;Exigeons la prise en compte des émissions de particules fines (non filtrées par les très mercantiles "Filtres à Particules") dans le calcul de la puissance fiscale et de la taxe pollution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-1429098369776340546?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/1429098369776340546/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=1429098369776340546' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1429098369776340546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1429098369776340546'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2009/06/hors-sujet.html' title='Hors sujet'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-6166469082953708090</id><published>2008-11-24T18:40:00.002+01:00</published><updated>2008-11-24T18:50:18.777+01:00</updated><title type='text'>La latence, tout est là...</title><content type='html'>Les efforts de Ingo Molnar ont été momentanément mis en attente avec la suppression du Big Kernel Lock apparu pour (de mémoire) le 2.6.27. Tout ça pour arriver (enfin) à maîtriser la latence.&lt;br /&gt;&lt;br /&gt;Aujourd'hui, où en est-on exactement ? A part que la plupart des handlers se contruisent avec la problématique de latence en tête, il reste des approches contradictoires, ou plus exactement "nombrilistes" : si l'on veut que "son" driver soit temps réel à latence la plus faible alors il faut que tous les autres drivers aient une latence sous interruption maîtrisée (donc souvent en 2 parties) mais que l'on écrive son propre driver en monobloc... Rassurons-nous, la différence entre les deux reste très faible.&lt;br /&gt;&lt;br /&gt;A voir en pratique...&lt;br /&gt;&lt;br /&gt;Prochaine étape : tickless kernel sur OpneMoko et Pandora.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-6166469082953708090?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/6166469082953708090/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=6166469082953708090' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/6166469082953708090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/6166469082953708090'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/11/la-latence-tout-est-l.html' title='La latence, tout est là...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-3958284641439125536</id><published>2008-08-28T12:51:00.003+02:00</published><updated>2008-08-28T14:34:48.533+02:00</updated><title type='text'>FreeRunner</title><content type='html'>Ca y est, je l'ai ! un téléphone dont tout l'ensemble logiciel est en très forte majorité Open Source. Seule exception, la pile GSM, intégralement contenue dans une puce pour éviter les soucis liés au protocole (on ne va tout de même pas envoyer un faux IMSI pour faire facturer le voisin...).&lt;br /&gt;&lt;br /&gt;Pour le reste, résolution intéressante, réactivité convenable, pas mal du tout le QTopia.&lt;br /&gt;&lt;br /&gt;L'aspect technique ? Un kernel 2.6.22.x patché, donc pas de tickless kernel. C'est certainement un des éléments qui expliquent une autonomie faiblarde. Une saisie, basé sur un tandem clavier / dictionnaire prédictif, divise la communauté. Bref, le travail a besoin d'encore un peu de finition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-3958284641439125536?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/3958284641439125536/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=3958284641439125536' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3958284641439125536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3958284641439125536'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/08/freerunner.html' title='FreeRunner'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-3845303109019052357</id><published>2008-06-25T07:18:00.000+02:00</published><updated>2008-06-25T07:28:23.597+02:00</updated><title type='text'>Première Matinale Red Hat</title><content type='html'>Hier (mardi 24/6) matin, j'ai eu l'opportunité d'être convié à une Matinale Red Hat, la première du nom en fait. Le but : présenter toutes les nouveautés de l'entreprise au Fedora rouge dans le domaine de la virtualisation, ainsi que 2 invités de marque, Intel pour montrer la participation du fondeur aux technologies de virtualisation, et un cas concret de mise en oeuvre de virtualisation, présenté par des membres de l'équipe de DSI de Pages Jaunes.&lt;br /&gt;&lt;br /&gt;Concernant la virtualisation, à part un engagement de Red Hat avec Xen jusqu'en 2014 et des développements poussant aujourd'hui des technologies du kernel 'Vanilla', au premier chef kvm, l'accent est surtout mis sur la carence actuelle des logiciels libres de virtualisation, que j'avais identifiée avec mon collègue D. Hannequin dans le Livre Blanc publié par LINAGORA sur le sujet : les outils d'administration de parc virtuel. D'excellentes nouvelles donc.&lt;br /&gt;&lt;br /&gt;La fin de leur présentation signalait aussi une annonce nommér MRG : Messaging Realtime Grid, basé sur Linux, série 2.6.24. La mise en avant d'un produit annoncé temps réel dur basé sur un kernel "vanilla"...&lt;br /&gt;&lt;br /&gt;J'avais ouvert ce blog en espérant merttre en évidence que cela était en effet possible, mais le résidu de BKL (Big Kernel Locks) dans le kernel, et l'évaluation de A. Morton à environ 10 ans de travail pour s'en débarrasser totalement m'avait un peu ramené à la dure réalité : &lt;span style="font-style:italic;"&gt;not yet&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Et toujours pas d'ailleurs, en réalité, mais qu'un des plus gros industriels impliqués dans le noyau s'y engage, c'est une excellente nouvelle. On tient les paris... Pour 2009 ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-3845303109019052357?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/3845303109019052357/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=3845303109019052357' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3845303109019052357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3845303109019052357'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/06/premire-matinale-red-hat.html' title='Première Matinale Red Hat'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-4426968760612437942</id><published>2008-05-05T14:41:00.000+02:00</published><updated>2008-05-07T10:30:26.417+02:00</updated><title type='text'>Latences...</title><content type='html'>Tout d'abord la référence : la programmation temps-réel a ses normes : POSIX 4d9, devenu POSIX 1003.1b-1993 puis POSIX 1003.1i-1995. Totu cela indique comment coder une application utilisateur qui se comporte d'une certaine manière et quelles sont les obligations et/ou bonnes partiques d'un OS en terme de réponse.&lt;br /&gt;&lt;br /&gt;Du point de vue d'une application, le temps est continu, la seule chose à prendre en compte est que le temps entre deux "gettimeofday" est foncièrement indécidable. L'important donc pour un code en mode utilisateur, c'est essentiellement de pouvoir réquisitionner le processeur dans des temps bornés (réaction à sollicitation), ou en temps prévu (interval timer).&lt;br /&gt;&lt;br /&gt;Or cette réquisition va se faire moyennant un certain délai, entièrement du ressort de l'OS : le temps d'interrompre une tâche (user ou kernel) en cours, le temps de sélectionner la tâche à éxécuter, le temps de reprendre.&lt;br /&gt;&lt;br /&gt;Concernant la reprise, le temps peut être considéré comme à peu près constant, il s'agit d'un temps de commutation de contexte très peu dépendant du processus à réactiver (la seule dépendance, liée à la présence ou non du code à réactiver dans le cache, n'est pas maitrisable). Sur ce point on peut donc trouver un temps majorant assez simplement.&lt;br /&gt;&lt;br /&gt;L'interruption d'un processus utilisateur est de la même veine. Dans le cas particulier, donc, d'un processus utilisateur à interrompre, la qualité temps réel de la réquisition du processeur par le système pau profit d'un autre processus est complètement liée à la qualité temps réel de la sélection du processus à sélectionner (le scheduler).&lt;br /&gt;&lt;br /&gt;Cas un peu plus complexe mais très fréquent : la sollicitation arrive sous forme d'une interruption. En rajoutant l'hypothèse que le processus en cours est un processus utilisateur. C'est un cas qui peut se ramener rapidement au précédent, puisque la commutation de tâches dans un système à temps partagé se fait en programmant un générateur d'interruptions (timer). On a donc "simplement" rajouté le temps de traitement particulier de l'interruption considérée - et ôté la durée du handler du timer.&lt;br /&gt;&lt;br /&gt;Les *vrais cas difficiles c'est quand on interrompt un bout de code kernel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-4426968760612437942?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/4426968760612437942/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=4426968760612437942' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/4426968760612437942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/4426968760612437942'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/05/latences.html' title='Latences...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-1190902519424295266</id><published>2008-04-21T14:32:00.000+02:00</published><updated>2008-04-21T15:14:38.180+02:00</updated><title type='text'>O temps suspends ton vol...</title><content type='html'>Je viens de voir à l'occasion de la sortie du kernel Linux 2.6.25 l'existence de l'outil &lt;a href="http://latencytop.org/"&gt;latencytop&lt;/a&gt;. De quoi au moins outiller mes propos, pour les latences que l'outil saura mesurer.&lt;br /&gt;&lt;br /&gt;Après parcours de la liste des innovations de la 2.6.25, il semble que l'effervescence se soit calmée pour la partie scheduler. Tant mieux, il y a tant à dire pour la 2.6.24 !&lt;br /&gt;&lt;br /&gt;Les latences possibles que j'imagine au niveau kernel (les freins à une latence faible) ?&lt;br /&gt;&lt;br /&gt;- tout d'abord le matériel. Il est illusoire de demander à un ARM2 à 8MHz d'obtenir une latence identique à un Core2 duo dont la fréquence interne est facilement 250 fois supérieure ! De même les accès RAM et les débits RAM ont profité d'une amélioration spectaculaire ces 10 dernières années et les systèmes auxquels on demande les meilleures perfs RT ne sont pas les machines dernier cri...&lt;br /&gt;&lt;br /&gt;- ensuite le codage interne du kernel. Blocage sous Mutex, Ordonnaceur trop long, interruptions désactivées trop longtemps sont les principales causes d'accroissement de latence. Un handler d'IT mal écrit peut décider de la latence complète du système. Ce n'est pas propre à Linux, un vendeur d'OS temps réel l'a appris à ses dépends sur son propre driver disque dur !&lt;br /&gt;&lt;br /&gt;- Enfin l'utilisation du système. une machine qui croule régulièrement sous la charge, dimensionnée pour accepter juste la charge, ne sera peut-être pas en mesure de tenir systématiquement uen latence faible. On ne peut exiger d'une machine prévue pour bosser 10 secondes à 110% de ses capacités de prétendre avoir un comportement temps réel pendant cette surcharge sans risquer de voir certaines piles déborder (au mieux), certaines latences diverger (au pire).&lt;br /&gt;&lt;br /&gt;Donc on commencera à parler de temps réel sous les conditions suivantes :&lt;br /&gt;&lt;br /&gt;- Les erreurs de codage manifestes sont exclues,&lt;br /&gt;&lt;br /&gt;- L'erreur de sous-dimensionnement pour de longs intervalles est écartée,&lt;br /&gt;&lt;br /&gt;- On demande au matériel des latences qu'il a une chance de tenir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-1190902519424295266?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/1190902519424295266/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=1190902519424295266' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1190902519424295266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/1190902519424295266'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/04/o-temps-suspends-ton-vol.html' title='O temps suspends ton vol...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-9121014887956956235</id><published>2008-03-10T13:57:00.000+01:00</published><updated>2008-03-10T14:22:35.350+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nc'/><title type='text'>Les temps réels...</title><content type='html'>Temps réel dur, temps réel mou, de quoi parle-t-on ?&lt;br /&gt;&lt;br /&gt;On parle de temps réel lorsque la programmation peut se faire par échéance. Par exemple "j'ai besoin d'exécuter tel exécutable à tel moment". Dans le cas d'un système POSIX standard sans aucun complément temps réel, on peut presque atteindre, sur une machine peu chargée, avec une précision convenable, des délais à la seconde près... Peut-être à peu près suffisant pour un GPS piéton, mais guère mieux...&lt;br /&gt;&lt;br /&gt;Par la suite, les extensions orientées temps réel sont arrivées, et se sont normalisées. Il s'agit essentiellement de proposer des interfaces à peu près communes pour accéder, sur les ensembles hard+soft le permettant, de meilleures précisions. A discrétion du vendeur...&lt;br /&gt;&lt;br /&gt;Le débat central se situe alors sur la certitude du respect des échéances et du retard auquel on peut s'attendre. Prenez une application comme la video, une surcharge à un moment peut vous faire perdre une trame, on réussit en général à en reconstituer une bonne partie sans dommage. Au pire on vous fait rater une image. Prenons le cas d'un ABS : au pire on vous fait rater... un virage !!!&lt;br /&gt;&lt;br /&gt;La question centrale donc : quelle précision suis-je sûr d'atteindre dans tous les pire cas (sauf faute de sous-dimensionnement violent de ma capacité...), quelle précision puis-je atteindre dans "juste" 90% des cas ?&lt;br /&gt;&lt;br /&gt;Pendant longtemps, seuls les systèmes propriétaires permettaient une telle garantie. Et encore, sous certaines réserves. En effet, si un OS vous permet de désactiver les interruptions et que vous décidez sous interruptions désactivées de réordonner les particules de l'Univers, vous allez faire exploses vos échéances... Pour y parer certains OS interdisent l'accès direct aux handlers d'IT, au détriment de la performance (ex : Solaris jusque version 6). Un fournisseur d'OS avait même commis cette boulette dans un de ses propres drivers de disque...&lt;br /&gt;&lt;br /&gt;Aujourd'hui, Linux arrive dans ce domaine, fort d'une réputation sulfureuse de "non temps réel", acquis tout au long de son histoire. La question est autant polémique que violemment pointue.&lt;br /&gt;&lt;br /&gt;Ce qui gêne potentiellement, ce sont les intervalles de temps où un système ne peut être interrompu. Un énorme travail a été fait pour diminuer cette granularité du kernel Linux sous forme de patches à la branche 2.4, reporté en 2.5 et intégré au 2.6 (branche actuelle). Après cela, il reste à vérifier que la sélection du processus à exécuter (scheduling) prend un temps déterminé.&lt;br /&gt;&lt;br /&gt;C'est chose faite avec le Completely Fair Scheduler du kernel 2.6.24. Reste à déterminer la latence maximale et les conditions aux limites de ce kernel. C'est ce travail que je me propose de faire et de documenter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-9121014887956956235?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/9121014887956956235/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=9121014887956956235' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/9121014887956956235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/9121014887956956235'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/03/les-temps-rels.html' title='Les temps réels...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8437955468461641283.post-3849608688045080699</id><published>2008-03-04T11:30:00.000+01:00</published><updated>2008-03-06T11:21:56.790+01:00</updated><title type='text'>Départ...</title><content type='html'>Ce blog a pour seul but d'exprimer toutes les idées, plus ou moins farfelues, qui me passent par la tête au sujet du temps réel. Sa réalisation s'inspire d'une discussion enflammée à la fin du cycle de conférences embarqué à Solutions Linux 2008.&lt;br /&gt;&lt;br /&gt;Fondamentalement, j'ai tiré de cette longue discussion quelques éléments simples : tout d'abord, la notion de temps réel dur et de temps réel non-dur est un peu incomplète, l'interprétation usuelle étant que le temps réel dur est "borné". Aucun système informatique ne peut gérer des éléments en nombre non borné, et hors de toute erreur manifeste de codage (boucle infinie), un temps de réponse est toujours borné, la seule contrainte à appréhender est si le pire des cas (la borne supérieure) est acceptable, et si le cas à 99% convient.&lt;br /&gt;&lt;br /&gt;Concrètement, Linux est-il temps réel dur ? Avec un scheduler en O(1) et des points de préemption placés dans le kernel, moyennant une expertise du code que je vais m'empresser de faire, je dirais oui. Mais pas temps réel dur à 0,1ms, ni temps réel dur à 1ms. L'ordre de grandeur ressemble plus à 10ms, ce qui peut être rédhibitoire pour certains usages (même pour contrôler un ABS on est limite). Et encore, moyennant un réglage particulier du kernel et un processeur suffisamment puissant.&lt;br /&gt;&lt;br /&gt;Donc la bonne question est : "Mon OS peut-il garantir une échéance à x millisecondes sur mon hard dans 100% des cas ? dans 99% des cas ?". Le boulot d'ingénieur c'est de savoir conclure si oui ou non la combinaison hard/soft permet de remplir le contrat voulu.&lt;br /&gt;&lt;br /&gt;La difficulté, non pas pour l'aspect temps réel mais beaucou plus pour l'embarqué, c'est d'accepter de surdimensionner son matériel pour atteindre le 100%. Ce surdimensionnement peut très bien être complètement inacceptable d'ailleurs (contraintes de coûts par exemple). Un hard+OS qui vous fait 1ms à 99,9% des cas et 25ms sur le 0,1% restant, c'est frustrant de l'acheter pour du 25ms...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8437955468461641283-3849608688045080699?l=realtimefreak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realtimefreak.blogspot.com/feeds/3849608688045080699/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8437955468461641283&amp;postID=3849608688045080699' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3849608688045080699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8437955468461641283/posts/default/3849608688045080699'/><link rel='alternate' type='text/html' href='http://realtimefreak.blogspot.com/2008/03/dpart.html' title='Départ...'/><author><name>Slide</name><uri>http://www.blogger.com/profile/04634556562902370929</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
