Vous êtes sur la page 1sur 12

Introduction aux

systèmes informatiques
Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

Système
 Un système est une collection organisée d'objets qui
interagissent pour former un tout
 Objets = composants du système
 Des interconnexions (liens) entre les objets sont nécessaires pour
les interactions
 Structure = (composants, interconnexions)
Comment le système est fait
 Comportement = (entrées, sorties)
Ce que le système fait (comment il répond aux entrées)

Eduardo Sanchez
Page 2 Ecole Polytechnique Fédérale de Lausanne
composant

entrées sorties

interconnexion

Eduardo Sanchez
Page 3 Ecole Polytechnique Fédérale de Lausanne

Le comportement d'un système peut être décrit


formellement par des équations du type:

Z = ƒ (X)

X ƒ Z

Eduardo Sanchez
Page 4 Ecole Polytechnique Fédérale de Lausanne
 Analyse:
Déterminer le comportement d'un système à partir d’une
description de sa structure

 Synthèse:
Déterminer la structure qui produit un comportement donné.
Plusieurs structures sont possibles pour un même comportement

Eduardo Sanchez
Page 5 Ecole Polytechnique Fédérale de Lausanne

Informatique

 Petit Robert:
Science du traitement de l'information; ensemble de techniques
de la collecte, du tri, de la mise en mémoire, du stockage, de la
transmission et de l'utilisation des informations traitées
automatiquement à l'aide de programmes mis en oeuvre sur
ordinateurs.

Eduardo Sanchez
Page 6 Ecole Polytechnique Fédérale de Lausanne
Système informatique
 Un système informatique est un ensemble de composants de
type logiciel (software) et matériel (hardware), mis ensemble pour
collaborer dans l'exécution d'une application
 Le principal composant matériel est l’ordinateur
 Un informaticien doit comprendre le fonctionnement de tous les
composants d’un système, sans se limiter au logiciel. En effet, les
caractéristiques du matériel agissent sur la justesse et la
performance des programmes
 Une bonne connaissance du matériel permet d’éviter des erreurs
et d'augmenter la performance, en optimisant les programmes

Eduardo Sanchez
Page 7 Ecole Polytechnique Fédérale de Lausanne

 Un ordinateur est une machine électronique composée de


plusieurs parties interconnectées par des fils
 A tout moment, tout fil dans l'ordinateur se trouve à un voltage
haut ou bas. La valeur réelle n'intéresse pas: c’est seulement un 1
ou un 0
 On peut voir 4 grandes parties dans un ordinateur:

dispositifs dispositifs
processeur mémoire
d’entrée de sortie

bus

Eduardo Sanchez
Page 8 Ecole Polytechnique Fédérale de Lausanne
 Le bus est un ensemble de fils électriques interconnectant les
différents composants
 Les dispositifs d’entrée/sortie transmettent l'information entre
l'extérieur et la mémoire. Toute information dans l'ordinateur est
codée comme une séquence de 0 et 1: c'est les bits. Un groupe
de 8 bits est un byte. Et il est courant d'utiliser les préfixes
suivants pour indiquer une certaine quantité d'information:
• kilo = 210 = 1'024
• mega = 220 = 1'048'576
• giga = 230 = 1'073'741'824
 Le processeur dirige le traitement de l'information et réalise ce
traitement. Diriger, c'est décider quelle tâche exécuter et dans
quel ordre, contrôler toutes les autres parties

Eduardo Sanchez
Page 9 Ecole Polytechnique Fédérale de Lausanne

CPU
registres

PC ALU

bus système bus mémoire


I/O mémoire
interface du bus
bridge principale

bus I/O
slots d'expansion
pour d'autres dispositifs
contrôleur adaptateur contrôleur
USB graphique de disque

souris clavier écran


disque

Eduardo Sanchez
Page 10 Ecole Polytechnique Fédérale de Lausanne
 Tout ce qui peut être calculé, peut l'être par un ordinateur, pour
autant qu'il ait assez de temps et de mémoire: l'ordinateur est un
dispositif de calcul universel
 L'universalité de l'ordinateur est possible grâce à la
programmation: l'utilisateur doit indiquer par un programme les
pas à suivre pour exécuter une tâche particulière

Eduardo Sanchez
Page 11 Ecole Polytechnique Fédérale de Lausanne

Les niveaux d'abstraction


 L'abstraction se réfère à la distinction entre les propriétés
externes d'un système et les détails de sa composition interne
 L'abstraction d'un système comprend:
• la suppression de certains détails pour montrer seulement l'essence du
sujet (pour chaque niveau d'abstraction il faut pouvoir différencier ce qui
est essentiel des détails superflus)
• une structure
• une division de responsabilité à travers une chaîne de commande
• une division en sous-systèmes

Eduardo Sanchez
Page 12 Ecole Polytechnique Fédérale de Lausanne
 L'abstraction permet une conception hiérarchique des systèmes
 L'abstraction permet de gérer des systèmes très complexes en
connaissant seulement les choses qui nous intéressent à un
moment donné
 Nous pouvons donc voir un système à plusieurs niveaux de détail.
A chaque niveau, le système est vu en termes de composants
dont nous ignorons la composition interne
 Les différents niveaux d'abstraction peuvent se représenter sous
trois formes:
• diagrammes de niveau
• diagrammes d'imbrication
• diagrammes ou arbres hiérarchiques

Eduardo Sanchez
Page 13 Ecole Polytechnique Fédérale de Lausanne

plus haut niveau d'abstraction

plus bas niveau d'abstraction

Eduardo Sanchez
Page 14 Ecole Polytechnique Fédérale de Lausanne
Niveaux d'abstraction en informatique

 La solution d'un problème en informatique va du niveau le plus


abstrait vers le niveau le plus détaillé
 Un grand système informatique est organisé de façon
hiérarchique: une partie prend ses ordres de la partie
hiérarchique supérieure et, à son tour, peut transmettre ses
ordres à des parties inférieures hiérarchiquement
 Il n'est pas nécessaire de connaître complètement chaque niveau
d'un système informatique pour l'utiliser correctement

Eduardo Sanchez
Page 15 Ecole Polytechnique Fédérale de Lausanne

 Les niveaux d'abstraction d'un système informatique sont:


• application
• algorithme
• langage de haut niveau
• système d'exploitation
• architecture de la machine
• microarchitecture
• circuits logiques
• dispositifs électroniques

Eduardo Sanchez
Page 16 Ecole Polytechnique Fédérale de Lausanne
programmes d'application
logiciel
système d'exploitation

mémoire dispositifs matériel


processeur
principale I/O

processus

mémoire virtuelle

fichiers

mémoire dispositifs
processeur
principale I/O

Eduardo Sanchez
Page 17 Ecole Polytechnique Fédérale de Lausanne

 Un algorithme est un ensemble fini d'instructions qui, exécutées


dans la bonne séquence, résolvent un problème dans un temps
fini. Une recette de cuisine est un exemple d'algorithme
 Un programme est un algorithme écrit pour exécution dans un
ordinateur
 A chaque niveau on peut utiliser un langage différent:
• langage naturel
• langage dépendant de l'application
• langage de programmation indépendant de la machine
• langage assembleur
• appels du système d’exploitation
• langage machine
• langage de transfert de registres
• algèbre booléenne

Eduardo Sanchez
Page 18 Ecole Polytechnique Fédérale de Lausanne
 Un programme pour une certaine tâche peut être écrit en
utilisant n'importe lequel de ces langages
 Une fois que l'algorithme pour exécuter une tâche est connu, il
peut être exécuté sans comprendre les principes sur lesquels il se
base: l'intelligence pour résoudre un problème se trouve dans
l'algorithme

Eduardo Sanchez
Page 19 Ecole Polytechnique Fédérale de Lausanne

Réalité versus Abstraction


 L'abstraction est utile et nécessaire, mais il ne faut pas oublier la
réalité
 Les abstractions possèdent toujours des limites qu'il faut
connaître
 Avantages pour un programmeur:
• détection et élimination des erreurs plus efficace
• optimisation rationnelle des programmes
• préparation pour d'autres cours (compilation, systèmes d'exploitation,
réseaux, systèmes embarqués)

Eduardo Sanchez
Page 20 Ecole Polytechnique Fédérale de Lausanne
Exemples
 Les int ne sont pas des entiers et les float ne sont pas des réels
 Est-ce que x2  0 est toujours vrai?
• pour les float, oui
• pour les int, pas toujours:
 40000 * 40000  1600000000
 50000 * 50000  ??
 Est-ce que (x+y)+z = x+(y+z) est toujours vrai?
• pour les int, oui
• pour les float, pas toujours:
 (1e20 + -1e20) + 3.14  3.14
 1e20 + (-1e20 + 3.14)  ??

Eduardo Sanchez
Page 21 Ecole Polytechnique Fédérale de Lausanne

 La probabilité d'écrire des programmes en assembleur (langage


machine) est très faible, étant donné la qualité des compilateurs
 Toutefois, la connaissance du langage machine est clé pour:
• la compréhension du comportement des programmes en présence
d'erreurs
• la compréhension des sources d'inefficacité des programmes, pour mieux
les optimiser:
 identification des goulets d'étranglement
 mesure de la performance
 la façon d'écrire le code peut multiplier la performance par 10
• L'implémentation des logiciels système (compilateurs, systèmes
d'exploitation, systèmes embarqués)

Eduardo Sanchez
Page 22 Ecole Polytechnique Fédérale de Lausanne
 La mémoire d'un système est limitée et doit être allouée et gérée
convenablement
 La performance de la mémoire d'un système n'est pas uniforme:
• les effets des mémoires cache et virtuelle peuvent avoir une grande
influence sur la performance des programmes
• l'adaptation des programmes aux caractéristiques de la mémoire peut
amener des améliorations substantielles de la vitesse du système

Eduardo Sanchez
Page 23 Ecole Polytechnique Fédérale de Lausanne