Virtual memory, paging and segmentation · Mémoire virtuelle, pagination et segmentation
| English | Français |
|---|---|
| pages/ˈpeɪdʒɪz/ | pages |
| paging/ˈpeɪdʒɪŋ/ | le paging |
| segmentation/ˌseɡmənˈteɪʃn/ | segmentation |
| virtual address space/ˈvɜːtʃuːəl əˈdres speɪs/ | espace d'adresses virtuel |
| frames/freɪmz/ | cadres |
| page table/peɪdʒ ˈteɪbl/ | table de pages |
| page fault/peɪdʒ fɒlt/ | panne de page |
| swap file/swɒp faɪl/ | fichier d'échange |
| thrashing/ˈθræʃɪŋ/ | thrashing |
The disk light that means the machine has given up
- Open too many applications on a machine short of memory and something distinctive happens. Everything slows almost to a stop, and the disk light stops flickering and stays on.
- The processor is not busy. It is waiting, because the memory each program needs is on the disk, and fetching one page evicts another that is needed a moment later.
- The machine is doing nothing but moving pages. It has enough work and enough memory to do neither.
- This lesson is virtual memory, how paging 分页 and segmentation 分段 provide it, and how the same mechanism that makes memory look bigger can make a machine useless.
La lumière du disque qui signifie que la machine a abandonné
- Ouvrir trop d'applications sur une machine sans assez de mémoire provoque quelque chose de distinctif. Tout ralentit presque jusqu'à l'arrêt, et le voyant du disque cesse de clignoter pour rester allumé on.
- Le processeur n'est pas occupé. Il attend, car la mémoire dont chaque programme a besoin se trouve sur le disque, et charger une page fait éviction d'une autre nécessaire peu après.
- La machine ne fait rien que déplacer des pages. Elle a assez de travail et assez de mémoire pour faire ni l'un ni l'autre efficacement.
- Cette leçon porte sur la mémoire virtuelle, comment le paging 分页 et la segmentation 分段 la fournissent, et comment le même mécanisme qui rend la mémoire plus grande peut rendre une machine inutilisable.
The virtual address space
- Each process gets its own virtual address space 虚拟地址空间: a clean, contiguous range of addresses starting at zero, which the OS maps to wherever the data really is.
- Three things follow. Each process sees a simple private space and need not know what else is running. Processes are protected from each other, since one cannot name an address in another's space. And the total memory in use can exceed the physical RAM, because part of it lives on disk.
- That isolation is a security boundary as much as a convenience.
L'espace d'adresses virtuel
- Chaque processus obtient son propre espace d'adresses virtuel 虚拟地址空间 : une plage propre et contiguë d'adresses commençant à zéro, que le système d'exploitation mappe là où les données se trouvent réellement.
- Trois conséquences s'ensuivent. Chaque processus voit un espace privé simple et n'a pas besoin de savoir ce qui tourne ailleurs. Les processus sont protégés les uns des autres, car aucun ne peut nommer une adresse dans l'espace d'un autre. Et la mémoire totale utilisée peut dépasser la RAM physique, car une partie réside sur le disque.
- Cette isolation est une frontière de sécurité autant qu'un confort.
A benefit of virtual memory is that it: · Un avantage de la mémoire virtuelle est qu'elle :
Virtual memory gives each process a private space and lets the working set exceed installed RAM by using disk. · La mémoire virtuelle offre à chaque processus un espace privé et permet au working set de dépasser la RAM installée en utilisant le disque.
What does giving each process a virtual address space achieve? Select all · tout that apply. · Que réalise le fait de donner à chaque processus un espace d'adresses virtuelles ? Sélectionnez toutes celles qui s'appliquent.
Virtual memory buys simplicity, isolation and capacity. It costs speed, since part of the memory is really on disk. · La mémoire virtuelle achète simplicité, isolement et capacité. Elle coûte en vitesse, car une partie de la mémoire est réellement sur disque.
Paging
- The virtual space is divided into fixed-size pages 页; physical memory into frames 页框 of the same size. A page table 页表 records which frame currently holds each page.
- When a process uses an address, the hardware looks up the page in the table and finds the frame. If the page is not in RAM, that is a page fault 缺页.
- On a page fault the OS reads the page from the swap file 交换文件 on disk into a free frame. If no frame is free, it must first evict a page, writing it back to disk if it has been changed.
Same-sized pages and frames, joined by a table
Paging
- L'espace virtuel est divisé en pages 页 de taille fixe ; la mémoire physique en frames 页框 de même taille. Une table de pages 页表 enregistre quelle frame contient actuellement chaque page.
- Lorsqu'un processus utilise une adresse, le matériel consulte la page dans la table et trouve la frame. Si la page n'est pas en RAM, c'est une page fault 缺页.
- Sur une page fault, le système d'exploitation lit la page depuis le swap file 交换文件 sur disque vers une frame libre. Si aucune frame n'est libre, il doit d'abord evict (éjecter) une page, en l'écrivant sur disque si elle a été modifiée.

Pages et frames de même taille, reliées par une table
In paging, memory is divided into: · Dans la pagination, la mémoire est divisée en :
Paging uses fixed-size pages and frames, linked by a page table. (Variable sizes are segmentation.) · La pagination utilise des pages et des frames de taille fixe, liées par une table de pages. (Les tailles variables correspondent à la segmentation.)
A page fault occurs when: · Une faute de page survient lorsque :
The accessed page isn't in a frame, so the OS fetches it from the swap file (evicting another page if needed). · La page accédée n'est pas dans une frame, donc le OS la récupère depuis le fichier swap (éviction d'une autre page si nécessaire).
Worked example: what happens on a page fault
- A process accesses an address whose page is not in RAM. Describe what the OS does. [4]
- The hardware detects that the page is not present and raises a page fault interrupt, and the process is blocked.
- The OS finds a free frame; if there is none, it selects a page to replace, and writes it back to the swap file if it has been modified.
- It reads the required page from the swap file into that frame and updates the page table.
- The process is returned to the ready state and the instruction is retried. Four steps, four marks, and note the process was blocked throughout.
Exemple résolu : ce qui se passe lors d'une page fault
- Un processus accède à une adresse dont la page n'est pas en RAM. Décrivez ce que fait le système d'exploitation. [4]
- Le matériel détecte que la page n'est pas présente et déclenche une interruption page fault 缺页, et le processus est mis en état blocked.
- Le système d'exploitation trouve une frame libre ; s'il n'y en a pas, il sélectionne une page à remplacer, et l'écrit sur le swap file si elle a été modifiée.
- Il lit la page requise depuis le swap file dans cette frame et met à jour la table de pages.
- Le processus est remis en état ready et l'instruction est réessayée. Quatre étapes, quatre points, et notez que le processus était bloqué tout au long.
What happens on a page fault · Que se passe-t-il lors d'une faute de page
Step through a page fault. When the program touches a page that isn't in RAM, the OS quietly fetches it from disk and updates the page table — so the program sees more memory than physically exists. · Parcourez une faute de page. Lorsque le programme accède à une page non présente en RAM, le OS la récupère silencieusement depuis le disque et met à jour la table de pages — permettant au programme d'avoir plus de mémoire qu'il n'y en a physiquement.
Put the OS's response to a page fault in order. · Placez la réponse du OS face à une faute de page dans l'ordre.
Detect and block, make room, load, record, retry. A page fault is the normal mechanism, not an error. · Détection et blocage, création d'espace, chargement, enregistrement, retry. Une faute de page est le mécanisme normal, pas une erreur.
Thrashing
- Choosing which page to replace matters, because the wrong choice means it will be needed again immediately.
- When there is too little RAM for the working set of the running processes, almost every access causes a page fault, and every fault evicts a page that is wanted again at once.
- The system then spends nearly all its time swapping pages instead of executing instructions. That is thrashing 抖动, or disk thrashing, and it is the state described at the top of this lesson.
- The cure is more RAM, or fewer processes; a faster processor does not help at all, because the processor is not the thing that is busy.
Thrashing
- Choisir quelle page remplacer est important, car un mauvais choix signifie qu'elle sera immédiatement réutilisée.
- Quand il y a trop peu de RAM pour l'ensemble de travail des processus en cours, presque chaque accès cause une page fault, et chaque fault éjecte une page qui est de nouveau急需ée instantanément.
- Le système passe alors presque tout son temps à swapper des pages au lieu d'exécuter des instructions. C'est le thrashing 抖动, ou disk thrashing, et c'est l'état décrit au début de cette leçon.
- Le remède est plus de RAM, ou moins de processus ; un processeur plus rapide ne sert strictement à rien, car le processeur n'est pas ce qui est occupé.
A machine slows almost to a stop and the disk runs constantly. What will fix it? · Une machine ralentit presque à l'arrêt et le disque tourne constamment. Que va le corriger ?
This is thrashing: nearly every access faults and the processor waits. The processor is not the busy component, so speeding it up changes nothing. · Ceci est thrashing : presque chaque accès provoque une faute et le processeur attend. Le processeur n'est pas la composante occupée, donc l'accélérer ne change rien.
Segmentation
- Segmentation divides memory into variable-sized logical segments that match the program's own structure: the code, the stack, the heap, a large data array.
- Because a segment is a logical unit, it can carry its own permissions: the code segment can be read-only and executable, the stack read-write and not executable.
- The contrast the exam wants: pages are fixed-size and have no meaning to the program; segments are variable-sized and correspond to logical parts of it. Many real systems combine the two, paging within segments.
Segments are the program's own parts, not equal slices
Segmentation
- La segmentation divise la mémoire en segments logiques de tailles variables correspondant à la structure même du programme : le code, la pile, le tas, un grand tableau de données.
- Comme un segment est une unité logique, il peut avoir ses propres permissions : le segment de code peut être lecture seule et exécutable, la pile lecture-écriture et non exécutable.
- La distinction que l'examen veut : les pages ont une taille fixe et n'ont aucun sens pour le programme ; les segments ont des tailles variables et correspondent à des parties logiques. De nombreux systèmes réels combinent les deux, en effectuant du paging au sein des segments.

Les segments sont les propres parties du programme, pas des tranches égales
Match each memory-management term to its meaning. · Associez chaque terme de gestion de mémoire à sa signification.
Paging = fixed pages; segmentation = logical variable units; a page fault triggers a swap; too many faults = thrashing. · Pagination = pages fixes ; segmentation = unités logiques variables ; une faute de page déclenche un swap ; trop de fautes = thrashing.
Segmentation divides memory into variable-sized logical units (code, stack, heap), each with its own permissions, whereas paging uses fixed-size pages. · La segmentation divise la mémoire en unités logiques de taille variable (code, pile, tas), chacune avec ses propres permissions, tandis que la pagination utilise des pages de taille fixe.
Segments match the program's logical structure; pages are uniform fixed-size blocks — some systems combine both. · Les segments correspondent à la structure logique du programme ; les pages sont des blocs uniformes de taille fixe — certains systèmes combinent les deux.
Unlike pages, which are all the same size, segments are of ____ size and match the program's logical parts. · Contrairement aux pages qui sont toutes de la même taille, les segments sont de taille ____ et correspondent aux parties logiques du programme.
A segment is the code, the stack or the heap, so it can carry its own permissions. A page is a physical division with no meaning to the program. · Un segment étant le code, la pile ou le tas, il peut avoir ses propres permissions. Une page est une division physique sans signification pour le programme.
Worked example: paging against segmentation
- State two differences between paging and segmentation. [2]
- Pages are all of a fixed size, decided by the system; segments are of variable size, decided by the logical parts of the program.
- A page is a purely physical division with no meaning to the program; a segment corresponds to a logical unit such as the code or the stack, and can be given its own access permissions.
- A third if needed: paging can leave unused space inside the last page of an allocation, while segmentation leaves gaps of unusable space between segments.
Exemple résolu : paging contre segmentation
- Énoncez deux différences entre le paging et la segmentation. [2]
- Les pages sont toutes de taille fixe, décidée par le système ; les segments sont de taille variable, décidée par les parties logiques du programme.
- Une page est une division purement physique sans sens pour le programme ; un segment correspond à une unité logique telle que le code ou la pile, et peut recevoir ses propres permissions d'accès.
- Un troisième si nécessaire : le paging peut laisser de l'espace inutilisé à l'intérieur de la dernière page d'une allocation, tandis que la segmentation laisse des espaces inutilisables entre les segments.
Marks that slip away
- Virtual memory does not create memory. It lets the total in use exceed physical RAM by keeping part of it on disk, at the cost of disk accesses.
- A page fault is not an error. It is the normal mechanism by which a page is brought in.
- Thrashing is spending more time swapping than executing, and the fix is more RAM or fewer processes, never a faster processor.
- Fixed size versus variable size, logically meaningful is the difference between paging and segmentation. Say both halves.
Pièges qui font perdre des points
- La mémoire virtuelle ne crée pas de mémoire. Elle permet à la totalité utilisée de dépasser la RAM physique en gardant une partie sur disque, au prix d'accès disque supplémentaires.
- Une page fault n'est pas une erreur. C'est le mécanisme normal par lequel une page est chargée.
- Le thrashing consiste à passer plus de temps à swapper qu'à exécuter, et le remède est plus de RAM ou moins de processus, jamais un processeur plus rapide.
- Taille fixe contre taille variable, significatif logiquement est la différence entre paging et segmentation. Dites les deux moitiés.
You've got it
- a virtual address space gives each process a private contiguous range, protects processes from each other, and lets memory in use exceed physical RAM
- paging: fixed-size pages mapped to frames by a page table; a page fault blocks the process while the OS evicts a page if necessary, loads from the swap file, updates the table and retries
- thrashing is more time spent swapping than executing; cure it with more RAM or fewer processes
- segmentation uses variable-sized segments matching the program's logical parts, each with its own permissions; many systems page within segments
Vous avez compris
- Un espace d'adresses virtuel donne à chaque processus une plage contiguë privée, protège les processus les uns des autres, et permet à la mémoire utilisée de dépasser la RAM physique.
- paging : pages de taille fixe mappées vers des frames par une table de pages ; une page fault bloque le processus pendant que le système d'exploitation évictue une page si nécessaire, charge depuis le swap file, met à jour la table et réessaye.
- Le thrashing est passer plus de temps à swapper qu'à exécuter ; remédiez-y avec plus de RAM ou moins de processus.
- La segmentation utilise des segments de tailles variables correspondant aux parties logiques du programme, chacun avec ses propres permissions ; de nombreux systèmes effectuent du paging au sein des segments.