Département De Mathématiques Et Informatique UNIVERSITÉ MOHAMED PREMIER - OUJDA
Département De Mathématiques Et Informatique UNIVERSITÉ MOHAMED PREMIER - OUJDA Faculté Des Sciences SMI S4 Cours du module II Système d'exploitation Prof. Aicha Karfali Chapitre 1 : gestion des processus • Pour exécuter les instructions d’un programme, le processeur va réaliser en boucle ce qu’on appelle le cycle fetch-decode-execute et qui consiste dans les grandes lignes à : – Charger l’instruction depuis la mémoire où est stocké le code à exécuter et dont le compteur ordinal (un registre du processeur qui contient l’adresse de l’instruction à exécuter) donne l’adresse, puis incrémenter le compteur (fetch) pour passer à l’instruction suivante, – Décoder l’instruction (decode), – Exécuter l’instruction (execute). Pendant cette phase le processeur peut interagir avec la mémoire pour lire les données et écrire les résultats. Il utilise un ensemble de registres pour stocker les données et leurs adresses Introduction aux processus Introduction aux processus Définition Un processus est un programme en cours d'exécution. Il possède son propre compteur ordinal, ses registres et ses variables. • Le processus est crée par le système d'exploitation ou l'utilisateur au moment où l'exécution du programme doit commencer, • Une fois le processus terminé, il est supprimé par le système d'exploitation, • Un seul programme peut nécessiter plusieurs processus pour son exécution. Introduction aux processus • Un programme a une existence statique, il est stocké sur le disque puis chargé en mémoire afin d’être exécuté. • Le processus en revanche a un contact direct avec le processeur en effet c'est l'entité exécutée par le processeur • Le système d'exploitation manipule deux types de processus : ceux du système et ceux des utilisateurs. La gestion des processus Les principales fonctionnalités du système d'exploitation en matière de gestion de processus consistent à: • La création, suppression et interruption de processus, • L'ordonnancement des processus an de décider d'un ordre d'exécution équitable entre les utilisateurs tout en privilégiant les processus du système, • La synchronisation entre les processus ainsi que la communication, • La protection des processus d'un utilisateur contre les actions d'un autre utilisateur Etats d'un processus Interruption d'un processus • Une interruption est provoquée par un signal généré sur occurrence d'un événement qui peut être interne (lié au processus) ou externe et indépendant. • Lorsqu'une interruption est générée, le processus en cours d'exécution est interrompu. Il quitte le processeur et un gestionnaire d'interruption est chargé dans les registres du processeur et s'exécute pour traiter l'interruption. • Dans un premier temps il est nécessaire de connaître quelle interruption a eu lieu. Interruption d'un processus • Une fois le signal de l'interruption reconnu, le gestionnaire d'interruption accède à une table appelée table des vecteurs d'interruptions et y recherche l'adresse du programme associé à exécuter. • Ce programme est appelé routine d'interruption. • Une fois l'interruption traitée, le système charge un autre processus à partir de la file d'attente et l'exécute. Structure de l'espace mémoire d'un processus Le contexte d'un processus • En informatique, un contexte d'exécution d'un processus est constitué par l'ensemble des données utilisées par le processus en question. • C'est l'ensemble minimal de données à sauvegarder pour permettre une interruption de la tâche à un moment donné, et une reprise de cette exécution au point où elle a été interrompue, Le contexte d'un processus processus et à copier le contexte d'un autre processus dans • L'opération qui consiste à sauvegarder le contexte d'un • D'autres informations telles que la valeur de l'horloge, la priorité du processus, résultats calculés par le processus • Les registres qui décrivent l'espace qu'il occupe en mémoire centrale (l'adresse de début et de fin par exemple) • Le registre variable d'état qui indique l'état du processus Le contexte d'un processus comporte les informations suivantes : • Le compteur ordinal : adresse de la prochaine instruction à exécuter par le processeur • Les contenus des registres généraux : ils contiennent les l'unité centrale s'appelle changement ou commutation de contexte La table des processus • C’est une structure de données qui permet au système de conserver d'autres informations sur les processus • La table des processus contient toutes les informations indispensables au système d'exploitation pour assurer une gestion cohérente des processus • Elle est stockée dans l'espace mémoire du système d'exploitation, ce qui signifie que les processus ne peuvent pas y accéder La table des processus • Elle comporte une entrée par processus: – des informations concernant un processus (même si le processus n'est pas en mémoire), – des informations sur les fichiers qu'il manipule, – des informations sur son occupation mémoire (des pointeurs sur les différents segments code, données et pile.)... Ordonnancement de processus • Conceptuellement, chaque processus a son processeur propre virtuel. En réalité, le vrai processeur commute entre plusieurs processus sous la direction d’un ordonnanceur. • L’Ordonnanceur (scheduler) est la partie du noyau qui s’occupe de l’ordonnancement des processus Ordonnancement de processus Quand faut-il ordonnancer ? • Il y'a différents moments où il est nécessaire d'ordonnancer : – A la création d'un processus – A la fin d'un processus – Lors du blocage d'un processus – Lors d'une interruption d'entrée / sortie – Régulièrement • après exécution de n instructions, • à chaque interruption d’horloge, … Ordonnancement de processus D'une façon générale, l'ordonnancement a plusieurs objectifs : • S’assurer que chaque processus en attente d’exécution reçoive sa part de temps processeur. • Minimiser le temps de réponse : l’utilisateur devant sa machine ne doit pas trop attendre • Le processeur doit être utilisé à 100% • Prendre en compte des priorités. • Il faut exploiter au maximum le système Environnement d'ordonnancement Pour les systèmes informatiques, on distingue 3 types d'environnements : • Environnement de traitements par lots dans lesquels Il n'y a pas d'utilisateur en attente. pour améliorer les performances, on diminue le nombre de changements de processus. • Environnement interactif dans lequel un utilisateur interagit avec le système. il faut permettre l'exécution de programmes pas forcément interactifs et empêcher un processus de monopoliser le processeur. • Environnement temps réel dans lequel la contrainte de temps est très importante. Ainsi les tâches doivent pouvoir s'exécuter quasi immédiatement, elles ne peuvent pas se permettre d'avoir du retard. catégories d’algorithmes d'ordonnancement Dans chacun des environnements, on peut distinguer deux catégories d’algorithmes d'ordonnancement • Algorithme d’Ordonnancement sans réquisition (non préemptif): sélectionne un processus qui continue à s’exécuter jusqu’à la fin (soit il termine ou il se bloque sur une E/S ou en attente d’un autre processus). Cet algorithme est inefficace: exemple un processus qui exécute une boucle infinie. catégories d’algorithmes d'ordonnancement • Algorithme d’Ordonnancement avec réquisition (préemptif) : à Chaque signal d’horloge, il décide si le processus courant a consommé son quantum de temps machine et alloue éventuellement le processeur à un autre processus L'ordonnancement sur les systèmes de traitement par lots L'algorithme du premier arrivé, premier servi (first come first served) • L’ordre d’accès au processeur est réglementé suivant l’ordre d'arrivée des processus. • Le choix d'un nouveau processus ne se fait que sur blocage ou terminaison du processus courant. • Le processus actif occupe le processeur autant qu'il le souhaite. Les autres processus se trouvent alors dans une file d'attente. • Lorsque le processus actif se bloque ou termine, il sera placé à la fin de la file d'attente et le premier processus de la file réquisitionne le processeur. L'ordonnancement sur les systèmes de traitement par lots L'algorithme du premier arrivé, premier servi (first come first served) • C’est un algorithme simple à comprendre et à programmer • Inconvénients: par exemple, certaines tâches rapides devront attendre longuement la fin des tâches précédentes. L'ordonnancement sur les systèmes de traitement par lots Exécution du job le plus court • C'est un algorithme non préemptif. Il oblige à connaître à l’avance les temps d’exécution des jobs (tâches). Le principe est donc de donner la priorité aux tâches les plus courtes. L'ordonnancement sur les systèmes de traitement par lots Exécution du job le plus court Temps moyen: 1/4(tA+tC+tD+tB)=11 Avec tA=4, tC=4+4, tD=4+4+4 et tB= 4+4+4+8 et d'arrivé sont donnés par le tableau suivant : Supposons qu’on a 5 jobs A, B, C, D et E. Leurs temps d’exécution Est si tous les jobs ne sont pas disponible ? L'ordonnancement sur les systèmes de traitement par lots • Exécution du job le plus court temps moyen = (3+8+3+6+12)/5=6,4. L'ordonnancement sur les systèmes de traitement par lots L'algorithme de l'exécution du temps restant suivant le plus court • C'est un algorithme préemptif qui se base sur le précédent. Son objectif est de choisir la tâche dont le temps d'exécution restant est le plus court parmi les autres • Le temps d'exécution restant doit être connu. • Si une nouvelle tâche est créée et que son temps d'exécution total est plus court que le temps restant de la tâche en cours, la tâche en cours est suspendue pour laisser la place au nouveau job (préemption). • L'avantage principal de ce principe est qu'il favorise les tâches courtes, ce qui est important sur des systèmes de traitements par lots. L'ordonnancement sur les systèmes interactifs L'algorithme du tourniquet (round robin, circulaire) uploads/Industriel/ systeme-dexploitation-2-1.pdf
Documents similaires
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 18, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 1.9552MB