s.o.: memoria virtuallsub.org/itso/traspas/5.pdfreutilizar la memoria i los procesos son m as...
TRANSCRIPT
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