7. MatérielMatériel : Circuits électroniques / circuits logiques. On dira que c'est au niveau: Circuits électroniques / circuits logiques. On dira que c'est au niveau
du matériel que se trouve la couche d'abstraction la plus bassedu matériel que se trouve la couche d'abstraction la plus basse
Système d'exploitationSystème d'exploitation : Élément le plus déterminant d'un système informatique: Élément le plus déterminant d'un système informatique
ApplicationsApplications : Traitement de texte, gestionnaire de bases de données, tableurs: Traitement de texte, gestionnaire de bases de données, tableurs
etc. Compilateurs, debuggeretc. Compilateurs, debugger
UtilitairesUtilitaires : Services de base aux utilisateurs. Ex. interface graphique,: Services de base aux utilisateurs. Ex. interface graphique,
interpréteur de commandes, gestionnaires divers, impriment, cherchent leinterpréteur de commandes, gestionnaires divers, impriment, cherchent le
courrier etc.courrier etc.
UtilisateursUtilisateurs : C'est à eux que le système informatique est destiné. Les: C'est à eux que le système informatique est destiné. Les
utilisateurs interagissent avec la couche de plus haut niveau.utilisateurs interagissent avec la couche de plus haut niveau.
7A.Sghaier
9. Un SE est l’ensemble des pgms qui se chargent de résoudre les pbms lies à l’exploitationUn SE est l’ensemble des pgms qui se chargent de résoudre les pbms lies à l’exploitation
de l’ordinateur. On distingue 2 principales taches bien distinctes à un SE :de l’ordinateur. On distingue 2 principales taches bien distinctes à un SE :
Gérer les ressources physiques de l’ordinateur (processeur, mémoire, périphérique, etc)Gérer les ressources physiques de l’ordinateur (processeur, mémoire, périphérique, etc)
Gérer l’interaction avec les utilisateursGérer l’interaction avec les utilisateurs
A.Sghaier 9
10. Fonctions d’un système d’exploitation
général
• − Gestion du processeur : allocation du processeur aux
différents programmes.
• − Gestion des objets externes : principalement les fichiers.
• − Gestion des entrées-sorties : accès aux périphériques, via les
pilotes.
• − Gestion de la mémoire : segmentation et pagination.
• − Gestion de la concurrence : synchronisation pour l'accès à
des ressources partagées.
• − Gestion de la protection : respect des droits d'accès aux
ressources.
• − Gestion des accès au réseau : échange de données entre des
machines distantes
10A.Sghaier
12. Inconvénients
− Temps perdu dans l’attente pour lancer l’exécution d’un programme.
− Vitesse d’exécution de la machine limitée par la rapidité de l’opérateur
qui appuie sur les boutons et alimente les périphériques.
− Pas de différences entre : concepteurs ; constructeurs ; programmeurs ;
utilisateurs ;mainteneurs.
A.Sghaier 12
14. Inconvénients
− Perte de temps due à l’occupation du processeur durant les opérations d’E/S. (En
effet, le processeur restait trop inactif, car la vitesse des périphériques mécaniques
était plus lente que celle des dispositifs électroniques).
− Les tâches inachevées sont abandonnées.
14A.Sghaier
15. En effet, le processeur est alloué à un job, et dès que celui-ci effectue une demande
d’E/S, le processeur est alloué à un autre job, éliminant ainsi les temps d’attente de
l’unité de traitement chargé des E/S, appelé canal d’E/S.
15A.Sghaier
18. L’objectif est d’offrir aux usagers une interaction directe avec la machine
par l’intermédiaire de terminaux de conversation, et de leur allouer le
processeur successivement durant un quantum de temps, chaque utilisateur
aura l’impression de disposer de la machine à lui tout seul. Il peut aussi
contrôler le job qu’il a soumis directement à partir du terminal (corriger
les erreurs, recompiler, resoumettre le job, …).
Temps partagé (Time Sharing)
Parmi les premiers systèmes à temps
partagé, nous citons : CTSS (Compatible
Time Sharing System), MULTICS
(MULTiplexed Information and
Computing Service), UNIX, MINIX,
LINUX. En fait, la plupart des systèmes
d’aujourd’hui sont en temps partagé.
18A.Sghaier
22. 1-Le noyau (en anglais Kernel)
* Réside en mémoire (fréquence élevée des interventions)
*Petite taille
*Gestion du processeur: reposant sur un allocateur ( dispatcher ) responsable de la répartition
du temps processeur entre les différents processus, et un planificateur (scheduler ) déterminant
les processus à activer, en fonction du contexte.
* Gestion des interruptions : les interruptions sont des signaux envoyés par le matériel, à
destination du logiciel, pour signaler un évènement.
*Gestion du multi- tâches: simuler la simultanéité des processus coopératifs (i. e. les processus
devant se synchroniser pour échanger des données) et gérer les accès concurrents aux ressources
(fichiers, imprimantes, ...)
2-L'interpréteur de commandes (en anglais Shell)
C'est l'interface entre l'utilisateur et le système d'exploitation. Il permet à l'utilisateur de
communiquer avec le système d'exploitation par l'intermédiaire d'un langage de commandes
3-Le système de fichiers (en anglais filesystem)
C'est une structure de données permettant de stocker des informations et de les organiser dans
des fichiers. Il fournit à l'utilisateur une vue abstraite des données enregistrées sous formes
d'entités virtuelles. le SE donne au fichiers la possibilité (les gérer, cad les créer, les détruire, les
écrire (modifier) et les lires, EXP: Fat16, Fat12 de MSDOS, NTFS (NewTechnology File System) de Windows . HFS
(Hierarchical Filesystem)de Macintosh, ext2-fs Extended Filesystem de linux, etc
A.Sghaier 22
23. 4-Les Entrées/ Sorties: Il s’agit de permettre le dialogue (échange d’informations)
avec l’extérieur du système.
Caractéristiques d’un SE :Caractéristiques d’un SE :
A.Sghaier 23
30. A.Sghaier 30
Cheminement d’un Programme dans un Système
Un processus est un programme en
cours d'exécution. Les instructions qui
constituent un programme peuvent être
classifiées en catégories dont les
principales sont:
- Les Instructions d'affectations.
- Les instructions arithmétiques : telles
que les additions, soustractions,
divisions ou multiplication.
- Les instructions logiques : opérations
ET, OU, NON, NON exclusif, etc.
- Les Instructions de branchement
(conditionnelle et inconditionnelle)
- Les Instructions d'entrées/sorties :
une instruction d'entrée ou read peut
correspondre par exemple à la lecture
du disque. Une instruction de sortie ou
write peut correspondre par exemple à
l'affichage sur l'écran.
31. A.Sghaier 31
La gestion des processusLa gestion des processus
Un processus est un programme en cours d'exécution.
Un programme est une suite d'instructions ; c'est du texte, un code statique. Le
processus est un concept dynamique, il représente le déroulement d'une tâche faisant
partie d'une application ou un programme système quelconque. La notion de
processus est essentielle pour décrire le fonctionnement des systèmes
multiprogrammés aussi appelés multitâches ou plus simplement multiprocessus.
Parmi les avantages de la multiprogrammation, citons :
Le fractionnement des applications qui peut en simplifier le développement,
l'avantage pour l'utilisateur de savoir faire tourner plusieurs applications
simultanément et surtout l'optimalisation de l'utilisation du (ou des) processeurs(s)
32. A.Sghaier 32
Il existe des appels système permettant de créer un processus, charger son contexte et
lancer son exécution (fork, exec sous Unix).
- Un processus peut (père) créer d’autres processus (fils) qui hérite les descripteurs de
son père. Ce dernier à son tour crée d’autres processus. Un processus a un seul père
mais peut avoir plusieurs fils
- Les processus peuvent se terminer ou ils peuvent être éliminés par d’autres processus
(la primitive kill). A la destruction d’un processus, on libère toutes les ressources qu’il
avait.
- Dans certains cas, la destruction d’un processus entraîne l’élimination de ces
descendants ; cette opération n’affecte pas les processus qui peuvent continuer
indépendamment de leur père (processus orphelins).
33. A.Sghaier 33
Les états d'un processusLes états d'un processus
Dans les systèmes, un programme ne quitte pas l’unité centrale avant de terminer son
exécution. Pendant cette période, il dispose de toutes les ressources de la machine. Par
contre, ce n’est pas le cas dans les systèmes multiprogrammés et temps partagé, un
processus peut se trouver dans l’un des états suivants :
1‐ Elu : (en cours d’exécution) : si le processus est en cours d'exécution
2- Bloqué : attente qu’un événement se produit ou bien ressource pour pouvoir
continuer
3- Prêt : si le processus dispose de toutes les ressources nécessaires à son exécution à
l'exception du processeur
Sémantique des Transitions
(1) : Allocation du processeur au processus sélectionné
(2) : Réquisition du processeur après expiration de la tranche
du temps par exemple soit parce qu'un processus de plus
haute priorité réquisitionne le processeur.
(3) : Blocage du processus élu dans l’attente d’un événement
(E/S ou autre)
(4) : Réveil du processus bloqué après disponibilité
de l’événement bloquant (Fin E/S, etc…)
34. A.Sghaier 34
Cycle d’exécution d’un processus
L’exécution d’un processus peut être vue comme une séquence de phases. Chaque phase
comprend deux cycles : un cycle d’exécution (ou calcul) réalisé par le processeur et un
cycle d’entrée sortie assuré par le canal. La dernière phase de tout processus doit
comprendre obligatoirement un seul cycle dans lequel sera exécuté la requête informant
le système d’exploitation sur la terminaison du processus. Cet appel permet au système
de restituer les ressources utilisées par le processus qui vient de terminer.
35. A.Sghaier 35
Bloc de contrôle de processus
Pour mettre en oeuvre le modèle des processus, le système dispose d’une table appelé bloc de
contrôle de processus (PCB Process Control Bloc) dont chaque entrée correspond à un
processus. Chaque ligne contient des informations sur le processus :
- L’état du processus : Il peut avoir l’une des valeurs suivantes : Prêt, en exécution ou en
attente.
- Le compteur d’instructions : Le compteur indique l’adresse de la prochaine instruction à
exécuter par le processus.
- Les registres du processeur : Les registres varient en nombre et en type en fonction de
l’architecture de l’ordinateur. Ils englobent des accumulateurs, des registres d’index, des
pointeurs de pile et des registres à usage général. Ces informations doivent être sauvegardées
avec le compteur d’instructions quand il se produit une interruption, afin de permettre au
processus de poursuivre correctement son exécution après la reprise.
- Informations sur le scheduling (ordonnanceur) du processeur : Ces informations
comprennent la priorité du processus, les pointeurs sur les files d’attente .
- Informations sur la gestion de la mémoire : Ces informations peuvent inclure les valeurs de
registres de base et limites, les tables de pages ou les tables de segments selon le système de
mémoire utilisé.
- Informations sur l’état des E/S : Les fichiers ouverts, la liste des périphériques d’E/S.
37. A.Sghaier 37
Le changement d'état d'un processus peut être provoqué par :
- un autre processus (qui lui a envoyé un signal, par exemple)
- le processus lui-même (appel à une fonction d'entrée-sortie bloquante,...)
- une interruption (fin de quantum, terminaison d'entrée-sortie, ...)
La sortie de l’état actif pour passer à l’état prêt se produit dans le cas des
ordonnancements préemptifs lorsqu’un processus plus prioritaire que le
processus actif courant devient prêt.
D’une manière générale :
- le passage de l’état actif à l’état prêt est provoqué par le système en
fonction de sa politique d’ordonnancement (fin de quantum,
préemption du processus actif si un processus plus prioritaire devient
prêt dans le cas des politiques préemptives, …),
- le passage de l’état actif à l’état bloqué est provoqué par le
programme exécuté par le processus. On peut citer : E/S bloquante du type
scanf, opérations sleep ou wait sous UNIX).
Le changement d'état d'un processus
38. A.Sghaier 38
Ordonnancement
Dans un système multitâches, le système d'exploitation doit gérer l'allocation du
processeur aux processus. On parle d'ordonnancement des processus.
Cette tâche est prise en charge par deux routines système en l’occurrence le Dispatcheur et
le Scheduleur (Ordonnanceur).
39. A.Sghaier 39
1) Le Dispatcheur :Il s’occupe de l’allocation du processeur à un processus sélectionné
par l’Ordonnanceur du processeur. Une fois allouer, le processeur doit réaliser les tâches
suivantes :
• Commutation de contexte : sauvegarder le contexte du processus qui doit relâcher le
processeur et charger le contexte de celui qui aura le prochain cycle processeur
• Commutation du mode d’exécution : basculer du mode Maître (mode d’exécution du
dispatcheur) en mode utilisateur (mode d’exécution du processeur utilisateur)
• Branchement : se brancher au bon emplacement dans le processus utilisateur pour le faire
démarrer.
2 )L’Ordonnanceur
Certains systèmes d’exploitation utilisent une technique d’ordonnancement à deux niveaux
qui intègre deux types d’Ordonnanceurs :
Ordonnanceur du processeur : c’est un Ordonnanceur court terme opère sur une ensemble
du processus présents en mémoire. Il s’occupe de la sélection du processus qui aura le
prochain cycle processeur, à partir de la file d’attente des processus prêts.
Ordonnanceur de travail : ou Ordonnanceur long terme, utilisé en cas d’insuffisance de
mémoire, son rôle est de sélectionné le sous ensemble de processus stockés sur un disque et
qui vont être chargés en mémoire. En suite, il retire périodiquement de la mémoire
lesprocessus qui sont restés assez longtemps et les remplace par des processus qui sont sur le
disque depuis trop de temps.
40. A.Sghaier 40
Nous distinguons plusieurs algorithmes d’ordonnancement, les plus répandus sont
• Ordonnancement Premier Arrivé Premier Servi
• Ordonnancement du plus court d’abord
• Ordonnancement circulaire : Tourniquet
• Ordonnancement circulaire à plusieurs niveaux
• Ordonnancement avec priorité
3) Algorithmes d’ordonnancement
L'ordonnancement est la partie du système d'exploitation qui détermine dans quel ordre les
processus prêts à s'exécuter (présents dans la file des prêts) seront élus Ses objectifs sont :
- Assurer le plein usage du CPU (agir en sorte qu’il soit le moins souvent possible
inactifs);
- Réduire le temps d'attente des utilisateurs.
- Assurer l'équité entre les utilisateurs.
Un algorithme d’ordonnancement permet d’optimiser une des grandeurs temporelles
suivantes
41. A.Sghaier 41
Remarque :Pour représenter schématiquement l’évolution dans le temps des processus, on
recourt habituellement à des diagrammes de Gantt.