Contenu de Mon Cours (Chapitre 1 À 4)
Contenu de Mon Cours (Chapitre 1 À 4)
Contenu de Mon Cours (Chapitre 1 À 4)
L’informatique qui à ses débuts était une affaire de spécialistes, est aujourd’hui devenue
l’affaire de tous; d’où l’importance d’une solide formation de tous aux différentes techniques
utilisées par la science informatique. Ce cours est une synthèse d’un minima à connaitre sur le
sujet (informatique). Le premier chapitre rassemble les concepts essentiels sur la notion
d'ordinateur, de codage, de programme et d'instruction au niveau machine.
Plan du chapitre:
2. L’ordinateur
3. Information - Informatique
1
Les automates (du XIII ième au XVIII siècle)
Le métier à tisser (Jacquard XVIII ième siècle) La machine à calculer (Pascal XVII ième siècle)
2. L’ordinateur
2
Mémoire
Accumulateur
Entrée Sortie
A partir de ces éléments, l’on est en mesure de réaliser les fonctions de base d’un ordinateur
que sont : le stockage des données, le traitement des données, le mouvement de données et le
contrôle de celles-ci.
Le processeur
Le processeur ou CPU (Central Processing Unit) est l’unité centrale de traitement des
données. Il est chargé d’interpréter et d’exécuter les instructions d’un programme qui se situe
en mémoire. Le CPU est constitué de deux unités fonctionnelles : l’unité de commande et
l’unité arithmétique et logique.
La mémoire
La mémoire est un organe capable de contenir, de conserver et de restituer sans les modifier
de grandes quantités d’information. Nous utilisons généralement deux types de mémoires : les
mémoires vives ou RAM (Random access Memory – mémoires dans lesquelles on peut lire et
écrire) et les mémoires mortes ou ROM (Read Only Memory – mémoires dans lesquelles on
ne peut que lire). Les unités de mesure de stockage de l’information sont :
3
Les périphériques
Les périphériques sont chargés d’effectuer des tâches d’entrées et/ou de sorties de
l’information. En voici quelques exemples :
- Périphériques d’entrée : Clavier, souris, crayon optique, écran tactile, stylo code barre,
carte son, scanner, caméra, etc.
- Périphériques de sortie : Ecran, imprimante, table traçante, carte son, télécopie,
modem etc.
- Périphériques d’entrée sortie : Mémoire auxiliaire (sert à stocker les données et les
programmes) telle que Stockage de masse sur disque dur ou disquette, Mémoire clef
USB, CD-Rom, DVD, disque magnéto-électrique etc.
Les Bus représentent dans l’ordinateur le système de communication entre ses divers
constituants. Ils sont au nombre de trois : le bus d’adresses, le bus de données et le bus de
contrôle.
3. Information - Informatique
L’information est le support formel d’un élément de connaissance humaine susceptible d’être
représentée à l’aide de conventions (codages) afin d’être conservée, traitée ou communiquée.
Une donnée est la représentation d’une information sous une forme conventionnelle (codée)
destinée à faciliter son traitement.
Traitement
Données Résultats
Entrée Sorties
4
Actuellement, l’informatique intervient dans tous les secteurs d’activités de la vie
quotidienne : démontrer un théorème (mathématique), faire jouer aux échecs (intelligence
artificielle), dépouiller un sondage (économie), gérer un robot industriel (atelier), facturation
de produits (entreprise), traduire un texte (linguistique), imagerie médicale (médecine)
formation à distance (éducation), Internet (grand public), etc. l’informatique représente une
plus value dans les domaines de l’exploration et exploitation minières.
5
Chapitre 2 : Systèmes d’exploitation et les commandes de base
La mémoire est une ressource sollicitée par les programmes qui s'exécutent. Pour
éviter les conflits d'accès à la mémoire, le système d'exploitation définit une politique
d'ordonnancement qui va lui permettre de définir les priorités pour le flux de données à traiter.
Il doit gérer l'espace à allouer à chaque application. En cas d'insuffisance de la mémoire
physique, le système d'exploitation crée une zone d'appoint sur le disque dur appelée zone de
swap ou mémoire virtuelle pour les applications qui veulent accéder à la mémoire. Lors de
l'installation de certains systèmes comme linux, il nous est demandé de définir manuellement
l'espace qui sera réservé pour la zone de swap.
Dans un OS, il existe un système de gestion de fichiers qui assure le maintient des
données sur les périphériques mémoires (disques durs, disquettes, clés USB, etc), définit la
structure d'un disque et fournit enfin une interface conviviale à l'utilisateur. Ainsi, un fichier
est vu comme un simple objet aux yeux d’un utilisateur.
Les OS ont subi une évolution parallèle à celle des architectures matérielles. Il existe trois
types d’OS différents, si l’on ignore les systèmes rudimentaires de la 1ère génération :
- Les OS dits monoprogrammation dans lesquels un seul utilisateur est présent et a
accès à toutes les ressources de la machine pendant tout le temps que dure son travail.
L’OS ne permet le passage que d'un seul programme à la fois.
A titre d’exemple, supposons que sur un tel système 5 utilisateurs exécutent chacun un
programme P1, P2, P3, P4, P5.
6
Dans l’ordre de la figure ci-dessus, chaque Pi attend que le Pi+1 précédent ait terminé son
exécution pour être exécuté à son tour.
Dans la figure ci-haut, chaque Pi se voit allouer une tranche de temps d'exécution (1 seconde),
dès que ce temps est écoulé, l'OS passe à l'exécution du Pi+1 suivant etc.
7
Exemple de diagramme des temps d’exécution cyclique de chaque programme Pi de la figure
de ci-dessus.
Nous observons dans le diagramme des temps d'exécution que le système exécute P5
pendant 1 seconde, puis abandonne P5 et exécute P4 pendant 1 seconde, puis abandonne P4...,
jusqu'à l'exécution de P1, lorsqu’il a fini le temps alloué à P1, il recommence à parcourir
cycliquement la liste (P5, P4, P3, P2, P1) et réalloue 1 seconde de temps d’exécution à P5 etc.
jusqu'à ce qu’un programme ait terminé son exécution et qu’il soit sorti de la table des
programmes à exécuter.
Relativement aux temps d’attente, un système de multiprogrammation rétablit une
certaine justice entre petits et gros programmes.
- Les OS dits à temps partagés
Il s’agit d’une amélioration de la multiprogrammation. Un tel système organise ses tables
d’utilisateurs sous forme de files d’attente. L’objectif majeur est de connecter des utilisateurs
directement sur la machine et donc d’optimiser les temps d’attente de l’OS (un humain étant
des millions de fois plus lent que la machine sur ses temps de réponse).
Les OS des micro-ordinateurs ont suivi la même démarche et sont partis de systèmes de
monoprogrammation comme MS-DOS et MacOS pour évoluer en systèmes multi-tâches
(version affaiblie de la multiprogrammation) avec OS/2, windows et Linux.
Les concepts de base utiles sont ceux d'utilisateurs, de fichiers, répertoires, environnement
coopératif et environnement préemptif.
Un utilisateur est toute personne ayant les droits d'accès à un compte ou une session
dans un système. Il existe deux types d'utilisateurs : les utilisateurs ordinaires qui n'ont accès
qu'à leurs comptes et les administrateurs ou super-utilisateurs qui ont tous les droits sur le
système. Un compte est caractérisé par un nom et un mot de passe.
8
Un fichier est une suite logique d'informations d'un type donné qui ne peuvent être
manipulées qu'au travers des opérations spécifiques.
Dans linux, il existe des commandes simples. L’une des commandes simple est la
commande date. Cette commande affiche l’heure et la date actuelles. Une commande liée est
cal, qui par défaut, affiche le calendrier du mois courant. Pour voir le volume d’espaces libres
disponibles sur nos disques durs, la commande est df. Pour afficher la quantité d’espaces
mémoires libre, nous avons la commande free. La commande exit permet de fermer le
termina l.
Navigation
La première chose que nous devons apprendre à faire hormis la saisie est comment
parcourir les systèmes de fichier sur le système Linux. Pour ce faire, nous avons les
commandes suivantes :
9
Chapitre 3 : Les circuits logiques
1. Logique élémentaire pour l’informatique
1.1 Calcul propositionnel naïf
1.2 Propriétés des connecteurs logiques
1.3 Règles de déduction
2. Algèbre de Boole
2.1 Axiomatique pratique
2.2 Exemples d’algèbre de Boole
2.3 Notation des électroniciens
3. Circuits booléens ou logiques
3.1 Principaux circuits
3.2 Fonction logique associée à un circuit
3.3 Circuit logique associé à une fonction
3.4 Additionneur dans l’UAL
Un peu de logique simple va nous aider à disposer d’outils pratiques mais rigoureux
pour construire des programmes les plus justes possibles. Si la programmation est un art, c’est
un art rigoureux et logique. La rigueur est d’autant plus nécessaire que les systèmes
informatiques manquent totalement de sens artistique.
Une proposition est une propriété ou un énoncé qui peut avoir une valeur de vérité
vraie (notée V) ou fausse (notée F).
Exemple : " 2 est un nombre impair " est une proposition dont la valeur de vérité est F.
P Q ¬P P^Q PvQ
V V F V V
V F F F V
F V V F V
F F V F F
10
p∨q=q∨p
p∧q=q∧p
p ∨ (q ∨ r) = (p ∨ q) ∨ r
p ∧ (q ∧ r) = (p ∧ q) ∧ r
p ∨ (q ∧ r) = (p ∨ q) ∧ (p ∨ r)
p ∧ (q ∨ r) = (p ∧ q) ∨ (p ∧ r)
p∨p=p
p∧p=p
¬¬p = p
¬ (p ∨ q) = ¬ p ∧ ¬ q
¬ (p ∧ q) = ¬ p ∨ ¬ q
P Q ¬p∨q
V V V
V F F
F V V
F F V
Il est aussi possible de prouver des " égalités " de propositions en utilisant des
combinaisons de résultats précédents.
Exemple : Montrons que : p ⇒ q = ¬ q ⇒ ¬ p (implication contraposée), par définition et
utilisation évidente des propriétés :
p ⇒ q = ¬ p ∨ q = q ∨¬ p = ¬ (¬ q) ∨¬ p = ¬ q ⇒ ¬ p
2. Algèbre de Boole
On appelle algèbre de Boole tout ensemble E muni de : deux lois de compositions internes
notées par exemple : • et ⊕,
une application involutive f (f2 = Id ) de E dans lui-même, notée
chacune des deux lois • , ⊕ , est associative et commutative,
chacune des deux lois • , ⊕ , est distributive par rapport à l’autre,
la loi • admet un élément neutre unique noté e1,
x∈E, x • e1 = x
la loi ⊕ admet un élément neutre noté e0, x∈Ε, x ⊕ e0 = x
tout élément de E est idempotent pour chacune des deux lois : x∈E, x • x = x et
x⊕x=x
axiomes de complémentarité : ,
11
∀ ∈ , ∙ =
∀ ∈ , =
lois de Morgan :
(x,y) ∈ E2,
x,y) ∈ E2,
L’algèbre des circuits électriques est une algèbre de Boole minimale à deux éléments :
L’ensemble E = {0,1} muni des lois " • " et " + " et de l’application complémentaire
a+1=1
a+0=a
a+a=a
=1
a.1 = a
a.0 = 0
a.a = a
=0
=
12
Cette algèbre est utile pour décrire et étudier les schémas électroniques, mais elle sert aussi
dans d’autres domaines que l’électricité. Elle est étudiée ici parce que les ordinateurs actuels
sont basés sur des composants électroniques. Nous allons descendre un peu plus bas dans la
réalisation interne du cœur d’un ordinateur, afin d’aboutir à la construction d’un additionneur
en binaire dans l’UAL.
Nous représentons par une variable booléenne x appartient à {0,1} le passage d’un courant
électrique. Lorsque x = 0, nous dirons que x est à l’état 0 (le courant ne passe pas)
Une telle variable booléenne permet ainsi de visualiser, sous forme d’un bit d’information
(0,1) le comportement d’un composant physique laissant ou ne laissant pas passer le courant.
Nous proposons donc 3 circuits logiques de base correspondant aux deux lois internes
et à l’opérateur de complémentation involutif.
14
Table de vérité du ou exclusif :
a b a⊕b
1 1 0
1 0 1
0 1 1
0 0 0
a b
1 1 0
1 0 1
0 1 1
0 0 1
15
Pour calculer la fonction f à partir d’un schéma de circuits logiques, il suffit d’indiquer
à la sortie de chaque opérateur (circuit de base) la valeur de l’expression booléenne en cours.
Puis, à la fin, nous obtenons une expression booléenne que l’on simplifie à l’aide des axiomes
ou des théorèmes de l’algèbre de Boole.
Exemple :
b+ =1
A l’inverse, la création de circuits logiques à partir d’une fonction booléenne f à n entrées est
aussi simple. Il suffit par exemple, dans la fonction, d’exprimer graphiquement chaque
16
opérateur par un circuit, les entrées étant les opérandes de l’opérateur. En répétant l’action sur
tous les opérateurs, on construit un graphique de circuit logique associé à la fonction f.
17
3.4 Additionneur dans l’UAL
Demi-additionneur
.
Reprenons les tables de vérités du "⊕ " (Xor), du " + " et du " " et adjoignons la table de calcul de
l’addition en numération binaire.
En considérant une addition binaire comme la somme à effectuer sur deux mémoires à un bit,
nous observons dans l’addition binaire les différentes configurations des bits concernés (notés
a et b). Nous aurons comme résultat un bit de somme et un bit de retenue :
18
Si l’on compare avec les tables d’opérateurs booléens, on s’aperçoit que l’opérateur "⊕"
(Xor) fournit en sortie les mêmes configurations que le bit de somme, et que l’opérateur "."
(Et) délivre en sortie les mêmes configurations que le bit de retenue.
Il est donc possible de simuler une addition binaire (arithmétique binaire) avec les deux
opérateurs "⊕" et ".". Nous venons de construire un demi-additionneur ou additionneur sur
un bit. Nous pouvons donc réaliser le circuit logique simulant la fonction complète d’addition
binaire, nous l’appellerons " additionneur binaire "(somme arithmétique en binaire de deux
entiers en binaire).
19
Chapitre 4 : Codage numération
1. Codage de l’information
Dans une machine, toutes les informations sont codées sous forme d'une suite de "0" et
(langage binaire). Mais l'être humain ne parle généralement pas couramment le langage
binaire. Il doit donc tout "traduire" pour que la machine puisse exécuter les instructions
relatives aux informations qu'on peut lui donner. Le codage étant une opération purement
humaine, il faut produire des algorithmes qui permettront à la machine de traduire les
informations que nous voulons lui voir traiter.
Le codage est une opération établissant une bijection entre une information et une suite de " 0
" et de " 1 " qui sont représentables en machine. Parmi les codages les plus connus et utilisés,
le codage ASCII (American Standard Code for Information Interchange) étendu est le plus
courant.
Le Code 6 Bit.
• les 10 chiffres 0 à 9
Le Code 7 bit.
• 84 places fixes,
20
Le Code 8 bit
• 28 = 256 signes.
• D'autres parties pour les langues slaves avec des lettres cunéiformes, le grec, l'arabe,
le hébreu.
Les premières 256 pour les signes du code Latin 1 selon ISO/IEC 8859 Partie 1
Un nombre binaire à n-chiffres est un nombre en base 2 avec évaluation de ses chiffres 0 et 1
par les poids 2n-1,.., 8, 4, 2, 1.
n −1
z= ∑ 0
ak * bk
b = 2 (base), ai = 1 ou 0
Le nombre " dix " s’écrit 10 en base b=10, il s’écrit 1010 en base b=2. Dans la mémoire ce
nombre dix est codé en binaire comme suit:
Une mémoire à n+1 bits (n>0), permet de représenter sous forme binaire (en binaire pur) tous
les entiers naturels de l'intervalle [0, 2n+1 -1].
• soit pour n+1=8 bits, tous les entiers de l'intervalle [0, 255]
21
• soit pour n+1=16 bits, tous les entiers de l'intervalle [0, 65535]
Ce codage permet la représentation des nombres entiers relatifs. Le bit le plus élevé est utilisé
pour le signe 0 pour positif et 1 pour négatif. n-1 pour la représentation réelle du nombre.
n−2
n −1
z = − a n −1 * b + ∑ ak * b k
k =0
+14 est représenté par 0000...01110 -14 est représenté par 1000...01110
Comme dans le binaire signé, la mémoire est divisée en deux parties inégales; le bit de
poids fort représentant le signe, le reste représente la valeur absolue avec le codage suivant :
Supposons que la mémoire soit à n+1 bits, soit x un entier relatif à représenter :
si x > 0, alors c'est la convention en binaire signé qui s'applique (le bit de signe vaut 0, les n
bits restants codent le nombre), soit pour le nombre +14 :
• codage de |-14|= 14
22
• complément à 1.
• addition de 1
Le nombre -14
14 s'écrit donc en complément à 2 : 1111..10010.
Un des intérêts majeurs de ce codage est d’intégrer la soustraction dans l’opération de codage
et de ne faire effectuer que des opérations simples et rapides (non logique, addition de 1).
Procédé:
Partie fractionnaire: multiplications par 2 sur les parties fractionnaires successives, en retenant
les valeurs de la partie entièree ainsi obtenue.
Partie entière: 13: division successive et prise des restes en sens inverse : 1310 = 11012
Partie fractionnaire: 0,375: multiplication par 2 sur les parties fractionnaires successives et
prise des parties entières.
*2
0,375 0
0,75 1
(1),5 1
(1),0
23
Soit à convertir 12,322
*2
0,322 0
(0),644 1
(1),288 0
(0),576 1
(1),152 ….
Signe-Mantisse-Exposant
Représentation semi-algorithmique.
algorithmique.
24
0,55 0,11 0,11 * 20 1,1 * 2-1
0 000011 001101011
2. Numération
Pour des commodités d'écriture, nous utilisons la notation indicée pour représenter la base
d'un nombre en parallèle de la représentation avec la barre au dessus. Ainsi 14510 signifie le
nombre 145 en base dix; 11010112 signifie 1101011 en binaire.
Nous avons parlé d’addition en binaire ; comme dans le système décimal, il nous faut
connaître les tables d’addition, de multiplication, etc... afin d’effectuer des calculs dans cette
base.
Addition Multiplication
1101101
+ 10011
25
_____________
100000002 =12810
Addition
10110
x 101
____________
10110
10110..
___________
11011102 =11010
Multiplication
Etant donné que le système classique utilisé par chacun de nous est le système décimal, nous
nous proposons de fournir d’une manière pratique les conversions usuelles permettant d'écrire
les diverses représentations d’un nombre entre les systèmes décimal, binaire et hexadécimal.
Voici ci-dessous un rappel des méthodes générales permettant de convertir un nombre en base
b (b>1) en sa représentation décimale et réciproquement.
• convertir chaque symbole xk en son équivalent ak en base 10, nous obtenons ainsi la
suite de
chiffres : an,....,a0.
Exemple :
26