next up previous
Next: 2 L'univers de Microsoft Up: 1 Concepts de base Previous: 1 Concepts de base

Sous-sections


1. Présentation de l'informatique

1.1 Le vocabulaire utile

L'informatique est la science du traitement automatique de l'information. L'ordinateur est une machine à traiter l'information. La chose la plus importante à retenir est que l'ordinateur n'a rien d'une machine intelligente; il s'agit seulement d'un automate perfectionné capable d'exécuter des actions pour lesquelles il a été programmé.

L'information traitée par l'ordinateur peut se présenter sous forme numérique, de texte, de dessins, d'images ...

Qu'est ce qu'un ordinateur? Le premier contact visuel (voir figure 1.1) avec ce type de machines fournit un certain nombre de renseignements sur son fonctionnement. (photos/ENIAC)

Figure 1.1: Les périphériques
\includegraphics[
height=8.3142cm,
width=11.2863cm
]{images/periph02.eps}

L'ordinateur consomme de l'information : Il accepte des commandes qu'il exécute et des données qu'il traite. Le traitement de l'information aboutit souvent à des résultats que l'on matérialise. Ceci implique que cette machine est capable de collecter des données, d'effectuer des traitements et de diffuser des résultats.

Nous obtenons alors une description minimale d'un ordinateur (au sens large): des périphériques d'entrée et de sortie capables de collecter des données et diffuser des résultats, reliés par une unité de traitement. Nous pouvons ajouter ici que tout traitement suppose une mémorisation de l'information, il est donc nécessaire de munir la machine d'un dispositif de mémorisation de l'information.

Ainsi, traiter l'information implique trois types d'opérations :

1.2 Composants d'un ordinateur

Il s'agit des composants matériels d'un ordinateur.

\includegraphics[
height=8.0001cm,
width=9.999cm
]{images/arch.eps}
Les composants de l'ordinateur

Les entrées sont réalisées au moyen d'un matériel spécifique: clavier, lecteur de disquette, disque dur, CD-ROM, scanner ...

L'unité centrale effectue le traitement. Nous pouvons distinguer deux composantes physiques dans l'unité centrale :

La sortie des résultats s'opère par l'intermédiaire de matériels tels que l'écran, l'imprimante, le lecteur de disquette, le disque dur. Les matériels d'entrée et de sortie sont regroupés sous le terme d'unités périphériques (photos/motherboard1-2).

1.2.1 Les mémoires

Il existe essentiellement deux sortes de mémoires internes au micro-ordinateur :

  1. la mémoire vive ou RAM et

  2. la mémoire morte ou ROM

A l'origine, le système d'exploitation MS-DOS ne pouvait utiliser que quelques centaines de Ko de mémoire centrale. Des quantités supplémentaires de mémoire vive (nécessaires pour rendre les nouveaux logiciels utilisables) ont pu être rendues disponibles en recourant à des utilitaires spécifiques de ce système d'exploitation. Par ailleurs, lorsque les besoins en mémoire vive seront importants, il pourra être possible de créer de la mémoire virtuelle. Enfin, il existe les mémoires de masse internes ou externes au micro-ordinateur qui sont les supports du stockage de l'information garantissant leur conservation durable.

1.2.1.1 La mémoire vive ou mémoire centrale

C'est une mémoire dans laquelle on peut lire et écrire. On parle alors de mémoire vive ou encore de RAM (Random Access Memory ou mémoire à accès aléatoire).

La RAM se présente comme un ensemble de cases destinées à stocker des données. Chaque case ou élément de mémoire permet de stocker 1 bit. La RAM est subdivisée en cellules (ensembles de cases contiguës). Le terme mot mémoire désigne le nombre de cases dans chaque cellule. La longueur de ce mot varie selon le type de mémoires utilisées (actuellement, 16 ou 32 bits). Chaque cellule est repérée par une adresse. La largeur du bus d'adresses détermine le nombre de mots adressables. En effet, avec un bus de 32 bits, on peut adresser $ 2^{32}$ mots soit plus de 4 milliards.

Une de ses principales caractéristiques est que son contenu s'efface lorsqu'on éteint l'ordinateur : c'est une mémoire volatile. Cette caractéristique est liée à l'utilisation d'une technologie de composants électroniques qui nécessitent une alimentation électrique permanente (circuits intégrés VLSI : Very Large Scale Integration).

La mémoire vive n'est pas seulement à la disposition de l'utilisateur (en y chargeant ses programmes) mais elle est aussi utilisée pour stocker des programmes internes nécessaires à la gestion de l'ordinateur. Ces programmes font partie du système d'exploitation.

1.2.1.2 La mémoire morte

L'autre catégorie de mémoire ne peut qu'être lue. Son contenu est enregistré une fois pour toutes et ne peut être modifié. On parle alors de mémoire morte ou ROM (Read Only Memory). C'est dans la ROM que sont enregistrées les instructions qui permettent à l'ordinateur de démarrer. Le contenu de la ROM n'est pas altéré par une coupure de courant : il s'agit d'une mémoire rémanente. Les ROM admettent des variantes; ainsi, les PROM (Programmable read only memory) sont des mémoires livrées vierges par le fabricant et qui se transforment en ROM une fois qu'elles ont été programmées une première fois par l'utilisateur; les EPROM (Electrically programmable read only memory) qui sont des PROM effaçables et reprogrammables. En 1996, on rencontrait des mémoires mortes de l'ordre du méga-octet (1 Mo).

1.2.2 Les mémoires de masse

Ce sont des mémoires principalement à base de stockage magnétique alors que les précédentes étaient à base de transistors contenus dans des circuits intégrés. Les fichiers, ensembles organisés d'informations, sont stockés sur ces mémoires encore appelées mémoires secondaires ou auxiliaires. L'accès physique à ces mémoires peut s'effectuer de deux façons :

Les mémoires magnétiques sont :

Ces mémoires de masse servent à stocker de façon permanente les informations que l'on veut conserver. Des opérations de va-et-vient auront lieu entre la mémoire centrale et la mémoire secondaire du fait de leur spécialisation :

Quelles sont les principales technologies existantes en matière de mémoire de masse?

1.2.2.1 La disquette

(ou floppy disk) : c'est un support circulaire recouvert d'un matériau qui peut être magnétisé sur ses deux faces. Les informations sont enregistrées (ou supprimées) en modifiant ce magnétisme. La disquette est placée dans un emballage de protection disposant d'ouvertures par lesquelles les têtes du lecteur peuvent lire ou écrire des données.

Un disque (ou une disquette) est organisé en pistes concentriques et en secteurs (80 pistes et 15 secteurs par face pour les disquette haute densité). Le découpage en pistes et secteurs est effectué par un logiciel spécifique, le système d'exploitation, exécutant l'opération de formatage du disque indispensable sur tout disque vierge.

Pour sauvegarder et archiver des fichiers volumineux, il existe actuellement des disquette spéciales (Zip, Jaz, Syquest) permettant de stocker de 100 à 2 Go. L'exploitation de ces dernières nécessite l'utilisation de lecteurs spécifiques.

1.2.2.2 Le disque fixe

(ou disque dur ; en anglais, hard disk) : c'est un support de stockage d'informations inamovible, c'est-à-dire qu'il reste en permanence dans l'ordinateur. Il fonctionne selon le même principe qu'un lecteur de disquette, c'est-à-dire qu'un disque tourne et une tête de lecture-écriture vient se positionner tout près de la surface magnétique pour y lire ou écrire des informations. Physiquement, le disque dur, d'une fiabilité supérieure à la disquette, est constitué de plusieurs plateaux, et, plus leur nombre est élevé, plus la capacité du disque dur est importante. Par ailleurs, un disque dur est nettement plus rapide qu'un lecteur de disquette (en lecture et écriture de données) et a bien entendu une capacité supérieure.

Autre précision technique : un disque dur ordinaire (1 à 8 plateaux) tourne à la vitesse de 7200 tours par minute et ceci en permanence contrairement au lecteur de disquette qui ne tourne que lors des accès aux données (vitesse de rotation bien inférieure : 360 tours par minute).

D'autres mémoires de masse existent : ainsi les supports de mémoires optiques qui offrent un rapport capacité de stockage/coût plus intéressant que celui des disques durs. Le principe de stockage est l'enregistrement d'impulsions lumineuses émises par un rayon laser. Les supports optiques sont divisés en deux catégories : les non - ré inscriptibles (CD-ROM, DVD-ROM) et les réinscriptibles CD-RW et disques opto-magnétiques).

1.2.3 Les périphériques

Les périphériques sont les organes de l'ordinateur lui permettant de communiquer avec l'extérieur. Il existe trois classes de pé riphériques :

  1. les périphériques d'entrée qui permettent à l'ordinateur de recevoir des informations. Ainsi, le clavier et la souris sont des périphériques d'entrée. Les scanners (ou numériseur optique) sont aussi des périphériques d'entrée : ils permettent de "photographier" un document pour le transformer en une image dans la mémoire de l'ordinateur.

  2. les périphériques de sortie : ils permettent à l'ordinateur de fournir des informations. Ainsi, l'écran et l'imprimante sont des périphériques de sortie ;

  3. les périphériques d'entrée/sortie : ils autorisent les sauvegardes et l'échange des informations. Par exemple, les disques et les disquette sont des périphériques d'entrée/sortie.

1.2.4 Le microprocesseur

Il est aussi appelé unité centrale de traitement notée CPU (Central Processing Unit). Un microprocesseur est un circuit intégré complexe : c'est un organe destiné à interpréter et à exécuter des instructions. Le microprocesseur est le cerveau de l'ordinateur : il a pour rôle d'exécuter les programmes stockés en mémoire centrale en chargeant les instructions et en les décodant l'une après l'autre.

Un microprocesseur est construit à l'aide de circuits intégrés qui sont des composants électroniques rassemblant sur une tranche de silicium des millions de transistors.

Un microprocesseur se compose de deux parties principales :

L'unité de commande est à son tour constituée d'un certain nombre de composants assurant chacun une fonction déterminée :

L'unité arithmétique et logique est composée de circuits spécialisés réalisant des calculs arithmétiques (addition, ...) et logiques (tests du type $ a=10$ et $ b=20$).

La performance d'un microprocesseur est souvent exprimée en MIPS (Millions d'instructions par seconde). Cette valeur est essentiellement déterminée par la fréquence de son horloge (rappelons qu'une instruction peut générer plusieurs micro-commandes et que l'exécution de chacune d'elles nécessite une vibration).

Les ordinateurs diffèrent notamment par leur type de microprocesseurs. Les micro-ordinateurs de la gamme PC sont à 80% équipés de microprocesseurs de la société  Intel.

Les ordinateurs de la société Apple (Macintosh) sont quant à eux équipés de microprocesseurs Motorola.

Le tableau ci-dessous montre l'évolution technologique des microprocesseurs Intel :

Modèle Année Nb transistors Horloge Taille du registre interne Largeur du bus de données MIPS
8088 1979 29 000 4,77 MHz 16 bits 8bits 0,75
80286 1982 134 000 8MHz 16 bits 16 bits 1,5
i386 1986 275 000 16 MHz 32 bits 16 bits 5
i486 1989 1,2 millions 33 MHz 32 bits 32 bits 27
Pentium 1993 3,3 millions 75 MHz 32 bits 32 bits 100
Pentium II 1997 7,5 millions 300 MHz 64 bits 32 bits 3000
Pentium III 1999 9,5 millions 1 GHz 64 bits 32 bits

Exemple de configuration d'un micro-ordinateur :

Figure 1.2: Déchiffrer une configuration
\includegraphics[
height=3.3762cm,
width=12.211cm
]{images/carac2.eps}

1.2.5 Les mémoires caches

Il faut noter que plus les puces mémoire sont rapides, plus elles coûtent chères. Pour éviter des prix de vente prohibitifs des micro-ordinateurs, de nombreux constructeurs utilisent des puces relativement lentes pour la mémoire centrale (de l'ordre de 60 nanosecondes) et ajoutent quelques circuits de mémoire plus rapide sur la carte mère du PC, que l'on appelle cache-mémoire (la carte mère est un circuit électronique accueillant sur une même carte le microprocesseur, la mémoire centrale, la mémoire morte et quelques autres composants essentiels). Les cache-mémoires atteignent une taille allant de 64 à 256 Ko. Le cache-mémoire a pour finalité de réduire le temps de transfert des informations entre la mémoire centrale et le microprocesseur pour des données fréquemment utilisées.

Il existe deux niveaux de mémoire cache entre les registres du microprocesseur et la RAM : les microprocesseurs modernes (Pentium, PowerPC) disposent d'une mémoire cache interne dite de niveau 1 - appelée encore cache-processeur - de capacité relativement faible (de 32 à 64 Ko). La mémoire cache de niveau 2 se présente sous la forme d'une barrette amovible et contient généralement de 256 Ko à 1 Mo.

Remarque : Pour travailler plus rapidement le système suivant de mémoire cache se rencontre de plus en plus souvent : Une partie de la mémoire vive classique peut tenir lieu de mémoire cache pour la mémoire de masse qui se caractérise par un temps d'accès élevé autant que par un débit irrégulier qui gagne à être régulé. Cette mémoire-cache va contenir les données par exemple du disque dur auxquelles l'utilisateur accède le plus souvent. On parle de cache-disque (temps d'accès à un disque dur : 10ms). Des composants de mémoire dédiés au cache-disque sont intégrés aux lecteurs et graveurs de CD-Rom ainsi qu'aux disques durs optimisés pour le multimédia. Dans de tels cas, le cache-disque permet un meilleur temps d'accès et permet de réguler le débit du périphérique de mémoire de masse en aboutissant à l'obtention d'un débit de données constant.

1.3 Logiciel, programme, software

Ce qui est remarquable avec les ordinateurs c'est leur faculté à être utilisés dans des domaines très diverses (jeux, traitement de texte, gestion de stock, calcul scientifique, $ \ldots$). Comment expliquer cet état de fait ? La réponse est que les ordinateurs sont des machines programmables1.2.

Remarquons tout d'abord que la machine n'est qu'un ensemble de circuits électroniques, de fils électriques... Certaines fonctionnalités, instructions de base, sont réalisées par ces circuits: addition, mémoire de base...

Le principe consiste à transformer la machine selon les besoins en lui ajoutant différentes couches qui spécialisent et développent les potentialités initiales de la machine. Selon les couches ajoutées, l'ordinateur deviendra console de jeu ou console d'interrogation de banque de données.

Pour obtenir une machine utilisable, il faut obligatoirement une première couche de logiciels, de programmes (un programme est une suite de commandes que la machine sait exécuter) appelée système d'exploitation.

1.3.1 Système d'exploitation

Sans le système d'exploitation, l'ordinateur n'est qu'un radiateur.

Lire une donnée inscrite sur une disquette est une opération très dépendante du lecteur et de l'ordinateur utilisés. On peut imaginer les instructions requises: faire tourner le plateau du lecteur, s'assurer de la présence d'une disquette, calculer le déplacement et la position de la tête de lecture, déplacer le bras, etc. Ces opérations «proches» de la machine font partie de la première fonction du système d'exploitation. Ce système est la première couche logicielle développée sur un ordinateur qui libère le programmeur de la complexité du matériel. La deuxième fonction consiste en l'exploitation des ressources de la machine. Imaginez deux programmes utilisant l'imprimante. Pour résoudre les conflits d'accès ou éviter le désordre sur les pages imprimées, le système d'exploitation gère les conflits, priorités et autorisations.

Le système d'exploitation des machines PC le plus courant est MS-DOS (MicroSoft Disk Operating System). Windows 95 tend à le remplacer.

Le démarrage d'un ordinateur se déroule de la façon suivante:

  1. L'utilisateur met la machine sous tension.

  2. Un programme minimum se met en activité, vérifie la machine et recherche le programme plus complet (système d'exploitation) qui va lui indiquer le fonctionnement interne de la machine. Le système se trouvera soit sur le disque dur, soit sur une disquette qu'il faut introduire dans le lecteur.

  3. Le système d'exploitation est copié dans la mémoire de la machine.

  4. Quand le système d'exploitation est chargé, la machine est prête à à l'utilisation.

Le système d'exploitation gère la communication entre les différents éléments de l'ordinateur, l'enchaînement des actions, l'utilisation de la mémoire... L'individu désirant développer une application sur l'ordinateur n'aura plus à s'occuper de ces problèmes.

Pour illustrer le démarrage de l'ordinateur: imaginez un robot qui peut se déplacer (il a des articulations, des pistons...) mais il ne sait pas comment fonctionnent ses articulations. Par contre, il sait lire (et comprend ce qu'il lit). Quand on le met sous tension, il demande simplement son propre mode d'emploi, le lit. Une fois qu'il l'a lu, il connaît le fonctionnement de ses articulations, de ses pistons... il sait se déplacer mais ne sait pas quoi faire!!... Il attend qu'on lui donne un but.

Quand la machine a chargé le système d'exploitation, elle est capable de gérer ses différents organes. Elle est à la disposition de l'utilisateur.

Pour obtenir une machine dédiée à une utilisation particuliè re, il faut ajouter une nouvelle couche logicielle. Par exemple, en ajoutant le logiciel Turbo Pascal, vous obtenez une machine dédiée à la programmation en langage Pascal; en ajoutant le logiciel Word , vous obtenez une machine dédiée au traitement de texte... Autres logiciels, autres utilisations possibles: bases de données, logiciels de jeux...

Déjà au niveau du système d'exploitation, certaines activités sont possibles. Elles concernent principalement les fichiers. Des commandes permettent de copier, d'effacer, de répertorier... les fichiers.

Lorsque le système d'exploitation est chargé, vous avez donc la possibilité:

1.3.2 Couches logicielles

L'utilisation de logiciels dans un ordinateur doit être vu sous le principe de couches logicielles:

À l'état nu, au démarrage, un ordinateur n'est rien de plus qu'un radiateur; il faut d'abord lui ajouter quelque chose qui sache $ <$ $ <$ parler $ >$ $ >$ à ses périphériques: c'est le système d'exploitation (figure 1.3).

Figure 1.3: Communication avec les périphériques
\includegraphics[
height=3.4641cm,
width=7.4993cm
]{images/couchese.eps}

C'est par lui que l'utilisateur ou d'autres logiciels devront passer pour communiquer avec le matériel; par exemple si l'utilisateur veut connaître la liste des fichiers se trouvant sur le disque, il le demande au système d'exploitation (communication utilisateur-système d'exploitation) dans un langage compréhensible en commun (langage de commande MS-DOS, ou clic d'une souris), le système d'exploitation traduit cette demande en courants électriques (rigoureusement incompré hensibles par un humain moyen) et transmet ces informations à la machine (communication système d'exploitation-machine) ; en réponse la machine renvoie d'autres impulsions électriques tout aussi incompréhensibles (communication machine-système d'exploitation) que le système d'exploitation s'empresse de traduire en symboles affichés sur l'écran (communication système d'exploitation-utilisateur) dans un langage cette fois-ci compréhensible par le même humain moyen (avec un peu d'habitude).

L'utilisateur n'est pas obligé de parler directement au système d'exploitation. On utilise en général un ordinateur non pour son système d'exploitation, mais pour les logiciels qu'il peut faire fonctionner.

On ajoute alors une couche: le logiciel applicatif (ou application ). Ce peut être un jeu, un traitement de texte, un tableur,...

À chaque fois que l'utilisateur demande quelque chose au logiciel (si c'est un jeu, lancer une bombe sur l'envahisseur qui apparaît là-vas au coin de la rue; si c'est un traitement de texte, mettre en gras cette partie importante du texte; etc...) le logiciel traduit cela en instruction destinée uniquement au système d'exploitation, qui les retraduit en messages compréhensibles par la machine.

La machine effectuera ce qui lui est demandé, et enverra en retour des informations au système d'exploitation, qui enverra à son tour d'autres informations au programme (figure 1.4).

Figure 1.4: Communication des logiciels avec la machine
\includegraphics[
height=7.2554cm,
width=11.1852cm
]{images/couchelo.eps}

\fbox{\begin{minipage}{0.95\textwidth}
\textbf{Le logiciel ne communique jamais ...
...si
cette m\^eme machine est sous \emph{MS-DOS} ou \emph{Linux}.}
\end{minipage}}

Cet empilement de couches ne se limite pas à cela. On peut avoir beaucoup plus de couches, qui, chacune, ne communiquent qu'avec celle immédiatement supérieure ou immédiatement inférieure (figure 1.5).

Figure 1.5: Intégration de l'interface visuelle
\includegraphics[
height=6.7502cm,
width=8.8568cm
]{images/couchemo.eps}

Ainsi, au dessus de la couche logicielle de MS-DOS (système d'exploitation le plus courant des PC, mais dont l'utilisation est un peu cryptique) on ajoute souvent la couche interface de Windows 3.1.

Cette couche permet d'avoir accès aux informations du disque d'une manière un peu plus intuitive.

Windows 3.1 qui n'est pas un système d'exploitation, semble pourtant en remplir tous les rôles.

Il faut bien comprendre que, dans le domaine du système d'exploitation, Windows 3.1 sous-traite tout: c'est MS-DOS qui agit en réalité.

Et Windows 95?

Il s'agit ici d'un système d'exploitation multitâche (contrairement à MS-DOS qui est monotâche); cela signifie que plusieurs tâches peuvent avoir accès en même temps (en parallèle) au système d'exploitation.

Ainsi dans l'exemple de la figure 1.6 on a trois applications qui communiquent avec Windows 95:

On peut remarquer qu'on a ajouté une couche supplémentaire au-dessus de Netscape, un plug-in qui permet de jouer des fichiers sons ou video (figure 1.6).

Figure 1.6: Couches avec un navigateur
\includegraphics[
height=7.2159cm,
width=8.9622cm
]{images/couchemu.eps}

1.4 Traiter l'information

1.4.1 Information

Le sens informatique du mot information est d'après le dictionnaire élément de connaissance susceptible d'être représenté à l'aide de conventions pour être conservé, traité, communiqué. C'est donc un terme très général qui peut désigner par exemple: un article de journal, une date de naissance, l'heure d'un rendez-vous, une musique, une image, un tableau de maître,...

Un article de journal peut être conservé, communiqué. Il peut faire l'objet de traitements comme la correction orthographique. La date de naissance est comparée à la date du jour pour vérifier si un anniversaire n'est pas à souhaiter. Vous allez calculer le temps qu'il vous reste jusqu'à votre prochain rendez-vous, etc.

1.4.2 Traitements

Sachant que vous aviez fait le plein d'essence de votre voiture hier, que vous remplissez aujourd'hui votre réservoir avec 35 litres après 500 kilomètres de route, vous savez que vous avez consommé 35 litres en 500 km soit 7 litres en 100 km.

Le traitement de calcul d'une consommation connaissant la quantité d'essence consommée et la distance parcourue est automatisable. Vous connaissez le moyen systématique pour faire ce calcul.

Vous voulez acheter une liste de produits et vous connaissez leur prix et leur quantité. Vous savez et pouvez calculer le coût total de vos achats.

Néanmoins, tous les traitements ne sont pas automatisables, et parfois pour diverses raisons. Par exemple, prévoir tout ce qui va vous arriver demain, donner le temps qu'il fera à Lille dans 6 mois ne sont pas automatisables parce que simplement l'homme ne connaît pas le moyen de le faire. Imaginer une histoire, créer une oeuvre d'art ne sont pas non plus des traitements automatisables parce qu'il n'existe pas (aujourd'hui??) de moyen systématique pour effectuer ces tâches.

Ce qu'il faut alors retenir c'est que tout ne peut être informatisé.

Nous pouvons résumer en disant que l'informatisation d'une tâche, lorsqu'elle est possible, consiste à identifier les informations à traiter, représenter ces informations, opérer le traitement, produire les informations résultantes du traitement.

Les traitements automatisables font appel à des algorithmes. Les algorithmes sont des méthodes, des procédés systématiques qui interviennent dans un processus informatique que nous pouvons résumer par le schéma de la figure 1.4.2.

\includegraphics[
height=1.81cm,
width=15.7366cm
]{images/traitinf.eps}

La construction d'un algorithme suit une démarche créative essentiellement basée sur l'abstraction appelée analyse.

En fait pour écrire un algorithme très peu de règles et de contrôles sont nécessaires et la démarche ne dépend pas de l'ordinateur (ou plus généralement de la machine) utilisé.

1.4.3 Algorithme et analyse

On désigne par le terme algorithme toute suite de raisonnements ou d'opérations qui fournit la solution de certains problèmes ou encore l'enchaînement des actions nécessaires à l'accomplissement d'une tâche.

L'analyse est une tâche spécifiquement humaine qui nécessite intuition et logique. Nous n'insisterons jamais assez sur l'analyse. Si l'algorithme est correct, sa traduction demande de la rigueur: des règles de traductions sont à appliquer. Le logiciel Turbo Pascal facilite cette tâche en détectant les erreurs syntaxiques lors de la compilation et en commentant les erreurs dé tectées. Par contre, un programme peut sembler juste, être syntaxiquement correct (la compilation fournit un programme exécutable) et, malgré cela, afficher des résultats incohérents, sans aucun rapport avec ce qui était escompté; on parle alors d'erreurs sémantiques.

Le cycle du développement d'un algorithme est décrit par la figure 1.7.

Figure 1.7: Le cycle de la programmation
\includegraphics[
height=9.217cm,
width=12.8964cm
]{images/erreurs.eps}

1.4.4 L'information traitée par ordinateur : Le langage binaire

Toute information est véhiculée par un support, par exemple écrite sur papier, enregistrée sur cassette audio, Le micro-ordinateur travaille sur une représentation binaire des informations. Chaque élément électronique ou magnétique ne sait prendre que deux états physiques distincts (conducteur ou non conducteur, deux niveaux de tension) représentés par les chiffres 0 et 1 d'une numérotation binaire, c'est-à-dire de base 2.

Vous avez certainement déjà entendu parler de bits, d'octets ou de kilo-octets. Tous ces mots désignent en fait des unités pour mesurer des capacité de mémorisation d'information par l'ordinateur.

L'information minimale pour l'ordinateur est le bit. Imaginez un fil dans l'ordinateur. Deux états le caractérisent: le courant passe ou ne passe pas. Avec un seul fil, on peut donc «mémoriser» une information binaire, c'est-à-dire, deux valeurs: le courant passe, représenté 1, le courant ne passe pas, représenté 0. Cette information 0 ou 1 est appelée bit. Imaginez maintenant deux fils, nous obtenons alors 4 possibilités: le courant ne passe ni dans l'un, ni dans l'autre 00, dans le second et pas dans le premier 01, dans le premier pas dans le second 10 et dans les deux 11. Prenez maintenant trois fils, c'est-à-dire trois bits vous avez 8 possibilités: 000, 001, 010, 011, 100, 101, 110, 111.

Supposez maintenant que vous voulez représenter des caractères à l'aide de bits. Vous avez 26 symboles (qui représentent 26 possibilité s) pour les lettres majuscules, autant pour les minuscules, 10 symboles pour les chiffres, des symboles de ponctuation, accentués, des symboles spéciaux... Il faut entre 128 et 256 possibilités et donc utiliser 8 bits pour disposer de suffisamment de possibilités pour les représenter en machine. Un groupe de 8 bits est appelé un octet et vous pouvez associer à un octet un caractère.

Maintenant, les préfixes classiques des unités de mesure s'appliquent:

kilo $ 1000^{1}$ mega $ 1000^{2}$ giga $ 1000^{3}$ tera $ 1000^{4}$
peta $ 1000^{5}$ exa $ 1000^{6}$ zetta $ 1000^{7}$ yotta $ 1000^{8}$

Pour vous donner une idée intuitive des capacités des matériels informatiques, vous pouvez considérer qu'un Koctet correspond à peu près, en quantité d'information, à une page imprimée.

Cela implique donc que:

Toute information devra donc être codée en langage binaire, c'est-à-dire transformée en une série de 0 et 1. C'est le micro-ordinateur qui assure ce codage, l'utilisateur n'a pas à s'en occuper. La plus petite unité d'information est appelée bit (binary digit). Un bit peut donc prendre soit la valeur 0 ou bien 1.

1.4.4.1 Le codage de l'information

Un octet est une succession de 8 bits. Il représente la taille standard pour coder un caractère quelconque donc 1 caractère $ =$ 1 octet. Raisonnons sur la représentation des nombres entiers : La représentation d'un nombre $ N$ en base quelconque $ b$ est donnée par la formule:

$\displaystyle N = a_{0} * b^{0} + a_{1} * b^{1} + a_{2} * b^{2} + ...+ a_{n} * b^{n}
$

avec $ 0 \leq a_{i} < b$

Cas particuliers :

1.4.4.2 Le changement de base

Soit un entier en base 2 sur un octet. Les chiffres sont écrits de gauche à droite depuis le bit de poids le plus fort (position 7) jusqu'au bit de poids le plus faible (position 0).

Exemple :

Numéros de bits 7 6 5 4 3 2 1 0
Contenu de l'octet 0 0 0 1 1 0 1 1

Ceci va correspondre en système décimal (base 10) à :

\begin{displaymath}%%
\begin{array}[c]{cl}
& 1*2^{0} + 1*2^{1}+ 0*2^{2} + 1*2^{3...
...32 + 0*64 + 0*128\\
= & 1 + 2 + 8 + 16\\
= & 27
\end{array}\end{displaymath}

Ainsi, un octet peut représenter des valeurs entières allant de 0 (le cas où les bits sont égaux à 0) à 255 (le cas où les 8 bits sont égaux à un). En effet,

  $\displaystyle 1\ast2^{0}+1\ast2^{1}+1\ast^{2}2+1\ast2^{3}+1\ast^{2}4+1\ast2^{5} +1\ast2^{6}+1\ast^{2}7$    
  $\displaystyle =1\ast1+1\ast2+1\ast4+1\ast8+1\ast16+1\ast32+1\ast64+1\ast128$    
  $\displaystyle =1+2+4+8+16+32+64+128=255$    

On peut ajouter qu'avec deux octets (c'est-à-dire un mot), on pourra aller de 0 à 65635. Avec un double-mot, l'intervalle de variation passe de 0 à plus de 4,3 milliards. D'une manière générale, avec $ N$ bits, on peut aller de 0 à $ 2^{N}-1$.

Dans la mesure où on calcule en base 2, on ne peut pas regrouper les valeurs en milliers, millions ou milliards, d'où la création de nouvelles unités dont voici la définition :

Inversement, pour passer d'un nombre entier naturel écrit dans le système décimal à son écriture dans un système en base 2, on procède à des divisions successives par 2 et on prend les restes "du bas vers le haut".

Exemple :

Comment écrit-on 19 en base 2 ?

19 : 2 = 9 reste 1
9 : 2 = 4 reste 1
4 : 2 = 2 reste 0
2 : 2 = 1 reste 0
1 : 2 = 0 reste 1

On s'arrête lorsque le résultat de la division est égal à zéro. Ainsi, $ 19 = 10011$ en système à base 2. L'écriture sur un octet donnerait $ 00010011$.

1.4.4.3 La représentation des caractères alphanumériques

Pour utiliser un ordinateur, il faut pouvoir représenter l'ensemble des symboles utilisés dans le langage courant (lettres de l'alphabet, caractères de ponctuation, les chiffres en tant que caractères, les symboles mathématiques...) ainsi que des caractères spéciaux tels le retour à la ligne ou l'échappement. Lorsque l'on tape sur une touche, l'utilisateur envoie en fait un code à l'ordinateur. Exemple : si l'on appuie sur la touche 'C', l'ordinateur ne 'lit' pas un 'C' majuscule mais un code qu'il interprète comme devant correspondre à cette lettre et il va l'afficher à l'écran. Pour l'ordinateur, le code associé à un caractère (c'est-à-dire une lettre, un chiffre, un signe de ponctuation...) est contenu dans un seul octet, ce qui donne 256 possibilités différentes numérotées de 0 à 255. La table de correspondance standard entre les 256 valeurs possibles d'un octet et nos caractères est la table (ou le code) ASCII (American Standard Code for Information Interchange). En fait, il s'agit d'un code sur 7 bits mais la représentation en machine se fait sur 8 bits. Le premier bit est destiné à vérifier l'exactitude de la transmission des valeurs des différents bits lors des opérations de lecture ou d'écriture. Ce premier bit est appelé bit de parité. Comment ? le contrôle va consister à y placer le bit 0 ou 1 de façon à ce que le nombre total de bits 1 de l'expression soit pair. S'il advient que la valeur d'un bit soit mal transmise, le nombre total de 1 varie, ce qui permet à l'ordinateur de repérer une erreur. Exemples :

Remarque : Il est à noter que l'ordinateur ne traite pas de la même manière le nombre 12 et la chaîne de caractères $ <$ $ <$ 12$ >$ $ >$ . En effet, la codification binaire de l'entier 12 est obtenu en faisant les divisions successives par 2 ce qui donne 1100 en binaire. Par contre, la chaîne $ <$ $ <$ 12$ >$ $ >$ est considérée comme étant composée de deux caractères '1' et '2' chacun codé sur un octet. le code correspondant au caractère '1' est obtenu non pas en opérant des disions par 2 mais en utilisant la table ASCII. La chaîne $ <$ $ <$ 12$ >$ $ >$ est donc codée sur deux octets.


next up previous
Next: 2 L'univers de Microsoft Up: 1 Concepts de base Previous: 1 Concepts de base
Murat Yildizoglu