Système d’exploitation I - 2024/2025 - Université Moulay Ismail
Document Details
Uploaded by UnboundOrbit2791
Université Moulay Ismail École Normale Supérieure
2024
Pr. BENABBES Khalid
Tags
Summary
These notes cover introductory material on Operating Systems, specifically for the course "Système d’exploitation I" at the "Université Moulay Ismail". The topics include general concepts, process management, and memory management.
Full Transcript
Université Moulay Ismail Ecole Normale Supérieure Meknès Système d’exploitation I Animé par :...
Université Moulay Ismail Ecole Normale Supérieure Meknès Système d’exploitation I Animé par : Coordonné Pr. BENABBES Khalid Email : [email protected] Année universitaire : 2024/2025 Année universitaire : 2024/2025 PLAN I Système d’exploitation II Les processus III L’ordonnancement des processus IV Systèmes de gestion de fichiers V Communication interprocessus VI Gestion de mémoire VII Système de gestion de fichier SYSTÈME D’EXPLOITATION Objectifs du cours Comprendre comment fonctionne un SE – Ce qu’il gère – Comment il le gère – Sécurité Savoir utiliser les possibilités du SE dans les programmes – Utiliser les ressources – Exploiter le parallélisme (multiprocesseur / multithreading) Multiprocesseur : Sur les systèmes multiprocesseurs, plusieurs unités de traitement (CPU) exécutent des tâches en parallèle. Les programmes peuvent être optimisés pour répartir le travail entre plusieurs cœurs pour augmenter l'efficacité. Multithreading : Créer et gérer plusieurs threads au sein d'un même processus. Chaque thread s'exécute indépendamment et partage les ressources du même processus. – Faire communiquer des processus – Synchroniser des processus SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Un système d’exploitation est un ensemble de programmes qui coordonnent le Définition fonctionnement des différents composants matériels et logiciels d’un système informatique. But Le but d’un SE est d’accroitre la disponibilité des ressources pour les utilisateurs et en même temps d’optimiser l’utilisation du matériel. Windows (NT, 95, 98,Vista,...); Exemples Mac-OS (le système Macintosh); Unix, Linux; etc. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Rôles principaux: Gérer les ressources matérielles, notamment le processeur, la mémoire, les dispositifs d'entrée-sortie, et le stockage. Fournir un environnement d'exécution pour les programmes applicatifs. Assurer la sécurité des informations stockées dans le système à travers l'accès contrôlé. Faciliter l'interface utilisateur à travers des interfaces graphiques ou des lignes de commande. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Application Gestion des fichiers Gestion des Entrées/Sorties Gestion de la mémoire Noyau Matériel SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Interface intermédiaire (Système d'exploitation) Utilisateur Matériel SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Années 1940-1950: Les premiers ordinateurs n'avaient pas vraiment d'OS. Ils fonctionnaient avec un programme unique. Années 1960: Emergence des systèmes d'exploitation en batch où les tâches étaient traitées par lot sans intervention interactive. Fin des années 1960 et années 1970: Apparition des systèmes multitâches et des systèmes en temps partagé permettant à plusieurs utilisateurs d'accéder à un ordinateur central à partir de terminaux distants. Années 1980: L'évolution des ordinateurs personnels a conduit à des OS comme MS-DOS suivi par Windows. Années 1990 à aujourd'hui: Emergence des OS avec des interfaces graphiques, le développement d'Internet, l'évolution des OS mobiles comme Android et iOS, et le développement des OS open source comme Linux. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités OS avec des terminaux distants SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités 01 Batch 04 Temps réel 02 Temps partagé 05 Embarqué 03 Multitâche 06 Mobile SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Batch: Ces systèmes exécutent des commandes en lot. Les tâches sont traitées dans l'ordre sans intervention extérieure. Temps partagé: Les systèmes en temps partagé permettent à plusieurs utilisateurs de partager simultanément les ressources d'un ordinateur. Chaque utilisateur obtient du temps sur le processeur en fonction d'un horaire prédéfini. Multitâche: Cela permet à un utilisateur d'exécuter plusieurs applications ou plusieurs instances d'une application simultanément. L'OS partage le temps du processeur entre chaque tâche pour donner l'illusion que toutes s'exécutent en même temps. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Temps réel: Ces OS sont conçus pour répondre à des besoins spécifiques dans un temps donné, essentiellement pour les systèmes critiques comme le contrôle aérien ou les équipements médicaux. Embarqué: Ces OS sont intégrés dans les dispositifs et exécutent quelques fonctions dédiées. Exemples: systèmes dans les voitures, les montres intelligentes, les réfrigérateurs, etc. Mobile: Conçus pour les appareils mobiles comme les smartphones et les tablettes. Exemples: Android, iOS, Windows Mobile. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Modèles architecturaux d'OS Architecture Architecture en 01 monolithique couches 03 Modèles d’OS Modèle client- Architecture à 02 04 serveur micro-noyau SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Modèles architecturaux d'OS Architecture monolithique: Dans ce modèle, tout l'OS est réalisé sous forme d'un unique programme avec des routines interconnectées. Toutes les fonctions telles que la gestion des processus, la gestion des fichiers et les pilotes de périphériques résident dans le noyau. Exemples: Les premières versions de UNIX. Architecture à micro-noyau: Seules les fonctions essentielles de l'OS (comme la communication inter-processus et la gestion de base de la mémoire) sont incluses dans le micro-noyau. Les autres services sont exécutés en tant que processus séparés, en dehors du noyau. Cela peut conduire à une meilleure fiabilité et faciliter la modification du système d'exploitation. Exemples: QNX, Minix, Mach. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Généralités Modèles architecturaux d'OS Architecture en couches: L'OS est divisé en un certain nombre de couches, chaque couche étant construite sur celle qui la précède. Chaque couche a une fonction définie et interagit uniquement avec ses couches adjacentes. Exemple: Le système d'exploitation THE développé par E.W. Dijkstra. Modèle client-serveur: Divise le système d'exploitation en services et clients. Les services fournissent des fonctionnalités (comme la gestion des fichiers) et les clients demandent ces fonctionnalités. Cela permet une modularité, car chaque service peut être modifié ou remplacé indépendamment. Ce modèle est souvent utilisé avec l'architecture à micro-noyau. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système informatique SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système informatique SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système informatique SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système informatique Ce que le simple utilisateur perçoit d'un système informatique : Le boîtier (tour, desktop ou portable) contient : le processeur, la mémoire, des disques, CD-ROM, DVD, Des périphériques : écran, clavier, souris, imprimante, connexion réseau A l'écran, des éléments graphiques: icônes, fenêtres, barre de tâches Dans les fenêtres: titre, menu, barre d'outils, barre d'état boîtes de dialogues, documents Dans les disques, des concepts plus abstraits : les données organisées via le système de fichiers. En mémoire, l 'ordinateur ne gère pas uniquement des données, il gère les programmes tels que le système d'exploitation, les applications, des tâches de fond. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Hardware / Software Hardware PC, câbles, écran, imprimante, disques durs, CD-ROM, ports USB Carte mères, cartes d'extension, A Processeur, interruptions, DMA, coprocesseurs, L'essentiel de la masse d'un système B informatique réside dans le logiciel, les programmes. Software SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Pilote logiciel Le terme "Pilote logiciel" (ou "software driver" en anglais) désigne une solution logicielle (programme) destinée à créer une interface de communication entre le système d'exploitation et un périphérique numérique externe. Prenons une souris par exemple. Avant d'être un périphérique informatique, c'est avant tout un circuit électronique. C'est parce qu'elle est équipé d'un connecteur compatible avec un ordinateur, et qu'il existe un pilote pour convertir ses signaux numériques en données compréhensibles par le système d'exploitation qu'elle devient un périphérique externe utilisable. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions BIOS Le BIOS (Basic Input Output System) est un programme de configuration qui permet de démarrer l’ordinateur et de reconnaître les principaux composants matériels. Mais, c’est un programme minimal, de bas niveau, qui ne permet pas à l’utilisateur de piloter l’ordinateur. Pour exploiter les ressources d’un ordinateur, l’utilisateur a besoin d’un système d’exploitation (comme MS-DOS 7.0, WINDOWS 3.x, 95, 98, NT, UNIX, LINUX, OS/2, MAC OS...) SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions UEFI : est très similaire au BIOS, mais présente certains avantages. Il peut démarrer à partir de disques de plus de 2 To, possède une interface utilisateur graphique avec capacité réseau et est compatible avec les versions antérieures et ultérieures. L'UEFI devrait éventuellement remplacer le BIOS. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Pour qu’un ordinateur démarre, il faut exécuter le code de démarrage principal Boot loader qui se trouve dans le MBR Le MBR (Master Boot Record) Le MBR se compose de trois éléments principaux : la table de partition principale, la signature du disque et le code de démarrage principal ; Le BIOS recherche un périphérique cible à partir duquel démarrer, qui contient un enregistrement de démarrage principal Le code de démarrage du MBR utilise le code de démarrage du volume de cette partition spécifique pour identifier l'emplacement de la partition système ; Le secteur de démarrage de cette partition particulière est utilisé pour démarrer le système d'exploitation. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Composants de démarrage d’un ordinateur SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Le SE propose des primitives (fonctions) que tout programme peut appeler pour utiliser les ressources. En général on trouve : ▪ Gestion des fichiers (ouvrir, fermer, lire, écrire …) ▪ Gestion du système de fichiers (créer/supprimer/parcourir les répertoires) ▪ Gestion de la mémoire (allouer, libérer, partager) ▪ Gestion des processus (créer, terminer, arrêter, attendre, signaler …) ▪ Gestion des communications entre processus (signaux, BàL, tubes …) ▪ Gestion des E/S (graphiques, souris, clavier …) ▪ Gestion du réseau (sockets) ▪ Gestion des utilisateurs SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système en couches Par exemple : gestion du CPU gestion de la mémoire communication entre processus gestion des E/S Programmes C'est le cas des SE actuels (UNIX, Windows depuis NT). SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système en couches SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Système en couches SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Machines virtuelles Un hyperviseur définit une machine virtuelle qui est une vision du matériel se comportant comme une machine classique. Sur cette machine virtuelle on installe un SE complet qui la voit comme sa machine réelle. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Définitions Machines virtuelles On peut définir plusieurs machines virtuelles sur le même matériel et donc y faire fonctionner simultanément plusieurs SE. SYSTÈME D’EXPLOITATION I Système d’exploitation II III IV V VI Structure générale (Unix) SYSTÈME D’EXPLOITATION I Processus II III IV V VI Problématique Processus Les processus, à quoi ça sert? ❖ À faire plusieurs activités « en même temps » Exemples Faire travailler plusieurs utilisateurs sur la même machine. Chaque utilisateur a l’impression d’avoir la machine à lui tout seul. Compiler tout en lisant son mail. ❖ Problème: Un processeur ne peut exécuter qu’une seule instruction à la fois. ❖ BUT: Partager un (ou plusieurs) processeur entre différents processus. ❖ Attention!!! Ne pas confondre processus et processeur SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Notion de Processus Un ordinateur peut faire plusieurs choses en parallèle par exemple du traitement et des E/S car l'UE fonctionne en parallèle du CPU. Lorsque l'on dispose de plusieurs CPUs on exécute plusieurs programmes (processus) en parallèle et c'est un vrai parallélisme. Lorsque l'on partage un CPU dans le temps on exécute plusieurs programmes (processus) en parallèle mais c'est un faux parallélisme car le CPU n'en exécute qu'un à la fois. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Définition de Processus ❑ Un processus est le concept clé des systèmes d’exploitation. C’est une entité dynamique qui matérialise un programme en cours d'exécution avec ses propres ressources physiques (mémoire, processeur, entrée/sortie, …) et logiques (données, variables, …). Contrairement à un programme (texte exécutable) qui a une existence statique. ❑ Le processus est crée par le système d'exploitation ou l'utilisateur au moment où l'exécution du programme doit commence ❑ Une fois le processus terminé, il est supprimé par le système d'exploitation ❑ Les ordinateurs autorisent maintenant plusieurs processus simultanément (pseudo-parallélisme) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Processus VS Programme ❑ Un programme est un ensemble d’instructions qui exécutent une tâche spécifique lorsqu’il est exécuté par un ordinateur, alors qu’un processus est l’instance d’un programme informatique en cours d’exécution. Programme VS Processus SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Begin Processus VS Programme Int a, b, S; S=0; S=a+b; End SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Processus VS Programme SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Type de Processus ❖ Le système d’exploitation manipule deux types de processus : ✔ Processus système : processus lancé par le système ✔ Processus utilisateur : processus lancée par l’utilisateur (commande utilisateur) ❖ Dès sa création, un processus reçoit les paramètres suivants: ✔ PID : identificateur du processus (numéro unique) ✔ PPID : identificateur du processus père ✔ UID : identificateur de l’utilisateur qui a lancé le processus ✔ GID : identificateur du groupe de l’utilisateur qui a lancé le processus SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Bloc de contrôle de processus ❖ Chaque processus est représenté dans le SE par un PCB (process control block) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Bloc de contrôle de processus ❖ PCB: contient plusieurs informations concernant un processus spécifique, comme par exemple: L’état du processus. Compteur d’instructions: indique l’adresse de l’instruction suivante devant être exécutée par ce processus. Informations sur le scheduling de la CPU: information concernant la priorité du processus. Informations sur la gestion de la mémoire: valeurs des registres base et limite, des tables de pages ou des tables de segments. Informations sur l’état des E/S: liste des périphériques E/S allouées à ce processus, une liste des fichiers ouverts, etc. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Relation entre SE & 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 afin 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 gestion des conflits d'accès aux ressources partagées ✔ La protection des processus d'un utilisateur contre les actions d'un autre utilisateur SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Composition d’un processus Chaque processus est caractérisé par son espace d'adressage. L’espace d’adressage représente l’ensemble des adresses mémoire utilisées par le processus pour lire et écrire des données. Comme illustré à la Figure 3, cet espace est composé de trois éléments : le segment de données ; le segment de Code ; la pile. Le segment de code correspond au code du programme, tandis que le segment de données contient les variables. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Composition d’un processus ❖ Le code correspond aux instructions du programme à exécuter, ✔ La zone de données contient les variables globales ou statiques du programme ainsi que les allocations dynamiques de mémoire, ✔ La pile d’exécution: sert à empiler les appels de fonctions, avec leurs paramètres et leurs variables locales. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Etats d’un processus ❖ Un processus passe par plusieurs états avant de finir son exécution: ✔ Nouveau: le processus vient d’être crée ✔ Prêt (Ready): le processus est prêt et pourra s'exécuter dès qu'il sera sélectionné (Elu) par le système d'exploitation, c.-à-d., le processus dispose de toutes les ressources nécessaires à son exécution à l'exception du processeur ✔ En exécution (running, Elu): le processus est en cours d'exécution au niveau du processeur ✔ Bloqué (Waiting): le processus est en attente ou bloqué car il attend des données ou la libération d'une ressource afin de poursuivre son exécution comme l’achèvement d’une opération d’E/S ou la réception d’un signal SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Etats d’un processus ❖ Un processus passe par plusieurs états avant de finir son exécution: ▪ Zombie ◼ C'est un processus terminé (il n'a plus de raisons d'exister) mais son père n'a pas été informé de ceci. ◼ Le système conserve donc les informations correspondant au processus afin que son père puisse voir qu'il a fini son exécution. ▪ Terminé : le processus a terminé son exécution ◼Du point de vue utilisateur, les deux états (Actif et Exécutable) ne sont pas distingués. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Etats d’un processus ✔ Prêt Exécution: ❑ Lorsque l’ordonnanceur choisit un processus pour exécution ✔ Exécution Prêt : ❑ Résultat d’une interruption causée par un événement indépendant du processus ❑ Il faut traiter cette interruption, donc le processus courant perd le processeur ❑ Cas important: le processus à épuisé son intervalle de temps (quantum) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Etats d’un processus (mécanisme de changement de contexte) Pour assurer la gestion des processus, le SE utilise les blocs de contrôle. Ils permettent le contrôle d’accès des processus au processeur. En utilisant ces blocs de contrôle, le SE a une visibilité totale sur l’état de chaque processus à un instant donné. Une fois le processus P0 en exécution, il peut être interrompu par un autre processus ou bloqué à l’attente d’un appel système. Dans ce cas, son état sera sauvegardé dans son bloc de contrôle PCB0 et il sera inactif. Pendant ce temps, un autre processus P1 peut avoir l’accès au processeur et donc il commence son exécution ou il reprend son exécution à partir de sa dernière exécution rechargée, à partir son état sauvegardé dans le bloc de contrôle PCB1. Le processus P1 peut aussi être interrompu ou bloqué, dans ce cas il sauvegarde son état d’exécution dans PCB1 et libère le processeur puis donne la main au processus P0 pour reprendre son travail en chargeant l’état sauvegardé de sa dernière exécution, et ainsi de suite. Le SE s’occupe de sauvegarder et de recharger de l’état des processus ainsi que de l’allocation et de la libération de processus SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Temps partagé Le temps partagé est obtenu en utilisant un timer pour générer des (Intervalles de Temps) ITs à intervalles réguliers Le SE provoque des transitions 2 et 3 ==> exécution en pseudo parallélisme 1 2 3 4 La partie du système qui s'occupe de ça s'appelle l'Ordonnanceur. Pour choisir le processus à rendre "En cours" il tient généralement compte de priorités entre les processus. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Processus et parallélisme Un processus est créé par un autre processus Exemple d'arborescence de processus : SYSTÈME D’EXPLOITATION Gestion des Classification des processus processus ◼ Processus système: ◼ Créés au lancement du système ◼ Exemple: inetd (gestion des services internet), routed (routage), named (pour le nom du serveur), ftpd (transfert de fichiers), httpd (web) ◼ Localisation: /etc/rc.d ◼ Ces processus ne sont interrompus qu’à l’arrêt du système. 55 Gestion des L’arborescence Unix processus 56 Gestion des Classification des processus processus ◼ Processus système: ◼ Créés à des dates fixées par l’administrateur du système ◼ La commande at lance une seule fois une commande à une heure particulière ◼ Syntaxe: at date commande ◼ Exemple: $ at date commande $ echo who | at now +4 hours $ at now +3 minutes find /home -name "core" –exec rm 57 A.ZELLOU Gestion des Classification des processus processus ◼ Processus système: ◼ La commande crontab permet l'exécution soit périodique ou automatique d’un processus. ◼ Chaque ligne doit comporter 6 colonnes, si une colonne contient une astérisque, le champs devient non discriminant. ◼ 1ère : minutes (0-59) (*/5=toutes les 5 minutes) ◼ 2e : heures (0-23) ◼ 3e : jour du mois (1-31) ◼ 4e : mois (1-12) ◼ 5e : jour de la semaine (0-6,0 pour dimanche) ◼ 6e : nom de la commande ou du script K.benabbes 58 Gestion des Classification des processus processus ◼ Processus système: ◼ crontab accepte deux options: ◼ -l : lister les commandes déjà enregistrées ◼ -e : éditer la liste des commandes enregistrées. ◼ édition sous vi par défaut, pour sortir :wq, cf EDITOR ◼ Syntaxe: min heure_jour jour_mois mois_année jour_semaine action ◼ Exemple: $ crontab -l 20 3 8 * * /usr/local/bin/mon_script_de_sauvegarde 0 8 * * 0 /home/jpp/bin/recup_mail 59 A.ZELLOU Gestion des Classification des processus processus ◼ Processus utilisateurs: ◼ Lancés depuis un terminal donné à une date donnée ◼ exemple: login=lancement d’un processus qui exécute l’interpréteur de commandes (csh) ◼ Exemple: ◼ la commande sleep X : passer un certain délai entre deux commandes, permettra de différer de X secondes l'exécution de la commande suivante. $ echo debut;sleep 10;echo fin debut fin 60 A.ZELLOU Gestion des Interagir avec les processus processus ◼ Un processus est identifié avec son PID. ◼ ps affiche la liste des processus de l'utilisateur courant associé au terminal courant. ◼ Les options de ps : ◼ -e permet de lister tous les processus du système (et non ceux de l'utilisateur courant uniquement). ◼ -o permet de spécifier quelles sont les informations devant être affichées. 61 A.ZELLOU Gestion des Interagir avec les processus processus ◼ Remarque : ps n'indique pas tous les processus du système. ◼ -ax pour connaître tous les processus de la machine de tous les utilisateurs ◼ -aux pour connaître les utilisateurs associés à chaque processus ◼ USER, CPU pourcentage du microprocesseur, MEM pourcentage en mémoire vive, RSS mémoire réelle utilisée en kilobytes, START l'heure du lancement du processus. 62 A.ZELLOU Gestion des Interagir avec les processus processus ◼ Exemple $ps -e -o"%p %P %U %c" PID PPID USER COMMAND 1 0 root init 506 1 root syslogd 1411 1 root httpd 1456 1 root login 3713 1456 Tian bash 7083 3713 Tian ps ◼ Les processus ◼ init n'a pas de père ◼ syslogd pour l'enregistrement des messages d'information ou d'erreur, ◼ httpd le programme de serveur web 63 A.ZELLOU Gestion des Interagir avec les processus processus ◼ Exemple $ps -e -o"%p %P %U %c" PID PPID USER COMMAND 1 0 root init 506 1 root syslogd 1411 1 root httpd 1456 1 root login 3713 1456 Tian bash 7083 3713 Tian ps ◼ Les processus ◼ login pour la connexion sur terminal ◼ bash fils de login, c’est le shell lancé pour que l'utilisateur puisse interagir avec le système et finalement ◼ ps fils de bash. 64 A.ZELLOU Gestion des Lister les processus processus ◼ Signification des colonnes PID TTY STAT TIME COMMAND 341 p1 S 0 : 00 bash 344 p2 S 0 : 00 bash 1039 p3 S 0 : 00 bash 1219 p3 R 0 : 00 ps ◼ PID est l'identificateur du processus ◼ TTY indique à quel port de terminal est associé le processus. ◼ STAT indique l'état dans lequel se trouve le processus : S "sleep", et R "run”. ◼ TIME indique depuis combien de temps le processus utilise les ressources du microprocesseur. ◼ COMMAND précise la commande qui a lancé le processus. 65 A.ZELLOU Gestion des Interagir avec les processus processus ◼ top : il montre les processus en ordre décroissant d'utilisation du processeur (rafraîchit la liste toutes les 3 secondes). ◼ Il indique aussi l'utilisation mémoire ◼ quantité RAM, pourcentage CPU, durée de ce processus depuis son demarrage,... ◼ utile pour connaître les programmes consommateurs de ressources ◼ L'option –d spécifie des délais de rafraîchissement (en secondes) 66 A.ZELLOU Gestion des Interagir avec les processus processus ◼ Lorsque la commande top fonctionne, les lettres suivantes permettent de changer son fonctionnement : ◼ h : affiche l'aide ◼ q : quitte la commande top ◼ m : tri les processus par utilisation de la mémoire (du plus gourmand au plus sobre) ◼ p : tri les processus par utilisation du processeur (du plus gourmand au plus sobre) ◼ s : permet de changer la durée de rafraîchissement de top ◼ k : permet d'envoyer un signal (stopper) à un processus 67 A.ZELLOU Gestion des Interagir avec les processus processus ◼ A un processus donné peut être envoyé un signal. ◼ Les signaux offrent un mécanisme permettant d'envoyer un message à un processus en cours d'exécution. ◼ On se sert des signaux pour terminer un processus, lui indiquer de relire sa configuration, etc. ◼ Le concepteur du programme peut décider du comportement à adopter à la réception du signal. ◼ La partie du programme responsable de ceci est appelée gestionnaire de signal. ◼ Un signal est désigné soit par sa valeur numérique soit par son nom. ◼ Les valeurs numériques peuvent varier d'un système à un autre (vaut mieux utiliser le nom). 68 A.ZELLOU Gestion des Principaux signaux processus Signal Val Comportement par Description défaut SIGINT 2 Terminer le processus Il s'agit d'une demande venant du clavier, le plus souvent à l'aide la combinaison de touches Ctrl-C. SIGKILL 9 Terminer le processus Ce signal permet d'arrêter tout programme car il ne peut être géré différemment que le comportement par défaut. L'arrêt du programme est brutal. SIGUSR1 10 Terminer le processus Ce signal n'a pas de signification particulière. Il peut être utilisé de manière différente par chaque programme. SIGSEGV 11 Terminer le processus Ce signal est envoyé à un programme lorsque qu'il tente d'accéder à un endroit invalide en mémoire. SIGUSR2 12 Terminer le processus Identique à SIGUSR1. 69 Gestion des Principaux signaux processus Signal Val Comportement par Description défaut SIGTERM 15 Terminer le Si le programme n'a pas prévu de gérer ce processus signal, l'arrêt sera aussi brutal que pour SIGKILL. Mais comme le comportement par défaut peut être changé, le programme a la possibilité de réaliser des opérations avant de se terminer. SIGCHLD 17 Ignorer ce signal Envoyé à un processus dont un fils est arrêté ou terminé. SIGSTOP 19 Arrêter le processus Ce signal demande au processus de suspendre son exécution. Comme SIGKILL, ce signal ne peut être géré différemment. SIGCONT 18 Reprendre le Permet de faire se continuer un processus qui processus avait été arrêté par exemple à l'aide de SIGSTOP. 70 Gestion des Principaux signaux processus Signal Val Comportement Description par défaut SIGHUP 1 Relire la Pour beaucoup de services réseaux, la configuration réception du signal n°1 lui indique de lire sa configuration. Par exemple, cela permet d'indiquer au processus apache (serveur web) de relire sa configuration, sans avoir a arrêter et redémarrer le processus. 71 A.ZELLOU I II Processus III IV V VI Problématique Processus Interruption d’un processus ❖ Le processus peut être interrompu : ✔ interruptions externes: panne, intervention de l’utilisateur,… ✔ interruptions internes: Division par zéro, débordement de la mémoire, exécution d'une instruction non autorisée,.. ou quand une instruction effectue un appel système SYSTÈME D’EXPLOITATION Gestion des Interagir avec les processus processus ◼ Un utilisateur peut aussi envoyer des signaux grâce à la commande intégrée à bash, kill. ◼ Elle s'utilise en indiquant le numéro de signal à l'aide de l'option - s puis du PID du processus. Par exemple : $ kill -s SIGSTOP 256 ◼ Si l'on utilise kill sans spécifier de numéro de signal, c'est un SIGTERM qui sera envoyé. ◼ On peut connaitre le PID du processus en utilisant la commande ps, ou bien utiliser la commande pidof $ pidof cupsd >2571 $ kill -15 2571 73 A.ZELLOU Gestion des Interagir avec les processus processus ◼ La commande killall permet d'indiquer le nom du processus plutôt que son PID, et va envoyer le signal à tous les processus possédant ce nom. Exemple : $ xeyes & xeyes & xeyes & $ killall xeyes 74 A.ZELLOU Gestion des Gestion des jobs processus ◼ job : correspond à une tâche demandée par l'utilisateur et qui peut être composée de plusieurs ou d’un seul processus. ◼ C’est un regroupement de plusieurs commandes devant s'exécuter les unes à la suite des autres en communiquant leurs résultats. ◼ Par exemple : $ ls | less ◼ ls permet de lister les fichiers et less permet de paginer ce qui lui est passé sur son entrée standard. ◼ C'est l'équivalent de deux processus créés, un pour ls et l'autre pour less. ◼ Le bash fournit une abstraction permettant de manipuler ceci comme un tout, appelée job. 75 A.ZELLOU Gestion des Foreground/Background processus ◼ Le lancement d'un job bloque la console qui ne sera plus utilisable car le shell attendra la fin de l'exécution du job avant de laisser à nouveau la possibilité de lancer des commandes. ◼ Certains programmes ne rendent pas la main immédiatement (exemple : la compilation d'un gros programme). ◼ Pour pouvoir lancer un job en arrière-plan, il faut rajouter le symbole & à la fin de la définition de la tâche. Par exemple : shell $ gedit & ◼ Fonctionnement du shell: Attente commande shell 76 Gestion des Foreground/Background processus ◼ Lancement de processus en mode détaché: ◼ Dit aussi arrière plan ou batch ◼ Syntaxe: ‘&’ ◼ Contrainte: entrée standard inaccessible ◼ Si on a lancé une commande qui ne rend pas la main et que l'on a oublié de rajouter le &, on peut utiliser la méthode suivante : ◼ bg %n ◼ Taper ensuite la commande bg (background) pour qu'il s'éxecute en tâche de fond. ◼ fg %n ◼ La commande fg (foreground) permet de faire passer le programme en premier plan. 77 A.ZELLOU Gestion des Foreground/Background processus ◼ Il est possible de laisser tourner un processus lancé depuis la console même sans être connecté. ◼ On utilise la fonction nohup qui permet d'ignorer le signal SIGHUP lors de la déconnexion. ◼ $ nohup application & ◼ La sortie standard est automatiquement redirigée vers nohup.out dans le répertoire courant, sauf si un redirection est spécifiée. $ nohup application & > application.log 78 A.ZELLOU Gestion des Foreground/Background processus ◼ La commande nice: ◼ Elle permet de faire exécuter une tâche d’arrière plan à plus faible priorité que la normale ◼ Destinée aux tâches d’arrière plan effectuant beaucoup de calcul ◼ Syntaxe: nice commande … & Ex: # nice -15 commande #renice -15 -u khalid 79 A.ZELLOU Gestion des Foreground/Background processus ◼ La commande wait: ◼ Elle demande au shell d’attendre la fin des tâches d’arrière plan pour continuer son exécution ◼ Syntaxe: wait ◼ Stopper un processus: ^Z 80 A.ZELLOU Gestion des Foreground/Background processus ◼ CPULimit est un utilitaire qui permet de limiter la ressource CPU utilisée par un processus yum (apt-get) install cpulimit ◼ La syntaxe est la suivante : cpulimit --pid --limit ◼ est le pid du processus cible, et la limitation effective en pourcentage (maximum 100%) ◼ Exemple : $ cpulimit --pid 2960 --limit 55 81 A.ZELLOU I II Processus III IV V VI Problématique Processus Arrêt de processus Arrêt normal par appel d'une primitive système de fin de processus Arrêt sur erreur volontaire par appel d'une primitive système Arrêt sur erreur involontaire ou sur erreur fatale : le SE décide d'arrêter le processus Arrêt par un autre processus ou par l'utilisateur Remarque : quand un processus s'arrête, le SE peut arrêter tous les processus qu'il a créé ou pas (UNIX et Windows ne le font pas). SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Hiérarchie de processus Sous UNIX tout processus a un père => arbre Sous UNIX tout processus a un numéro (pid) Sous Windows ils ont un numéro (pid) mais sont « à plat ». Le processus qui en crée un autre récupère une info qui lui permet de le piloter (l'arrêter par exemple). SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Vue des processus (Windows) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Echange des données entre processus SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Gestion des processus fils (TP) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Gestion des processus fils (TP) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Définition -Le processus léger constitue une extension du modèle traditionnel de processus. Un processus classique est constitué d'un espace d'adressage avec un seul fil d'exécution, ce fil d'exécution étant représenté par une valeur de compteur ordinal et une pile d'exécution. Un processus léger (thread) est un espace d'adressage dans lequel plusieurs fils d'exécution peuvent évoluer en parallèle. Ces fils d'exécution sont chacun caractérisés par une valeur de compteur ordinal propre et une pile d'exécution privée. -Rattaché à un processus et chargé d’exécuter une partie du processus. N.B : L’espace d’adressage d’un processus est la mémoire à laquelle il a accès pour fonctionner. SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Processus lourd ✔ Leur création nécessite des appels systèmes coûteux en temps, ✔ Le changement de contexte entre processus est une opération lente, en particulier pour de nombreux transferts en mémoire, ✔ Le coût des mécanismes de protection associés au processus, ✔ L'interaction, la synchronisation ou la communication entre processus nécessite l'utilisation de mécanismes de communication spéciaux (tube communicant appelé "pipe"), ✔ Le partage de mémoire entre processus s'effectue par ajout de mécanismes lourds (bibliothèque de partage de mémoire) ✔ Un processus peut être considéré comme un ensemble de ressources (espace d’adressage, fichiers, périphériques…) partagés par ses threads. ✔ Un processus peut avoir plusieurs threads qui font plusieurs taches à la fois SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Processus légers ou les threads - Lorsqu’un processus est créé, un seul thread est associé au processus. – Ce thread peut en créer d’autres. Chaque thread a : – un identificateur unique – Un compteur ordinal – Des registres (nouveau jeu de registre) – une pile d'exécution SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Processus légers ou les threads ✓ Traditionnellement, un processus a un seul thread (heavyweight) ✓ Un processus peut avoir plusieurs threads qui font plusieurs taches à la fois Dans le cas d’une application disposant de plusieurs processus légers (threads) : La mémoire est partagée par toutes les threads : Communication simplifiée. La création d’un processus léger est rapide. Les processeurs actuels sont conçus pour faciliter l’exécution de plusieurs processus légers en parallèle. Les différents processus légers doivent collaborer pour échanger des informations. Les Threads ne consomment que très peu de ressources (la taille d'un processus léger se compte en Kilo-octets, celle d'un processus lourd en Méga-octets) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Processus monothread vs. multithread ✔ Les threads situés dans un même processus partagent les mêmes variables générales de données et les autres ressources allouées au processus englobant. ✔ Un thread possède en propre un contexte d'exécution (registres du processeur, code, données) SYSTÈME D’EXPLOITATION I II Processus III IV V VI Problématique Processus Thread Exemple d’utilisation des Threads Un serveur web – doit accepter les requetes du client pour des ressources comme des pages web, images, son, etc. – Peut servir plusieurs clients en parallèle Si le serveur web est conçu comme processus avec un seul thread – Il serait capable de servir un seul client à la fois seulement (temps d’attente) Le serveur web peut avoir un thread qui écoute les requetes. SYSTÈME D’EXPLOITATION Chapitre 3: L’ordonnancement des processus SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Les concepts de base de processus Les fonctionnalités du système d’exploitation en matière de gestion de processus: La création, suppression et interruption de processus L’ordonnancement des processus afin de décider d’un ordre d’éxécution équitable entre les utilisateurs La synchronisation entre les processus ainsi que la communication La gestion des conflits d’accès aux ressources partagées La protection des processus d’un utilisateur contre les actions d’un autre utilisateur. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Chaque fois, que le processeur devient inactif, le système d’exploitation doit sélectionner un processus de la file d’attente des processus prêts, et lui passe le contrôle. D’une manière plus concrète, cette tache est prise en charge par deux routines en l’occurrence le Dispatcheur et le Scheduleur (Ordonnanceur) Dans un système multitâche plusieurs processus sont en cours d’exécution simultanément, mais le processeur ne peut, à un moment donné, exécuter qu’une instruction (d’un programme) à la fois. Le processeur travaille donc en temps partagé SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Définitions L’ordonnanceur (scheduler) désigne la partie du système d'exploitation choisissant un processus parmi d’autres prêts pour lui affecter le processeur, c-à-d la partie responsable de régler les états des processus (prêt, actif,…etc.) et de gérer les transitions entre ces états. C’est le module du SE qui s’occupe de sélectionner le processus suivant à exécuter parmi ceux qui sont prêts. L'ordonnancement est à la base de la multiprogrammation. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Définitions Le Dispatcheur: il s’occupe de l’allocation de 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 Maitre (mode d’exécution du processeur 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. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Définitions Une file d’attente pour les processus prêts pour accéder à l’UCT Une file d’attente pour les processus en attente d’un périphique ou E/S SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Types d’ordonnanceur Certains systèmes d’exploitation utilisent une technique d’ordonnancement à deux niveaux qui intègre trois types d’ordonnanceurs: ✔ Le scheduleur à long terme ( ou scheduleur de travaux) ✔ Le scheduleur à court terme (ou scheduleur de la CPU) ✔ Le scheduleur à moyen terme SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Types d’ordonnanceur ✔ Le scheduleur à long terme ( ou scheduleur de travaux) ⮚ Sélectionne le processus qui doit aller dans la file de processus prêts ⮚ S’exécute moins fréquemment: peut être lent (secondes, minutes) ⮚ Contrôle le degré de multiprogrammation (le nombre de processus dans la mémoire) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Types d’ordonnanceur ✔ Le scheduleur à court terme (ou scheduleur de la CPU) ⮚ Choisit parmi les processus prêts celui à être exécuter (alloue la CPU à lui) ⮚ Appelé assez fréquemment : doit être rapide SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Types d’ordonnanceur ✔ Le scheduleur à moyen terme ⮚ Sélectionne le processus (en mémoire auxiliaire partiellement exécuté) déjà admis à débarquer(les transférer vers la RAM) ou rembarquer (les sortir de la RAM vers la mémoire auxiliaire).sur la mémoire ⮚ Il effectue ses tâches de gestion en fonction du degré de multiprogrammation du système, et aussi des requêtes d’E/S des périphériques SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement ✔ Le scheduleur à moyen terme SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Objectifs d’un Ordonnanceur Les objectifs d’un Ordonnanceur sont : ✔ Maximiser l’utilisation du processeur, ✔ Présenter un temps de réponse acceptable ✔ Respecter l’équité entre les processus selon le critère d’ordonnancement utilisé SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Nous distinguons plusieurs algorithmes d’ordonnancements, les plus répondus sont: ✔ Ordonnancement Premier Arrivé Premier Servi (FIFO) ✔ Ordonnancement du plus court d’abord ✔ Ordonnancement circulaire: Tourniquet ✔ Ordonnancement circulaire à plusieurs niveaux ✔ Ordonnancement avec priorité SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Les algorithmes d’ordonnancement se distinguent les uns des autres du fait que certains autorisent la réquisition de l’unité centrale alors que les autres l’interdisent. La réquisition est la possibilité de retirer à n’importe quel instant le processeur à un processus même si ce dernier est en cours d’exécution. Pour représenter schématiquement l’évolution dans le temps des processus, on recourt habituellement a des diagrammes de Gantt. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Types d’algorithmes d’ordonnancement Les algorithmes d’ordonnancement (scheduleur) peuvent être classés en deux catégories : ✔ Non préemptif : ⮚ Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il bloque (soit sur une E/S, soit en attente d’un autre processus) où qu’il libère volontairement le processeur ⮚ Même s’il s’exécute pendant des heures, il ne sera pas suspendu de force ⮚ Aucune décision d’ordonnancement n’intervient pendant les interruptions de l’horloge ✔ Préemptif : ⮚ Sélectionne un processus et laisse s’exécuter pendant un délai déterminé ⮚ Si le processus est toujours en cours à l’issue de ce délai, il est suspendu et le scheduleur sélectionne un autre processus à exécuter SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Un algorithme d’ordonnancement permet d’optimiser une des grandeurs temporelles suivantes: ✔ Le temps de rotation moyen décrit la moyenne des dates de fin d’exécution: Avec TRi=date fin – date arrivée [Date de fin : le moment où le processus termine complètement son exécution. Date d'arrivée : le moment où le processus entre pour la première fois dans le système (ou est soumis au système)]. ✔ Le temps d’attente moyen est la moyenne de délais d’attente pour commencer une exécution Avec TAi= TRi - temps d’exécution SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement File d’attente SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement FCFS (First Come First Served) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement FCFS (First Come First Served) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Exemple : Processus Cycle CPU (Temps d’exécution) Date d’arrivée P1 8 0 P2 4 1 P3 5 2 P4 9 3 FIFO Donner le diagramme de Gantt ? Diagramme de Gantt : décrire l’évolution de l’utilisation des processus. 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU (Temps d’exécution) Date d’arrivée Exemple : P1 8 0 P2 4 1 P3 5 2 P4 9 3 Calculer TRM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU (Temps d’exécution) Date d’arrivée Exemple : P1 8 0 8-0 P2 4 1 12-1 P3 5 2 17-2 P4 9 3 26-3 Calculer TRM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU (Temps d’exécution) Date d’arrivée Exemple : P1 8 0 8 P2 4 1 11 P3 5 2 15 P4 9 3 23 Calculer TRM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU (Temps d’exécution) Date d’arrivée Exemple : P1 8 0 8 P2 4 1 11 P3 5 2 15 P4 9 3 23 Calculer TRM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU (Temps d’exécution) Date d’arrivée Exemple : P1 8 0 P2 4 1 P3 5 2 P4 9 3 Calculer TAM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU Date d’arrivée Exemple : P1 8 0 8 ? P2 4 1 11 ? P3 5 2 15 ? P4 9 3 23 ? FIFO Calculer TAM? 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Processus Cycle CPU Date d’arrivée Exemple : P1 8 0 8 0 P2 4 1 11 7 P3 5 2 15 10 P4 9 3 23 14 Calculer TAM? FIFO 8 4 5 9 P1 P2 P3 P4 0 8 12 17 26 SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement SJF (Shortest Job First) : SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Exemple: SJF (Shorest Job First) non préemptif: SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement SJF (Shorest Job First) : Exercice: Cinq travaux A, B, C, D et E arrivent pratiquement en même temps dans un centre de calcul. Leur temps d’exécution respectif est estimé à 10, 6, 2, 4 et 8 secondes. Tracez le digramme de Gantt et déterminez le temps moyen de rotation pour chacun des algorithmes d’ordonnancement suivants. Ne tenez pas compte du temps perdu lors de la commutation des processus SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement à tourniquet (Round-Robin) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement à tourniquet (Round-Robin) Appelé aussi ordonnanceur circulaire, dans cet algorithme les processus sont rangés dans une file d'attente des éligibles, le processeur est alloué successivement aux différents processus pour une tranche de temps fixe Q appelé Quantum SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Caractéristiques: Ordonnancement à tourniquet (Round-Robin) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement à tourniquet (Round-Robin) Cet Ordonnancement est régit par les règles suivantes: 1. Un processus qui rentre dans l’état éligible est mis en queue de la file d'attente des prêts. 2. Si un processus élu se termine ou se bloque avant de consommer son quantum de temps, le processeur est immédiatement alloué au prochain processus se trouvant en tête de la file d'attente des prêts. 3. Si le processus élu continue de s'exécuter au bout de son quantum, dans ce cas le processus sera interrompu et mis en queue de la file d'attente des prêts et le processeur est réquisitionné pour être réalloué au prochain processus en tête de cette même file d’attente. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Example: RR (Quantum = 20) SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement à tourniquet (Round-Robin) Caractéristiques de l’Ordonnanceur RR ✔ Avec réquisition ✔ Adapté aux systèmes temps partagé. ✔ La stratégie du tourniquet garantit que tout processus est servis au bout d’un temps fini. Son avantage est d’éviter la famine. On dit qu'un processus est en famine lorsqu'il est prêt à être exécuté et se voit refuser l'accès à une ressource (ici le processeur) pendant un temps indéterminé ✔ L’efficacité de cet ordonnanceur dépend principalement de la valeur du quantum Q: ⮚ Le choix d'un Q assez petit augmente le nombre de commutation. ⮚ Le choix d'un Q assez grand augmente le temps de réponse du système SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement à tourniquet (Round-Robin) Exercice: Cinq travaux A, B, C, D et E arrivent pratiquement en même temps dans un centre de calcul. Leur temps d’exécution respectif est estimé à 10, 6, 2, 4 et 8 secondes. Tracez le digramme de Gantt et déterminez le temps moyen de rotation pour chacun des algorithmes d’ordonnancement suivants. Ne tenez pas compte du temps perdu lors de la commutation des processus SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Ordonnancement avec Priorité L’algorithme round robin permet une répartition équitable du processeur. Cependant il n’est pas intéressant si certains processus sont plus importants ou urgents que d’autres. L’ordonnanceur à priorité attribue à chaque processus une priorité. Le choix du processus à élire dépend des priorités des processus prêts. Les processus de même priorité sont regroupés dans une file du type FIFO. Il y a autant de files qu’il y a de niveaux de priorité. L’ordonnanceur choisit le processus le plus prioritaire qui se trouve en tête de file. En général, les processus de même priorité sont ordonnancés selon l’algorithme du tourniquet. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Caractéristiques : Ordonnancement avec Priorité Ordonnancement avec ou sans réquisition Un processus de priorité basse risque de ne pas être servi (problème de famine) -> Nécessité d’une priorité dynamique SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Caractéristiques : Ordonnancement avec Priorité Types de priorités : 1. Priorité statique : 1. Fixée au moment de la création du processus. 2. Ne change pas pendant la durée de vie du processus. 2. Priorité dynamique : 1. Peut changer en fonction de facteurs tels que le temps d'attente, la consommation CPU, ou l'interaction avec l'utilisateur. Ordonnancement avec ou sans réquisition Un processus de priorité basse risque de ne pas être servi (problème de famine) -> Nécessité d’une priorité dynamique SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Caractéristiques : Ordonnancement avec Priorité Prio(3)>Prio(1)>Prio(4)>Prio(2) Considérez les processus suivants avec leurs temps d'arrivée, temps d'exécution et priorités (plus la valeur est grande, plus la priorité est élevée) : Effectuez l'ordonnancement des processus selon la méthode par priorité préemptive. 1.Dessinez un diagramme de Gantt pour l’algorithme de priorité 2.Calculez : 1. Temps de rotation de chaque processus. 2. Temps d'attente de chaque processus. 3. Temps de Rotation moyen. SYSTÈME D’EXPLOITATION I II III L’ordonnancement des processus IV V VI Introduction Généralités Algo. d’ordonnancement Caractéristiques : Ordonnancement avec Priorité 1) 2) p1=13 -0 p2=22-1 3) p1=13-5 P3=10-2 p2=21- P4=20-3 P3=8-8 P4=17- 6 SYSTÈME D’EXPLOITATION Gestion de mémoire SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Résultat Stratégie d'allocation de la mémoire ⮚ Savoir quelles zones sont libres et quelles zones sont utilisées. ⮚ Règles d'allocation : qui obtient de la mémoire, combien, quand, etc. ⮚ Techniques d'allocation – choix des lieux d'allocation et mises à jour des informations d'allocation. ⮚ Règles de désallocation : à qui reprendre de la mémoire, quand, etc. SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Résultat Stratégie d'allocation de la mémoire ⮚ Savoir quelles zones sont libres et quelles zones sont utilisées. ⮚ Règles d'allocation : qui obtient de la mémoire, combien, quand, etc. ⮚ Techniques d'allocation – choix des lieux d'allocation et mises à jour des informations d'allocation. ⮚ Règles de désallocation : à qui reprendre de la mémoire, quand, etc. SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Résultat Stratégie d'allocation de la mémoire La mémoire est le lieu ou se trouvent les programmes en cours d’exécution (Processus). La taille continuellement grandissante des programmes ==> insuffisance de mémoire. La gestionnaire de la mémoire est la partie qui se charge de : Connaitre les parties libres de la mémoire. Récupérer la mémoire libérée. Offrir au processus des services de mémoire virtuelle. Mémoire du cache: volatile, rapide, chère Mémoire centrale: volatile, moins rapide, moins chère Mémoire de masse - disque: non volatile, lente, moins chère SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Mono-programmation Monopolisation de la mémoire par un seul processus. Gestion simple de la mémoire (seulement deux zones). SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Mono-programmation Système de gestion simple La mémoire est divisée entre le SE et les processus utilisateur. Le SE est protégé des programmes de l'utilisateur (pour éviter que l'utilisateur n'écrive sur le code du SE). Avantages : ⮚ Simplicité ⮚ SE très réduit Inconvénients : ⮚ Mauvaise utilisation de la mémoire (un seul processus) et du processeur (attente des E/S). ⮚ Manque de flexibilité : les programmes sont limités à la mémoire existante. SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Processus 3 Multi-programmation Processus 2 Présence de plusieurs processus en mémoire. o Maximiser le degré de multiprogrammation. Processus 1 o Meilleure utilisation de la mémoire et du CPU. SE Deux problèmes : o Réallocation. Partition 3 o Protection. Partition 2 Partition 1 SE SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Méthodes d’allocation Pour un espace donné on peut choisir deux modes d’allocation : ▪ Allocation contiguë : consiste à placer la totalité d’un programme à des adresses consécutives ▪ Allocation non contiguë : consiste à fractionner le programme et à placer les différents fragments à des adresses dispersées SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Techniques de gestion Divers types de gestion de la mémoire ont été utilisés. Dans l'allocation contiguë Partitionnement statique ⮚ Partitions fixes Partitionnement dynamique ⮚ Partitions variable Dans l’allocation non contiguë Segmentation Pagination simple Pagination à la demande Les systèmes récents utilisent la mémoire virtuelle SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Partitionnement statique Partition 7 Méthode la plus simple : Partition 6 o La mémoire est partagé en plusieurs partitions de la même taille. Partition 5 o Chaque partition peut contenir un processus (limite du nombre de processus au Partition 4 nombre de partitions). Partition 3 o Quand une partition est libérée, un autre processus est choisi. Partition 2 Partition 1 SE SYSTÈME D’EXPLOITATION I II III IV Gestion de mémoire V VI Introduction Stratégie d'allocation de la mémoire Partition 7 Partition 6 Partitionnement statique Partition 5 Deuxième organisation de l'allocation contiguë : o Les partitions sont soit de même taille ou de tailles inégales Partition 4 o N’importe quel programme peut être affecté à une partition qui soit suffisamment