Processeur

publicité
De l’ordinateur au processus :
rôle d’un système
Laurent Réveillère
Enseirb-Matmeca
Département Télécommunications
[email protected]
http://www.labri.fr/perso/reveille/if110/
D’après le cours d’introduction aux systèmes d’exploitation de Télécom SudParis
Présentation du cours
 Contexte du cours :
 Introduire notre objet d’étude : les systèmes d’exploitation
 Objectifs :
 Comprendre ce qu’est un ordinateur
 Comprendre ce que sont un logiciel et un programme
 Comprendre ce qu’est un système d’exploitation
 Comprendre ce qu’est un processus
 Notions abordées :
 Ordinateur, mémoire, processeur, périphérique, système
d’exploitation, processus, communication, programme, logiciel
IF110
2
I. Qu’est ce qu’un ordinateur ?
IF 110
Introduction aux Systèmes d’Exploitation
Définition d’un ordinateur
 Machine électronique capable d’exécuter des
instructions effectuant des opérations sur des
nombres
1946 : ENIAC
• calculateur à tubes
• 30 tonnes, 72m2
• 357 mult/s
• 35 div/s
En panne la moitié
du temps
IF110
4
Définition d’un ordinateur
 Machine électronique capable d’exécuter des
instructions effectuant des opérations sur des
nombres
Janv 1948 : SSEC (premier ordinateur chez IBM) avec
une capacité mémoire de 150 nombres
IF110
5
Définition d’un ordinateur
 Machine électronique capable d’exécuter des
instructions effectuant des opérations sur des
nombres
IF110
6
Structure matérielle d’un ordinateur
Processeur
Mémoire
Moniteur
Clavier
Disque dur
Bus de communication
RAPPEL
IF110
7
Schéma de haut niveau d’un ordinateur
 Processeur : unité capable d’effectuer des calculs
 Mémoire vive : matériel stockant des données
directement accessibles par le processeur
 Accès rapide, données perdues en cas de coupure
électrique.
 Périphériques : matériel fournissant ou stockant des
données secondaires
 Réseau, disque dur, souris, clavier, carte graphique, carte
son…
 Bus de communication : bus interconnectant le
processeur, la mémoire vive et les périphériques
IF110
8
Qu’est ce que la mémoire vive ?
 Mémoire vive : ensemble de cases numérotées
contenant des octets
Case 0
 Une case contient un octet
(byte en anglais) = regroupe 8 bits
 Bit : valeur valant 0 ou 1
Case 1
Case 2
Case 3
Case 800
…
 0 : bit non chargé ("courant ne passe pas")
 1 : bit chargé ("courant passe")
0110 0001b
0101 1001b
0110 0001b
1111 0000b
1100 1011b
 Un octet permet de représenter
28 = 256 valeurs
IF110
9
Représentation des nombres
 Notation décimale : un chiffre peut prendre 10 valeurs de 0 à 9
276 = 2*102 + 7*101 + 6*100
 Notation binaire : un chiffre peut prendre 2 valeurs de 0 à 1
1101b = 1*23 + 1*22 + 0*21 + 1*20 = 13
 Notation hexadécimale : un chiffre peut prendre 16 valeurs de 0 à f
0x276 = 2*162 + 7*161 + 6*160 = 630
0xb6 = 11*161 + 6*160 = 182
IF110
10
Hexadécimal en informatique
 Avec 4 bits, on encode 16 valeurs, soit 1 chiffre
hexadécimal
Case 0
1110 0001b
Case 3
0101 1001b
0110 0001b
1111 0000b
Case 800
1100 1011b
Case 1
Case 2
…
IF110
11
Hexadécimal en informatique
 Avec 4 bits, on encode 16 valeurs, soit 1 chiffre
hexadécimal
Case 2
0xe1
0x59
0x61
Case 3
0xf0
Case 800
0xc3
Case 0
 L’hexadécimal est donc plus
concis pour représenter
les valeurs des octets
IF110
…
 Un octet est représenté par
2 chiffres hexadécimaux
Case 1
12
Que représentent les octets ?
 Une série d’octets peut représenter :
Case 3
0xe1
0x59
0x61
0xf0
Case 800
0xc3
Case 0
Case 1
Case 2
…
 Un entier naturel
 Un entier relatif
 Une suite de caractères
 Une valeur de vérité (vrai/ faux)
 Un nombre flottant
 Un nombre complexe
 Une instruction machine
 Ou tout autre ensemble énumérable
IF110
13
Fonctionnement d’un processeur
 Un processeur exécute des instructions qui peuvent
 Effectuer des calculs
 Accéder à la mémoire
 Accéder aux autres périphériques
 Sélectionner l’instruction suivante à exécuter (saut)
 Le processeur identifie une instruction par un
numéro
(Par exemple : 1 = additionne, 2 = soustrait, etc.)
IF110
14
Fonctionnement d’un ordinateur
 Mémoire : tableau d’octets, indexé à partir de 0
Adresse
0
…
Adresse
18
13
Adresse
MAX-1
…
 Processeur : possède des variables internes appelées
registres
 PC (Program Counter) : adresse de l’instruction suivante
Si PC == 18, alors l’instruction suivante à exécuter est l’instruction 13
 Autres : registres sur lesquels le processeur effectue les calculs
IF110
15
Fonctionnement d’un ordinateur
 À chaque cycle d’horloge, le processeur :
 Charge l’instruction à l’adresse PC à partir de la mémoire
 Place le PC sur l’instruction qui suit
 Sélectionne le circuit à activer en fonction du numéro
d’instruction
 Exécute l’instruction
 Quelques exemples d’instructions
 0x10 0x4000 ⇒ charge l’octet à l’adresse 0x4000 dans le registre
nommé R0 (lit une variable)
 0x12 0x89 ⇒ ajoute 0x89 à PC (saut)
 0x14 0x20 ⇒ ajoute 0x20 au registre R0 (calcul)
 0x17 0x70 0x12 ⇒ envoie 0x70 au périphérique 0x12
IF110
16
Fonctionnement d’un ordinateur
Et c’est tout!
Un ordinateur ne sait rien faire de mieux que des
calculs
IF110
17
Ce qu’il faut retenir
 Une machine est constituée d’un processeur, d’une
mémoire vive et de périphériques, le tout interconnecté
par un bus
 Un processeur exécute de façon séquentielle des
instructions qui se trouvent en mémoire
 Chaque instruction est identifiée par un numéro, elle
peut
 Effectuer une opération sur des variables internes (registres)
 Lire ou écrire en mémoire ses registres
 Accéder à un périphérique
 Modifier la prochaine instruction à effectuer (saut)
IF110
18
II. Logiciels et programmes
IF110
19
Ordinateur vu par l’utilisateur
 L’utilisateur installe des logiciels
Microsoft office, Chrome, Mario
 Logiciel = ensemble de fichiers
 Fichiers ressources : images, vidéos, musiques…
 Fichiers programmes : fichier contenant des données et
des instructions destinées à être exécutées par un
ordinateur
 In fine, l’utilisateur lance l’exécution de programmes
Excel, Word, Chrome, Mario
IF110
20
Qu’est ce qu’un programme ?
 Programme binaire =
Ensemble d’instructions exécutables par le
processeur + des données manipulées par ces
instructions
 Programme source =
Ensemble d’opérations abstraites décrivant les
actions à effectuer + des données manipulées par
ces opérations
IF110
21
Exécution d’un programme binaire
 Un binaire doit être chargé en mémoire pour être
exécuté (typiquement à partir du disque dur)
Processeur
Mémoire vive
Disque dur
Case 60
Case 64
Fichier "pgm"
Case 68
Case 70
…
0x4883…
1. Demande au disque de copier le fichier
"pgm" à partir de la case 60
Bus de communication
IF110
22
Exécution d’un programme binaire
 Un binaire doit être chargé en mémoire pour être
exécuté
Processeur
Mémoire vive
Case 60
0x4883c02a
Case 64
0x4883f82c
Case 68
0x0f84…
Case 70
…
Disque dur
Fichier "pgm"
0x4883…
2. Copie du contenu du fichier
"pgm" dans la case 60 et les suivantes
Bus de communication
IF110
23
Exécution d’un programme binaire
 Exécution d’un programme à partir de la mémoire
centrale
Processeur
PC vaut 60
Mémoire vive
Case 60
0x4883c02a
Case 64
0x4883f82c
Case 68
0x0f84…
Case 70
…
Disque dur
Fichier "pgm"
0x4883…
3. L’exécution du programme peut alors démarrer
Bus de communication
IF110
24
Exécution d’un programme source
 Solution 1 : après une traduction vers un
programme binaire
Prog source
Declare x = 0
Ajoute 42 à x
Traduit
Prog binaire
0x4883c02a 0x4883f82c
0x0f84…
En informatique le traducteur s’appelle un compilateur
IF110
25
Exécution d’un programme source
 Solution 2 : en le faisant interpréter par un autre
programme (appelé interpréteur)
Prog source
declare x = 0
ajoute 42 à x
IF110
Lit et
interprète
Interpréteur
1.
2.
Lit programme source
Pour chaque opération
Si declare …
Si ajoute …
Si soustrait …
26
Quelques exemples de programmes
 Word, Excel ou Chrome sont des programmes binaires
 En général, dans un logiciel de jeux
 Le jeu lui-même est un programme binaire
 Capable d’interpréter les mods qui, eux, sont directement des
programmes sources (mod = extension du jeu)
 Les applications Android sont
 Interprétées avant Android KitKat (version 4.4)
 Compilées dès qu’elles sont installées depuis Android KitKat
 Les pages Web dynamiques sont interprétées
IF110
27
Processus et système
IF110
28
Du programme au processus
 Un processus est un programme en cours
d’exécution
 Contient bien sûr les opérations du programme
 Mais aussi son état à un instant donné
» Données en mémoire manipulées par le programme
» Valeurs des registres du processeur
» État des périphériques (fichiers ouverts, connexions réseaux…)
IF110
29
Gestion des processus
 Le système d’exploitation est un logiciel particulier
qui gère les processus
(Le système est le seul programme qu’on n’appelle pas
processus quand il s’exécute)
 Rôle du système d’exploitation
 Démarrer des processus
(en chargeant le programme binaire ou l’interpréteur adéquat)
 Arrêter des processus
 Offrir une vision de haut niveau du matériel aux processus
 Offrir des mécanismes de communication inter-processus
(IPC)
IF110
30
Architecture globale à l’exécution
Utilisateur
Utilisateurs
processus
processus
Application
processus
processus
Système d’exploitaion
processus
Processus
Abstractions
• Processus
• Matériel
Ordinateur
Composants
• Processeur
• Disque
IF110
31
Naissance des premiers systèmes UNIX
 1969 : première version d’UNIX en assembleur
 1970 : le nom UNIX est créé
 1971 : invention du langage de programmation C
pour réécrire UNIX dans un langage de haut niveau
 1991 : première version de Linux
IF110
32
Objectif du module
 Étude des systèmes Unix par l’exemple
 À l’aide du langage bash
 Langage interprété par le programme bash
 Langage spécialisé dans la gestion de processus
 Comprendre
 La notion de fichier
 La notion de processus
 Quelques mécanismes de communication inter-processus
IF110
33
Notions clés du cours
 Un ordinateur
 Est composé de : mémoire, processeur, périphérique et bus
 Un processeur exécute des instructions se trouvant en mémoire
 Un logiciel contient des fichiers
 Ressources (images, sons, textures…)
 Programmes (source et/ou binaire)
 Un programme est une suite d’opérations + des données
 Un processus est un programme en cours d’exécution
 Opérations + état à un instant donné
 Le système gère les processus et abstrait le matériel
IF110
34
Annexe : représentation des données
Remarque : les trois diapositives qui suivent sont
indispensables pour avoir un minimum de culture
en informatique
IF110
35
Représentation des entiers
 Les octets sont regroupés pour former
des valeurs entières
(souvent par 1, 2, 4 ou 8 octets)
 Peut être vu comme un naturel (dans N)
0xe159 = 14*163 + 1*162 + 5*16 + 9
⇒ 0x159 représente 57689
IF110
Le nombre
0xe159
0xe1
0x59
0x61
0xf0
36
Représentation des valeurs de vérités
 Booléen : valeur pouvant valoir vrai ou faux
Une valeur vraie
 Peut être stocké sur 1 bit, 1 octet,
2 octets, 4 octets, 8 octets…
 Convention :
…
 0 vaut faux
 Toute autre valeur vaut vrai
0xe1
0x59
0x61
0xf0
0xc3
IF110
37
Représentation des caractères
 Un octet peut être vu comme un caractère
Ceci est un ‘a’
 Table ascii
↵
0x41
A
0x61
a
0x20
‘‘
0x42
B
0x62
b
…
…
0x43
C
0x63
c
0x30
0
0x44
D
0x64
d
0x31
1
0x45
E
0x32
2
0x46
F
0x66
f
0x33
3
0x47
G
0x67
g
…
…
…
…
…
…
e
…
IF110
0x1f
0xe1
0x59
0x61
0xf0
0xc3
38
Téléchargement