UP :
1.2.3 Le traitement de l'information par la machine
PREVIOUS :
1.2.3.1 La mémoire
TOP : Table des matiéres
1.2.3.2 Microprocesseur
La vitesse de fonctionnement est influencée par plusieurs facteurs: le
processeur, le type d'instructions, le nombre d'instructions
simultanées, l'efficacité des bus (canaux d'information
internes), la mémoire (et les caches), la présence d'un
co-processeur arithmétique, la puissance des cartes graphiques,... et la
cadence de l'horloge interne du microprocesseur (en megaHertz). Cette cadence
et l'architecture du processeur déterminent le nombre d'instructions que
l'ordinateur peut traiter par seconde (million of instructions par seconds =
Mips). La vitesse actuelle est de l'ordre de 10 mips mais ce nombre devrait
croître vers 100 Mips dans un proche avenir. Le nombre de Mips ne
détermine pas nécessairement la vitesse de réaction.
D'autres facteurs en en ligne de compte, en particulier le type de processeur.
Le concepteur retiendra qu'il est nécessaire de tester son programme sur
la machine-type sur laquelle il sera distribué et d'être attentif
à certains nombre de problèmes qui peuvent naître d'une
lenteur d'exécution:
- Lorsque le sujet clique sur une icône ou un bouton, il arrive que
l'ordinateur ne réponde pas immédiatement parce qu'il effectue un
calcul quelconque. Dans ce cas, le sujet pensant que l'ordinateur n'a pas
perçu son action, clique souvent une deuxième fois sur le
même objet ou sur un autre sans se rendre compte qu'il demande en fait
plusieurs actions. Celles-ci sont stockées dans le buffer
d'entrées, mémoire dans laquelle les inputs sont stockés
jusqu'au moment où ils sont lus par le processeur. Ces actions sont
ensuite transmises sans que le sujet puisse les arrêter. Une solution
consiste à vider le buffer. Une autre solution consiste à
signaler à l'utilisateur que sa commande a été
reçue et est en cours d'exécution en affichant un message du type
'quelques secondes de patience' ou un symbole graphique équivalent (par
exemple, le curseur prenant la forme d'une montre ou d'un sablier).
- Lorsque la machine ne peut réaliser le déplacement d'un
objet à la vitesse imposée par le programme, certains
systèmes 'sautent' les étapes intermédiaires du dessin,
c'est-à-dire dessinent l'objet tous les N pixels au lieu de le
redessiner à chaque pixel. La course de l'objet apparaît alors
comme saccadée. Si l'utilisateur doit cliquer sur l'objet en mouvement,
ces saccades rendront sa tâche difficile, voire impossible. Pour
contourner ce problème, certains systèmes se contentent de
n'afficher que le contour de l'objet en cours de déplacement.
- Certains systèmes distribuent les différentes tâches
à différents processus internes. Des conflits peuvent
apparaître du fait que certains processus sont trop lents et se font
dépasser par des processus qu'ils auraient dû
précéder (par exemple, l'ouverture d'une fenêtre se fait
dépasser par l'écriture du contenu de la fenêtre).
- Certains modes d'interaction sont limités par la capacité du
sujet à maintenir en mémoire des informations utiles à
l'interaction. C'est le cas par exemple lorsque le système réagit
à une action du sujet que celui-ci a déjà oubliée.
Si ce risque existe, le concepteur devra modifier l'interaction, par exemple
dans ce cas en rappelant l'action concernée.
- Si la lenteur pose des problèmes, la vitesse soulève
également des problèmes, même si ceux-ci sont moins graves
et moins fréquents. Par exemple, imaginons que le concepteur ait
prévu d'afficher un message 'Patience, je travaille' pendant les
quelques secondes nécessaires pour effectuer une opération. Si
cette même opération ne dure qu'une fraction de seconde sur une
machine plus puissante, l'utilisateur verra apparaître un message sans
avoir le temps de le lire. Bien souvent, ce sujet sera anxieux d'avoir
manqué un message dont il ignore l'importance.
Ce dernier point
illustre un aspect difficile de la tâche du concepteur: celui-ci doit non
seulement éviter les problèmes de lenteur et de vitesse sur sa
machine, mais il doit en outre anticiper les problèmes liés
à l'utilisation de son programme sur des machines plus lentes ou moins
lentes. Aujourd'hui, tout programme est destiné a fonctionner sur une
gamme de machines qui, même à l'intérieur d'une marque,
peuvent grandement varier en performance. Le cas le plus fréquent est
que le développeur possède une machine plus puissante que celles
du public-cible. Une solution consiste à déterminer les
caractéristiques des machines qui affectent significativement le
fonctionnement du logiciel et de concevoir un programme qui s'adapte à
ces caractéristiques (soit en vérifiant directement des aspects
tels que la taille mémoire, soit en interrogeant l'utilisateur sur ces
caractéristiques).