S.O.: Memoria virtuallsub.org/itso/traspas/5.pdfReutilizar la memoria I Los procesos son m as...

47
Definiciones Localidad Swap Memoria virtual Paginaci´on Working set TLB TP invertida (IPT) Algoritmos de reemplazamient S.O.: Memoria virtual Gorka Guardiola Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 27 de agosto de 2010 S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Transcript of S.O.: Memoria virtuallsub.org/itso/traspas/5.pdfReutilizar la memoria I Los procesos son m as...

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

S.O.: Memoria virtual

Gorka Guardiola

Laboratorio de Sistemas,Grupo de Sistemas y Comunicaciones,

URJC

27 de agosto de 2010

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

(cc) 2008 Grupo de Sistemas y Comunicaciones.

Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Attribution-ShareAlike.

Para obtener la licencia completa, vease http://creativecommons.org/licenses/by-sa/2.1/es. Tambien puede

solicitarse a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Definiciones

I Antes de empezar

I Unas cuantas definiciones y propiedades

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Localidad

I Propiedad de la mayorıa de los programas en su acceso a lamemoria

I Temporal: si he accedido a una region de memoria, altaprobablidad de que acceda de nuevo en poco tiempo

I Espacial: si he accedido hace poco a una region de memoriacercana, alta probablidad de que acceda esta (y menor de unalejana)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Swap

I Usar el disco como una memoria lenta (antes), normalmentemalo.

I Descargar al disco lo que no se esta usando

I La mayor cantidad de memoria libre para hacer buffering

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Caches

I Memoria mas rapida, actua como cache del nivel inferior

I Jerarquıa: registros, caches, memoria, disco. . .

I Lo mas usado en el nivel mas alto

I asociativa un tipo especial de memoria

I correspondencia directa (directly mapped)

I completamente asociativa (fully asociative)

I asociativa por conjuntos (set associative)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Tipos caches

Directamente a partir del tag

031

OFFSETTAG SET

9 8 5 4

OFFSETTAG SLOT

0431 11 10 5

TAG OFFSET

31 4 05

8 way associative (8 conjuntosasociativo dentro)

Fully associative (Completamente asociativa)

Directly mapped (correspondencia directa)

Set associative (correspondencia por conjuntos)

Miras en el slot y si el tag es, hitsi no, miss

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Funcionamiento caches

I Si encuentro algo, hit (acierto)

I Si no lo encuentro, miss (fallo) me lo tengo que traer del nivelinferior

I Tengo un bit que me dice si la entrada es valida

I Cuando escribo puedo escribir en la cache (write back or writebehind) o se sincroniza tambien el nivel inferior (writethrough)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Operaciones caches

I Invalidar: hacer que una entrada se olvide de sus datos

I Writeback: escribir la entrada al siguiente nivel (sincronizar)

I Flush: writeback+invalidate

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Memoria virtual

Tres problemas diferentes

I Virtualizacion de la memoria: simplificar para el usuario

I Proteccion: de un error o malintencionado

I Reutilizar la memoria

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Virtualizacion de la memoria

I simplicidad

I cada proceso ve la memoria igual, ve lo que cree que es todala memoria

I para el compilador, para el cargador, para el asignador, eldepurador. . .

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Proteccion

I error o malintencionado

I cada proceso en su jaula

I hay zonas de memoria de lectura (texto), escritura,ejecucion. . .

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Reutilizar la memoria

I Los procesos son mas grandes que la memoria disponible

I tener solo en la memoria lo que se utiliza (working set,conjunto de trabajo)

I las zonas poco usadas, llevarlas a disco (swap)

I cargar los binarios cuando se accede a ellos

I reservar memoria solo cuando alguien la toca

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

¿Que es la paginacion?

I Forma moderna de implementar la memoria virtual

I Traduccion de direcciones virtuales (usuario) a fısicas

I Se ocupa la MMU

I La unidad de trabajo es una pagina, un tamano de memoria(por ejemplo 4Kbytes)

I Una traduccion por pagina, se traen y se llevan a discopaginas enteras

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

MMU

direcciones virtuales

Procesador

CPU

Bus de direcciones (reales)

MMU

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Conceptos

I Espacio virtual de direcciones

I Direccion virtual −→ direccion fısica

I Paginas −→ marcos de pagina

I Tablas de pagina (tabla de traducciones)

I Fallo de pagina (no hay traduccion)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Tabla de paginas (un nivel)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Fallo de pagina

El proceso accede a una pagina para la que no hay traduccion

I Salta una excepcion (similar a la entrada a una llamada alsistema), salva el estado, rutina de atencion

I Si es un error (puntero fuera de segmento), lo mato

I Si es de datos, le reservo un marco, si no hay libero, puedotener que traer de disco (swap)

I Si es de texto (y tengo carga en demanda), traigo de disco aun marco nuevo, si no hay libero

I retorno de la excepcion

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Working set (conjunto de trabajo)

I Las paginas que se estan usando ahora (localidad)

I Si tengo las paginas del WS, no debe haber muchos fallos(costoso)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

MMU, tabla de paginas

I Direccion = num. pagina + offset

I Indexamos en la tabla de paginas con num. pagina −→ num.marco

I En la tabla de paginas:I Numero de marcoI Bits de offset (hueco)

I Presente

I ausente

I RWX

I M (modificado)

I R (referenciado, accedido para leer)

I Cache (si va a la cache, de varios tipos, instrucciones datos. . . )

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

PTEs de intel

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

MMU, tabla de paginas

I Puede ser de uno, dos o tres nivelesI Intel antes dos niveles (PD, page directory y PT, page table),

I 10+10+12I Paginas de 4KI Superpaginas de 4MI 1024 entradas por pagina

I Intel hoy en dıa (64 bits)I 8+9+9+12I Paginas de 4K

I Arm pequeno: dos niveles

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Tabla de paginas jerga

I Intel (64 bits)I L1 −→ PDP, page directory pointerI L2 −→ PD, page directoryI L3 −→ PT, page table

I Jerga linuxI PDP −→ PGD: page global directoryI PD −→ PMD: page middle directoryI PT −→ PT

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Tabla de paginas intel x64, (tres niveles)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

TLB

I Cache asociativa de traducciones

I En algunas arquitecturas (power pcs integrados) solo esto

I Hay que limpiarla (flush) en cambio de contexto

I Hay que hacer flush cuando se anade alguna traduccion

I Se pueden bloquear (lock) algunas entradas comunes (kernelpor ejemplo)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

TLB

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

TP invertida (IPT)

I Algunos Power PC (Cell), Alpha, Sparc

I Tabla hash de paginas

I Indice es el numero de marco (lo que me da la hash)

I Mecanismo para colisiones

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

IPT

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Cambio de contexto

I Cada proceso sus entradas en la tabla

I PID, para que uno no vea a otros y no tener que hacer flushde todo

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Hasta ahora

I Solo hemos hablado de traducciones

I ¿Y si necesito marcos libres?

I Tengo que reemplazar

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Algoritmos de reemplazamientoI Optimo: la que tarde mas en usarseI NRU: usando los bits R y M (un timer limpia R cada cierto

tiempo)I FIFO: ordenadas segun llegan (problema, las viejas que se

usan)I Segunda oportunidad: FIFO con reciclado, primero limpio R,

luego echoI Clock: implementacion eficiente de la Segunda oportunidadI LRU: Menos recientemente usada (en un intervalo corto), caro

pero eficienteI NFU: No usada recientemente, (con un timer sumas R a un

contador), el problema es que no se da cuenta de que se dejade usar

I Aging: Envejecimiento, NFU con paso del tiempo

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Aging

I El bit R vale 1,0,0,1,1,0 en 6 ticks

I El contador vale 10000000, 01000000, 00100000, 10010000,11001000, 01100100

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Polıticas

I Ha de ser sencilla, tienen un coste y eficaz

I Mas importante reducir los fallos que el coste

I Si ha muchos fallos, hace falta mas memoria

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Anomalıa de Belady

I Anadir memoria deberıa reducir los fallos

I Con FIFO no sucede (mala por eso)

I La cadena de referencias: 0,1,2,3,0,1,4,0,1,2,3,4

I Produce 9 fallos de pagina con 3 marcos y 10 con 4 marcos

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Paging daemon

I Proceso en Unix

I Implementa el algoritmo de reemplazamiento

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Conjunto de trabajo

I Paginacion bajo demanda (cuando referencio, meto el marco,instalo traduccion)

I Si esta en memoria no hay fallos de pagina

I Si se hace mal, Thrashing

I Puedo reservar 10GB de memoria, y no pasa nada si no la uso.

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

DMA y mmio E/S

I Tengo que tener unas traducciones instaladas

I DMA: tengo que copiar las cosas (copyin, copyout), pocoeficiente

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Paginas compartidas

I Las de solo lectura, RO (texto)

I Las compartidas (rfork() con RFMEM)

I Las del kernel

I Esto significa que las traducciones tienen que estar instaladastodo el rato, sobrevivir un cambio de contexto

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion

I Partes de un proceso

I Direccion:desplazamiento:proteccion

I Una tabla en memoria o registros para los descriptores

I Se puede combinar con la paginacion

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion

I La segmentacion hardware no se suele usar

I Se pone un segmento grande con todos los permisos, se anulael mecanismo

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion en UNIX/Plan 9

asignador (o el programa) llama a brk()Tam.fichero

Cabecera

Simbolos

Datos

Texto

Texto

Datos

Bss

0

N

0

N

Fichero Memoria

Pila

Hueco

La pila crece hacia abajo

Datos crecen cuando el

+

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion en UNIX

I Segmentos virtuales

I void ∗mmap(start, len, prot, SHR|PRIV|ANON, fd,off) crea un segmento con una correspondencia con unfichero (si no es anonima)

I munmap(start, len) lo elimina

I mprotect(start, len, prot) para cambiar la proteccion

I brk(end) cambia el tamano del segmento de datos

I sync() sincroniza la memoria con el disco

I mlock(addr, len) la ata en ram

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion en Plan 9

I Similar, pero no hay mmap() y similares

I En su lugar segattach(2)

I segattach() crea un segmento nuevo

I segdetach() lo desata del segmento

I segfree() libera la memoria fısica del segmento (deja lavirtual del proceso inusable)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Segmentacion

I Se comparten segmentos

I Texto

I Librerıas dinamicas

I los que se han marcado como MSHARED

I los ficheros proyectados

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Mas segmentos

I mas pilas

I sysenter sysexit (mecanismos del kernel visibles compartidoscon el usuario)

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

COW: copy on write

I Reduccion artificial de permisos (quito el W) para generar unaexcepcion

I Inicialmente para mejorar la latencia de fork+exec

I Requiere maquinaria extra, i.e. estructuras de datos

I Reduce el consumo de memoria en fork()/rfork()

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC

Definiciones Localidad Swap Memoria virtual Paginacion Working set TLB TP invertida (IPT) Algoritmos de reemplazamiento Anomalıa de Belady Conjunto de trabajo DMA y mmio E/S Paginas compartidas Segmentacion COW: copy on write Interaccion de las caches con la memoria virtual

Interaccion de las caches con la memoria virtual

I Ojo: los tags son direcciones de memoria

I ¿Virtuales o reales?: depende del hw

I Si son virtuales tengo que hacer flush de la cache cuandocambio de contexto

S.O.: Memoria virtual Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC