Difference between revisions 5500873 and 5575719 on glwiki{{Atención|1=tradución deficiente, revisión de título, conceptos, termos|data=xuño de 2019}} {{Sen referencias|data=xuño de 2019}} {{Revisión|data=xuño de 2019}} {{formatoWiki}} {{ligazóns internas}} {{ortografía}} {{autotrad}} {{Sen referencias|data=maio de 2019}} {{ortografía}} {{formatoWiki|uso de negras}} {{Revisión|data=maio de 2019}} [[Ficheiro:MC68451 p1160081.jpg|miniatura|MMU 68451 - Poderia ser utilizada no Motorola 68010]] '''Unidade de Xestión de Memoria''' ou '''MMU''' (do [[lingua 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 tamén atoparse na forma dun circuíto integrado separado. Unha '''MMU''' é efectiva na administración da [[memoria virtual]], manipulación e protección de memoria, control de [[caché]] e, en arquiteturas máis simples de computadora, como en sistemas de 8 bits, bank switching. En deseños anteriores de [[microprocesador]]es, a xestión de memoria era feita por un [[circuíto 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>{{cita web|url=http://www.ic-on-line.cn/download.php?id=1636768&pdfid=8CDCD77507C0152F6FE7146D00161DE3&file=0319\z8015-cs_1637095.pdf|título= Electronic Datasheet Search and Dowloading Site|páxina-web=lc-online.cn|urlmorta=yesi|data=abril de 1985}} {{Ligazón morta|data=maio de 2019 |data-acceso=04 de setembro de 2020|data-arquivo=28 de xuño de 2020|url-arquivo=https://web.archive.org/web/20200628160424/http://www.ic-on-line.cn/}}</ref> usado coa familia de procesadores Zilog Z8000. Mais tarde microprocesadores como o do Motorola 68030 ou Zilog Z280 colocaron a '''MMU''' xunto coa '''CPU''' nun mesmo circuíto integrado da mesma forma como o fixo a Intel 80286 e máis tarde os '''procesadores x86'''. [[Ficheiro:VLSI VI475 HMMU chip from an Apple Macintosh II - front.jpg|left|miniatura|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 [[Memoria principal|memoria]]. O programa do manexador manipula enderezos lóxicos; el nunca ve enderezos físicos reais. == Funcionamento == [[Ficheiro:MMU principle updated.png|miniatura|350x350px|Esquema da Operación dunha MMU.<ref>{{cita libro|nome = Andrew Stuart|apelidos = Tanenbaum|título = Modern operating systems|ano = 2008|isbn = 0136006639}}</ref>]] A memoria principal está dividida en dous tipos: a memoria física e a memoria lóxica. A memoria lóxica é aquela que é visíbel para os programas. A memoria física é a que é implementada en circuítos dixitais e é nela que a memoria lóxica é fisicamente almaceada, xeralmente a memria lóxica é maior que a memoria física. Para que o programa que utiliza a memoria lóxica poda ter unha memoria 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 memoria ('''MMU''').<ref>{{cita 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|data-acceso= 25 maio 2015 |autor = Contribuidores de Wikiversidade|editor = Wikiversidade}}</ref> O sistema actual da MMU divide o [[espazo de enderezamento]] virtual (enderezos utilizados polo procesador) en [[Memoria paxinada|páxinas]], cuxo tamaño é de 2<sup>n</sup>, normalmente esas páxinas posúen poucos [[kilobyte]]s mais poden ser moito maiores. A maioría das MMUs usan unha taboa de páxinas na memoria chamada "Page table" ([[Taboa de páxina]]), contendo unha "Page table entry" (PTE ou Entrada da táboa 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 memoria principal. A PTE (Page table entry) usa unha caché asociada chamada [[Translation Lookaside Buffer]] (TLB) que é utilizada para evitar a necesidade de acceder a memoria principal toda vez que un enderezo virtual é accedido. Outras Unidades de xestión de memoria poden ter unha matriz privada de memoria<ref>{{cita web|url=http://bitsavers.trailing-edge.com/pdf/rca/spectra70/model46/70-46-601_70-46_RefMan_Mar68.pdf|título= Spectra 70 70-46 Processor Manual|formato=pdf|páxina-web=[[RCA]]|data=marzo de 1968|páxina=4|data-acceso=15 de agosto de 2013}}</ref> ou [[Rexistrador (informática)|rexistradores]] que manteñan un conxunto de táboas de páxinas. Cando o TLB falla unha tradución, un mecanismo máis lento envolvendo un hardware específico de datos estruturados ou un software auxiliar é usado.<ref name="ucsd-lecture">{{cita web | url = http://cseweb.ucsd.edu/classes/su09/cse120/lectures/Lecture7.pdf | título = Lecture 7: Memory Management | obra = CSE 120: Principles of Operating Systems | ano = 2009 | accessdate = 4 de decembro de 2013 | nome = Frank |apelidos=Uyeda | editorial = UC San Diego | formato = PDF | lingua = ingles }}</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 memoria virtual, o que corresponde a 1 MB de páxinas de memoria.<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 escribir 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 localizada na memoria RAM física. Neste caso a MMU sinaliza un “fallo na páxina" para a CPU, a partir de aí o sistema operativo intenta atopar un espazo baleiro na RAM e xera unha nova PTE para mapear esa páxina para o enderezo virtual requerido.<ref name="ucsd-lecture" /> == Vantaxes == Nalgúns casos, un erro de páxina pode indicar un “bug” no software, que pode ser previsto a través da [[proteción de memoria]]: un sistema operativo 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 operativo]] 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 memoria. 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 posúen tamén un prezo elevado, o seu tamanho é limitado e cada MMU posúe apenas unha única TLB sendo esta compartida por todos os procesos.<ref name=":0">{{cita 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-acceso= 24/05/2015 }}</ref> == Exemplos == Moitos sistemas modernos dividen a memoria en páxinas co tamaño de 4 a 64 KiB, normalmente coa capacidade para usar páxinas grandes de 2 MiB a 1 GiB. As traducións das páxinas son almaceadas na '''TLB'''(Translation lookaside buffer). == Notas == {{Listaref|30em}} == Véxase tamén == === Ligazóns externas === * [http://www.cin.ufpe.br/~can/Arquivos/apoio290420053523_373.pdf Memoria virtual] {{Control de autoridades}} [[Categoría:Hardware]] 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=5575719.
![]() ![]() 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.
|