Vous êtes sur la page 1sur 60

Systèmes d’Exploitation : Concepts & Applications

Introduction aux Systèmes d’Exploitation

Définition , Evolution , mécanismes de base

Niveau 1
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

2
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

3
Notion de SE
• OS: Operating System (en anglais)
• Pas de définition standard
• Interface entre l’utilisateur et la machine

• Dépend du point de vue


 Machine (ressources physiques) Utilisateurs/Applications
2
 Utilisateur (exploitation) OS
• Structure d’un OS = {logiciels} 1
Matériel
 Logiciels de base
 Noyau (Kernel) Système Informatique
 Indispensable
 Ensemble minimal
 Logiciels d’Application
 Font partie d’un OS et pas du noyau
 Non indispensables

4
Notion de SE

Définitions
• Point de vue matériel
Matériel = machine physique
{composantes physiques et logiques}
 Composantes physiques : processeur, écran, …
 Composantes logiques : fichiers
 Ressources

Un OS est un gestionnaires de ressources


 Fonction : gestion de composants
 Composants : {gestionnaires}
 Objectif : rentabiliser l’utilisation des ressources

5
Notion de SE

Définitions
• Point de vue utilisateur/Applications
Utilisateur = personne humaine / Application= {programmes}
 OS = machine virtuelle
 Copie de la machine physique
 Simple à utiliser par rapport à la machine physique
(ERGONOMIE)

Cacher la complexité de la machine physique


 Fonction : exploitation
 Composants : {interfaces}
 Objectif : la simplicité

6
Notion de SE

Exemples de SE
• Systèmes pour ordinateurs personnels
Windows, Linux, MacOSX…
• Systèmes mainframes (grands systèmes)
Multics, IBM MVS, BS2000…
• Systèmes pour smartphones
Android, iOS, Backberry OS, Windows Phone, Bada…
• Systèmes pour TV
Android TV, Tizen, tvOS, Firefox OS…
• Et bien d’autres…

7
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

8
Evolution des SE
Historique

1ère Génération 2ème Génération 3ème Génération 4ème Génération


1938 - 1955 1955 - 1965 1965 - 1980 1980 – Auj.

9
Evolution des SE
Historique

1ère Génération
1938 - 1955

• Première génération (1938 – 1955)


 Tubes à vide et tableaux d’interrupteurs
 Machines énormes remplissant des pièces entières
 La même équipe concevait, construisait, programmait, administrait
et maintenait la machine
 Tout programme était conçu en langage machine (pas de langage abstrait)
 Le programme est conçu en basculant des tableaux d’interrupteurs pour
contrôler les fonctions de base de la machine
 Simples calculs numériques
 Pas de système d’exploitation!

10
Evolution des SE
Historique

1ère Génération 2ème Génération


1938 - 1955 1955 - 1965

• Deuxième génération (1955-1965)


 Transistors et systèmes par lots
 Séparation nette entre concepteurs, constructeurs, programmeurs,
opérateurs et personnel de maintenance
 Programmes écrits en FORTRAN puis codés sur des cartes perforées
 Opérateur humain traite séquentiellement un job et gère la soumission
des entrées (lecture des cartes perforées) et sorties (sur imprimante)
 Calculs scientifiques et d’ingénierie,
 résolution d’équations aux dérivées partielles
 Systèmes d’exploitation
 FMS: Fortran Monitor System
 IBYS (IBM)
11
Evolution des SE
Historique

1ère Génération 2ème Génération 3ème Génération


1938 - 1955 1955 - 1965 1965 - 1980

• Troisième génération (1965 – 1980)


 Circuits intégrés
 Une seule gamme de produits
 Début 60, des machines pour E/S (IBM 1401) d’autres pour le calcul (IBM
7094)
 Puis des machines avec la même archi. Matérielle et même jeux
d’instructions
 Multiprogrammation
 Plusieurs programmes peuvent tourner en parallèle sur une même machine
 Mémoire partagée
 Mécanismes de protection
 Spool (Simultaneous Peripheral Operation On Line)
 Systèmes d’exploitation: MULTICS, DEC PDP, UNIX
12
Evolution des SE
Historique

1ère Génération 2ème Génération 3ème Génération 4ème Génération


1938 - 1955 1955 - 1965 1965 - 1980 1980 – Auj.

• Quatrième génération (1980 – Aujourd’hui)


 Ordinateurs personnels
 Circuits intégrés à haute densité
 Puces contenant des milliers de transistors sur 1mm2 de silicium
 Micro-ordinateurs, très peu onéreux comparés aux mini-ordinateurs
de type PDP-11
 Systèmes d’Exploitation
 CP/M, MS-DOS, MAC OS X, Windows, UNIX, Linux…

13
Evolution des SE
Historique

• Cinquième génération (Aujourd’hui – Futur)


 En développement

 Ordinateurs basés sur l’intelligence artificielle

 Objectifs:
Développer l’appareil qui pourra répondre
correctement au langage naturel et capable
d’apprendre et s’organiser lui-même

 Utilisation du calcul quantique et des


technologies moléculaires et nano

14
Evolution des SE
Historique
• Plusieurs périodes
• Evolution technologique
• Evolution conceptuelle

 Types de SE
• Systèmes Batch
• Systèmes Multiprogrammés
• Systèmes Temps-partagé
• Ordinateurs Personnels (PC)
• Systèmes Réseaux
• Systèmes Parallèles
• Systèmes Répartis (Distribués)
• Grilles de calcul et de données
• Cloud Computing

15
Evolution des SE
Types de SE (1) : Systèmes Batch
• Batch Processing = Traitement par Lots
• Caractéristiques
 Début des véritables OS (50)
 Soumission de Job’s (User)
 Soumission de lots de Job’s (Opérateur)
 Exécution Job/Job (Moniteur)
 Moniteur résident en MC
 Un seul Job à la fois
• Fondements
 Premiers concepts des OS / Repris par tous les systèmes
 Evolution
 Avancées technologiques
 Techniques de développement

16
Evolution des SE
Types de SE (1) : Systèmes Batch

Bandes magnétiques
Disques

Lecteur de
cartes
Console opérateur

17
Evolution des SE
Types de SE (1) : Systèmes Batch

18
Evolution des SE
Types de SE (1) : Systèmes Batch
• Concept Moniteur
 Lecture des Job’s (Suite de cartes perforées)
 Interprétation des cartes
 Début, Fin de Job
 Données, Instructions
 Chargement en MC
 Donne le contrôle à un Job
• Exécution jusqu’à
 Fin du Job courant
 Déclenchement E/S
 Erreur
• Moniteur reprend le contrôle
 Le donne au même Job (fin d’E/S)
 Ou Job suivant (Exécution séquentielle de Job’s)
19
Evolution des SE
Types de SE (1) : Systèmes Batch
• Propriétés exigées
 Protection mémoire : Jobs ne doivent pas accéder au moniteur
 Gestion du temps
 Eviter qu’un Job utilise le temps indéfiniment (Boucle infinie)
 L’arrêter (interrompre) en cas de besoin
• Exécution des instructions : deux classes d’instructions machine (Modes)
 Celles exécutées uniquement par le moniteur
 Instructions Privilégiées
 Mode Moniteur
 Celles exécutées par les Jobs utilisateurs
 Instructions non privilégiées
 Mode User (utilisateur)
 Passage d’un mode à un autre (Règles)

20
Evolution des SE
Types de SE (2) : Systèmes Multiprogrammés
• Caractéristiques
 Défaut des systèmes batch : Très mauvaise utilisation des ressources
■ Job/Job
■ Ralentissement dû aux E/S
 Evolutions technologiques
 Utilisation de disques (vs bandes)
■ Grandes capacités
■ Accès direct aux données (non séquentiel)
■ Temps d’accès rapide
 Naissance des canaux d’E/S
 Véritables processeurs
 Spécialisés dans les opérations d’E/S
 Evolution des mémoires centrales
 Plus grandes capacités
 Temps d’accès rapide

21
Evolution des SE
Types de SE (2) : Systèmes Multiprogrammés
• Multiprogrammation
 Faire du calcul en même temps que les E/S
 Plusieurs programmes en MC

22
Evolution des SE
Types de SE (2) : Systèmes Multiprogrammés
• Propriétés exigées
 Les mêmes que pour le Batch

 Mais plus importantes


 Protection

■ Système par rapport aux utilisateurs

■ Mais aussi utilisateurs entre eux

 Interruptions

■ Rôle plus important

■ Plusieurs programmes à gérer

23
Evolution des SE
Types de SE (2) : Systèmes Multiprogrammés

• Nouveauté
 Spooling ou Spoule
 Anticipation

 Stocker les Job’s (programmes) sur un support externe


(Disque)

 Les charger en MC pour exécution

■ Quand charger ?

■ Combien faut-il charger ?

■ Quels programmes charger ?

24
Evolution des SE
Types de SE (2) : Systèmes Multiprogrammés
• Principe
 Simultanéité entre calcul et E/S
 Processeur : Calcul

 Canal : E/S

 Pénalise certains programmes


 Petits programmes (peu de calcul)
■ P1 (1h calcul, 2s E/S), P2 (2mn calcul, 1s E/S)
■ Ordre d’exécution: P1 ; P2
■ Temps d’attente de P2 allongé

 Trouver un équilibre

25
Evolution des SE
Types de SE (3) : Systèmes Temps-Partagé

• Systèmes multiprogrammés
 Meilleure exploitation des ressources
 Pas d’interactivité avec les utilisateurs (user passif)
 Soumission, récupération des résultats
 Mauvaise répartition des ressources d’une machine entre utilisateurs
 Exemple: temps
• Idée
 Garder les principes des systèmes multiprogrammés
 Partager équitablement le temps
 Accès simultané et interactif à l’aide de TERMINAUX (user actif)
 Légers : Clavier/Ecran
 Lourds : PC, Stations, …

26
Evolution des SE
Types de SE (3) : Systèmes Temps-Partagé
Terminaux Intelligents

Ordinateur central
Serveur

27
Evolution des SE
Types de SE (3) : Systèmes Temps-Partagé

• Propriétés exigées
 Les mêmes que les systèmes multiprogrammés avec en plus

 Communication entre users

 Gestion de la mémoire plus complexe


■ Introduction du concept de MEMOIRE VIRTUELLE

 Interactivité plus grande


■ User présent de manière permanente
■ Intervention à tout moment (user actif)

 Temps de réponse à l’échelle humaine

28
Evolution des SE
Types de SE (4) : Systèmes Réseaux
• Caractéristiques
 Evolution des technologies de communication
 Evolution des ordinateurs : Plus petits, plus puissants
 Développement de l’Internet
 Notion de machine SERVEUR : Ressources partagées et accessibles
par plusieurs utilisateurs (Clients)
• Idée
 Interconnecter des ordinateurs
 Réseau Local (LAN)
 Réseau Mondial (WAN)
• Propriétés exigées
 Gestion de la communication
 Protocoles de communication : TCP/IP, …
29
Evolution des SE
Types de SE (5) : Systèmes Parallèles & Systèmes Répartis
• Systèmes parallèles
 Ensemble d’éléments de calcul

 Qui peuvent communiquer et coopérer

 Pour résoudre rapidement de grands problèmes

• Systèmes distribués
 Ensemble de processeurs autonomes

 Qui ne se partagent pas de mémoire primaire

 Mais qui coopèrent par envoi de messages à travers un réseau


de communication

30
Evolution des SE
Types de SE (5) : Systèmes Parallèles & Systèmes Répartis

• Pas parallèles, pas distribués


 PCs ou stations de travail (qui ne peuvent pas communiquer)

• Parallèles, pas distribués


 Machines vectorielles
 Machines multiprocesseurs à mémoire partagée (SMP)

• Distribués, pas parallèles


 Réseau de stations large distance (communications trop lentes)

• Parallèles et distribués
 Réseau de stations de travail connectées à un réseau
local/spécialisé

31
Evolution des SE
Types de SE (6) : Grilles de calcul
• Caractéristiques

 Relier des machines à l’échelle planétaire

 Connexion à travers Internet

 Super machine virtuelle

 Mise en commun des ressources

 Types

 Grilles de calcul (Grid Computing)

 Grilles de données (Data Grid)

32
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

33
Architecture Matérielle
Ordinateur

• Un ordinateur est une machine électronique qui permet


l’exécution des programmes
• Un programme est un ensemble d’instructions qui seront
traduites en signaux électroniques
• La sortie de ces programmes est convertie à nouveau pour
que l’utilisateur puisse la comprendre

34
Architecture Matérielle

35
Architecture Matérielle
Composants d’un ordinateur
• Processeur
 Responsable de l’interprétation des instructions et du calcul

• Carte Mère
 Relie les différents composants d’un ordinateur via un bus
 Responsable de contrôler l’accès aux différents types
d’entrées/sorties

• Mémoire Vive
 Mémoire auxiliaire permettant de sauvegarder temporairement
les données en vue de travailler avec plusieurs ressources
 Appelée la RAM (Random Access Memory)
 Mémoire volatile : elle ne garde les données que si elle est
alimentée électriquement

36
Architecture Matérielle
Composants d’un ordinateur
• Mémoires de Masse
 Permettent de sauvegarder les données de manière persistante
 Ex: Disque dur, Clé USB, CD-ROM…
 Plus lentes que la mémoire vive
• Périphériques
 Composants permettant à l’ordinateur de communiquer avec
l’extérieur (utilisateur ou autre ordinateur)
 Périphériques d’entrée: Clavier, carte réseau, mémoire de masse, etc.
 Périphériques de sortie: Écran, carte réseau, mémoire de masse, etc.
• Logiciels
 Programmes systèmes : gère le fonctionnement de l’ordinateur
 Programmes d’application : exécute le travail demandé par les
utilisateurs

37
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

38
Programmation
Langages
• Supports de programmation
• Hiérarchie de langages
 Langage machine (Intel, Motorola, …)
 Langage Assembleur (Intel, Motorola, …)
 Langages évolués
 Fonctionnels, Procéduraux, Objets, Agents
 Parallèles, Distribués, Scripts, …
 Langages spécifiques
 Temps-réel, Mobiles, …

Environnements de programmation
• Ensemble d’outils graphiques : Développer, Compiler, Exécuter, …
• Exemples : VB, Visual J++, JBuilder, Eclipse, …

39
Programmation

40
Programmation
Etapes de mise en œuvre d’un programme
• Edition
 Ecriture du programme (éditeur+fichier)
 Programme source
• Compilation (interprétation)
 Analyse syntaxique du programme source : Détection d’erreurs syntaxiques
 Analyse sémantique
 Programme objet ou exécutable
• Edition de liens
 Résolution de références
 Liens entre programmes compilés séparément
• Chargement + Exécution
 Détermination de l’adresse de chargement
 Chargement du code exécutable en MC
 Exécution

41
Plan du Chapitre

1 Notion de SE

2 Evolution des SE

3 Architecture Matérielle

4 Programmation

5 Mécanismes de base

42
Mécanismes de base
Contexte d’exécution
• Exécution d’instructions
 Réalisée par le processeur
 Chargées à partir de la MC (1/1)
 Exécution d’une seule instruction à la fois
 Exécution séquentielle
• Contexte
 Etat avant exécution : Contexte d’entrée (E)
 Etat en cours d’exécution
 Etat après exécution : Contexte de sortie (S)

E S
Instk

43
Mécanismes de base
Contexte d’exécution
• Contexte d’entrée (E)
 Etat du processeur
 Valeurs des registres du processeur
 Etat de la mémoire centrale
 Valeurs des mots mémoire
 Etat des canaux
 Etats des canaux et des périphériques
• Contexte de sortie (S)
 Etat (processeur, mémoire centrale, canaux) après
exécution
 S ≠ E ( TOUJOURS !!! )

44
Mécanismes de base
Contexte d’exécution
• Caractéristique
 Peut être sauvegardé
 Arrêt et reprise du programme en cours
d’exécution
• Moments de sauvegarde
 Instant où le contexte a une valeur bien définie
 Entre la fin d’une instruction et le début de la
suivante
 Possibilité d’arrêter l’exécution du programme
en cours pour la reprendre par la suite
 Sauvegarder et Restaurer le contexte

POINT INTERRUPTIBLE

45
Mécanismes de base

Point Interruptible

Inst. i-1 Inst. i Inst. i+1

Points Interruptibles

46
Mécanismes de base
Interruptions
• Signal technologique destiné au processeur
• Buts
 Arrêter l’activité en cours
 Arrêt du programme en cours d’exécution
 Exécuter un autre programme (système)
 Revenir éventuellement au programme interrompu

 Signal, Avertissement : Avertir le processeur de l’arrivée d’un événement


 Fin d’impression
 Touche clavier (Pause, ALT+F5, …)
 Clé USB verrouillée
 Batterie vide
 …

47
Mécanismes de base
Interruptions
• Causes
 Externes au programme en cours : INTERRUPTION
 Exemples: Touches du clavier (Pause, CTRL+ALT+DEL)
 Internes au programme en cours : DEROUTEMENT (TRAP)
 Instruction en cours (Exemple: Division par 0)

• Caractéristique fondamentale
 Evénement asynchrone :Imprévisible (temps & nombre)

• Instants
 Arrivée : N’importe quel moment (Avant/Durant/Après l’exécution
d’une instruction
 Prise en compte : Commutation automatique (Point Interruptible)

48
Mécanismes de base
Interruptions P : Programme en
cours d’exécution
Programme Q
Traitement de l’interruption

Interruption
Sauvegarde du contexte de P
Commutation de contexte
Chargement du contexte de Q

Traitement de l’interruption

Restauration (éventuelle)
du contexte de P

Commutation de contexte

Reprise de l’exécution du
programme P

49
Mécanismes de base
Exécution d’instructions

• Principe
 UC ramène une instruction de la MC (CO)
 CO = CO+1

50
Mécanismes de base
Exécution d’instructions avec ITs
• Principe

 SI ITs démasquées, l’UC vérifie s’il y a des ITs en

attente de traitement

 Si aucune IT, exécuter instruction suivante

 Si oui

 Interruption du programme en cours

 Exécution du programme d’IT

 Retour (éventuel) vers le programme interrompu

51
Mécanismes de base
Exécution d’instructions avec IT

52
Mécanismes de base
Adressage

• Utilité
 Définir l’adresse (emplacement) d’une information en MC

 Instruction

 Données

• Plusieurs formes
 Immédiat, Direct, Indirect

 Relatif, Basé, Indexé

 Combinaisons

53
Mécanismes de base
Adressage

Immédiat Indirect
 Opérande : donnée elle-même
 Opérande : Adresse d’un mot
 LOAD 5 contenant l’adresse de la
 ADD -1 donnée (symbole *)
 LOAD *X’12A9’
Direct  SUB *X’1011’

 Opérande  Plusieurs niveaux d’indirection


 Adresse mémoire où
se trouve la donnée
 LOAD X’12A9’
 SUB X’1011’

54
Mécanismes de base
Adressage

Basé
 Adressage plus flexible
 Adresse
Relatif
 Base +/- Déplacement
 Idem que basé
 Utilise un registre
Indexé
 Utilise un registre d’index
 Index
 Déplacement par
rapport à un début

55
Mécanismes de base
Virtualisation

• Constat
 Système lié à l’architecture : Accès aux ressources physiques

 Problème
 Machine i Système i
 Peut-on définir un OS pour tout type de machine ?

• Solution
 Approche logicielle
 Programme crée une couche qui offre plusieurs machines
physiques virtuelles
 Faire fonctionner un OS sur chacune de ces machines

56
Mécanismes de base
Virtualisation
• Principe
 Ressource Virtuelle

 Tout ce qui n’est pas physique

 A priori aucune contrainte

 Machine virtuelle (MV)

 Créée par couche(s) logicielle(s)

 Mêmes potentialités que la physique (MP) :

Mêmes ressources, même jeu d’instructions, …

 Plusieurs MV sur la même MP

57
Mécanismes de base
Virtualisation

58
Mécanismes de base
Mode du processeur
• Le processeur a plusieurs modes d’exécution, au moins un mode
superviseur et un mode utilisateur

• Mode superviseur/noyau
 Mode propre au système d’exploitation, pour réaliser des opérations
critiques, appelées instructions privilégiées
 Le code en mode noyau a un accès total à la machine (mémoire,
instructions, périphériques)

• Mode utilisateur/usager
 Mode d’exécution des programmes ou applications utilisateur
 Mode non privilégié (Esclave, Slave, Utilisateur, User, Programme)
 Le code en mode utilisateur n’a qu’un accès limité à la mémoire et ne
peut pas exécuter certaines instructions dangereuses

59
Mécanismes de base
Appel Système
 Quand un processus usager a besoin d’un service du SE, par ex. E/S, il
exécute un appel du système
 C’est une instruction (Supervisor Call) qui cause une interruption (trap)
et changement de mode (mode superviseur)
 Est associée à des paramètres qui indiquent le type de service désiré
 Le SE prend la relève et exécute le service, puis il retourne au
processus appelant avec des params qui indiquent le type de résultat
 Changement de mode (mode usager)

Interrupt/Fault

Superviseur Utilisateur

set user mode

60