Virtual memory, paging and segmentation · Memoria virtual, segmentación y paginación
| English | Español |
|---|---|
| pages/ˈpeɪdʒɪz/ | páginas |
| paging/ˈpeɪdʒɪŋ/ | paginación |
| segmentation/ˌseɡmənˈteɪʃn/ | segmentación |
| virtual address space/ˈvɜːtʃuːəl əˈdres speɪs/ | espacio de direcciones virtuales |
| frames/freɪmz/ | marcos |
| page table/peɪdʒ ˈteɪbl/ | tabla de páginas |
| page fault/peɪdʒ fɒlt/ | fallo de página |
| swap file/swɒp faɪl/ | archivo de intercambio |
| 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 luz del disco que indica que la máquina se ha rendido
- Si se abren demasiadas aplicaciones en una máquina con poca memoria, ocurre algo distintivo. Todo se ralentiza casi hasta detenerse, y la luz del disco deja de parpadear y se queda encendida.
- El procesador no está ocupado. Está esperando, porque la memoria que necesita cada programa se encuentra en el disco, y al traer una página se elimina otra que se necesitará un momento después.
- La máquina solo está moviendo páginas. Tiene suficiente trabajo y suficiente memoria para hacer nada; ni ejecuta instrucciones ni gestiona eficientemente la memoria.
- Esta lección trata sobre la memoria virtual, cómo el paginado 分页 y la segmentación 分段 la proporcionan, y cómo el mismo mecanismo que hace que la memoria parezca más grande puede inutilizar una máquina.
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.
El espacio de direcciones virtual
- Cada proceso obtiene su propio espacio de direcciones virtual 虚拟地址空间: un rango limpio y contiguo de direcciones que comienza en cero, el cual el SO mapea a donde realmente se encuentran los datos.
- De esto se derivan tres cosas. Cada proceso ve un espacio privado simple y no necesita saber qué más se está ejecutando. Los procesos están protegidos entre sí, ya que uno no puede nombrar una dirección en el espacio de otro. Y la memoria total en uso puede superar la RAM física, porque parte de ella reside en el disco.
- Ese aislamiento es tanto una medida de seguridad como una conveniencia.
A benefit of virtual memory is that it: · Un beneficio de la memoria virtual es que permite:
Virtual memory gives each process a private space and lets the working set exceed installed RAM by using disk. · La memoria virtual proporciona a cada proceso un espacio privado y permite que el conjunto de trabajo exceda la RAM instalada utilizando el disco.
What does giving each process a virtual address space achieve? Select all · todos that apply. · ¿Qué logra otorgar a cada proceso un espacio de direcciones virtuales? Seleccione todos los que correspondan.
Virtual memory buys simplicity, isolation and capacity. It costs speed, since part of the memory is really on disk. · La memoria virtual compra simplicidad, aislamiento y capacidad. Tiene un costo en velocidad, ya que parte de la memoria realmente está en el disco.
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
Paginado
- El espacio virtual se divide en páginas 页 de tamaño fijo; la memoria física en marcos 页框 del mismo tamaño. Una tabla de páginas 页表 registra qué marco contiene actualmente cada página.
- Cuando un proceso utiliza una dirección, el hardware consulta la página en la tabla y encuentra el marco. Si la página no está en RAM, se produce un fallo de página 缺页.
- En caso de fallo de página, el SO lee la página desde el archivo de intercambio 交换文件 en el disco hacia un marco libre. Si no hay marcos libres, primero debe expulsar una página, escribiéndola de vuelta al disco si ha sido modificada.

Páginas y marcos del mismo tamaño, unidos por una tabla
In paging, memory is divided into: · En la paginación, la memoria se divide en:
Paging uses fixed-size pages and frames, linked by a page table. (Variable sizes are segmentation.) · La paginación utiliza páginas y marcos de tamaño fijo, enlazados mediante una tabla de páginas. (Los tamaños variables corresponden a la segmentación.)
A page fault occurs when: · Una falta de página ocurre cuando:
The accessed page isn't in a frame, so the OS fetches it from the swap file (evicting another page if needed). · La página accedida no está en un marco, por lo que el SO la busca en el archivo de intercambio (expulsando otra página si fuera necesario).
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.
Ejemplo resuelto: qué sucede en un fallo de página
- Un proceso accede a una dirección cuya página no está en RAM. Describa lo que hace el SO. [4]
- El hardware detecta que la página no está presente e interrumpe con un fallo de página, y el proceso queda bloqueado.
- El SO busca un marco libre; si no hay ninguno, selecciona una página para reemplazarla, y la escribe de vuelta en el archivo de intercambio si ha sido modificada.
- Lee la página requerida desde el archivo de intercambio hacia ese marco y actualiza la tabla de páginas.
- El proceso vuelve al estado listo y se reintentó la instrucción. Cuatro pasos, cuatro puntos, y note que el proceso estuvo bloqueado durante todo el tiempo.
What happens on a page fault · Qué ocurre en una falta de página
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. · Recorra paso a paso una falta de página. Cuando el programa accede a una página que no está en la RAM, el SO la obtiene silenciosamente del disco y actualiza la tabla de páginas, haciendo que el programa vea más memoria de la que físicamente existe.
Put the OS's response to a page fault in order. · Ordene la respuesta del SO ante una falta de página.
Detect and block, make room, load, record, retry. A page fault is the normal mechanism, not an error. · Detectar y bloquear, hacer espacio, cargar, registrar, reintentar. Una falta de página es el mecanismo normal, no un error.
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 (Intercambio excesivo)
- Elegir qué página reemplazar importa, porque la elección incorrecta significa que será necesaria nuevamente inmediatamente.
- Cuando hay poca RAM para el conjunto de trabajo de los procesos en ejecución, casi cada acceso provoca un fallo de página, y cada fallo expulsa una página que se desea de nuevo al instante.
- El sistema entonces pasa casi todo su tiempo intercambiando páginas en lugar de ejecutar instrucciones. Eso es thrashing 抖动, o intercambio excesivo de disco, y es el estado descrito al inicio de esta lección.
- La cura es más RAM, o menos procesos; un procesador más rápido no ayuda en absoluto, porque el procesador no es lo que está ocupado.
A machine slows almost to a stop and the disk runs constantly. What will fix it? · Una máquina se ralentiza casi hasta detenerse y el disco funciona constantemente. ¿Qué lo solucionará?
This is thrashing: nearly every access faults and the processor waits. The processor is not the busy component, so speeding it up changes nothing. · Esto es thrashing: casi cada acceso provoca una falta y el procesador espera. El procesador no es el componente ocupado, por lo que acelerarlo no cambia nada.
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
Segmentación
- La segmentación divide la memoria en segmentos lógicos de tamaño variable que coinciden con la estructura del programa: el código, la pila, el montón, un gran arreglo de datos.
- Dado que un segmento es una unidad lógica, puede llevar sus propios permisos: el segmento de código puede ser solo lectura y ejecutable, la pila lectura-escritura y no ejecutable.
- El contraste que el examen busca: las páginas son de tamaño fijo y no tienen significado para el programa; los segmentos son de tamaño variable y corresponden a partes lógicas del mismo. Muchos sistemas reales combinan ambos, haciendo paginado dentro de segmentos.

Los segmentos son las propias partes del programa, no rebanadas iguales
Match each memory-management term to its meaning. · Asocie cada término de gestión de memoria con su significado.
Paging = fixed pages; segmentation = logical variable units; a page fault triggers a swap; too many faults = thrashing. · Paginación = páginas fijas; segmentación = unidades lógicas variables; una falta de página desencadena un intercambio; demasiadas faltas = thrashing.
Segmentation divides memory into variable-sized logical units (code, stack, heap), each with its own permissions, whereas paging uses fixed-size pages. · La segmentación divide la memoria en unidades lógicas de tamaño variable (código, pila, heap), cada una con sus propios permisos, mientras que la paginación utiliza páginas de tamaño fijo.
Segments match the program's logical structure; pages are uniform fixed-size blocks — some systems combine both. · Los segmentos coinciden con la estructura lógica del programa; las páginas son bloques uniformes de tamaño fijo — algunos sistemas combinan ambos.
Unlike pages, which are all the same size, segments are of ____ size and match the program's logical parts. · A diferencia de las páginas, que son todas del mismo tamaño, los segmentos son de tamaño ____ y coinciden con las partes lógicas del programa.
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 segmento es el código, la pila o el heap, por lo que puede tener sus propios permisos. Una página es una división física sin significado para el programa.
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.
Ejemplo resuelto: paginado frente a segmentación
- Enuncie dos diferencias entre el paginado y la segmentación. [2]
- Las páginas son todas de un tamaño fijo, decidido por el sistema; los segmentos son de tamaño variable, decidido por las partes lógicas del programa.
- Una página es una división puramente física sin significado para el programa; un segmento corresponde a una unidad lógica como el código o la pila, y puede tener sus propios permisos de acceso.
- Un tercero si es necesario: el paginado puede dejar espacio sin usar dentro de la última página de una asignación, mientras que la segmentación deja huecos de espacio inutilizable entre segmentos.
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.
Puntos que se escapan
- La memoria virtual no crea memoria. Permite que el total en uso supere la RAM física manteniendo parte de ella en el disco, a costa de accesos al disco.
- Un fallo de página no es un error. Es el mecanismo normal mediante el cual se introduce una página.
- El thrashing es pasar más tiempo intercambiando que ejecutando, y la solución es más RAM o menos procesos, nunca un procesador más rápido.
- Tamaño fijo versus tamaño variable, con significado lógico es la diferencia entre paginado y segmentación. Diga ambas mitades.
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
Lo has logrado
- un espacio de direcciones virtual otorga a cada proceso un rango contiguo privado, protege los procesos entre sí, y permite que la memoria en uso supere la RAM física
- paginado: páginas de tamaño fijo mapeadas a marcos mediante una tabla de páginas; un fallo de página bloquea el proceso mientras el SO expulsa una página si es necesario, carga desde el archivo de intercambio, actualiza la tabla y reintentó
- thrashing es pasar más tiempo intercambiando que ejecutando; cúrelo con más RAM o menos procesos
- segmentación usa segmentos de tamaño variable que coinciden con las partes lógicas del programa, cada uno con sus propios permisos; muchos sistemas hacen paginado dentro de segmentos