Académique Documents
Professionnel Documents
Culture Documents
Système d'exploitation
Introduction aux SEs
1 2
5 6
Services « visibles »
Interface utilisateur
Accès aux périphériques
Gestion des disques
Lancement des programmes
Services « cachés »
Partage du processeur
Partage de la mémoire
Gestion d'événements
Mécanismes de synchronisation entre les programmes
9 10
Un processus:
Une instance de programme en train de s'exécuter
Représenté par un code et des données
11 12
Gestion des processus : défis Gestion de la mémoire
Mémoire persistante
Stockée sur le disque dur Mémoire :
Organisée en fichiers et répertoires: Stocke le code et les données du processus pendant son
Fichier: suite d’octet identifiée par son nom
exécution
Répertoire: permet de classer les fichiers dans une hiérarchie Pas de perte de temps dans le re-calcul des calculs déjà
faits précédemment.
Rôle du SE:
Charger un processus en mémoire
Libérer la mémoire en fin d'exécution d'un processus
Allouer et libérer de la mémoire dynamiquement
demandée par les processus
15 16
Gestion de la mémoire : défis Gestion des fichiers
Fichier
Comment organiser les processus en mémoire ? Unité élémentaire de gestion des ressources.
Utilisé pour le stockage des données sur disque dur
Comment protéger les zones mémoires de et pour la gestion des entrées/sorties.
chaque processus ? Caractéristiques des fichiers: types, droits d'accès,
structure
Comment s'assurer qu'il y a assez de mémoire
Rôle du SE
pour un processus ? Création
Modification: lecture,écriture
Suppression
17 18
19 20
Historique des SEs Historique des SEs
21 22
Réduction du temps grâce au traitement par lots (batch processing): Naissance du système MULTICS (MULTiplexed Information and Computing
Un enchaînement automatique d'une suite de commandes (processus) sur un ordinateur sans Service) pour ordinateur central:
intervention d'un opérateur. Un système d'exploitation en temps partagé
Utilisations principales: le calcul scientifique et l’ingénierie (équations différentielles). Apparition des mini-ordinateurs (DEC PDP1 en 1961, 4K mots de 18 bits, pour
Apparition des langages: un prix de 120 000 $).
FORTRAN (FORmula TRANslator): le plus ancien langages de programmation de haut niveau
K. Thompson écrivit une version simplifiée (mono- utilisateur) de MULTICS ; B.
Assembleur: un langage de bas niveau qui représente le langage machine sous une forme
Kernighan l'appela avec humour UNICS (Uniplexed Information and Computer
lisible par un humain
Service) ; ce nom allait devenir UNIX.
Apparition des systèmes d'exploitation (SE) :
D. Ritchie se joignit a K. Thompson pour réécrire UNIX en langage C ; ce
FMS (Fortran Monitor System)
23 système d'exploitation a été le plus porté sur toutes sortes de machine. 24
IBSYS (IBM 7094)
Historique des SEs Historique des SEs
La 4ème génération (1980 1990): les ordinateurs personnels La 5ème génération (1990- ????): les ordinateurs
Ils sont du au développement des circuits LSI (Large Scale personnels portables et de poche
Integration) contenant des centaines de transistors au cm2.
Miniaturisation des composants
Ils ont la même architecture que les mini-ordinateurs mais leur prix est
beaucoup moins élevé. Processeurs en parallèle
Il existe deux systèmes d'exploitation principaux : Nouvelles structures et représentations des données.
UNIX Très bon marché, ils sont capables de se connecter a des
MSDOS (Microsoft Inc.) : intègre petit a petit des concepts riches d'UNIX et de ordinateurs distants et performants.
MULTICS
29 30
31 32
A couches A noyau
Structuration hiérarchique bien définie L'accès à la mémoire de l'ordinateur et aux ressources du
Une couche ne fait appel qu'au services de la couche directement processeur se font généralement selon deux modes :
inférieure Mode utilisateur (User Mode)
Bonne théorie générale, extensible Mode noyau (Kernel Mode)
Très peu efficace, trop d'intermédiaires:
Le noyau : espace mémoire protégé + ensemble de programmes qui
Pour faire un appel E/S (accès au forment la base minimale du SE
33 34
A noyau
SE à micronoyau:
Seulement le strict minimum: ordonnanceur + transferts de
messages entre les programmes
Système d'exploitation
Les drivers et les applications s'exécutent en mode utilisateur
UNIX
Système client-serveur:
Les fonctionnalités sont fournies par de petits serveurs indépendants
possédant souvent leur propre espace d’adressage à la demande du
client.
35 36
UNIX et Linux Le SGF de UNIX
37 38
39 40
Types de fichiers Accès aux fichiers
Types :
Ordinaires : ASCII ou binaires
Répertoires: contiennent des noms de fichiers et/ou de
catalogues
Spéciaux : associés aux périphériques(disques, imprimantes,..)
41 42
Compte utilisateur
43 44
Commande cd Commande ls
45 46
47 48
Opérations sur les répertoires Opérations sur les fichiers
49 50
51 52
Autres commandes utiles Exercice
● A partir du répertoire « Home », créer l'arborescence ci-dessous
● Accéder au répertoire « Paul »
● Créer un fichier « File1 » dans le répertoire « Paul »
● Renommer le fichier « File1 » en « File2 » et supprimer « «File2»
● Renommez le nom du répertoire « collègues » en « travail »
53 54
Exercice
● Accéder au répertoire « Louise » à partir du répertoire « Home »
● Lister le contenu du répertoire « famille » en utilisant un chemin
relatif et absolu
● Supprimer le répertoire « famille » en une seule commande
Partie II
Gestion des processus
55 56
Interruption Niveaux des interruptions
57 58
pas d’accès à certaines parties du processeur dont l’exécution (le traitement) est effectuée dans l’espace noyau
dont le retour est effectué dans le programme appelant dans l’espace utilisateur
Mode système (mode noyau)
un moyen de communiquer directement avec le noyau de la machine
réservé au système d’exploitation et aux routines d’interruption
aucune restriction: toutes les instructions sont autorisées
61 62
63 64
Processus Processus
Programme (statique)
Les processus, à quoi ça sert ?
Enregistrement d’une suite d’instructions, un
ensemble statique Ça sert à faire plusieurs activités en "même temps".
Entité qui exécute les instructions d’un programme Chaque utilisateur a l'impression d'avoir la machine a lui tout seul
les unes après les autres Problème : Un processeur ne peut exécuter qu'une seule
Il est éphémère instruction a la fois.
Objectif : Partager un (ou plusieurs) processeur entre
différents programmes (les processus).
65 66
init est l’ancêtre de tous les processus. Deux processus peuvent exécuter le même programme,
mais se distinguent par leur contexte
67 68
Processus Unix fork()
69 70
71 72
fork() & execl() Processus & CPU
CPU:
Exec: une famille de primitives permettant le remplacement du processus
courant par un processus construit à partir de l’exécutable spécifié en Ressource qui sert à exécuter le code des processus
paramètre. Il n’y a pas création d’un nouveau processus, mais simplement une
mutation du processus Rôle du CPU:
execl : une primitive de la famille exec dans laquelle le nombre d’arguments du
processus lancé est connu (Ré)Activer un processus
Suspendre un processus
Tuer un processus
Contrôler l'exécution des processus d'une manière
optimale
73 74
élu : en cours d'exécution Au moment où un processus sort de l’état exécution il est nécessaire de
Un processus élu peut être arrêté, sauvegarder les informations dynamiques qui représente son état , qu’il
même s'il peut poursuivre son faudra récupérer quand il retourne à cet état
exécution, si le SE décide d'allouer le
processeur à un autre processus
Il s’agit du contexte d’un processus géré par le SE et stocké dans le
PCB (Process Control Bloc)
Bloqué :
L’ensemble des PCB est stocké dans une table des processus et géré
Il attend un événement extérieur pour
pouvoir continuer (par exemple une par le SE:
ressource); lorsque la ressource est 1: Blocage (exp. Attente
d’entrée/sortie) Chaque ligne de la table comporte le PBC d’un processus
disponible, il passe à l'état "prêt")
Le PCB est composé par: Consiste à mémoriser le PCB du processus courant et charger le PCB
n°processus (pid) du processus à élire
état du processus Permet au système d'exploitation de remplacer le processus élu par un
compteur d’instructions autre processus éligible
valeurs des registres de l’unité centrale
scheduling de l’UC : priorité du processus et autres paramètres
gestion mémoire : valeurs registres base et limite des adresses
mémoire, tables de pages ou segments
comptabilisation : temps processeur, temps réel utilisés...
état des E/S : liste fichiers ouverts, liste périphériques alloués...
77 78
Quand plusieurs processus sont dans l’état prêt, le système doit choisir lequel
exécuter
Rôle de l’ordonnanceur (scheduler), qui se fonde sur un algorithme
d’ordonnancement.
L’ordonnanceur est à la base de la multiprogrammation: le traitement de plusieurs
processus séquentiels entremêlés
Assignation du processeur à un processus en fonction de certains critères
Exécution du programme de la file dés qu’un emplacement se libère dans la
mémoire de l’ordinateur.
réalisée au niveau le plus bas du système et activée par des interruptions
d'horloge, de disque et de terminaux
Lorsque le système est multiutilisateur, multitâches, multiprocesseurs,
l’algorithme d’ordonnancement peut devenir très complexe.
79 80
Ordonnancement des processus Ordonnancement des processus
Le choix d’un algorithme d’ordonnancement dépend de Deux grandes catégories d’algorithmes d’ordonnancement:
l’utilisation que l’on souhaite faire de la machine et dépend de :
Algorithme préemptif
Equité : chaque processus doit pouvoir disposer de la ressource
processeur Algorithme non- préemptif
Efficacité : l’utilisation du processeur doit être maximale
Temps de réponse : il faut minimiser le temps de réponse pour les
utilisateurs interactifs
Temps d’exécution : il faut minimiser le temps d’exécution pris par
chaque travail exécuté en traitement par lots
Rendement : le nombre de travaux réalisés par unité de temps doit être
maximal.
81 82
83 84
FIFO ou PAPS SJF
85 86
87 88
SRT Tourniquet (Round Robin)
Version préemptive de SJF La liste des processus prêts est mémorisée dans une file du type FIFO
Les processus accèdent au processeur, chacun à leur tour, pour un temps
A chaque arrivée d'un nouveau processus, déterminé à l'avance (le quantum)
l'ordonnanceur compare le temps de traitement Un processus en attente d'une entrée-sortie sera placée dans une file des
bloqués
restant à celui du processus en cours de
traitement
Si temps inférieur, le processus en cours est
préempté
89 90
92
Avant d'accéder au processeur, les processus sont rangés dans les files ● Types de files
correspondant à leur niveau de priorité. Un processus ne peut accéder au
processeur que s'il n'existe plus de processus dans les files de plus haute – Simples
priorité
● Pas de liens entre files
● Problème de famine (Starvation)
– Avec liens
● Définir un critère de passage d’une file à une autre
– Unidirectionnel
– Bidirectionnel
Amélioration du tourniquet simple
Priorité = 1 priorité différente par niveau
91
93
4- Quel est le débit pour les différents cas ? (temps global/ nombre de processus)
94
Application 2 Application 3
Processus Date d'arrivée Cycle Priorité Soient trois processus A, B et C. Le processus A arrive en premier, suivi de B (20
A 0 4 3 msec après), puis C (46 msec après A).
B 1,001 3 4 On suppose que :
C 2,001 3 6 − L'exécution du processus A nécessite 80 msec de temps CPU
D 3,001 5 5 − L'exécution du processus B nécessite d'abord 50 msec de temps CPU
bloquera ensuite durant 20 msec pour une entrée/sortie, puis exigera
finalement 30 msec de temps CPU.
1- Dessiner le schéma illustrant l'exécution des processus selon les algorithmes
− L'exécution du processus C nécessite 40 msec de temps CPU.
(Nombre de priorité élevé correspond à une priorité plus importante)
a) Préemptif − Le temps de commutation (changement de contexte) est de 1 msec.
b) Non Préemptif Pour Tourniquet avec quantum de 30 msec, calculer :
− Le temps de séjour de chaque processus
2- Quel est le temps de séjour (rotation) pour chaque processus dans les différents cas ?
(Temps séjour= temps d'achèvement - temps d'arrivée) − Le temps de séjour moyen
97 98
Application 4 Application 4
On considère un système mono-processeur avec l'ensemble des processus suivants : 3. Supposons que le temps de commutation est de 1 unité,
compléter le tableau suivant:
Processus Date Durée Priorité
d'arrivée d'exécution
FIFO SRT Tourniquet
A 0 6 3
Temps de séjour moyen
B 4 7 4
C 8 2 6
D 10 3 5 4. En considérant la priorité des processus et un temps de
E 12 2 1 commutation de 1 unité, dessiner le schéma illustrant l'exécution
1. Dessiner le schéma illustrant l'exécution des processus selon les algorithmes suivants en des processus selon les algorithmes suivants : (A noter qu'un
ignorant la priorité et en supposant un temps de commutation négligeable : nombre élevé correspond à une priorité importante)
FIFO Préemptif
SRT (Short Remaining Time)
Tourniquet (quantum=2) Non préemptif
2. déterminer le temps de séjour de chaque processus et le temps de séjour moyen :
99 100