Arquitectura de Computadores-clase21

27
Arquitectura de Computadores Clase 21 Memoria Virtual IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

description

fddfsdfdsfsdfsdfds

Transcript of Arquitectura de Computadores-clase21

  • Arquitectura de ComputadoresClase 21Memoria VirtualIIC 2342Semestre 2008-2

    Rubn MitnikPontificia Universidad Catlica de ChileEscuela de IngenieraDepartamento de Ciencia de la Computacin

  • ObjetivosCaptulo 5 : Sistemas de Memoria Memoria Virtual

    Entender qu es la memoria virtual junto con sus ventajas

    Entender la funcin de las distintas piezas de hardware involucradas en el uso de la memoria virtualMemory Managment Unit (MMU)Transition Lookaside Buffer (TLB)

    Entender el funcionamiento de la memoria virtualPginas y Marcos, Excepciones, y SwapObjetivosR.Mitnik *Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*ndice5.1 Sistemas de almacenamiento5.2 Jerarquas de memoria5.3 Tecnologas de memorias5.4 Representacin y formato de datos5.5 Memoria cach5.6 Memoria virtualCaptulo 5 : Sistemas de Memoria

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualIntroduccinCaptulo 5 : Sistemas de MemoriaLa memoria virtual permite desacoplar la memoria que la CPU ve de la memoria fsicaProcesos no se preocupan de dnde estn realmenteDistintos procesos pueden utilizar las mismas direcciones de memoriae.g. varios procesos iguales corriendo en paralelo

    Permite utilizar ms memoria que la disponibleSeguridadprocesos no conocen el espacio de memoria fsica de los demsno pueden determinar la memoria fsica a utiliza

    Arquitectura de Computadores

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualIntroduccinCaptulo 5 : Sistemas de MemoriaLa memoria virtual permite desacoplar la memoria que la CPU ve de la memoria fsica

    Define dos espacios de direccionamiento: uno virtual (el que los procesos ven) y uno fsico (la memoria principal)Por eficiencia se agrega un intermediario que traduce las direcciones entre ambos espaciosMemroy Managment Unit (MMU)

    CPU enva direcciones virtuales, MMU las transforma a direcciones fsicas

  • R.Mitnik

    Arquitectura de Computadores*IntroduccinCaptulo 5 : Sistemas de Memoria Memoria Virtual

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualIntroduccinCaptulo 5 : Sistemas de MemoriaCPU enva direcciones virtuales, MMU las transforma a direcciones fsicasMMU slo se encarga de traducir direcciones

    Quin determina cmo se mapea de un espacio al otro?El Sistema Operativo (SO)

    Cmo mapea el Sistema Operativo?Disea y mantiene una funcin F() (mapa de memoria) que permite mapear direcciones entre los espacios virtual y fsico.

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualImplementacinCaptulo 5 : Sistemas de MemoriaImplementar un mapeo 1-1 es muy ineficienteMapear cada direccin virtual a una direccin real es costossimo

    Solucin: Paginacin

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualPaginacinCaptulo 5 : Sistemas de MemoriaCada pgina representa un conjunto de bytesTodas las pginas tienen el mismo tamao

    El tamao de las pginas viene dado por la arquitectura (e.g. 4Kb)

    Las pginas tienen el mismo tamao en ambos espacios (virtual y fsico)

    En el espacio fsico, las pginas virtuales se almacenan en marcos fsicos

    El mapa de memoria queda representado como un mapa de pginas

  • R.Mitnik

    Arquitectura de Computadores*Memoria VirtualPaginacinCaptulo 5 : Sistemas de MemoriaEl mapa de memoria queda representado como un mapa de pginasSe representa como una tablaMapea las pginas virtuales a los marcos fsicos de la memoria

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualEjemplo:Memoria Virtual:16 pginas de 4KDirecciones de 16 bits

    Memoria Fsica:8 pginas de 4KDirecciones de 15 bits

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualMMUDireccin virtualDireccin fsicaCmo mapea: Determina el nmero de la pgina virtual correspondiente a la direccin requerida Determina el marco fsico de dicha pgina En base a la posicin relativa de la direccin en la pgina, determina la direccin fsica del requerimiento

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualTablas de pginas

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualMapeo utilizando MMU

  • R.Mitnik

    Arquitectura de Computadores*Paginacin: EjemploCaptulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)

    14-16K112-14K010-12KX8-10KX6-8KX4-6KX2-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 0. La MMU recibe la solicitud de la direccin 0 Determina el marco correspondiente 2 Determina direccin fsica de la direccin virtual 0 0 = primer valor de la pgina Primer valor del marco 2 4096 Escribe 4096 en el bus de direcciones.Paginacin: Ejemplo

    14-16K112-14K010-12KX8-10KX6-8KX4-6KX2-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 2050. La MMU recibe la solicitud de la direccin 2050 Determina el marco correspondiente 3 Determina direccin fsica de la direccin virtual 2050 2050 = tercer valor de la pgina correspondiente Tercer valor del marco 3 6146 Escribe 6146 en el bus de direcciones.Paginacin: Ejemplo

    14-16K112-14K010-12KX8-10KX6-8KX4-6KX2-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 4100. La MMU recibe la solicitud de la direccin 4100 Determina el marco correspondiente No estSe genera una falta de pgina (page fault)Paginacin: Ejemplo

    14-16K112-14K010-12KX8-10KX6-8KX4-6KX2-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*PaginacinFalta de Pgina (page fault)Se genera cuando la MMU no puede mapear una direccin virtual a una direccin fsica

    Arroja una interrupcin de softwareEste inconveniente es transparente para el proceso

    Sistema operativo determina qu hacerNegar la solicitud (out of memory exception)Buscar memoria disponibleEncuentraNo encuentra se acab la memoria fsicaOut of memory exceptionSwap

    Captulo 5 : Sistemas de Memoria Memoria Virtual

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 4100. La MMU recibe la solicitud de la direccin 4100 Determina el marco correspondiente No est Se genera una falta de pgina (page fault) Quita una pgina de un marco, guardndola en disco (swap out)Paginacin: Ejemplo

    14-16K112-14K010-12KX8-10KX6-8KX4-6KX2-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 4100. La MMU recibe la solicitud de la direccin 4100 Determina el marco correspondiente No est Se genera una falta de pgina (page fault) SO quita una pgina de un marco, guardndola en disco (swap out) SO asigna el marco a la pgina requerida, cargndola de disco de existir previamente (swap in)Paginacin: Ejemplo

    14-16KX12-14K010-12KX8-10KX6-8KX4-6K12-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualMemoria Virtual (16K)Memoria fsica (8K)Ej: La CPU pide el contenido de la direccin de memoria 4100. La MMU recibe la solicitud de la direccin 4100 Determina el marco correspondiente 1 Determina direccin fsica de la direccin virtual 4100 4100= 5to valor de la pgina correspondiente 5to valor del marco 1 2052 Escribe 2052 en el bus de direcciones.Paginacin: Ejemplo

    14-16KX12-14K010-12KX8-10KX6-8KX4-6K12-4K30-2K2

    36-8K24-6K12-4K00-2K

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualEl sistema operativo mantiene una tabla de pginas independiente para cada procesoProcesos no se preocupan de donde estn realmenteDistintos procesos pueden utilizar las mismas direcciones de memoriaSeguridad

    Al cargar un proceso, el SO tambin carga en la MMU el mapa de memoria asociado a dicho proceso

    MMU slo convierte!!!Cuntas tablas de pginas hay?

  • R.Mitnik

    Arquitectura de Computadores*PaginacinCaptulo 5 : Sistemas de Memoria Memoria VirtualLas tablas son muy grandes, por lo que se almacenan en la memoria fsica

    El sistema operativo no carga la MMU con el mapa del proceso

    El sistema operativo le entrega un puntero a dicha tabla

    Problema: Dobles accesos a memoriaAl llegar un requerimiento de memoria la MMU debe ir a buscar la entrada correspondiente de la tabla a memoriaLuego hacer la traduccin de direccin virtual a direccin fsicaFinalmente enva el requerimiento del proceso como direccin fsicaTranslation Lookaside Buffer (TLB)

  • R.Mitnik

    Arquitectura de Computadores*Captulo 5 : Sistemas de Memoria Memoria VirtualTLBHardware que permite un acceso rpido a los elementos ms usados de la tabla

    Es una memoria cach especializadaMuy rpidaFully associativePequea (entre 32 y 1024 palabras)Translation Lookaside Buffer (TLB)Translation Lookaside Buffer

  • R.Mitnik

    Arquitectura de Computadores*Translation Lookaside BufferCaptulo 5 : Sistemas de Memoria Memoria VirtualMapeo utilizando MMU y TLB

  • ResumenVentajas de la memoria virtualProcesos no se preocupan de dnde estn realmenteDistintos procesos pueden utilizar las mismas direcciones de memoriaPermite utilizar ms memoria que la disponibleSeguridad

    Piezas de hardware involucradasMemory Managment Unit (MMU)Translation Lookaside Buffer (TLB)

    PaginacinPginasMarcosFalta de pgina (page fault)Swap in/outR.Mitnik *Arquitectura de ComputadoresResumenCaptulo 5 : Sistemas de Memoria Memoria Virtual

    Arquitectura de Computadores

    ********Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales*Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales*********Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales****Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales*Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales*Explicar y dibujar en el pizarrn el concepto de los marcos fsicos, que almacenan pginas virtuales**