12
Eduardo Sanchez Ecole Polytechnique Fédérale de Lausanne Introduction aux systèmes informatiques Page 2 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)

Système - lsl · 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

Embed Size (px)

Citation preview

Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

Introduction aux systèmes informatiques

Page 2 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)

Page 3 Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

entrées sorties

composant

interconnexion

Page 4 Eduardo Sanchez

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

Page 5 Eduardo Sanchez

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

Page 6 Eduardo Sanchez

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.

Page 7 Eduardo Sanchez

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

Page 8 Eduardo Sanchez

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 d’entrée processeur mémoire dispositifs

de sortie

bus

Page 9 Eduardo Sanchez

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

Page 10 Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

PC ALU

registres

interface du bus I/O bridge

bus système bus mémoire mémoire principale

CPU

bus I/O

contrôleur USB

adaptateur graphique

contrôleur de disque

slots d'expansion pour d'autres dispositifs

souris clavier écran disque

Page 11 Eduardo Sanchez

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

Page 12 Eduardo Sanchez

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

Page 13 Eduardo Sanchez

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

Page 14 Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

plus haut niveau d'abstraction

plus bas niveau d'abstraction

Page 15 Eduardo Sanchez

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

Page 16 Eduardo Sanchez

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

Page 17 Eduardo Sanchez

Ecole Polytechnique Fédérale de Lausanne

programmes d'application

système d'exploitation

processeur mémoire principale

dispositifs I/O

logiciel

matériel

processeur mémoire principale

dispositifs I/O

fichiers

mémoire virtuelle

processus

Page 18 Eduardo Sanchez

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

Page 19 Eduardo Sanchez

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

Page 20 Eduardo Sanchez

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)

Page 21 Eduardo Sanchez

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) ??

Page 22 Eduardo Sanchez

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)

Page 23 Eduardo Sanchez

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