KPROS INFORMATIQUE

 

Vous trouverez ici des petits articles sur les techniques utilisés en informatique et éventuellement celle à venir.

 

INTRODUCTION

Les techniques évoluent. Comment fonctionne une base de données, un compresseur de fichier ou un ordinateur ? Vers quoi vont ils évoluer ?

 

 

TABLE DES MATIERES

 

L'ORDINATEUR

Que se passe-t-il quand on allume un ordinateur

Qu'est ce qu'un logiciel

LUC coeur de l'ordinateur

Le disque dur:

LE PRINCIPE DU MICROPROCESSEUR

LES ORDINATEURS DE DEMAIN

L'ordinateur actuel

L'ordinateur quantique

L'ordinateur biologique

L'ordinateur photonique

PROGRAMMATIONS

Les comprésseurs de fichiers

LES LANGAGES INFORMATIQUES

Les premiers langages

 

 

 

 

 

 

L'ORDINATEUR

Un ordinateur est constitué schématiquement :

D'organes de saisie ou d'entrée ( clavier, souris, scanner, etc. )
D'organes d'affichage ou de sortie ( Ecran, imprimante, e-mail, etc. )
D'une unité centrale ( microprocesseur, disque dur , mémoire, etc )

Cette description classe simplement les différents éléments d'un ordinateur.
Nous ne parlerons ici que de l'unité centrale (UC).

 

 

Que se passe-t-il quand on allume un ordinateur :

Un tout petit programme, l'amorce, est activé par le processeur qui teste le matériel, il lance ensuite un autre programme appelé Système d'Exploitation (SE) par exemple windows, ce dernier va mettre en mémoire vive toute une série de petits logiciels appelés pilotes qui permettront l'utilisation des différents matériels installés sur l'ordinateur ( un pilote est un 'traducteur', imaginez un SE français voulant discuter avec un imprimante allemande, mais chacun ne connaît que sa propre langue, il faut faire alors appel à un traducteur : le pilote ou driver). Ensuite l'ordinateur se met en attente afin d'exécuter les programmes (logiciels).

 

 

Qu'est ce qu'un logiciel :

C'est une série d'instructions successives que l'on demande à un ordinateur d'exécuter, par exemple le SE est un programme qui est développé pour gérer, exécuter d'autres programmes tel qu'un jeu, un traitement de texte ect.

 

 

LUC coeur de l'ordinateur, est constitué d'un boîtier contenant essentiellement:

Un processeur : l'élément essentiel, c'est lui qui calcule, traite les informations.

Une Carte mère : c'est le composant auquel on relie l'ensemble des composants de l'UC et qui va gérer le trafique des informations envoyées ou reçues par les différents périphériques ( entrée et sortie, mémoire, disque dur) sous les ordres du processeur à travers les Bus (AGP pour les cartes graphiques et PCI pour les autres périphériques).

La mémoire de masse: En général un disque dur, Lecteur/graveur CD-ROM, il y a quelques années, on était heureux d'avoir deux lecteurs de disquettes. On y stocke l'information de manière permanente (PC éteint): les programmes, les données.

La mémoire vive ou volatile: quand on éteint son PC, Elle se vide. A quoi sert elle?
L'accès au disque dur, CD, disquette est très lent, mais la mémoire vive est nettement plus rapide, on transfert alors le programme et parfois les données de la mémoire de masse à la mémoire vive pour que les programmes s'exécutent plus rapidement.

La carte graphique : ce que vous voyez à l'écran est généré par celle ci. Elle transforme les données (images) en un signal vidéo compréhensible par votre écran d'ordinateur. Elle représente l'écran en une grille, une page d'un cahier quadrillé. Il suffit de placer un 'A' dans la mémoire de la carte graphique pour qu'apparaisse un A sur l'écran de votre ordinateur à la même position.
La taille d'un carreau dépend de la résolution, exemple :1024 points par ligne X 768 points par colonne représente le nombre de carreaux (pixel) par colonne et ligne de la carte graphique. En mode texte, l'écran est découpé en sous groupes de 8X8 points, un 'A' sera dessiné dans un carreau 8X8 si l'on place un 'A' en mémoire. A l'époque où les ordinateurs étaient moins rapide, cette technique soulageait la carte graphique du dessin complet de la lettre.
Le mode graphique lui, utilise la feuille point par point et non plus 8x8, un logiciel envoit la matrice de la lettre à dessiner, ce qui est beaucoup plus lent. Chaque point est codé par un nombre qui indique sa couleur. On peut stoker une image sur 2, 8, 16, 24, 32 bits de couleurs, plus on utilise de bits, plus le fichier occupe de la place, en générale 16 bits est une coloration trés riche.
Lorsque l'on veut affiché une photo, une grande quantité de couleur est nécessaire pour un rendu réaliste : 16 bits.

 

 

Le disque dur:

Il est composé de plusieurs disques magnétiques superposés qui tournent autour d'un axe (plus la vitesse de rotation est élevé, plus l'accès aux donnée est rapide) des têtes se déplacent le long du rayon du disque, placées des deux côtés des disques inscrivent et effacent les données comme un lecteur de bande magnétique.

Les données sont stockées digitalement: le disque est marqué( formaté) en petits points (bit), chaque point peut prendre la valeur 0 ou 1. Pratiquement on regroupe ces paquets en huit points (Octet ou Byte) puis ces paquets en secteur de 512 Octets, puis en super paquets : les clusters, leur taille dépend du disque. C'est sous cette dernière forme qu'est gérer un disque. Ainsi du point de vue du gestionnaire du disque dur seul le cluster existe. Si vous faites l'expérience suivante :
notez l'espace libre de votre disque dur, puis stockez un fichier sur votre disque (avec blocnote) d'un octet (une lettre), vous constaterez que vous perdrez d'un coup, quelques milliers d'octets. C'est parce que votre disque dur ne gère que des clusters.

En fait, il existe une table des matières contenant les noms des dossiers (répertoires) ou fichiers, leur tailles leur date de création et un pointeur indiquant l'adresse du premier cluster d'un fichier. Mais si on est présence d'un gros fichier, un cluster ne suffira pas pour stocké le fichier.

Le pointeur ne pointe pas directement sur ce cluster, on construit un tableau où chaque case correspond à un cluster du disque par convention, en pointant sur une de ces cases, on indique ainsi le premier cluster du fichier (adressage indirect). Ainsi si le fichier ne contient qu'un seul cluster, on place -1 dans la case du tableau, sinon on indique dans cette case l'adresse de la case suivante où il faut aller et ainsi de suite jusqu'à rencontrer un -1. Ainsi un fichier peut atteindre plusieurs clusters. Quand on parle de formatage 16 bits ou 32 bits , on définit la largeur (2 ou 4 octects) de ces cases. C'est pourquoi MSDOS (16 bits) ne peut gérer des disques de plus de 2 GO car on ne dispose au plus que de 65536 cases pour la gestion des clusters, au delà (disque de 40 GO par exemple) , les clusters seraient tellement gros qu'il faudrait pour l'exemple d'avant renoncer à 400 000 octects pour 1 octet stocké réellement. Le mode 32 bits permet lui ( 4 octects) de définir un gros disque en un seul disque C pour l'utilisateur.

Remarquons qu'un fichier n'est pas forcément stocké sur le disque de manière contigue puisque le système utilisent les clusters libres et des trous sont créés lors des effacements de fichiers d'où l'intérêt d'utiliser un défragmenteur de disque : il rassemble les clusters d'un fichier et évite aux têtes de votre disque d'être baladées dans tous les sens -> usure mécanique et temps d'accès aux données sont réduits.

 

 

 

LE PRINCIPE DU MICROPROCESSEUR

Dans le principe, il n'y a pas de grandes différences entre un microprocesseur et une puce de calculatrice. On a une série de données et on veut appliquer une opération sur cette dernière. Exemple une addition : (2 , 5) forme la série, l'opération: l'addition, le résultat est 7, en terme informatique, il nous faut un octet pour stocker 2 un autre pour 5, un dernier pour le résultat 7, ces octets sont stockés dans la mémoire vive. L'addition elle fait parti du système, un processeur sait faire des additions élémentaires, c'est lui qui par un mécanisme va effectuer l'addition et qui va en mémoire chercher les données puis stocker le résultat. Bien sûr, un processeur est capable d'opérations plus complexes, mais le principe reste le même.
Il ne "raisonne" pas comme nous. Par exemple : obtenir 10.37+ 4.56 n'est pas effectuer directement par le processeur. Un traitement (logiciel) doit être appliqué aux données. Elles sont transformées en entiers, soit 1037 et 456 que la puce sait additionner, puis le programme présentera à l'écran le résultat divisé par 100.

 

 

 

LES ORDINATEURS DE DEMAIN

Une petite partie de ce qui mijote dans les laboratoires des chercheurs.

 


L'ordinateur actuel:

Les puces pour l'instant ne savent qu'exécuter une série d'instruction les unes après les autres (ou presque) . Ce qui caractérise un puce est sa vitesse d'exécution exprimé en MIPS (millions d'instructions exécutées par seconde), cette vitesse est lié à la fréquence d'horloge du processeur, ainsi un Pentium 200MHZ travaille deux fois moins vite qu'un Pentium 400MHZ, nous ne tenons pas compte ici des améliorations de traitements spécifiques au type de processeur qui fait que le rapport n'est pas exactement deux. Mais dans le principe la même instruction élémentaire s'exécutera deux fois moins vite.

Supposons l'addition de deux entiers (qu' un processeur sait faire intrinsèquement) soit à additionner 252 et 20, en terme de processeur , il faut charger 252 dans un registre ( un octet particulier du processeur) , 20 dans un autre, et demander au processeur d'effectuer l'addition, le résultat sera stocké dans un registre double ( 2 octets ).

On a là 3 opérations élémentaires. Chaque opération utilisera un certain temps exprimé en nombre de cycle : le cycle dépend de la fréquence du processeur. Un P400 aura un cycle durant deux fois moins de temps qu'un P200 le temps d'un cycle est de l'ordre du micro seconde voir plus petit. Ainsi il faudra 4 cycles pour exécuter l'exemple ci-dessus, 1+1 pour charger les valeurs et 2 pour faire l'addition sur deux octets.
Les programmeurs en "langage machine" cherchent à diminuer le nombre de cycle pour une opération donnée, la puissance du processeur agit elle sur la durée du cycle.

Ainsi changer votre P600 pour un P700 ne vous apportera pas un gain significatif de la vitesse de votre PC pour un même logiciel.

 


L'ordinateur quantique:

Les physiciens ont longtemps débattus avant que l'expérience donne raison à ceux qui affirmaient qu'au niveau des particules élémentaires, les lois de la physique différent.
Ainsi une particule n'est à un endroit donné avec des caractéristiques données que selon une loi de probabilité tant que l'on ne l'interroge pas sur ses propriétées, plus exactement cette particule n'est matérialisée pas tant que l'on n'effectue pas une mesure sur elle (vitesse, position: une interaction avec le monde macroscopique) mais elle existe selon une probabilité spatiale donnée.
Ses propriétés, peuvent également être dans différents états simultanément, peuvent être modifiées par interaction avec d'autres particules quantiques (y compris elle même ) sans obliger ces particules à se définir dans le monde macroscopique (on appelle l'obligation à définir à ses propriétés la décohérence quantique : la particule cesse d'être indéfini le temps de l'interaction où plus exactement ce que l'on veut ou peut en voir).
L'idée est alors d'exploiter le phénomène.
Imaginons une particule quantique capable d'occuper plusieurs états en même temps, symbolisant des chiffres 0,6,2,9,4 ..... en "mélangeant" deux de ces particules on obtient quelque chose qui peut être assimilé à une addition, l'avantage est que toutes les additions de deux séries ont lieu en MËME TEMPS.
Sans entrer dans les méandres de la programmation, on comprend bien qu'un ordinateur qui fait une addition l'une après l'autre est bien moins rapide qu'un autre qui fait des additions simultanés.
Exemple : la recherche dans une grosse base de donnée s'effectueraità une vitesse fulgurante.
La technologie informatique actuelle est sur le point d'atteindre sa limite, selon les experts, d'ici 10 à 20 ans. C'est beaucoup et peu car on imagine que si la technologie qui lui succède est radicalement différente, cette dernière demandera du temps pour devenir performante.
Des ordinateurs quantiques expérimentaux rudimentaires ont été réalisés.

 


L'ordinateur biologique:

L'invention de l'ordinateur vient certainement de l'idée de vouloir copier le cerveau humain, comme l'avion vient de l'idée de copier les oiseaux.
Si dans ce cas, le métal remplace avantageusement la plume, il est clair que l'informatique actuelle n'est qu'une pâle copie de l'intelligence humaine (pour l'instant).
Même si un ordinateur sait effectuer des calculs très complexes avec un justesse rigoureuse et indiscutable, il n'en reste pas moins une création limitée de l'esprit humain. Il a bien du mal à intégrer les paramètres complexes qu'un cerveau ingurgite naturellement.
Conceptuellement, on sait que l'OB est possible: l'homme en est la preuve. Sans se donner comme objectif un androïde dont sont friands les auteurs de sciences fictions, on peut supposer qu'un jour nos ordinateurs seront biologiques.
La technologie d'aujourd'hui utilise l'électron. Plus on miniaturise, plus les éléments chauffent. Le transistor ne traduit que du binaire (ce qui implique un traitement complexe de l'information). L'ordinateur biologique nous affranchi au moins de ces problèmes. Notre manière de concevoir les algorithmes sera bouleversée.
Bien que les recherches menées dans ce domaine soient complexes, quelques expérimentations sont déjà tentées: l'utilisation d'une bactérie comme un transistor. Des neurones de sangsue formant une "calculatrice" rudimentaire.

 

L'ordinateur photonique:

Cette technologie pourrait succéder à la technologie actuelle. La photonique est déjà utilisée en connectique, la fibre optique.... Le développement de transistors photoniques présente beaucoup d'intérêts: les transistors actuels sont traversés par des électrons se déplaçant à 1/3 de la vitesse de la lumière. Les photons se déplacent trois fois plus vite et leur masse est nulle (en théorie). deux photons interagissent beaucoup moins que deux électrons, un avantage pour la miniaturisation. Ily a peu d'échauffement: un obstacle important aux puces d'aujourd'hui. Pour l'instant, les transistors photoniques ne sont pas encore assez performants.
Les premiers ordinateurs photoniques sont hybrides c'est à dire utilisant la technologie actuelle et les améliorations de cette nouvelle technologie.
Peut être la technologie de demain matin.

 

 

PROGRAMMATIONS

 

Les comprésseurs de fichiers:

Il existe plusieurs techniques pour rammener un fichier quelconque à sa repésentation canonique, c'est à dire la taille la plus petite possible en octets (pour fixer les idées un octet = un lettre de l'alphabet). Exemple : "bonjour bon bonbon" se reduira à "4 X Bon,1 X jour". on voit que le nombre de lettres à stocker se réduit à 7 lettres , on codera de manière très courte 4 répétitions de bon , 1 de jour et un code qui dira ou se trouve "jour" . l'ensemble de ces informations restera plus petit que la phrase compléte, on dit que l'on a compréssé cette dernière. Un algorithme de compréssion est en terme mathématique est, en général, une bijection (une compréssion correspond à une et une seule décompréssion): on doit pouvoir comprésser et décomprésser un fichier quelconque, il doit en outre ammener un gain de taille par rapport au fichier initial.
Les premiers algorithmes de codec (compression / décomprésssion) ont été inventés par les mathématiciens bien avant que les ordinateurs n'existent. Ce n'est que parce que le matériel ne suivait pas les besoins logiciels que les algorithmes de compréssion ont été remis au goût du jour.
Même avec le matériel performant d'aujourd'hui, les nouveaux algorithmes sont indispensables : les DVD utilisent la compréssion MPEG2 : Un film sans les algorithmes de compréssion ne pourrait pas être commercialiser sur un DVD. Les images Jpeg ne sont transmises rapidement sur le net que parce qu'elles sont compréssées.
Le principe du comprésseur: il consiste à trouver des occurences similiares dans un fichier, puis à les remplacer par un code court, plus l'occurence est présente dans un fichier, plus on lui affecte un code court (exemple 'grand maman' est rencontré 200 fois dans un texte de 300 expréssions, on la remplacera par 'A', les autres moins fréquentes par des expressions plus longues). On crée ensuite une table que l'on stockera avec le fichier compréssé et les expressions à remplacer lors de la décompréssion.
Il existe beaucoups d'algorithmes codec, certains sont adaptés aux textes, d'autres aux images, d'autre aux sons.
L'alogorithmique de ces différents procéssus demande une bonne connaissance mathématique. néanmoins sachez qu'il existe des algorithmes récents utilisant la théorie des Ondelettes, isssue d'une branche récente des mathématiques (1960) et la théorie des Fractals. qui permettent de compréssser des représentations complexes de l'image et du son.
Le principe reste identique, la compression fractal au lieu de repérer des mots ou phrases, repére des bribes d'images : regarder une feuille d'arbre, elle est composée d'une même géomérie de base. La compréssion par Ondelettes ressemble plus à une compréssion de texte, on applique sur le signal une transformation mathématique réversible qui rend l'information plus répétitive, ce qui permet de la comprésser de manière plus efficace.
Certains algorithmes ne sont pas bijectifs: Ils perdrent de l'information lors de la compréssion. La compression d'image jpeg perd de l'information, la compression de type texte est bijective.

 

LES LANGAGES INFORMATIQUES

S'il existe un domaine où les choses bougent en permanence, c'est le langage de programmation.
Depuis les premières cartes perforées qui supportaient nos premiers programmes jusqu'à la programmation neuronale qui ne cesse d'évoluer, que de progrés réalisés.




Les premiers langages:

Nos ancêtres utilisaient des cartes perforées pour parler avec leurs ordinateurs gros comme un immeuble, cette brâve bête repondait avec une même carte perforée. Les pauvres (que diront ils de nous dans 100 ans), bref, ils parlaient en langage machine. Bien que l'écran et l'imprimante aient fait leur apparition rapidement, on a continué à glorifier le langage machine jusqu'en 1980: l'ordinateur était une affaire de spécialistes, pas d'interprétation sans un spécialiste.
Puis est venu l'époque des logiciels 'évolués', ils tenaientt sur 2 disquettes et exploiteraient désorrmais l'écran, le clavier, et l'imprimante en mode texte. Trés vite, on est capable d'exploiter le mode graphique qui demande des machines de plus en plus puisssantes.
Début 1980, apparaissent les premières interfaces graphiques : windows , apple (mac)... Ces innovations nous entraine vers de nouveaux langages de programmation.

 

Le langage machine :

Un prosseceur ne comprends que des instructions élémentaires, charger une valeur, faire une addition, stocker...
Programmer en langage machine, c'est écrire des programmes dans le langage du procésseur. Tous les langages de programmation passe par le langage machine: l'utilisateur implémente(crée) du code machine lorsqu'il utilise un langage de programation.
On peut finallement voir les langages de programation comme des interfaces entre le langage machine et l'utilisateur.
Le langage C est un langage évolué, destiné aux proféssionnels, la plupart des logiciels que vous cotoyez ont été developpés dans ce langage.

 

Le Basic, le Pascal et le C

Comme son nom l'indique, Le basic est l'un des premiers langage accéssible à tous. sa grammaire et sa syntaxe n'est pas contraignante. Il est un successeur du langage machine. Visual basic conserve encore aujourd'hui les éléments de base de ce langage.
C'est certainement le langage le plus populaire.
Pascal un langage proche du Basic, outre la différence de syntaxe et grammaire, la différence importante est l'obligation de structurer l'architecture d'un programme et des données. Pascal est proche du langage C .La grande qualité de C est sa portabilité: on peut avec un même programme l'implémenter sous Windows ou sur une autre plateforme.

 

Le langage object:

Le langage "Orienté Objet" fait son apparition dés 1984, une révolution à l'époque dans la manière de programmer, exploitant les ressources windows de l'époque. Les années 2000 vont la confirmer. Avec les nouveaux système d'exploitation, tout est programmation objets: Au lieu de construire tous les éléments d'une voiture: vous allez les assembler : la carosserie , les portes, le moteurs, ect. Ainsi quand vous intégrer tous celà, vous ne vous souciez pas comment est faite la carosserie, la porte ect, on vous donne les propriétees de ces éléments et vous faites vôtre assemblage sur cette base. Personne ne vous interdit de concevoir la porte vous même, mais celà est un projet à part indépendant du projet principal et qui devra respecter les règles de la programmation objet. finalement la programmation objet est un protocole obligatoire pour construire des logiciels complexes.