Le séquenceur
: programmé
pour compter
Introduction
Je choisis de ne pas utiliser la logique mathématique classique
Je choisis d'utiliser les systèmes formels, et je commence avec
un modèle particulièrement simple de SF : le jeu de dominos.
En fait, j'ai même choisi de simplifier le jeu de dominos.
Un modèle simple, pour se faciliter la vie, afin de vous
aider à comprendre le fonctionnement de l'ordinateur
Sans rentrer dans les détails
Modéliser les fonctionnements les plus communs
Dans ce cours, nous
avançons selon
une progression
pédagogique
qui va du simple
au complexe
Nous ne pouvons pas les intro
duire par ordre alphabétique...
Pour des raisons de clarté, les
objets de notre étude sont
introduits progressivement, càd
selon une méthode constructive.
Selon une séquence dictée par
leur ordre de construction.
D'abord nous construisons les fondations
: les objets basiques, sur lesquels les
couches suivantes s'appuient
Puis nous construisons progressive-
ment l'édifice, couche après couche.
Notre version
d'un jeu
de dominos
Le jeu se joue avec un joueur unique
Pour jouer, le joueur ne dispose pas d'une simple
poignée de N dominos, mais plutôt de N boîtes,
chacune contenant des dominos du même modèle.
Souvent, il nous arrivera de considérer
que la contenance d'une boîte est infinie.
Nous simulons déjà certains registres
de fonctionnement d'un ordinateur
Dans la partie suivante de ce cours, en nous
donnant, à chaque exemple une liste de
règles, de coups permis, nous faisons
exécuter des traitements différents à
l'ordinateur :
Nous programmons l'ordinateur.
Résultat, bilan, synthèse.
À ce stade, nous
avons déjà introduit :
Selon ce que nous mettons dans la liste de coups
permis, nous guidons le traitement des informations
Quand nous tournons
notre regard vers le futur
nous constations que,
pour construire un modèle
d'ordinateur, il nous manque
Mais déjà avec notre simple jeu de dominos,
nous pouvons modéliser (programmer) des
phénomènes intéressants
Le séquenceur
n'agit pas,
il compte.
Définition de la notion de procès
Ici, pour l'instant, nous simulons un monde très simple, qui se réduit à un symbole.
alors changer son état du monde c'est passer d'un symbole à un autre.
À chaque tour, càd à chaque fois que qq joue, il rajoute un domino et
le nouvel état obtenu est déterminé par le coin gauche de ce dernier.
À chaque tour de jeu, à chaque instant,
un joueur joue, et le domino qu'il place
a pour effet de changer l'état du système.
Un ordre apparaît comme la cristallisation,
la mémorisation, l'enregistrement de
l'intention d'un autre intervenant.
À aucun moment, au sein du séquenseur, on voit
apparaître un signal interne qui a été positionné,
enregistré par un intervenant externe, et dont
l'interprétation déclenche un effecteur qui
produirait un procès volontaire, une action.
Résultat :
Application à
l'informatique
Étude de
quelques
variantes,
de quelques
résultats
très
spécifiques
À ce stade, en utilisant seulement le
séquenceur, nous pouvons déjà exhiber qq
modèles de fonctionnement remarquables
Le séquenceur est un modèle solipsiste
Précision
L'état du monde est constitué de nombreux objets/symboles en relation
Le procès est effectué localement, càd sur une partie du monde
L'ordinateur change l'état du monde
Ainsi, afin que l'ordinateur agisse localement sur le monde, dans les
chapitres suivants, nous allons le munir d'actionneurs, d'effecteurs.
1 → 2
2 → 3
3 → 4
4 → A ; Ce domino, cette règle
; produit le saut (la rupture).
A → B
B → C
C → D
D → E
Cet exemple modélise le déroulement
séquentiel de deux programmes différents
Le premier, basé sur des chiffres,
le suivant basé sur des lettres.
Note
Il faut bien noter, le domino 4 → A, qui induit
un saut d'une séquence à une autre.
Cette rupture de séquence, s'oppose au
déroulement séquentiel d'un programme.
En fait, dans les systèmes mono-processeur, l'ordinateur ne peut
effectuer plusieurs tâches en même temps. Il effectue les tâches
ou les bouts de tâche, séquentiellement : il partage son temps
entre les utilisateurs.
C'est la notion de temps partagé (time sharing).
Le multitâche coopératif
(de mauvaise qualité)
Toutes les tâches coopèrent :
quand l'une se termine, elle
passe la main à la suivante.
Ex : Windows1, 2, 3, 95 98
Ex :
A → B : La tâche 1 porte sur les majuscules.
B → C
...
...
Y → Z : Quand elle est finie elle passe
Z → 1 : la main à la tâche 2 (la suivante)
---------------------------------------------------
1 → 2 : La tâche 2 porte sur les chiffres.
2 → 3
...
...
8 → 9 : Quand elle est finie elle passe
9 → a : la main à la tâche 3 (la suivante)
---------------------------------------------------
a → B : La tâche 3 porte sur les minuscules.
b → C
...
...
y → z : Quand elle est finie elle passe
z → A : la main à la tâche 1 (la suivante)
Le problème est que, si un tâche plante, elle
consomme toute la ressource, elle ne passe plus
la main à la suivante, et plante tout le système.
Le multitâche préemptif
(de bonne qualité)
Chacune des tâches est autonome.
Quand chacune se termine, elle
se reboucle sur elle-même.
Alors il existe un meneur de jeu, externe et
indépendant qui passe la main, alternativement
à chaque tâche et lui fait jouer un coup.
Ex : Unix, Linux, BSD, Windows 2K, NT, XP, Vista, Seven.
Ex :
A → B : La tâche 1 porte sur les majuscules.
B → C
...
...
Y → Z : Quand elle est finie elle
Z → A : se reboucle sur elle-même.
---------------------------------------------------
1 → 2 : La tâche 2 porte sur les chiffres.
2 → 3
...
...
8 → 9 : Quand elle est finie elle
9 → 1 : se reboucle sur elle-même.
---------------------------------------------------
a → B : La tâche 3 porte sur les minuscules.
b → C
...
...
y → z : Quand elle est finie elle
z → a : se reboucle sur elle-même.
Maintenant le problème est résolu : même si
une tâche plante, le meneur de jeu continue
de donner la main aux autres applications. Le
reste du système continue de fonctionner
Le cycle du jeu maître pulse à haute fréquence
À tous les coups, on joue
un domino du jeu maître
Comme il reste seulement une fois dans chaque état,
le maître permet à son esclave de jouer seulement
une fois, pendant que lui-même effectue un cycle.
Le cycle esclave, pulse à basse fréquence
Finalement, nous obtenons cette séquence, ce comptage :
Esclave maître
a 0
a 1
a 2
a 3 ; Le maître est dans l'état 3. Il joue le domino 3 → 0,
et ordonne à son esclave de jouer : ce sera a → b.
b 0
b 1
b 2
b 3 ; Le maître est dans l'état 3. Il joue le domino 3 → 0,
et ordonne à son esclave de jouer : ce sera b → c.
c 0
c 1
c 2
c 3 ; Le maître est dans l'état 3. Il joue le domino 3 → 0,
et ordonne à son esclave de jouer : ce sera c → d.
d 0
d 1
d 2
d 3 ; Le maître est dans l'état 3. Il joue le domino 3 → 0,
et ordonne à son esclave de jouer : ce sera d → a.
; Et le cycle recommence :
a 0
a 1
Remarque :
10 000 Km
0 → 1,
1 → 2,
2 → 3,
3 → 4,
4 → 5,
5 → 6,
6 → 7,
7 → 8,
8 → 9,
9 → 0.