:: wikimiki.org ::
| Système Temps Réel |
Système temps réel
Catégorie:Système d'exploitationCatégorie:Programmation informatique
En informatique industrielle, on parle d'un système temps réel lorsque ce système informatique contrôle (ou pilote) un procédé physique à une vitesse adaptée à l'évolution du procédé contrôlé.
Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs d'activités : dans l'industrie de production par exemple, au travers des systèmes de contrôle de procédé, dans les salles de marché au travers du traitement des données boursières en « temps réel », dans l'industrie du transport au travers des systèmes de pilotage embarqués, ou encore dans le secteur de la nouvelle économie au travers du besoin, toujours croissant, du traitement et de l'acheminement de l'information (vidéo, données, pilotage à
distance, réalité virtuelle, etc.). Ces systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés.
On distingue le temps réel strict ou dur (de l'anglais hard real-time) et le temps réel souple ou mou (soft real-time) suivant l'importance accordée aux contraintes temporelles. Le temps réel strict ne tolère aucun dépassement de ces contraintes, ce qui est souvent le cas lorsque de tels dépassements peuvent conduire à des situations critiques, voire catastrophiques : pilote automatique d'avion, système de surveillance de centrale nucléaire, etc. À l'inverse le temps réel souple s'accommode de dépassements des contraintes temporelles dans certaines limites au-delà desquelles le système devient inutilisable : visioconférence, jeux en réseau, etc.
Exemples de systèmes d'exploitation temps réel
- Adeos
- ART Linux
- ChorusOS
- eCos
- ITRON
- LynxOS
- MicroC/OS-II
- Nucleus
- OS-9
- OSE
- OSEK/VDX
- pSOS
- QNX
- RSX-11
- RT-11
- RTOS-UH
- SCIOPTA
- VRTX
- VxWorks
- Windows CE
- RTLinux ou Real Time Linux
- RTAI
Bibliographie
Jane W. S. Liu, « Real-time Systems », Prentice Hall, 2000.
Voir aussi
Lien interne
- Chien de garde
- Rate Monotonique
Catégorie:Programmation concurrente
Catégorie:Système d'exploitation
Catégorie:Informatique
Exploitation
Catégorie:Logiciel
ja:Category:オペレーティングシステム
ko:분류:운영 체제
Catégorie:Programmation informatiqueCette catégorie recence les techniques de programmation en informatique.
Elle n'est pas normalement utilisée pour :
- les langages de programmation
- les compilateurs, les débogueurs, et tous les outils utilisé en programmation
- les architectures
- les algorithmes
qui pourront être rangé dans les sous catégories de :catégorie:développement logiciel.
Catégorie:Développement logiciel
ja:Category:プログラミング
Informatique ko:컴퓨터 과학 ja:情報工学 simple:Computer science th:วิทยาการคอมพิวเตอร์ zh-cn:计算机科学 zh-tw:計算機科學
oc:informatica]
Etymologiquement, Le terme informatique désigne l'automatisation du traitement de l'information par une machine (virtuelle ou physique). Dans son acception courante, l'informatique désigne de façon vague l'ensemble des sciences et techniques en rapport de près ou de loin avec l'information et l'ordinateur. Par exemple, l'informatique désigne aussi bien le matériel informatique que la conception et l'administration de la partie immatérielle d'un ordinateur : les logiciels.
La traduction anglaise étymologique serait informatics, mais l' usage tant en français qu'en anglais fait qu'une meilleure traduction serait probablement computer science, bien que ce terme fasse peut-être référence de façon plus explicite à ce que l'on pourrait appeler informatique fondamentale ou informatique scientifique. En anglais les termes distincts suivants sont utilisés :
- L'informatique fondamentale (Computer Science), ce qui ressort de l' épistémologie procédurale, soit notamment de l'étude des algorithmes, et donc indirectement des logiciels et des ordinateurs.
- L'ingénierie informatique (Computer Engineering), ce qui ressort de la fabrication et de l'utilisation du matériel informatique.
- L'ingénierie logicielle (Software Engineering), ce qui ressort de la modélisation et du développement des logiciels; ceci comprend le traitement des données (Data Processing), ce qui est du domaine de la mise en pratique des traitements de données.
- L'évolution des techniques et des technologies reliées à l'informatique (Information Technology).
Des professions aussi diverses que concepteur, développeur, responsable d'exploitation, ingénieur système, technicien de maintenance, matérielle ou logicielle, chercheur en informatique ou directeur d'un centre de calcul, relèvent du domaine de l'informatique. Néanmoins, le terme informaticien désigne le plus souvent ceux qui conçoivent, déploient et mettent en œuvre des solutions.
Étymologie
Le terme informatique a été créé en mars 1962 par Philippe Dreyfus à partir des mots «information» et «automatique». Il donna ce nom à l'entreprise qu'il venait de fonder, la Société d'Informatique Appliquée, sans breveter le mot informatique.
En France, l'usage officiel du mot a été consacré par Charles de Gaulle qui, en Conseil des ministres, a tranché entre «informatique» et «ordinatique», et le mot fut choisi par l'Académie française en 1967 pour désigner cette nouvelle discipline. En juillet 1968, le ministre fédéral de la Recherche scientifique d'Allemagne, Gerhard Stoltenberg, prononça le mot informatik lors d'un discours officiel au sujet de la nécessité d'enseigner cette nouvelle discipline dans les universités de son pays, et c'est ce mot qui servit aussitôt à nommer certains cours dans les universités allemandes. Le mot informatica fit alors son apparition en Italie et en Espagne, de même quinformatics au Royaume-Uni.
Pendant le même mois de mars 1962 Walter F. Bauer inaugura la société américaine Informatics Inc., qui elle breveta son nom et poursuivit toutes les universités qui utilisèrent ce nom pour décrire la nouvelle discipline, les forçant à se rabattre sur computer science, bien que les diplômés qu'elles formaient étaient pour la plupart des praticiens de l'informatique plutôt que des scientifiques au sens propre. L'Association for Computing Machinery, la plus grande association d'informaticiens au monde, approcha même Informatics Inc. afin de pouvoir utiliser le mot informatics pour remplacer l'expression computer machinery, mais l'entreprise déclina l'offre. La société Informatics Inc. cessa ses activités en 1985, achetée par Sterling Software.
Histoire
Voir l'article détaillé : Histoire de l'informatique
Les origines
Depuis des millénaires, l'Homme a créé et utilisé des outils l'aidant à calculer (abaque, boulier, etc.). Les premières machines mécaniques apparaissent entre le XVIIe et le . La première machine à calculer mécanique réalisant les quatre opérations aurait été celle de Wilhelm Schickard au , mise au point notamment pour aider Kepler à établir les tables rudolphines d'astronomie.
En 1642, Blaise Pascal réalisa également une machine à calculer mécanique qui fut pour sa part commercialisée et dont neuf exemplaires existent dans des musées comme celui des Arts et métiers et dans des collections privées (IBM).
La découverte tardive du mécanisme d'Antikhitère montre que les Grecs de l'Antiquité eux-mêmes avaient commencé à réaliser des mécanismes de calcul en dépit de leur réputation de mépris général pour la technique (démentie d'ailleurs par les travaux d'Archimède).
Cependant, il faudra attendre la définition du concept de programmation (illustrée en premier par Joseph Marie Jacquard avec ses métiers à tisser à cartes perforées, suivi de Boole et Ada Lovelace pour ce qui est d'une théorie de la programmation des opérations mathématiques) pour disposer d'une base permettant d'enchaîner des opérations élémentaires de manière automatique.
L'informatique moderne
L'ère des ordinateurs modernes commença avec les développements de l'électronique pendant la Seconde Guerre mondiale, ouvrant la porte à la réalisation concrète de machines opérationnelles. Au même moment, le mathématicien Alan Turing théorise le premier ce qu'est un ordinateur, avec son concept de machine universelle de Turing.
L'informatique est donc un domaine fraichement développé, même s'il trouve ses origines dans l'antiquité (avec la cryptographie) ou dans la machine à calculer de Blaise Pascal, au . Ce n'est qu'à la fin de la Seconde Guerre mondiale qu'elle a été reconnue comme une discipline à part entière et a développé des méthodes, puis une méthodologie qui lui étaient propres.
Son image a été quelque temps surfaite : parce que les premiers à programmer des ordinateurs avaient été des ingénieurs rompus à la technique des équations différentielles (les premiers ordinateurs, scientifiques, étaient beaucoup utilisés à cette fin), des programmeurs sans formation particulière, parfois d'ailleurs issus de la mécanographie, cherchaient volontiers à bénéficier eux aussi de ce label de rocket scientist afin de justifier des salaires rendus confortables par :
- le prix élevé des ordinateurs de l'époque (se chiffrant en ce qui serait des dizaines de millions d'euros aujourd'hui compte-tenu de l'inflation, il reléguait au second plan les considérations de parcimonie sur les salaires) ;
- l'aspect présenté comme peu accessible de leur discipline et un mythe de difficulté mathématique entretenu autour. En fait, les premiers ordinateurs ne se programmaient pas de façon très différente de celle des calculatrices programmables utilisées aujourd'hui dans les lycées et collèges, et maîtrisées par des élèves de quatorze ans mais le domaine était nouveau et l'algorithmique nécéssite un certain degré de concentration associé, peut-être à tort, à la réflexion pure.
L'émergence d'un aspect réellement scientifique dans la programmation elle-même (et non dans les seules applications scientifiques que l'on programme) ne se manifeste qu'avec la série The Art of Computer Programming de Donald Knuth, professeur à l'Université de Stanford, à la fin des années 1960, travail monumental encore inachevé en 2004. Les travaux d'Edsger Dijkstra, Niklaus Wirth et Christopher Strachey procèdent d'une approche également très systématique et elle aussi quantifiée.
On demandait à Donald Knuth dans les années 1980 s'il valait mieux selon lui rattacher l'informatique (computer science) au génie électrique — ce qui est souvent le cas dans les universités américaines — ou à un département de mathématiques. Il répondit : «Je la classerais volontiers entre la plomberie et le dépannage automobile» pour souligner le côté encore artisanal de cette jeune science.
Toutefois, la forte scientificité des trois premiers volumes de son encyclopédie suggère qu'il s'agit là plutôt d'une boutade de sa part. Au demeurant, la maîtrise de langages comme Haskell ou même APL demande un niveau d'abstraction tout de même plus proche de celui des mathématiques que des deux disciplines citées.
La miniaturisation des composants et la réduction des coûts de production, associées à un besoin de plus en plus pressant de traitement des informations de toutes sortes (scientifiques, financières, commerciales...) a entraîné une diffusion de l'informatique dans toutes les couches de l'économie comme de la vie de tous les jours.
Approche fonctionnelle
Comme énoncé ci-dessus, l'informatique est le traitement automatisé de données par un appareil électronique : l'ordinateur ; les germanophones parlent de elektronisch Daten Verarbeitung / EDV (« traitement électronique de données »), les anglophones dinformation technology / IT (« technologies de l'information »), c'est-à-dire :
- données ou informations : in fine, l'ordinateur manipule des nombres (d'où le terme anglais computer, littéralement « calculateur »), mais ces nombres peuvent représenter divers types d'informations :
- des... nombres bien évidemment, dans le cas de calculs scientifiques (flottants) ou comptables (décimal, ou binaire entier)... ;
- un texte, des lettres (caractères), que l'on peut mettre en forme avec un traitement de texte, imprimer, envoyer par courrier électronique... ;
- du dessin vectoriel (CAO, logiciels d'illustration, et de typographie) ;
- des images statiques (photographies) ou animées (vidéo), des hologrammes ;
- des sons, enregistrés (technique du direct to disk) ou bien fabriqués par l'ordinateur (synthétiseur), que ce soient des bruitages, de la musique (cf. musique et informatique) ou de la parole ;
:la conversion de ces informations en suite de nombres pose le problème du format des données, du codage et des formats normalisés (par exemple, représentations des nombres entiers ou à virgule flottante, format ASCII, Unicode, TeX ou RTF et polices PostScript ou TrueType pour les textes, formats bitmap, TIFF, JPEG, PNG, etc. pour les images fixes, formats QuickTime, MPEG pour les vidéos, interface MIDI pour la musique...).
- automatisé : l'utilisateur n'intervient pas, ou peu, dans le traitement des données ; le traitement est défini dans un programme qui se déroule tout seul, l'utilisateur se contente de fournir des paramètres de traitement ; le programme automatique se déroule selon un algorithme, l'établissement de ce programme est le domaine de la programmation.
- traitement : ces données sont :
- créées :
- nombres : acquisition automatique de données d'une expérience avec un ordinateur ;
- texte : taper un texte au clavier ;
- images : dessins réalisés à la souris ou sur une tablette graphique, synthèse d'image (pour présenter un projet – objet fictif en cours de conception –, imagerie médicale, dessin artistique – infographie –, film d'animation ou pixilation) ou numérisation d'une image existante (scanner, appareil photographique numérique) ou d'images animées (caméra numérique, webcam) ;
- sons enregistrés (microphone) ou recréés à partir d'une partition virtuelle (synthétiseur) ou d'un texte (synthèse vocale).
- analysées :
- nombres : l'analyse des nombres relève du domaine concerné (mathématiques, physique, économie...) ;
- texte : rechercher les occurrences de mots dans un texte pour en tirer des statistiques, aide à la correction orthographique et/ou grammaticale, et, plus généralement, traitement automatique des langues (TAL) ;
- images : on peut vouloir identifier un objet (reconnaissance de forme, reconnaissance des caractères ou OCR), ou bien déterminer la surface couverte par une couleur (par exemple pour quantifier une surface recouverte) ;
- sons : analyse spectrale, reconnaissance vocale.
- modifiées :
- nombres : calculs ;
- texte : modification d'un texte existant, traduction automatique dans une autre langue (ou langage de programmation) ;
- images : modification du contraste, de la luminosité, des couleurs, effets spéciaux ;
- sons : application d'effets (réverbération, distorsion, ajustement de la hauteur) ;
::comme il existe, selon les programmes et les besoins, une grande variété de codages possibles pour représenter chaque type d'information, beaucoup de traitements consistent à convertir les données d'un format vers un autre...
- archivées puis restituées :
- les moyens et techniques d'archivage varient en fonction de la durée de conservation souhaitée et des quantités de données en jeu : mémoires électroniques, bandes magnétiques, disques magnétiques ou optiques ;
- les moyens de restitution dépendent de la nature des données : écrans ou imprimantes pour le texte et les images, haut-parleurs ou instruments MIDI pour les sons...
Approche organisationnelle
L'informatique pour l'organisation est un élément d'un système de traitement d'information (les entrées peuvent être des formulaires papier par exemple) et d'automatisation. Depuis Henry Ford, l'automatisation des tâches ayant été identifiée comme un avantage concurrentiel, la question est : que peut-on automatiser ?
Autant il est relativement facile d'automatiser des tâches manuelles, autant il est difficile d'automatiser le travail intellectuel et parfois créatif. L'approche de l'informatique dans une organisation commence donc par l'élucidation des processus, c'est-à-dire modéliser le métier. Après validation, la MOA (Maîtrise d'Ouvrage) fournit les spécifications fonctionnelles de (l'ouvrage) qui vont servir de référence dans la conception pour la MOE (Maîtrise d'œuvre).
Cette conception sera alors effectuée dans le respect d'un Cycle de développement qui définit les rôles et responsabilités de chaque acteur. Ainsi, les échanges entre MOA et MOE ne se résument pas à la maîtrise des chantiers (tenue des délais et des coûts, et validation des livrables), la MOA et la MOE sont garantes (éventuellement responsables sur un plan juridique) de la cohérence des systèmes d'information, et de l'adéquation des solutions informatiques avec les problèmes utilisateurs finaux initialement constatés.
Matériel
Article détaillé : Matériel informatique
On utilise également le terme anglais hardware (littéralement « quincaillerie ») pour désigner le matériel informatique. Il s'agit de tous les composants que l'on peut trouver dans :
1. Les ordinateurs et leurs périphériques : un ordinateur est un ensemble de circuits électroniques permettant de manipuler des données sous forme binaire, représentées par des variations de signal électrique. Il existe différents types d'ordinateurs :
ordinateur 5150 datant de 1981, Système d'exploitation IBM-DOS 2.0]]
- Les micro-ordinateurs.
De bureau ou portables. Ils sont composés d'une unité centrale : un boîtier contenant la carte mère, l'alimentation, des unités de stockage. On y ajoute une console : un écran et un clavier. Divers périphériques peuvent leur être ajoutés, une souris, une imprimante, un scanner..ect;
scanner
- Les stations de travail.
Des micro-ordinateurs particulièrement puissants et chers, utilisés uniquement pour des besoins professionnels pointus (conception assistée par ordinateur). Ce terme était particulièrement en vogue dans les années 1980-1990. Depuis les années 2000, il n'est guère possible de concevoir une station de travail plus puissante qu'un micro-ordinateur haut de gamme ;
- Les mainframes.
Une armoire abrite l'unité centrale et l'alimentation, une ou plusieurs autres les périphériques de stockage (disque dur, sauvegarde) tandis que les moyens de communication et réseau (routeur, hubs, modem) sont dans la même pièce, mais dans des racks séparés. Une console d'administration (écran, clavier, imprimante) est généralement située dans ce même local ;
administration]
- Les PDA (Personal Digital Assistant, encore appelés organiseurs).
Ce sont des ordinateurs de poche proposant des fonctionnalités liées à l'organisation personnelle (agenda, calendrier, carnet d'adresse, etc.). Ils peuvent être reliés à Internet par différents moyens (réseau Wifi, Bluetooth, etc.).
- Et bien d'autres appareils.
Dans le domaine de l'informatique embarquée : téléphone, électroménager, automobile, armements militaires, etc.
Les cartes à puces, ou l'informatique industrielle.
Logiciel
Le logiciel désigne la partie à première vue immatérielle de l'informatique, l'organisation et le traitement de l'information : les programmes. On s'est en effet vite rendu compte que des machines techniquement très avancées pour leur époque, comme la Bull Gamma 60, restaient invendables tant qu'on n'avait pas de programmes à livrer pour les rendre immédiatement opérationnelles. IBM lança entre 1968 et 1973 une sorte d'ancêtre du logiciel libre avec son ordinateur 1130, politique qui assura à celui-ci par effet boule de neige un succès immédiat et planétaire, mais les conclusions d'un procès antitrust lui interdirent de distribuer bénévolement du logiciel.
Le monde des mainframes classe les logiciels en catégories suivantes :
- systèmes d'exploitation ;
- bases de données, comme DB2, Ingres ou Oracle ;
- programmes de communication, comme NCP ou RSCS ;
- moniteurs de télétraitement ;
- systèmes transactionnels, comme CICS ;
- systèmes de temps partagé, utilisés pour le calcul ou le développement ;
- compilateurs traduisant les langages en instructions machine et appels système ;
- tout le reste entrait en une catégorie nommée Logiciels applicatifs.
Plus simplement on distingue généralement trois types de logiciels (par ordre de proximité du matériel) :
- le firmware
- le système d'exploitation
- les logiciels et applications utilisateur (en anglais software)
On classe aussi les logiciels en libre et propriétaire, bien que les deux soient parfois panachés à des degrés divers. Certains ont une fonction bureautique ou multimédia comme par exemple les jeux vidéo. Certains logiciels ont acquis des noms connus de tous.
Le noyau du système d'exploitation crée le lien entre le matériel et le logiciel. Un logiciel, quand il est fourni sous sa forme binaire, serait utilisable uniquement avec un système d'exploitation donné (car il en utilise les services), et ne fonctionnerait que sur un matériel spécifique (car il en utilise le code d'instructions). Une conception plus récente, depuis le milieu de années 1980, consiste à distribuer les logiciels tous binaires confondus, et à les munir d'un système de licences par jetons ou tokens permettant l'usage de N copies simultanées du logiciel sur le réseau, tous matériels confondus. Cette approche est majoritaire dans le monde UNIX.
À l'initiative de Richard Stallman et du GNU, à partir de 1985, une mouvance de programmeurs refuse cette logique propriétaire et ceux-ci se muent en concepteurs inventifs pour se lancer dans le développement d'outils et de bibliothèques système libres compatibles avec le système UNIX. C'est pourtant le projet indépendant Linux, initié par Linus Torvalds, basé sur les travaux et les outils du GNU, qui aboutira dans la création d'un système d'exploitation complet et libre.
Une bonne partie des logiciels actuels fonctionnent dans un environnement graphique pour interagir avec l'utilisateur.
La diversité des systèmes informatiques a fait apparaître une technique visant à combiner le meilleur de chacun de ces univers : l'émulateur.
Il s'agit d'un logiciel permettant de simuler le comportement d'un autre système dans celui que l'on utilise,
- soit pour qu'une machine semble être une autre (voir IBM 1130),
- soit pour simuler le comportement d'un système d'exploitation (par exemple DOS ou Windows sous Linux).
Le terme anglais est software, à l'origine un jeu de mot entre hardware (« quincaillerie », pour désigner le matériel) et l'opposition soft/hard (mou/dur), opposition entre le matériel (le dur) et l'immatériel (le mou). Les traductions françaises matériel et logiciel rendent parfaitement cette opposition et cette complémentarité.
Le logiciel réalise normalement une fonction attendue de ses utilisateurs. Néanmoins, des effets secondaires (parfois nommés par contresens de traduction effets de bord) existent. Parfois même, certains logiciels sont destinés à nuire, comme les virus informatiques, nommés en anglais, par analogie avec software : malware (qu'on pourrait traduire par le néologisme nuisiciel, ou logiciel malveillant).
La création des logiciels
Un projet informatique s'inscrit dans un cycle de développement qui définit les grandes étapes de la réalisation (planification), de la manière dont on passe d'une étape à l'autre (modèle incrémental, en V, en spirale, etc.). Pour les petits projets (ou les petites équipes de développement), cette réflexion est souvent négligée (on se répartit les modules et chacun développe dans son coin). Ceci est une cause fréquente d'erreurs (bogues) et de non-conformité (le produit final n'est pas conforme aux attentes de l'utilisateur). Mais même les énormes projets, avec beaucoup de moyens, sont victimes de cette négligence ; ainsi, l'échec du premier vol d'Ariane 5 fut dû à un problème de logiciel, etc. Un projet peut alors intégrer une approche de la qualité et de la sûreté de fonctionnement des systèmes informatiques afin de contrôler autant que possible le produit final.
Un projet comprend les étapes suivantes :
- l'établissement d'un cahier des charges qui définit les spécifications auxquelles devra répondre le logiciel ;
- la définition de l'environnement d'exécution (architecture informatique) :
- type(s) d'ordinateur sur lequel le logiciel doit fonctionner (station de calcul, ordinateur de bureau, ordinateur portable, assistant personnel, téléphone portable, guichet automatique de banque, ordinateur embarqué dans un véhicule ;
- type et version du(des) système(s) d'exploitation sous-jacent ;
- périphériques nécessaires à l'enregistrement des données et à la restitution des résultats (capacité de stockage, mémoire vive, possibilités graphiques...) ;
- nature des connexions réseau entre les composants (niveau de confidentialité et de fiabilité, performances, protocoles de communication...) ;
- la conception de l'application et de ses constituants, et notamment de l'interactivité entre les modules développés : structure des données partagées, traitement des erreurs générées par un autre module... : c'est le domaine du génie logiciel ;
- la mise en place d'une stratégie de développement :
- répartition des tâches entre les développeurs ou les équipes de développement, qui vont assurer le codage et les tests ;
- le plan de test du logiciel, pour s'assurer qu'il remplit bien la mission pour laquelle il a été écrit, dans toutes les conditions d'utilisation qu'il pourra normalement rencontrer, mais aussi dans des cas limites.
Après chacune de ces phases, on peut avoir une étape de recette, où le client va valider les choix et les propositions du maître d'œuvre.
La phase de programmation consiste à décrire le comportement du logiciel à l'aide d'un langage de programmation. Un compilateur sert alors à transformer ce code écrit dans un langage informatique compréhensible par un humain en un code compréhensible par la machine, le résultat est un exécutable. On peut également, pour certains langages de programmation, utiliser un interpréteur qui exécute un code au fur et à mesure de sa lecture, sans nécessairement créer d'exécutable. Enfin, un intermédiaire consiste à compiler le code écrit vers du bytecode. Il s'agit également d'un format binaire, compréhensible seulement par une machine, mais il est destiné à être exécuté sur une machine virtuelle, un programme qui émule les principales composantes d'une machine réelle. Le principal avantage par rapport au code machine est une portabilité théoriquement accrue (il « suffit » d'implanter la machine virtuelle pour une architecture donnée pour que tous les programmes en bytecode puissent y être exécutés), portabilité qui a fait, après sa lenteur, la réputation de Java. Il convient de noter que ces trois modes d'exécution ne sont nullement incompatibles. Par exemple, OCaml dispose à la fois d'un interpréteur, d'un compilateur vers du bytecode, et d'un compilateur vers du code natif pour une grande variété de processeurs. Une fois écrit (et compilé si nécessaire), le code devient un logiciel.
Pour des projets de grande amplitude, nécessitant la collaboration de beaucoup de programmeurs, voire de plusieurs équipes, on a souvent recours à une méthodologie commune (par exemple MERISE) pour la conception et à un atelier de génie logiciel (AGL) pour la réalisation.
Au cours de la programmation et avant la livraison du produit final, le programme est testé afin de vérifier qu'il fonctionne bien (y compris dans des cas d'utilisation en mode dégradé) et qu'il est conforme aux attentes de l'utilisateur final. Les tests intermédiaires permettent de s'assurer que chaque module de code réalise correctement une fonction : ce sont les tests unitaires. Les tests finals qui vérifient le bon enchaînement des modules et des traitements sont des tests d'intégration.
Pour certaines applications demandant un haut niveau de sûreté de fonctionnement, les tests sont précédés d'une étape de vérification, où des logiciels spécialisés effectuent (généralement sur le code source, mais parfois aussi sur le code compilé) un certain nombre d'analyses pour vérifier partiellement le bon fonctionnement du programme. Il n'est toutefois pas possible (et des théorèmes mathématiques montrent pourquoi), de garantir la parfaite correction de tout logiciel par ce moyen et la phase de test reste donc nécessaire. Elle se complète aussi, lorsqu'il s'agit d'une évolution d'une application existante, de nombreux tests automatisés de non-régression.
Statistiques : la création d'un logiciel est une tâche ardue ; environ 31 % des projets informatiques sont abandonnés avant d'être terminés, plus de 50 % des projets coûtent le double du coût initialement estimé et seulement 15 % des projets finissent dans les temps et selon le budget défini. Les besoins de seule maintenance de l'existant peuvent prendre jusqu'à 50 % des effectifs d'une équipe chargée d'un logiciel (or, c'est là une fonction pénible, ingrate, peu valorisante et qui rebute et démotive les bons programmeurs).
Traitement de l'information
L'information, pour être traitée, doit être :
- représentée par un codage :
- on utilise un système de numération binaire, où l'élément unitaire informationnel est le bit (contraction de l'anglais binary digit : chiffre binaire). Les bits sont généralement regroupés par huit, pour constituer des octets (ou bytes). Un octet peut être représenté par la séquence des bits qui le constituent (par exemple : 00101110) ou par une paire de valeurs hexadécimales (pour le même exemple : 2E), plus compact. Le choix du binaire ne résulte pas de la mystique, mais tout simplement d'utiliser de simples circuits de commutation, qui ont de très larges tolérances et par conséquent de faibles coûts ;
- on représente la structuration de l'information pour permettre des échanges entre composants logiciels et entre composants matériels. Pour cela, on définit des langages et des formalismes de représentation.
- stockée dans des systèmes permanents (mémoires dites de masse) ou non (mémoires dites volatiles).
Échanges de données : protocoles et normes
Les protocoles définissent une manière de procéder, notamment pour codifier la façon dont deux entités communiquent (modules ou couches logicielles, périphériques, etc.). On parle notamment de protocole de communication lorsqu'on veut définir des mécanismes de contrôle sur la manière dont l'échange d'information est réalisé.
Un protocole peut ainsi définir :
- un langage de description d'instructions et de données graphiques (exemple : AGP) ;
- un standard de commandes et de flux d'information pour une mémoire de masse (exemples : SCSI, FireWire, IDE, Serial ATA) ;
- des échanges entre le processeur et des cartes d'extension (exemples : PCI, PCI Express, ISA) ;
- des modalités de transfert d'information entre périphériques (exemple : USB) ou sur un réseau TCP/IP, Internet, ATM, X.25) ;
- des commandes entre un client et un serveur (exemples : POP3, IMAP, HTTP, FTP …) ;
- des échanges de données informatisés spécifiques (exemples : EDI, EAI, X.400, X.500).
Certains protocoles sont définis par des normes pour permettre l'interopérabilité des matériels ou de logiciels les mettant en œuvre. D'autres normes définissent, toujours dans le domaine de l'échanges de données :
- des langages de représentation d'information sans pour autant définir la manière dont cette information peut être échangée (exemples : ASN.1, XML) ;
- des architectures de réseaux (exemples : Modèle OSI, Wifi, Ethernet, Token-Ring).
Stockage des données
En matière de stockage d'information, on distingue le dispositif permettant de l'enregistrer physiquement (périphériques et composants) de la manière dont on structure et représente l'information pour faciliter son traitement.
Mémoire de masse
:Fichier de cartes perforées
:Bande magnétique
:Disque amovible magnétique (Disquette)
:Disque magnéto-optique
:Disque dur (disque magnétique embarquant le mécanisme, l'électronique et les têtes de lecture)
:Disque optique amovible (CD-ROM, CD-R, CD-RW mais aussi DVD-ROM, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, GD-ROM, HD-DVD, Blu-ray)
:Mémoire électronique non volatile (Mémoire flash, clé USB)
Mémoire volatile
:RAM
Organisation des données en vue du stockage
:Formats (extensions) de fichiers
:Système de fichiers
:Base de données
:Annuaire
Approches scientifiques
En dehors des aspects industriels et technologiques décrits jusqu'ici, l'informatique est une discipline scientifique à part entière.
:Algorithmique
:Algèbre de Boole
:Calculabilité
:Géométrie algorithmique
:Lambda-calcul
:Logique
:Model checking
:Théorie de l'information
:Théorie des graphes
:Théorie de la complexité
:Théorie de la calculabilité
:Théorie des automates finis
Applications
:Bio-informatique
:Calcul parallèle
:Cryptographie
:Exploration de données (data mining)
:Informatique grand système (mainframe)
:Informatique de gestion
:Informatique industrielle
:Informatique décisionnelle
:Imagerie Informatique
:Intelligence artificielle
:Interface homme-machine
:Micro-informatique
:Traitement du signal
:Hypermédias
:Informatique musicale
Annexes
- Informathèque
- Abréviations en informatique
- Dictionnaire informatique
- Informatique alternative
- Liste des articles d'informatique
- Personnes célèbres en informatique
- Revues informatiques sur papier
- Sécurité informatique
- Sites d'informations sur internet
- Terminologie de la distribution informatique
- Réseaux de neurones
- Musique et informatique
- Ordinateur quantique
- Hello_world
- Visual Information Exploration
-
ECos
Catégorie:Système d'exploitation
eCos est un système d'exploitation temps réel. Il permet de réaliser des applications temps réel.
Il permet de développer des programmes dans lesquels le temps de réponse et la réactivité sont des contraintes fortes.
Lien externe
- [http://ecos.sourceware.org/ eCos]
MicroC/OS-IIµC/OS, développé par le Canadien Jean J. Labrosse, est un exécutif temps réel destiné à des environnements de très petite taille construits autour de Microcontrôleurs. Il est maintenant disponible sur un grand nombre de processeurs et peut intégrer des protocoles standards comme TCP/IP (µC/IP) pour assurer une connectivité IP sur une liaison série par PPP. Il est utilisable gratuitement pour l'enseignement
Lien externe
[http://www.ucos-ii.com site officiel]
Catégorie:Système d'exploitation
OS-9 ja:OS-9
Catégorie:Système d'exploitation
OS-9 est un système d'exploitation temps réel né en 1979/1980, et créé par la société Microware Systems Corporation.
Ce système d'exploitation peut être mis sur une carte placé dans un rack VME, connecté par le biais d'une liaison série à un PC; il est alors possible via le logiciel Microware Hawk, fonctionnant sous Windows, de communiquer avec la carte en accedant à un Interpréteur de commandes.
En 1999, 19 ans après la première version d'OS-9, Apple Computer lance son système d'exploitation Mac OS 9. Cette année là, Microware poursuivi Apple en raison de la marque déposée.
Caractéristiques du système
OS-9 est un Unix-like et est multitâche, multiutilisateur, temps réel. Il est qualifié de « ROMable ».
Il est également modulaire, en permettant à des nouveaux périphériques d'être installés rapidement sur le système en écrivant de nouveaux pilotes ou si le pilote existe, en créant simplement un nouveau descripteur de fichier.
Il est aussi compact ; le noyau fait moins de 20 Ko, et particulièrement intéressant à utiliser dans le domaine des systèmes embarqués : il fut d'ailleurs choisi par Sony et Philips pour leur lecteur CD-I. Le système de navigation de la BMW 750i utilise également OS-9.
Une détection des erreurs dans les modules chargés en mémoire est effectuée grâce au CRC.
Architectures supportant OS-9
- 6809
- 68000
- TRS-80
- MIPS, pour OS-9000
- PowerPC, pour OS-9000
Versions
La première version fut écrite en langage assembleur pour le processeur Motorola 6809, et fournissait alors une zone adressable de 64Ko. Une seconde version pour le processeur 6809 fut ensuite réalisée qui supportait 1Mo d'espace mémoire adressable; dans de nombreuses implémentations, il incluait également un environnement graphique. Plus tard, la version pour le 6809 (OS-9/6809) fut portée, en langage assembleur, pour le 68000 (OS-9/68K); puis fut réécrit en langage C dans un souci de portabilité et pris le nom de OS-9000.
Commandes principales
Parmi les commandes principales disponibles, on trouve :
- ee_config pour voir les paramètres du réseau (adresse ip, masque, ...) ou des périphériques
- dir pour lister le contenu du répertoire en cours
- mdir pour lister les modules chargés en mémoire
- telnetd pour lancer le serveur telnet
- unlink pour décharger un module
- cc, un compilateur C
Liens externes
- [http://www.microware.fr/ Site de Microware]
- [http://www.radisys.com/microware.cfm Microware OS-9] (en)
- [http://os9archive.rtsi.com/ Os9archive.rtsi.com] est une archive à propos des logiciels et des faits récents sur OS-9; en particulier il y a une [http://os9archive.rtsi.com/os9faq.html FAQ OS-9]. (en)
OséeCatégorie:Ancien Testament
Osée (hébreu hôšea` : sauve !), est l'un des douze petits prophètes. Il est l'auteur d'un des livres de l'Ancien Testament.
Ce nom est apparenté à Josué et Jésus, ainsi qu'à la formule "hosanna".
VxWorksVxWorks est un système d'exploitation temps réel, généralement utilisé dans les systèmes embarqués.
Cet OS de la firme Wind River, a été employé par la NASA pour les missions spatiales Pathfinder, Stardust, ainsi que pour les deux rovers martiens Spirit et Opportunity. La sonde martienne Mars Reconnaissance Orbiter l'utilisera aussi.
Lien externe
[http://www.windriver.com/ Site de l'éditeur (Anglais)]
Catégorie:Système d'exploitation
ja:VxWorks
ko:VxWorks
Windows CECatégorie:Microsoft Windows
Catégorie:Assistant personnel
Windows CE (parfois abrégé WinCE) est une variation de Windows pour les systèmes embarqués et autres systèmes minimalistes, utilisée notamment dans les PC de poche ou Handheld. Il utilise un noyau distinct des autres windows plutôt qu'une version allégée et supporte les architectures processeur Intel x86 et similaires, MIPS, ARM et aussi Hitachi SH.
Windows CE est optimisé pour les appareils possédant une faible capacité de stockage - le noyau peut tourner avec moins d'un megaoctet de mémoire vive. Les systèmes sont souvent produits sans disque de stockage et peuvent être pensés pour ne pas pouvoir être étendus (par exemple, le système peut être écrit en ROM). Windows CE est conforme à la définition d'un système d'exploitation temps réel. Il supporte 256 niveaux de priorité et permet l'inversement de priorité. À l'inverse des systèmes ressemblant à UNIX, l'unité fondamentale d'exécution et le thread permettant d'obtenir des programmes plus simples et plus rapides en concurrences.
Microsoft a indiqué que « CE » n'est pas un acronyme, mais beaucoup de personnes croient qu'il signifie « Consumer Electronics » ou « Compact Edition ». La première version, surnommée « Pegasus », proposait une interface graphique similaire aux autres Windows ainsi qu'un certain nombre de logiciels de Microsoft, tous allégés en capacité de stockage, mémoire et vitesse.
Depuis, Windows CE a évolué - d'après les documents de Microsoft - en un système d'exploitation basé sur des composants, embarqué et temps réel. Il n'est plus réservé aux seuls ordinateurs tenant dans la main. Beaucoup de plateforme sont basées sur le cœur du système Windows CE tel que Microsoft's Handheld PC, Pocket PC, Pocket PC 2002 et Smartphone 2002.
Il est souvent indiqué que Windows CE 3.0 et Pocket PC sont la même chose, or le Pocket PC est le successeur de Windows CE 3.0.
Le principal concurrent de ce système était Palm OS lancé sur une plateforme incompatible avec Windows CE.
Licence
Ouverture
Pour accélérer le développement d'applications compatible Windows CE, inciter au développement de matériel compatible, et ainsi gagner la confiance des constructeurs d'appareils électroniques, Microsoft a rendu public une partie du code de Windows CE. La consultation du code n'est possible qu'en utilisant un compte Passport et le programme payant Windows CE Platform Builder.
Il n'est évidemment pas question de logiciel libre : les éditeurs ayant payé une licence peuvent modifier des copies de ce code source, et ne sont pas obligés de révéler à Microsoft leur propre code source. La redistribution est limitée : les éditeurs ne peuvent pas redistribuer des versions modifiées à des fins commerciales.
Certain craigne la confusion avec le code Open Source propre au logiciel libre.
Voir aussi
- Pocket PC
- Windows CE 3.0
- Microsoft Windows Mobile 2003
ja:Windows CE
ko:윈도우즈 CE
RTAI
Le projet RTAI (Real Time Application Interface) a pour origine le département d´ingénierie aérospatiale (DIAPM) de l´école polytechnique de Milan.
Voir aussi
- Système temps réel
Rate MonotoniqueRate Monotonique (RM) est un algorithme d'ordonnancement temps réel en ligne à priorité constante.
Il attribue la priorité la plus forte à la tâche qui possède la plus petite période. De ce fait,
son test d'acceptabilité qui peut être réalisé hors ligne nous est donné par la formule suivante :
:
Remarque : RM n'utilisant que la notion de période des tâches pour effectuer son ordonnancement, il ne peut être utilisé que pour des tâches à échéances sur requête.
Catégorie:Programmation concurrenteCatégorie:Programmation informatique
Tricia DuffieldIn 2004 and 2005, Tricia Duffield hosted the 5am-7.45am "Breakfast Show" on ABC Local Radio station 612 ABC Brisbane in Queensland, Australia. Duffield left ABC Brisbane at the end of 2005, announcing she was moving to Sydney.
hotels edinburgh uk WAKACJE gry zrcznociowe zbiorniki tworzywowe darmowe statystyki
|
|
|
| :: RELATED NEWS :: |
Edmund (Schottland)
Edmund (Etmond mac Maíl Coluim) war schottischer König von 1093 bis 1094 sowie von 1094 bis 1097. Er war der zweite Sohn von Malcolm und dessen Ehefrau Margareta von Schottland. Edmund herrschte zusammen mit seinem Onkel
|
Heidi (1978)
Heidi ist eine von Deutschland, Australien und der Schweiz koproduzierte Fernsehserie mit 26 Teilen aus dem Jahr 1978.
Handlung
Heidi wird von ihrer Tante Dete zum Alpöhi gebracht. Dieser ist überhaupt nicht davon begeistert, ein Kind aufzunehmen.
Der Alpöhi lebt schon lange zurückgezogen auf seiner Alm. Er hat sich mit den Dorfbewohner verzürnt. Diese sind natürlich entsetzt, daß Dete das Kind ausgerechnet zu dem Einsiedler bringen will. Abe
|
Georges Posener
Georges Posener ( - 12. September 1906 in Paris; † 15. Mai 1988 in Massy) war ein französischer Ägyptologe. Er wurde 1961 Professor am Collège de France und
|
Cosmos Cologne
Das Deutsche Zentrum für Luft- und Raumfahrt (DLR) wird im Kölner Stadtteil Porz-Lind den Weltraumpark Cosmos Cologne bauen.
Dieser wird sich teilweise auf ehemaligem Bundeswehrgelände als auch auf Gelände des DLR befinden.
Der Weltraumpark soll als Erlebnispark für Besucher als auch als Gründerzentrum der Weltraumindustrie dienen und High-Tech-Unternehmen aus Wissenschaft und Forschung anziehen.
Staatsvertrag zwischen der DDR und der Bundesrepublik sowie Frankreich, USA, dem Vereinigten Königreich und der UdSSR. Er machte den Weg für die Pyrenäen an der Costa Brava in Spanien (Katalonien, Provinz Girona), an der spanisch-französischen Grenze. Der Grenzort auf französischer Seite ist Cerbère. Portbou liegt am westlichen Ende des
|
Dihydrogen-Monoxid
Dihydrogenmonooxid oder DHMO ist ein wissenschaftlich klingender, chemisch korrekter, aber irreführender Name für Wasser (H2O). Es handelt sich bei diesem gemachten Wort um einen wissenschaftlichen Witz.
Der Begriff DHMO ist geprägt worden in der Absicht,
- die verschiedenen Ängste vor Chemikalien und die davon verursachten Protestbewegungen zu karikieren und
- so auch die Sinnhaftigkeit von Umweltschutz- und Ökologiebewegung in Frage zu stellen,
<
|
North Michigan Avenue
Die North Michigan Avenue ist eine Einkaufs- und Flanierstraße in Chicago, Illinois. Sie liegt zwischen dem Chicago River und dem Lake Shore Drive und wird auch The Magnificent Mile (dt. Die prächtige Meile) genannt.
Die Straße ist ein breiter Boulevard mit exklusiven Geschäften, Museen, Restaurants und eleganten Hotels. Zu den Luxusgeschäfte zählen Bloomingdale's, Saks
|
Wikipedia:WikiProjekt Lebewesen/Tiermotive
Organisation
Siehe Diskussionseite: Wikipedia Diskussion:WikiProjekt Lebewesen/Tiermotive
Wer hat zugestimmt?
- admin - 2.634 Bilder - Zusage: [http://de.wikipedia.org/wiki/Benutzer:LeonWeber/Bilderliste/Tiermotive/Genehmigung] - Bilderliste: [http://www.tiermotive.de/tieralbum/4images/search.php?search_user=admin]
- done. Jonathan Hornung 13:46, 26. Okt 2005 (CEST)
- immortal - 2
|
Lichtautomatik
Die Lichtautomatik in Kraftfahrzeugen übernimmt für den Fahrer das Ein- und Ausschalten der Beleuchtung des Fahrzeugs.
Aufbau
Die Fahrzeugbeleuchtung wird bei Einsatz einer automatischen Steuerung nicht mehr direkt von den Instrumenten des Fahrers bedient, sondern von einem elektronischen
|
|