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
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)
GEF 243B Programmation informatique appliquée
Introduction. Les pointeurs Bête noir des programmeurs Pas daide de Visual Studio Sauf en utilisant les « break point » Pas toujours intuitif Facile de.
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 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 243B Programmation informatique appliquée
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 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
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 Types dérivés, structures et tableaux §
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
Simple OS La Pagination
Mémoire & Processus Cours SE - SRC
Les réseaux informatiques
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Système d’exploitation : Assembleur
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
Architecture des Ordinateurs
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é.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-10541
Principes de programmation (suite)
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
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.
Rappels sur les systèmes d’exploitation
Cours de Systèmes d’exploitations
SYSTÈME D’EXPLOITATION I
Exemples complexes Impression à partir d’autres applications (non-windows) On doit imprimer des étiquettes avec des contenus variables automatiquement.
Tutorat en bio-informatique
Fonctions avancées et graphiques
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
Module 7 Gestion de la mémoire
Architecture et technologie des ordinateurs II
Chapitre 4 La représentation des nombres.
Ordinateurs, Structure et Applications
ALLOCATION DU CPU et GESTION DES TRAVAUX.
CHAPITRE 10 Les sous-programmes 1. Sous-programme Suite d’instructions appelée de manière répétitive Par un programme Par plusieurs programmes distincts.
CSI 3531 Systèmes d’exploitation Nathalie Japkowicz 1.
Transcription de la présentation:

GEF 435 Principes des systèmes d’exploitation Segmentation (Tanenbaum 4.8)

Revue Qu’est-ce que l’anomalie de Belady? Quelle classe d’algorithmes ne souffre pas de l’anomalie de Belady? Pourquoi ces algorithmes ne souffrent pas de l’anomalie de Belady? Belady’s anomaly is the counterexample that showed some PRAs may have more page faults with more page frames than with less for particular reference strings The class of algorithms that do not suffer from Belady’s anomaly are called stack algorithms They don’t suffer from it since the pages in memory for x page frames at point r in a reference string are a subset of the pages in memory for x+1 page frames at the same reference point.

Synopsis Revue de la gestion de la mémoire Segmentation Segmentation avec pagination Utilisation dans les systèmes réels

L’histoire jusqu’à maintenant... Gestion de la mémoire: Monoprogrammation Multiprogrammation avec partitions fixes Même grandeur pour toutes les pages Différente grandeur (file(s) d’attente unique ou multiples) Permutations (multiprogrammation avec partition variables– tableaux de bits/listes chaînées) Mémoire virtuelle Pagination Tables de pages multiniveaux Répertoire des pages actives (RPA - Translation look-aside buffers) Table de pages inversée Algorithmes de remplacement de pages

L’histoire jusqu’à maintenant... La solution de la mémoire virtuelle jusqu’à maintenant est la pagination La pagination est un modèle de gestion de la mémoire qui est “plat” ce qui veut dire que les programmeurs voient les adresses qui commencent à 0 jusqu’à une adresse maximum Pour certaines applications, il pourrait être utile de permettre différents espaces de mémoire à l’intérieur d’un seul processus... Par exemple, dans un programme il pourrait y avoir des espaces de mémoire distincts pour le texte du programme, la pile et le tas

Rappel: Permutation Avec les permutations, des processus entiers sont déplacés entre le disque et des partitions de mémoire. Si les partitions ne sont pas de grandeur fixe, la fragmentation peut se produire Ask them about compaction.

Segmentation Similairement, la segmentation est une division de mémoire en segments, chacun commençant à une adresse de base dans la mémoire physique. Chaque processus peut avoir plusieurs segments Le programmeur doit maintenant spécifier un numéro de segment et un offset pour accéder à la mémoire Ceci signifie que le programmeur doit avoir connaissance du modèle de mémoire (au moins au niveau assembleur) contrairement à la pagination Référé en tant que mémoire à deux dimensions

Segmentation segment 0 segment 1 segment 2 segment 4 segment 3 1400 2400 3200 4300 4700 5700 6300 6700 Segmentation segment 0 segment 3 segment 2 segment 4 segment 1 Sous-routine segment 0 pile Programme principal limite base 1000 1400 1 400 6300 2 4300 3 1100 3200 4 4700 segment 1 Racine carrée segment 2 This diagram is from Silberschatz & Galvin It shows only for a single process how memory may be divided, but of course with larger memory we could have segments from other processes in at the same time. Note that Tanenbaum states that the advantage of segmentation is that segments can change size easily. If you run out of space in your stack, the segment can easily grow. As should be obvious from the diagram, it may not be that simple if segments are touching. They could be shuffled around in memory, but that would be at great expense... Table de symboles segment 4 segment 3 Espace d’adresses logiques Mémoire physique

Segmentation Comment est-ce que les adresses sont traduites? Mémoire limite base Table de segments Adresses logiques Segment Offset Mémoire Physique offset < limite? This is another diagram from Silberschatz and Galvin. Note how similar it is to our solution for paging. Instead of a page table, we have a segment table. The address is broken up into two pieces, just like with paging. The difference is that the addresses translated in a single segment result in linear addresses through physical memory. Increasing your virtual address when paging results in different pages continually and completely different locations in physical memory. Note also, that just like paging, a system may be developed with a large number of segments. In this case, the segment table may need to be kept in memory or even on disk. A Translation Lookaside buffer may be employed as with paging so segment lookups do not have to occur frequently. Finally, note that checking will have to be done to ensure a program is not trying to access another process’ memory. This can be done by having a registers (for each process) indicating where in the segment table they are to start (Segment Table Base Register) and how many entries are legal for that process (Segment Table Length Register). They should never access a segment outside of their allowed range. + Oui Non TRAP, erreur d’adressage

Segmentation Avantages: Il peut être possible d’agrandir ou de les rapetisser On peut donner à chaque segment sa propre information de protection ... Ceci est beaucoup plus facile que d’essayer de protéger chaque page en mémoire Lier les programmes (linking) est une tâche triviale Le code peut être partagé entre les processus plus facilement. On charge le segment de code seulement une fois. Les copies du même programme accède le même segment For linking programs...explain how object code is created for individual files...and then put together by the linker with all the address realignment and such.

Segmentation Désavantages: Les programmeurs doivent être au courrant de quel modèle de mémoire est utilisé (au moins durant l’assemblage) Tout comme les systèmes de permutation, la fragmentation peut gaspiller de la mémoire. Les segments peuvent être trop larges pour entrer dans la mémoire physique Nous connaissons déjà une solution pour adresser les programmes qui sont plus grands que la mémoire physique? The answer is paging!

Segmentation avec pagination! Pour obtenir le meilleur des deux mondes, les segments peuvent être paginés Élimine le problème de la fragmentation Permet à des segments larges à être partiellement en mémoire Requis: Chaque processus a besoin d’une table de segment Cette table même peut être segmentée et paginée! Chaque entrée dans la table de segment pointe à la table de pages pour ce segment Tout comme avant, ceci peut être une table de pages multiniveaux This is sort of similar to multi-level paging in that we’ll have to break the address into three components. The segment, the index into the page table, and the offset within the page.

Mémoire Physique + Segment Offset offset < limite? oui Offset non Adresse logique Segment Offset Mémoire Physique offset < limite? oui limite base de la table de pages table de segment Offset non TRAP Offset tbl de Pg Offset' This demonstrates the trivial case where the segment table and page tables can fit in registers The “limit” here is the length of the segment. Obviously, we cannot address deeper into the segment than the size we requested. Note that while physical memory will not be fragmented in this scheme, the programmer/compiler is still able to request segments that break up their virtual address space in a terrible way. That is why systems that have segments usually provide them in discrete chunks. Ajout de cadre Table de pages pour le segment + Ajout de cadre Offset'

Utilisation dans le monde courrant Depuis la puce 80386, Intel a supporté la segmentation et la pagination Pour le 386 il y a 8K de segments “partagés” et 8K de segments pour chaque processus Ajoutez 2 bits de protection et vous avez de l’adressage à 16 bits pour les segments – ce qui en laisse 16 pour l’offset OS/2 a utilisé toutes les caractéristiques que cela permet Pour la série des Pentiums, Windows rend cela trivial en donnant à chaque processus un grand segment qui est paginé, ce qui a pour effet ré-aplatir l’espace de mémoire

Quiz Time! Questions?