52
1 A.Sghaier

Cour systeme d'exploitation sghaier anouar

Embed Size (px)

Citation preview

Page 1: Cour systeme d'exploitation sghaier anouar

1A.Sghaier

Page 2: Cour systeme d'exploitation sghaier anouar

2A.Sghaier

Page 3: Cour systeme d'exploitation sghaier anouar

3A.Sghaier

Page 4: Cour systeme d'exploitation sghaier anouar

4A.Sghaier

Page 5: Cour systeme d'exploitation sghaier anouar

5A.Sghaier

Page 6: Cour systeme d'exploitation sghaier anouar

6A.Sghaier

Page 7: Cour systeme d'exploitation sghaier anouar

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 basse du 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, debugger etc. Compilateurs, debugger

Utilitaires Utilitaires : Services de base aux utilisateurs. Ex. interface graphique, : Services de base aux utilisateurs. Ex. interface graphique,

interpréteur de commandes, gestionnaires divers, impriment, cherchent le interpré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

Page 8: Cour systeme d'exploitation sghaier anouar

A.Sghaier 8

Page 9: Cour systeme d'exploitation sghaier anouar

Un SE est l’ensemble des pgms qui se chargent de résoudre les pbms lies à l’exploitation Un 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

Page 10: Cour systeme d'exploitation sghaier anouar

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

Page 11: Cour systeme d'exploitation sghaier anouar

A.Sghaier 11

Page 12: Cour systeme d'exploitation sghaier anouar

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

Page 13: Cour systeme d'exploitation sghaier anouar

13A.Sghaier

Page 14: Cour systeme d'exploitation sghaier anouar

Inconvénients− Perte de temps due à l’occupation du processeur durant les opérations d’E/S. (Eneffet, 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

Page 15: Cour systeme d'exploitation sghaier anouar

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

Page 16: Cour systeme d'exploitation sghaier anouar

Exemple: Soient les deux programmes A et B suivants :

16A.Sghaier

Page 17: Cour systeme d'exploitation sghaier anouar

17A.Sghaier

Page 18: Cour systeme d'exploitation sghaier anouar

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

Page 19: Cour systeme d'exploitation sghaier anouar

19A.Sghaier

Page 20: Cour systeme d'exploitation sghaier anouar

20A.Sghaier

Page 21: Cour systeme d'exploitation sghaier anouar

21A.Sghaier

Page 22: Cour systeme d'exploitation sghaier anouar

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

Page 23: Cour systeme d'exploitation sghaier anouar

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

Page 24: Cour systeme d'exploitation sghaier anouar

Juste une idée sur les processus

A.Sghaier 24

Page 25: Cour systeme d'exploitation sghaier anouar

A.Sghaier 25

Page 26: Cour systeme d'exploitation sghaier anouar

A.Sghaier 26

Page 27: Cour systeme d'exploitation sghaier anouar

A.Sghaier 27

Page 28: Cour systeme d'exploitation sghaier anouar

A.Sghaier 28

Page 29: Cour systeme d'exploitation sghaier anouar

A.Sghaier 29

Page 30: Cour systeme d'exploitation sghaier anouar

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.

Page 31: Cour systeme d'exploitation sghaier anouar

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)

Page 32: Cour systeme d'exploitation sghaier anouar

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).

Page 33: Cour systeme d'exploitation sghaier anouar

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…)

Page 34: Cour systeme d'exploitation sghaier anouar

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.

Page 35: Cour systeme d'exploitation sghaier anouar

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.

Page 36: Cour systeme d'exploitation sghaier anouar

A.Sghaier 36

Page 37: Cour systeme d'exploitation sghaier anouar

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 desordonnancements préemptifs lorsqu’un processus plus prioritaire que leprocessus 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 enfonction de sa politique d’ordonnancement (fin de quantum,préemption du processus actif si un processus plus prioritaire devientprêt dans le cas des politiques préemptives, …),- le passage de l’état actif à l’état bloqué est provoqué par leprogramme exécuté par le processus. On peut citer : E/S bloquante du typescanf, opérations sleep ou wait sous UNIX).

Le changement d'état d'un processus

Page 38: Cour systeme d'exploitation sghaier anouar

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).

Page 39: Cour systeme d'exploitation sghaier anouar

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’OrdonnanceurCertains 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.

Page 40: Cour systeme d'exploitation sghaier anouar

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

Page 41: Cour systeme d'exploitation sghaier anouar

A.Sghaier 41

Remarque :Pour représenter schématiquement l’évolution dans le temps des processus, on recourt habituellement à des diagrammes de Gantt.

Page 42: Cour systeme d'exploitation sghaier anouar

A.Sghaier 42

Page 43: Cour systeme d'exploitation sghaier anouar

A.Sghaier 43

Page 44: Cour systeme d'exploitation sghaier anouar

A.Sghaier 44

Page 45: Cour systeme d'exploitation sghaier anouar

A.Sghaier 45

Page 46: Cour systeme d'exploitation sghaier anouar

A.Sghaier 46

Page 47: Cour systeme d'exploitation sghaier anouar

A.Sghaier 47

Page 48: Cour systeme d'exploitation sghaier anouar

A.Sghaier 48

Page 49: Cour systeme d'exploitation sghaier anouar

A.Sghaier 49

Page 50: Cour systeme d'exploitation sghaier anouar

A.Sghaier 50

Page 51: Cour systeme d'exploitation sghaier anouar

A.Sghaier 51

Page 52: Cour systeme d'exploitation sghaier anouar

A.Sghaier 52