1A.Sghaier
2A.Sghaier
3A.Sghaier
4A.Sghaier
5A.Sghaier
6A.Sghaier
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
A.Sghaier 8
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
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
A.Sghaier 11
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
13A.Sghaier
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
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
Exemple: Soient les deux programmes A et B suivants :
16A.Sghaier
17A.Sghaier
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
19A.Sghaier
20A.Sghaier
21A.Sghaier
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
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
Juste une idée sur les processus
A.Sghaier 24
A.Sghaier 25
A.Sghaier 26
A.Sghaier 27
A.Sghaier 28
A.Sghaier 29
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.
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)
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).
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…)
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.
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.
A.Sghaier 36
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
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).
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.
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
A.Sghaier 41
Remarque :Pour représenter schématiquement l’évolution dans le temps des processus, on
recourt habituellement à des diagrammes de Gantt.
A.Sghaier 42
A.Sghaier 43
A.Sghaier 44
A.Sghaier 45
A.Sghaier 46
A.Sghaier 47
A.Sghaier 48
A.Sghaier 49
A.Sghaier 50
A.Sghaier 51
A.Sghaier 52

Cour systeme d'exploitation sghaier anouar

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 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
  • 8.
  • 9.
    Un SE estl’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èmed’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
  • 11.
  • 12.
    Inconvénients − Temps perdudans 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
  • 13.
  • 14.
    Inconvénients − Perte detemps 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, leprocesseur 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
  • 16.
    Exemple: Soient lesdeux programmes A et B suivants : 16A.Sghaier
  • 17.
  • 18.
    L’objectif est d’offriraux 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
  • 19.
  • 20.
  • 21.
  • 22.
    1-Le noyau (enanglais 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
  • 24.
    Juste une idéesur les processus A.Sghaier 24
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    A.Sghaier 30 Cheminement d’unProgramme 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 gestiondes 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 existedes 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 étatsd'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écutiond’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 decontrô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.
  • 36.
  • 37.
    A.Sghaier 37 Le changementd'é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 unsystè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) LeDispatcheur :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 distinguonsplusieurs 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 :Pourreprésenter schématiquement l’évolution dans le temps des processus, on recourt habituellement à des diagrammes de Gantt.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.