Qu`est-ce qu`un système d`exploitation

publicité
Qu’est-ce qu’un système
d’exploitation ?
 Ensemble de programmes permettant de faire
“ travailler ” un ordinateur, de le commander
Utilisateur 1
Compilation
Utilisateur 2
Utilisateur 3
assembleur
éditeur
Programmes d’applications
Utilisateur n
gestion BD
Système d’exploitation
Matériel
Un système informatique (vue abstraite)
 Système d’exploitation
+
outils système et services fournis par le constructeur
=
logiciel de base
Point de vue de l ’utilisateur
 L’interpreteur de commande
 les appels systèmes
(primitives système)
Divers systèmes d’exploitation
 Système mono-tâche, mono-utilisateur
(micro-ordinateur)
 Système multi-tâches, multi-utilisateurs
en temps partagé (mini ou gros ordinateurs)
 Parallélisme
(machines multi-processeurs)
 Système distribué
(réseau de machine)
LE SYSTEME :
Un gestionnaire de ressources
 Gestion des processus
 Gestion des fichiers
 sécurité du système
 Gestion des entrées-sorties
 Gestion de la mémoire
Les processus
 La mono et la multiprogrammation
 les problèmes d’ordonnancement
 les problèmes d’interblocage et de synchronisation
Définitions
Un processus
Est l’abstraction d’un programme en cours d’exécution
(entité dynamique)
Un programme
Est une entité statique
(fichier situé sur un disque)
Monoprogrammation
 Les programmes sont exécutés les uns après les autres
Durant les attentes (E/S, …) le processeur est inutilisé
Processus A
Processus B
A en E/S
Perte de temps
Multiprogrammation
 Les programmes sont exécutés “ simultanément ”
Processus A
Processus B
A en E/S
Le processeur est utilisé à 100%
Le partage du temps
La multiprogrammation donne une illusion de parallélisme,
comme le temps partagé donne à chaque utilisateur
l'impression d'être le seul à utiliser la machine.
Dans une machine monoprocesseur, il y a du vrai parallélisme:
certaines entrées-sorties sont réalisées par des processeurs
spécialisés pendant que le processeur central exécute une autre
tâche.
Les machines multiprocesseurs sont appelés machine parallèles et
présentent la véritable notion de processus exécutés en parallèle.
Réalisation de la multiprogrammation
*
Hiérarchie des processus
*
Etats des processus
*
réalisation à l'aide de tables
*
Ordonnancement
Hiérarchie des processus
Dans les systèmes évolués les processus sont
crées et détruits dynamiquement
Unix:
appel de la primitive système "fork"
Les processus forment une arborescence issue du processus
“ 1 ”, le processus “ init ”.
Etats des processus
Un processus peut ne pas être actif pour deux raisons différentes:
- attente de données (exemple progl | prog2)
- attente “ d’unité centrale ” (un autre processus est actif)
Etats des processus
Opérations sur les processus
Un système d'exploitation doit être capable
d'exécuter les opérations suivantes
•
•
•
•
•
•
•
-
la création d'un processus
la destruction d'un processus
la suspension d'un processus
la reprise d1un processus
le changement de priorité d'un processus
le blocage d'un processus
le réveil d'un processus
 Créer un processus nécessite les opérations
suivantes :
• - nommer un processus
• - insérer un processus dans la liste des
processus
• - déterminer la priorité initiale d'un processus
• - allouer les ressources de départ d'un
processus
Réalisation a l ’aide d’une table
La mise en œuvre pratique se fait par
l'intermédiaire de tables
Tables des processus
•
•
•
•
•
•
informations sur l’état du processus
compteur ordinal
pointeur de pile
allocation mémoire
état des fichiers
etc…
Cette table permet de sauvegarder les informations
nécessaires aux changements de contextes
Partage du processeur
2 sortes de
multiprogrammation :
- Préemptive (interruption à temps
fixe)
- Non préemptive
– Commutation sur certains appels
système (ex E/S)
Indices de performance / utilisation du
processeur
Quand une tâche ne peut pas s’exécuter, le
processeur rentre dans une boucle nop
(no operation)
Taux d’occupation
tutilisé
 occ 
ttotal
Taux d’efficacité des calculs
 ec 
t processus
tutilisé
Taux efficace du processeur
 ep 
t processus
ttotal
Attention, pour être précis il faudrait tenir compte
de l’Overhead
Ordonnancement
 Un processus libère le processeur quand
– Son quantum est fini
– Il fait une E/S
Question : Quel est le nouveau processus à
élire ?
– Avec comme contrainte choisir très vite.
Réponse : le premier processus de la file
d’attente des processus prêts
File d’attente des processus prêts :
• Un processus prêt : Si on lui laisse le processeur, il
pourra l’utiliser
• Commutation : Sauver et restaurer le contexte.
• Bloc de description de processus (Bdp) :
Structure de donnée du SE, qui mémorise le
contexte d’un processus, son état, etc…
Commutateur et Ordonnanceur
Commutateur :
Commute un processus actif par
un processus de la file d’attente
des processus prêts
Ordonnanceur :
Réordonne la file d’attente des
processus prêts
Le commutateur intervient à chaque quantum et
chaque E/S
L’ordonnanceur est appelé beaucoup moins souvent.
Stratégies d’allocation
C’est le travail de l’ordonnanceur
Tourniquet (Round Robin)
• Une seule file des processus
Priorité statique
• Chaque processus reçoit à la création
une priorité qu’il garde jusqu’à ça
mort
• Un file d’attente par priorité
• On choisit le processus prêt de plus
forte priorité (La plus forte 0)
• Attention risque de famine
Priorité dynamique :
• Il reçoit une priorité qui change
suivant l’occupation du processeur
qu’il a eu
Indice de performance de l ’allocation
 Temps d’exécution = le temps nécessaire
au processus pour s’exécuter en
monotâche
 Temps de réponse = le temps écoulé
entre le moment où le processus est
soumis et celui où il est terminé
 Taux d’efficacité du processeur
 Temps de réponse/temps d’exécution
 Valeur moyenne et maximale du temps
de réponse pour les processus
 Comportement du système en cas de
surcharge
 Possibilité de famine
Téléchargement