Difference between revisions 5026272 and 5026273 on glwiki[[File:MC68451 p1160081.jpg|thumb|MMU 68451 - Poderia ser utilizada no Motorola 68010]] '''Unidade de Xestión de Memoria''' ou '''MMU''' (do [[língua inglesa|inglés]] ''Memory Management Unit'') é un dispositivo [[hardware]] que traduce enderezos virtuais en enderezos físicos, é xeralmente implementada como parte da '''[[Unidade Central de Procesamento]]''' ou '''CPU''' (Central Processing Unit), mais pode tambén atoparse na forma dun circuito integrado separado. Unha '''MMU''' é efectiva na administración da [[memória virtual]], manipulación e protección de memória, control de [[cache]] e, en arquiteturas máis simples de computadora, como een sistemas de 8 bits, bank switching. En deseños anteriores de [[microprocessadores]], a xestión de memória era feita por un [[circuito integrado]] separado como o do [[VLSI Technology|VLSI]] VI475 (1986), o [[Motorola 68851]](1984) usado coa CPU do [[Motorola 68020]] no Macintosh II, ou o Z8015 (1985)<ref>http://www.ic-on-line.cn/download.php?id=1636768&pdfid=8CDCD77507C0152F6FE7146D00161DE3&file=0319\z8015-cs_1637095.pdf, Abril 1985</ref> usado coa familia de procesadores Zilog Z8000. Mais tarde microprocessadores como o do Motorola 68030 a o Zilog Z280 colocaram a '''MMU''' xunta coa '''CPU''' un mesmo circuito integrado assim como fai a Intel 80286 e máis tarde os '''processadores x86'''. [[File:VLSI VI475 HMMU chip from an Apple Macintosh II - front.jpg|left|thumb|VLSI VI475 MMU "Apple HMMU" do Macintosh II utilizado no Motorola 68020]] Na MMU, o valor no rexistro de re-localización é engadido a todo o enderezo lóxico xerado por un proceso do manexador na altura de ser enviado para a [[Memória (computador)|memória]]. O programa do manexador manipula enderezos lóxicos; él nunca ve enderezos físicos reais. == Funcionamento == [[File:MMU principle updated.png|thumb|350x350px|Esquema da Operación dunha MMU.<ref>{{citar livro|nome = Andrew Stuart|sobrenome = Tanenbaum|título = Modern operating systems|ano = 2008|isbn = 0136006639}}</ref>]] A memória principal está dividida en dous tipos: a memória física e a memória lóxica. A memória lóxica é aquela que é visíbel para os programas. A memória física é a que é implementada en circuitos dixitais e é nela que a memória lóxica é fisicamente almaceada, xeralmente a memória lóxica é maior que a memória física. Para que o programa que utiliza a memória lóxica poda ter unha memória física alocada para si é necesario un proceso de tradución de enderezos lóxicos a enderezos físicos, ese proceso debe ser realizado pola unidade de xestión de memória ('''MMU''').<ref>{{citar web|URL = http://pt.wikiversity.org/w/index.php?title=Introdu%C3%A7%C3%A3o_aos_Sistemas_Operacionais/Ger%C3%AAncia_de_Mem%C3%B3ria&oldid=71873|título = Introdución aos Sistemas Operacionais/Xerencia de Memória|data = 22 xullo 2014 02h39min UTC|acessadoem = 25 maio 2015 23h43min UTC|autor = Contribuidores de Wikiversidade|publicado = Wikiversidade}}</ref> O sistema actual da MMU divide o [[espazo de enderezamento]] virtual (enderezos utilizados polo procesador) en [[Memória paxinada|páxinas]], cuxo tamaño é de 2<sup>n</sup>, normalmente esas páxinas posuen poucos [[kilobyte]]s mais pode ser moito maiores. A maioria das MMUs usan unha taboa de páxinas na memória chamada "Page table" ([[Taboa de páxina]]), contendo unha "Page table entry" (PTE ou Entrada da taboa de páxinas en galego) por páxina, para mapear números de páxinas virtuais a números de páxinas físicas na memória principal. A PTE (Page table entry) usa unha caché asociada chamada [[Translation Lookaside Buffer]] (TLB) que é utilizada para evitar a necesidade de acceder a memória principal toda vez que un enderezo virtual é accedido. Outras Unidades de xestión de memoria poden ter unha matriz privada de memória<ref>''[http://bitsavers.trailing-edge.com/pdf/rca/spectra70/model46/70-46-601_70-46_RefMan_Mar68.pdf Spectra 70 70-46 Processor Manual] (PDF)'' . [[RCA]]. Março 1968. p. 4. Recuperado Agosto 15, 2013.</ref> ou [[Rexistrador (informática)|rexistradores]] que manteñan un conxunto de taboas de páxinas. Cando o TLB falla unha tradución, un mecanismo mais lento envolvendo un hardware específico de datos estruturados ou un software auxiliar é usado.<ref name="ucsd-lecture">{{citar web | url = http://cseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture7.pdf | titulo = Lecture 7: Memory Management | obra = CSE 120: Principles of Operating Systems | ano = 2009 | accessdate = 2013-12-04 | autor = Frank Uyeda | publisher = UC San Diego | formato = PDF | lingua = inglês }}</ref> Normalmente o tamaño dunha páxina é de 4 [[Kibibyte|KiB]]. Sendo así, nun espazo de enderezamento de 32 bits, cada proceso ten acceso a 4 GiB de memória virtual, o que corresponde a 1 MB de páxinas de memória.<ref name=":0" /> A '''PTE''' tamén ten información referente á modificación/escritura da páxina ('''dirty bit'''), cando ela foi utilizada por última vez (bit de acceso para a '''LRU'''(Least recently used) algoritmo de substituición de páxina), que tipo de procesos poden ler e escriber na páxina e se ela debe ir á caché. As veces, a '''PTE''' prohíbe o acceso a unha páxina virtual, porque esta talvez non estea alocada na memória RAM física. Neste caso a MMU sinaliza un “fallo na páxina" para a CPU, a partir de aí o sistema operacional intenta atopar un espazo vacio na RAM e xera unha nova PTE para mapear esa páxina para o enderezo virtual requisitado.<ref name="ucsd-lecture" /> == Vantaxes == Nalgúns casos, un erro de páxina pode indicar un “bug” no software, que pode ser prevido através da [[proteción de memória]]: un sistema operacional pode usalo para se protexer contra programas “errantes”, non permitindo o acceso á memoria que un programa específico non debería ter acceso. Normalmente, un [[sistema operacional]] atribúe a cada programa o seu propio espazo de enderezo virtual.<ref name="ucsd-lecture" /> A MMU tamén diminuíu o problema da fragmentación da memória. Despois de que os bloques de memoria sexan alocados e liberados, a memoria libre pode ficar fragmentada. Coa memoria virtual, unha faixa continúa de enderezos virtuais poden ser mapeadas en varios bloques non continuos de memoria física, ese mapeamento de enderezos virtuais non continuos é un dos beneficios da paxinación.<ref name="ucsd-lecture" /> == Desvantaxes == A TLB(Translation Lookaside Buffer) ten un custo elevado debido ao custo dos rexistradores que posuen tamén un prezo elevado, seu tamanho é limitado e cada MMU posúe apenas unha única TLB sendo esta compartida por todos os procesos.<ref name=":0">{{citar web|URL = https://pt.wikibooks.org/wiki/Sistemas_operacionais/Ger%C3%AAncia_de_mem%C3%B3ria|título = Sistemas operacionais/Xestión de memória|data = |acessadoem = 24/05/2015|autor = |publicado = }}</ref> == Exemplos == Moitos sistemas modernos dividen a memoria en páxinas co tamaño de 4 a 64 KiB, normalmente coa capacidade para usar paxinas grandes de 2 MiB a 1 GiB. As traducións das páxinas son almaceadas na '''TLB'''(Translation lookaside buffer). == Ligazóns externas == * [http://www.cin.ufpe.br/~can/Arquivos/apoio290420053523_373.pdf Memoria virtual] {{Tecnoloxías de CPU}} {{Informática en progreso}} {{Control de autoridades}} [[Categoría:Informática]] All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://gl.wikipedia.org/w/index.php?diff=prev&oldid=5026273.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|