GEF 435 Principes des systèmes d’exploitation

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes d’exploitation
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Appels de système (Tanenbaum 1.6)
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
Gestion de la mémoire Chapitre 3.
Chapitre 4 Gestion de la Mémoire
Exercices Algorithmiques
Mémoire & Processus Cours SE - SRC
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
Allocation de la mémoire Tâche à faire Attribuer de lespace mémoire Charger Code et Données Exécuter La tâche -Tenir à jour une carte de lespace libre/occupé.
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Hiérarchie de la mémoire
Présentation Structures de Données et TDA
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Organisation des Fichiers pour la Performance
Qu’est-ce qu’un système d’exploitation ?
Cours de Systèmes d’exploitations
Programmation linéaire en nombres entiers
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
GF-11: Tri Interne Efficace et Tri Externe
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
GF-4: Storage Secondaire: Disques
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Architecture et technologie des ordinateurs II
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Ordinateurs, Structure et Applications
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Chapitre 5 Configuration et gestion des systèmes de fichiers Module S41.
BABAR Georges Vasseur CEA Saclay, DSM/IRFU/SPP Workshop sur l’analyse des données au centre de calcul de Lyon 17 avril 2008.
Transcription de la présentation:

GEF 435 Principes des systèmes d’exploitation Gestion de la mémoire de base et permutation (va-et-vient, process swapping) (Tanenbaum 4.1 & 4.2)

Revue Qu’est-ce qu’un état sécuritaire? Quelle est la différence entre l’évitement et la prévention des interblocages? A safe state is one in which all processes can request their maximum resources and no deadlock will occur The difference: in avoidance you allocate resources carefully so as to avoid a dangerous state. In prevention you try and design a system such that you break one of the four conditions required for deadlock: mutual exclusion hold and wait no preemption circular wait

Synopsis Synopsis de la gestion de la mémoire Base de la gestion de la mémoire Monoprogrammation Multiprogrammation avec partitions fixes Permutation (Swapping) Gestion: Management: Tableaux de bits (Bitmaps) vs. Listes chaînées

La loi de Parkinson “Les programmes s’accroissent pour remplir la mémoire disponible qui leur est réservée’’

Synopsis de la gestion de la mémoire Pourquoi avons-nous besoin de la gérer la mémoire? Combien peut-on adresser de mémoire pour un processus dans Windows XP? 4 GB (232 bits) Est-ce que la plupart des ordinateurs PC à la maison ont autant de RAM? Qu’est-ce que les SE font quand ils exécutent des programmes qui demandent de la mémoire qui excède leurs capacités? Une partie du programme est permuté au disque (swapped)

Synopsis de la gestion de la mémoire On a besoin de quelque chose pour gérer le mouvement des programmes entre le(s) disque(s) et la mémoire (ou en général: pour gérer la hiérarchie de mémoire). La partie du système d’exploitation qui fait cela s’appel le gestionnaire de mémoire.

Synopsis de la gestion de la mémoire Est-ce que la multiprogrammation vaut la peine de faire de la gestion de mémoire? Considérez un nombre de processus qui attendent pour les E/S en moyenne de 80% du temps La probabilité que n processus vont tous attendrent pour des E/S en même temps est pn. Ce qui veut dire que l’utilisation du CPU pour n processus est 1-pn (p est le % d’E/S) Cinq processus en mémoire avec 80% d’attente pour les E/S donne une utilisation du CPU de 1-(0.8)5 = 67% (assumant que le temps de changement de contexte est négligeable) Beaucoup mieux que 20% pour un processus simple! Other simplifications are made for this model as well: it assumes that the processes are independent, meaning that they can be run simultaneously. But the model we have here is sufficient to prove that there are definite benefits to multiprogramming

Synopsis de la gestion de la mémoire Les processus avec un temps d’attente pour les E/S en excès de 80% ne sont pas rares!

Synopsis de la gestion de la mémoire En premier on considère deux systèmes simples: Monoprogrammation Partitions fixe En grande part, utile pour les systèmes de lots (batch) Quand les processus sont chargés en mémoire ils exécutent jusqu’à la terminaison

Synopsis de la gestion de la mémoire Monoprogrammation sans permutation ou pagination L’arrangement le plus simple possible Seulement un programme va exécuter à la fois Le SE copie le programme du disque en mémoire et l’exécute. Quand c’est fini, le SE est prêt à accepter une nouvelle commande de l’utilisateur Les nouvelles commandes écrase le dernier programme en mémoire avec le nouveau Trois configurations, prochaine diapositive

Synopsis de la gestion de la mémoire Windows 3.1 was very much to DOS like my custom scheduler is to uC/OS-II Note that for (c) that the device drivers in ROM is the BIOS (Basic Input Output System) a) Rarement utilisé de nos jours b) Utilisé dans les baladeurs MP3, les ordinateurs de poche (Palm) c) Était le modèle initiale pour les PCs, ex: DOS

Synopsis de la gestion de la mémoire Multiprogrammation avec partitions fixes Pour exploiter les bénéfices de la multiprogrammation nous avons besoin d’avoir plus d’un programme en mémoire à la fois Solution simple (pour les systèmes de lots): diviser la mémoire en n partitions (possiblement égales), et de mettre la prochaine job qui arrive dans la plus petite partition qui peut la contenir (ou dans la queue pour cette partition) Désavantage: Il y a une perte d’espace de mémoire parce que les partition sont fixes; toute l’espace non utilisée par une job est perdu

Synopsis de la gestion de la mémoire L’image montre un autre désavantage: Parce que nous utilisons des queues multiples, nous avons des attentes sur certaines partitions et certaines partitions sont complètement inutilisées! Une queue simple donne normalement un service supérieur (tout comme dans une banque)

Synopsis de la gestion de la mémoire Plusieurs stratégies pour choisir les jobs: Permettre à la job la plus proche du front et qui peut entrer dans une partition libre d’exécuter Chercher dans toute la queue pour la job la plus large qui entre dans l’espace On doit garder une petite partition pour que les petites jobs puissent exécuter! That last point is important: if you always chose the largest job that fits then you are discriminating against the smaller jobs....they may NEVER get to run. Another way out of the situation would be to allow a process to be skipped over only k times and mark it each time it is skipped. Few, if any OSs use this model for multiprogramming anymore.

Permutation Les systèmes antérieurs étaient plus simples parce que quand les programmes étaient chargés en mémoire, ils étaient laissés là jusqu’à la terminaison Dans un système à temps partagé nous ne pouvons pas choisir combien de processus nous gardons en mémoire pour garder le CPU occupé… maintenant les utilisateurs décident combien de processus exécutent Quand nous n’avons pas assez de mémoire principale existante pour garder touts les processus actifs en mémoire, nous devons les permuter entre la mémoire principale et le disque... One solution we’ll see today is called swapping because we’ll be moving entire processes into and out of memory. Next class we’ll see virtual memory, which will solve the problem in a superior, but more complicated, way.

Permutation La permutation d’un processus consiste à amener un processus du disque à la mémoire dans son entièreté. Le processus est exécuté pour un temps et remis sur le disque Show them how the process works

Permutation La différence entre ce système et les partitions fixes est que le nombre, la location et la grandeur des partitions varient dynamiquement Avantages: Une solution bien plus flexible Une meilleur utilisation de la mémoire Désavantages: Plus compliqué à implémenter Il peut y avoir des “trous” laissés dans la mémoire, qui peuvent être compactés pour corriger le problème Note about the compaction: on a machine with 256MB that can copy 4 Bytes in 40ns, it would require about 2.7s to compact the memory We will not study how holes are dealt with in this course.

Permutation – Combien de mémoire Combien de mémoire devrait-on assigner à un processus quand il est permuté dans la mémoire? Si une grandeur de données fixe peut être déterminé alors cette grandeur exacte est allouée Cependant, si un processus a une pile et/ou un tas (heap), alors nous devons allouer de l’espace pour grandir pour empêcher d’avoir à déplacer le processus continuellement dans la mémoire

Permutation – Combien de mémoire Note that if the growth area runs out then the process will have to swapped to another location in memory or to the disk until a large enough space can be created. Segment de données Segment de données et pile

Permutation - Gestion Comment est-ce que l’on trace où les processus sont dans la mémoire et où est-ce qu’il y a de la mémoire pour les chargés? Deux méthodes: Tableaux de bits et listes chaînées

Permutation - Gestion Gestion de la mémoire avec tableaux de bits: Divise la mémoire en unités d’allocation tel que 4 octets ou plusieurs kilooctets Utilise un tableau de bits avec des 1 pour désigner les unités alloués et des 0 pour désigner les unités libres De quelle grandeur sont nos unités d’allocation?

Permutation - Gestion

Permutation - Gestion Gestion de la mémoire avec tableaux de bits: La plus petite est l’unité d’allocation, le plus grand sera le tableau de bits correspondant Cependant, même avec des unités de 4 octets (32 bits) on perd seulement 1/33 de la mémoire Les unités qui sont larges nous font perdre la fin de la dernière unité, ex: pour un unité de 64KO, si nous avons un programme qui a 65KO, alors nous perdons 63 kilooctets! Cependant, nous avons réduit le tableau de bits à seulement 1/512001 = 1.9x10-4% de la mémoire

Permutation - Gestion Gestion de la mémoire avec tableaux de bits: Avantages: Facile à implémenter Le tableau de bits est de grandeur fixe peu importe combien de programme sont en mémoire Désavantage Peut prendre du temps pour chercher dans le tableau pour trouver une série de 0 consécutifs pour placer un programme

Permutation - Gestion Gestion de la mémoire avec des listes chaînées: Utilise une liste chaînée pour tracer les “segments” Segments sont ou bien un processus ou un trou entre les processus – commode de trier par adresses Avantage: moins de recherche à faire Note how the list is sorted by the address at which the segment begins (“Starts at...”)

Permutation - Gestion Comment est-ce que l’on utilise les listes chaînées pour gérer les processus qui quittent la mémoire? On combine simplement le nouveau trou avec les trous adjacent:

Permutation - Gestion Comment est-ce que les nouveaux processus sont placés en mémoire? Premier segment (first fit) – Trouve le premier segment vide qui est assez large pour tenir le processus et on brise le segment en un segment de processus et un segment de trou (plus petit que le dernier) Prochain segment (Next fit) – Un amélioration simple sur premier segment. Dénote la place où le dernier programme a été inséré et commence à regarder là Donne une petite augmentation de performance sur le premier segment (simulation Bays)

Permutation - Gestion Comment est-ce que les nouveaux processus sont placés en mémoire? Plus grand segment (Worst fit) – Au lieu de prendre un segment qui fait juste et de le briser en laissant un petit trou presque inutilisable; on trouve le trou le plus grand pour laisser un trou maximum pour le autres processus Simulations montre que ce choix n’est pas bon du tout Placement rapide (Quick fit) – On garde les segments tel que 4KB, 8KB, etc dans une table séparée pour une localisation facile des trous Bon pour l’allocation, mais lent pour la dé-allocation parce que plusieurs listes doivent être réconciliés

Permutation - Gestion Note finale sur les listes: on pourrait garder des listes séparées pour les trous et les processus Accélère la recherche de trous! Permet d’ordonner les trous par grandeur pour un allocation encore plus rapide!! Nous laisse utiliser les trous même pour stocker les pointeurs pour voyager d’un trou à un autre!!! Plus compliqué pour la dé-allocation parce que la mémoire qui devient un trou doit être placée dans le bon espace sur l’autre liste (en ordre)...

Questions? Quiz Time! Why do we want to multiprogram? Allows us to increase the amount of CPU usage In a fixed partition system, what are the two ways in which processes can be placed into memory? Find the free partition just large enough to hold the process and put it in line Use a shared queue and as spaces become free, place the process closest to the front of the line that will fit into that partition How long does a process run in a fixed partition system? Typically until completion