Système d’exploitation
Introduction
Thomas Lavergne
lavergne@[Link]
1
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
• On lui donne des instructions
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
• On lui donne des instructions
• On lui donne des données
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
• On lui donne des instructions
• On lui donne des données
• Il transforme les données
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
• On lui donne des instructions
• On lui donne des données
• Il transforme les données
Une calculatrice est-elle un ordinateur ?
2
Fonctionnement d’un ordinateur
Qu’est-ce que l’informatique ?
La science du traitement automatique de l’informa-
tion.
Qu’est-ce qu’un ordinateur ?
Une machine pour traiter de l’information :
• On lui donne des instructions
• On lui donne des données
• Il transforme les données
Une calculatrice est-elle un ordinateur ?
Non: notion de programme !
2
Fonctionnement d’un ordinateur
Composition:
Un processeur
UC
3
Fonctionnement d’un ordinateur
Composition:
Un processeur, de la mémoire
Mémoire
UC
3
Fonctionnement d’un ordinateur
Composition:
Un processeur, de la mémoire, des périphériques
Mémoire
UC
CG USB SATA ···
3
Fonctionnement d’un ordinateur
Composition:
Un processeur, de la mémoire, des périphériques et
un bus
Mémoire
UC
CG USB SATA ···
bus
3
Fonctionnement d’un ordinateur
Composition:
Un processeur, de la mémoire, des périphériques et
un bus pour tout connecter.
Mémoire
UC
CG USB SATA ···
bus
3
Fonctionnement d’un ordinateur
Juste des fils qu’on allume et éteint. . .
Mémoire
UC
CG USB SATA ···
bus
4
Fonctionnement d’un ordinateur
Juste des fils qu’on allume et éteint. . .
Mémoire
UC
CG USB SATA ···
bus
Charger des données depuis le disque :
Envoie d’une commande de chargement au disque
4
Fonctionnement d’un ordinateur
Juste des fils qu’on allume et éteint. . .
Mémoire
UC
CG USB SATA ···
bus
Charger des données depuis le disque :
Transfert du disque vers la mémoire
4
Fonctionnement d’un ordinateur
Juste des fils qu’on allume et éteint. . .
Mémoire
UC
CG USB SATA ···
bus
Charger des données depuis le disque :
Utilisation des données par le processeur
4
Système d’exploitation
Juste des fils qu’on allume et éteint. . .
Il y a bien longtemps. . .
Un opérateur déplaçait des interrupteurs pour ouvrir
et fermer les accès au bus.
5
Système d’exploitation
Juste des fils qu’on allume et éteint. . .
Il y a bien longtemps. . .
Un opérateur déplaçait des interrupteurs pour ouvrir
et fermer les accès au bus.
Peut-on automatiser ces opérations ?
5
Système d’exploitation
Juste des fils qu’on allume et éteint. . .
Il y a bien longtemps. . .
Un opérateur déplaçait des interrupteurs pour ouvrir
et fermer les accès au bus.
Peut-on automatiser ces opérations ?
Système d’exploitation
Un programme qui :
• Décide qui fait quoi à quel moment
• Fait le lien entre applications et materiel
5
Un peu d’histoire
6
1950 : Traîtement par lots
Problème
• Données et programmes → Cartes perforées
• Beaucoup de manipulations par un opérateur
7
1950 : Traîtement par lots
Problème
• Données et programmes → Cartes perforées
• Beaucoup de manipulations par un opérateur
Carte de traîtement
• Ajout de cartes remplacement les manipulations
◦ Lectures ou écritures
◦ Connection au bus
◦ ...
7
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
8
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
On demande le chargement de données du disque
8
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
Pendant la préparation on lit depuis la RAM
8
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
Pendant la lecture l’UC calcule
8
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
À la fin du calcul, on met en pause pour l’affichage
8
1960 : Multiprogrammation
Problème
• Un seul composant utilisé à la fois
• Comment mieux exploiter les ressources ?
Mémoire
UC
CG USB SATA ···
bus
Puis on reprend
8
1970 : Temps partagé
Problème
• Certains processus processus attendent...
• Certains processus sont simplement très long...
Mémoire
UC
CG USB SATA ···
bus
9
1970 : Temps partagé
Problème
• Certains processus processus attendent...
• Certains processus sont simplement très long...
Mémoire
UC
CG USB SATA ···
bus
Le processus 1 travaille
9
1970 : Temps partagé
Problème
• Certains processus processus attendent...
• Certains processus sont simplement très long...
Mémoire
UC
CG USB SATA ···
bus
L’OS reprend la main
9
1970 : Temps partagé
Problème
• Certains processus processus attendent...
• Certains processus sont simplement très long...
Mémoire
UC
CG USB SATA ···
bus
Pour la donner au processus 2
9
Rôle de l’OS
10
Rôle de l’OS
Décide qui fait quoi à quel moment
Répartit les ressources de manière équitable entre les
processus.
11
Rôle de l’OS
Décide qui fait quoi à quel moment
Répartit les ressources de manière équitable entre les
processus.
Fait le lien entre application et materiel
Permet aux processus d’accéder aux péripheriques et
à ceux-ci d’informer les processus.
11
Rôle de l’OS
Décide qui fait quoi à quel moment
Répartit les ressources de manière équitable entre les
processus.
Fait le lien entre application et materiel
Permet aux processus d’accéder aux péripheriques et
à ceux-ci d’informer les processus.
Isole les processus les un des autres
S’assure qu’un processus ne peut accéder aux don-
nées des autres processus qui s’exécutent en même
temps.
11
Isolation des processus
Comment isoler les processus ?
Les processus sont exécutés avec des droits réduits
dans un mode particulier du processeur.
12
Isolation des processus
Comment isoler les processus ?
Les processus sont exécutés avec des droits réduits
dans un mode particulier du processeur.
L’OS s’exécute en mode superviseur.
12
Isolation des processus
Comment isoler les processus ?
Les processus sont exécutés avec des droits réduits
dans un mode particulier du processeur.
L’OS s’exécute en mode superviseur.
Mode superviseur
Mode du processeur où les opérations ne sont pas
contrôlées :
• accès direct au bus système ;
• accès complet à la mémoire ;
• ...
12
Problèmes
Communication materiel / OS
Communication OS / logiciel
13
Problèmes
Communication materiel / OS
• Comment indiquer au materiel ce qu’il faut faire ?
Communication OS / logiciel
13
Problèmes
Communication materiel / OS
• Comment indiquer au materiel ce qu’il faut faire ?
• Comment le materiel prévient-il l’OS lorsqu’il est
prêt ?
Communication OS / logiciel
13
Problèmes
Communication materiel / OS
• Comment indiquer au materiel ce qu’il faut faire ?
• Comment le materiel prévient-il l’OS lorsqu’il est
prêt ?
Communication OS / logiciel
• Comment indiquer à un processus qu’un éven-
nement ce produit ?
13
Problèmes
Communication materiel / OS
• Comment indiquer au materiel ce qu’il faut faire ?
• Comment le materiel prévient-il l’OS lorsqu’il est
prêt ?
Communication OS / logiciel
• Comment indiquer à un processus qu’un éven-
nement ce produit ?
• Comment soumettre une requête à l’OS ?
13
Bus système
14
Comunication OS ↔ materiel
Le bus permet la comunication avec le système
bus
15
Comunication OS ↔ materiel
Le bus permet la comunication avec le système
bus
Comment communiquer sans problèmes
• À qui sont adressés les messages ?
• Le destinataire est-il prêt à écouter ?
15
Comunication OS ↔ materiel
Le bus permet la comunication avec le système
bus
Comment communiquer sans problèmes
• À qui sont adressés les messages ?
→ Fils d’adresses
• Le destinataire est-il prêt à écouter ?
15
Comunication OS ↔ materiel
Le bus permet la comunication avec le système
bus
Comment communiquer sans problèmes
• À qui sont adressés les messages ?
→ Fils d’adresses
• Le destinataire est-il prêt à écouter ?
→ Protocole poignée de main
15
Composition du bus
Mémoire
UC
CG USB SATA ···
bus d’adresse
bus de données
bus de contrôle
Bus d’adresse
Indique avec qui l’on souhaite communiquer.
16
Composition du bus
Mémoire
UC
CG USB SATA ···
bus d’adresse
bus de données
bus de contrôle
Bus de contrôle
Coordonne la communication.
16
Composition du bus
Mémoire
UC
CG USB SATA ···
bus d’adresse
bus de données
bus de contrôle
Bus de données
Permet le transfert des informations.
16
Protocole poignée de main
Côté périphérique
• Communication gérée par un contrôleur
• Deux bits de contrôle : occupé et commande
Coté OS :
17
Protocole poignée de main
Côté périphérique
• Communication gérée par un contrôleur
• Deux bits de contrôle : occupé et commande
Coté OS :
tant que occupé == 1
attendre
17
Protocole poignée de main
Côté périphérique
• Communication gérée par un contrôleur
• Deux bits de contrôle : occupé et commande
Coté OS :
tant que occupé == 1
attendre
commande = 1
17
Protocole poignée de main
Côté périphérique
• Communication gérée par un contrôleur
• Deux bits de contrôle : occupé et commande
Coté OS :
tant que occupé == 1
attendre
commande = 1
tant que occupé == 0
attendre
17
Protocole poignée de main
Côté périphérique
• Communication gérée par un contrôleur
• Deux bits de contrôle : occupé et commande
Coté OS :
tant que occupé == 1
attendre
commande = 1
tant que occupé == 0
attendre
transfert
17
Interruptions
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
L’OS à rarement la main, l’UC exécute les processus
le plus souvent.
18
Interruptions
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
L’OS à rarement la main, l’UC exécute les processus
le plus souvent.
Notion d’interruption (IRQ)
18
Interruptions
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
L’OS à rarement la main, l’UC exécute les processus
le plus souvent.
Notion d’interruption (IRQ)
Principe
• Code envoyé sur le bus pour prévenir l’UC
• L’UC interrompt le processus courant
• Puis donne la main à l’OS
18
Interruptions
Au démarrage :
Configuration par l’OS des routines d’interruptions.
19
Interruptions
Au démarrage :
Configuration par l’OS des routines d’interruptions.
Traitement par l’UC
• Réception d’un code d’interruption
• Mise en pause du processus courant
◦ Sauvegarde du pointeur de code
◦ Sauvegarde des registres
• Passage en mode superviseur
• Appel de la routine d’interruption
19
Interruptions
Au démarrage :
Configuration par l’OS des routines d’interruptions.
Traitement par l’UC
• Réception d’un code d’interruption
• Mise en pause du processus courant
◦ Sauvegarde du pointeur de code
◦ Sauvegarde des registres
• Passage en mode superviseur
• Appel de la routine d’interruption
Exemples :
Fin d’E/S, touches clavier, paquet réseau...
19
Interface logicielle
20
Appels système
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
Les applications sont isolées de l’OS par sécuritée.
21
Appels système
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
Les applications sont isolées de l’OS par sécuritée.
Notion d’exception
21
Appels système
Comment prévenir l’OS que l’on a besoin de lui ?
Problème
Les applications sont isolées de l’OS par sécuritée.
Notion d’exception
Principe
• Interruption déclenchée par le logiciel
• Passage de commande et de paramètres
• Similaire à un appel de fonction
21
Appels système
Définition
Ensemble des commandes offerte par le système aux
applications.
22
Appels système
Définition
Ensemble des commandes offerte par le système aux
applications.
Exemples
• Contrôle de processus Création et terminaison...
• Gestion de la mémoire Allocation , libération...
• Gestion des fichiers Création, accès, droits...
• Informations système Date, heure...
• ...
22
Signaux
Comment l’OS peut-il informer les applications ?
Problème
L’OS peut avoir besoin d’une réponse rapide à n’im-
porte quel moment.
23
Signaux
Comment l’OS peut-il informer les applications ?
Problème
L’OS peut avoir besoin d’une réponse rapide à n’im-
porte quel moment.
Notion de signal
23
Signaux
Comment l’OS peut-il informer les applications ?
Problème
L’OS peut avoir besoin d’une réponse rapide à n’im-
porte quel moment.
Notion de signal
Principe
• Définition de fonctions de réaction
• Interruption du processus et appel des fonctions
23
Signaux
Comment l’OS peut-il informer les applications ?
Problème
L’OS peut avoir besoin d’une réponse rapide à n’im-
porte quel moment.
Notion de signal
Principe
• Définition de fonctions de réaction
• Interruption du processus et appel des fonctions
• Très limité en pratique
23
Signaux
Gestionnaire de signaux :
void fonction(int sig);
24
Signaux
Gestionnaire de signaux :
void fonction(int sig);
Enregistrement :
signal(SIGINT, fonction);
24
Signaux
Gestionnaire de signaux :
void fonction(int sig);
Enregistrement :
signal(SIGINT, fonction);
Exemples
• SIGINT : Arrêt demandé via Ctrl-C
• SIGFPE : Erreur de calcul (division par zéro...)
• SIGSEGV : Accès mémoire invalide
• ...
24
Conclusion
25
Démarrage de l’OS
Démarrage du materiel
• Exécution de code depuis une ROM
• Initialisation des contrôleurs
• Initialisation de la RAM
• Bascule vers l’OS
26
Démarrage de l’OS
Démarrage du materiel
• Exécution de code depuis une ROM
• Initialisation des contrôleurs
• Initialisation de la RAM
• Bascule vers l’OS
Démarrage du système
• Initialisation de la MMU
• Initialisation des interruptions
• Lancement des processus de l’OS
26