Idioma: Español
Fecha: Subida: 2020-04-15T00:00:00+02:00
Duración: 16m 42s
Lugar: Videotutoriales
Visitas: 1.441 visitas

Tema05-V01

Apartado 5.1

Transcripción

Todos este es el primer videotutoriales del tema 5, jerarquía de memoria, memoria virtual. Este tema cinco está estrechamente relacionados con el tema anterior, el tema 4, porque ambos temas están dedicados a la jerarquía de memoria. En concreto, si recordamos el tema cuatro lo que veíamos era que poniendo una pequeña memoria, mi rápida, una memoria caché que era una memoria pequeña y rápida, cerca de, nace hacíamos creer a los procesos en ejecución que tenían una memoria grande y rápida, cercana, gracias a los principios de localidad, tanto al principio de localidad espacial como al principio de localidad temporal. Esto hacía que el tiempo de ejecución de dichos programas se redujera de forma significativa, porque lo que conseguíamos era reducir el número de accesos, del acepte o a la memoria principal. La memoria virtual se podría considerar que lo que está pasando es que la memoria principal hace de memoria cachete de lo que serían los dispositivos de almacenamiento, los dispositivos de entrada salida en concreto los discos duros aunque como veremos más adelante el propósito de que la memoria principal actúe de caché de los dispositivos de almacenamiento, es totalmente distinto al propósito de lo que sería la memoria caché que vimos en el tema anterior. Destacar que este, en el que el concepto de memoria virtual aparece por los años en el año 50 a mitad de los 50, en concreto aparecen una tesis doctoral pero no simplemente hasta mediados de los 60 también en máquinas muy específicas y mucho más tiempo en aparecer en lo que sería máquinas de propuesto general. En este tema está dividido en seis apartados ni en este videotutoriales. Nos vamos a centrar en el apartado 1, en concreto en la introducción y veremos los conceptos generales y las consideraciones de diseño de una memoria virtual. Bien, empezamos con la introducción y, como hemos indicado anteriormente, la memoria bid principal puede actuar como una memoria caché de lo que sería. El disco duro, almacenamiento secundario y eso sería la idea de la memoria virtual. Sin embargo, las razones por las que la memoria principal actúa de una especie de cachés totalmente distinta de lo que sería la memoria check estudiamos en el tema cuatro concreto serían dos razones. La primera es proporcional a los procesos que están en ejecución, un espacio de direcciones, de memoria muchísimo mayor, es decir, hacer creer a los procesos que tienen una memoria principal muchísimo mayor que la que realmente tienen a día de hoy, teniendo en cuenta que es muy fácil encontrar en el mercado un incluso un portal, el que tenga 8. Vais explicar este concepto es un poco más complicado que años anteriores, sin embargo, nos vamos a centrar en que la arquitectura que nosotros vemos en esta asignatura es una arquitectura de 32 pits. Como vamos a explicar posteriormente, este indica que el tamaño máximo de lo que sería la memoria principal va a ser cuatro jugabais y nos vamos a centrar en que el ordenador que tenemos para tener un Único gigavatio de memoria aun así si nos vamos un poquito más atrás en el tiempo tenemos que recordar que había ordenadores, que tenían 32 megas de radón, 128 nega Esteban querrán e incluso menos. Entonces, qué pasaba cuando el ordenador no tenía memoria virtual? Pues el tamaño de los programas estaban limitados a lo que era la memoria principal. Entonces, cuando se hacían programas sus mayores, que tenían un tamaño mayor que esa memoria principal, una de dos programas no se podía ejecutar o bien los programadores eran los responsables y eran los encargados de dividir su propio programa, en lo que eran parques mutuamente, exclusivas, es decir, que entre sino se llamaban, y las partes se llamaban gobernáis, era el propio programador el encargado de decir, de indicar, cuando se tenía que cargar en memoria cada uno de esos de esas partes, de esos gobernáis sin, sino si nos damos cuenta. Este trabajo era bastante, te de Dios, hoy lideramos bastante complicado con un sistema de memoria virtual es la memoria virtual. Ese sistema de memoria virtual, que hace de forma totalmente automática y de forma totalmente transparente al programador esa división. El programa creerá que tienen un espacio, direcciones, que es una memoria virtual, muchísimo mayor que la memoria física, que realmente tiene la creer. El drama va a creer que tiene una memoria principal grande y en realidad solo va a disponer de una memoria principal, y lo que va a hacer el sistema de memoria virtuales calcados en memoria principal. Sólo aquellos trozos del programa que están en ejecución en un momento concreto, e irá cargando y sustituyendo según se vayan trozos de programa, según se vayan necesitando. La segunda razón sería permitir la compartición de la memoria principal entre múltiples procesos en ejecución. Recordamos que recordamos que un proceso es un programa de ejecución que lo estudia, estáis en la asignatura de fundamentos de Computadores y entonces, pues lo que el propósito de la memoria virtual es permitir que varios programas se puedan ejecutar al mismo tiempo de una forma eficiente y además de una forma segura, una forma que no haya peligro signos. Si recordamos simplemente cuando vosotros estáis trabajando, por ejemplo, si estáis haciendo las prácticas de, pues lo normal es que tengáis más abierto, primer programa que tiene es también el lector de PDF para tener el Boletín de la práctica abierta. Segundo programa normalmente también tendréis un navegador, bien para buscar ayuda, o bien porque tenéis el correo electrónico abierto. También, por ejemplo, tendremos el código abierto, con lo cual mínimo de cuatro o cinco programas aparte del sistema operativo tendremos en ejecución. Entonces se están ejecutando varios procesos al mismo tiempo y, sin embargo, tenemos una única minoría principal que se tiene que compartir. Entre entre ellos. La idea es que la memoria virtual lo que va a conseguir es que de cada proceso solo vamos a tener un trozo cargado en memoria principal aquel que realmente se está utilizando en un momento concreto. La memoria principal además va a estar compartida por esos trozos activos de los distintos procesos y además va a estar compartida de forma segura, es decir, un proceso solo va a poder acceder a la memoria que tiene asignada y el la memoria virtual. Va a ser la responsable de cargar los nuevos trozos de memoria del programa según se necesita una memoria y de forma, como hemos dicho anteriormente, totalmente transparente para lo que sería el programador y el usuario final y por supuesto como ya hemos dicho, la sistema de memoria virtual sin carga de que un proceso de un programa solo puedan leer y escribir las partes de memoria que tiene asignadas. Vamos a ver los conceptos generales. Como hemos indicado, la los conceptos de memoria virtual y memoria caché están totalmente relacionados, aunque el propósito final sea totalmente distinto. Entonces, en el caso de memoria virtual un bloque de memoria virtual es un, es un consiste. Llama página y como veremos a continuación el tamaño de la página va a ser mucho, mucho mayor que lo que eran los bloques, en lo que sería la memoria caché cuando el dato está cuando la página perdón, esta memoria principal se considera que es un acierto de página. Sin embargo, cuando el dato no esta memoria principal se considera que es un fallo de página o un fallo de memoria virtual. El espacio de direcciones virtuales queda definido en páginas y el espacio de direcciones físicas, que sería la memoria principal también queda dividido en páginas. Todas ambas del mismo tamaño y la idea es que en las páginas de, de lo que sería la direcciones virtuales, las páginas virtuales, unas malestar van a tener su correspondencia en la memoria principal van a estar almacenadas en páginas físicas, mientras que otras, porque no ha, no va a haber espacio para todas, otras, estarán almacenadas en el disco duro. Aquellas a las que accedemos y están en memoria principal va a ser lo que decíamos antes, que era una cierto página y, sin embargo, aquellas que están accediendo hasta en almacenadas, perdonen, disco Durán, en almacenamiento secundario. Cuando intentemos acceder a ellas se va a producir un fallo de página, y lo que va a pasar es que estas páginas van a ser tener que ser leídas y traídas a la memoria principal para poderlas usar, según un nuevo punto importantes, que hay que hacer una traducción de direcciones por cada dirección que generan en concreto la acepte y un general, o que se llaman direcciones virtuales. Esas direcciones virtuales pasan a una nueva unidad. La y mi me una unidad y manejo de memoria que se va a encargar de traducir todas las direcciones virtuales a las directas, a direcciones físicas; estas direcciones físicas serían con las que accederíamos a la memoria principal y en la memoria física, y, en su caso, si lo tuviéramos, a lo que sería la memoria Catsi. Nosotros vamos a considerar que nuestro sistema no hay memoria cachee, solo tenemos memoria principal importante; la traducción sería de direcciones virtuales a direcciones físicas mediante la nn, o y con esas direcciones físicas accederíamos a la memoria principal tener en cuenta, y es muy importante destacar que todas las direcciones generadas por la tienen que hacer esa traducción. Por tanto la inaem se tiene que encargar de hacer una traducción de una manera eficiente y por supuesto nos tenemos que dar cuenta que la nn uno puede tener una correlación de cada una de las direcciones virtuales a direcciones físicas. Esto es lo que va a hacer, es una traducción por páginas. Como ya hemos dicho la tanto la memoria virtual como la memoria física van a estar divididas en páginas y entonces la enemigo va a ser la responsable de determinar para cada dirección virtual cuál es su página física y hacer la traducción en páginas físicas. Recordamos que una de estas páginas virtuales van a estar realmente, y lo que serían la memoria principal, mientras que otras estarán en disco y por tanto había un fallo de página, tendrían que ser leídas, veamos ahora cómo consigue la nbq hacer esa traducción. Mediante páginas bien primas de calle, como hemos dicho, la dirección virtual es lo que me genera, es lo que la dirección General. Bien. Segundo detalle. La dirección física es la que la que traduce y la que finalmente se usa para acceder a memoria principal y la enemigo es la encargada de hacer. Es esta traducción, esta traducción nos va a depender de lo que sería el tamaño de página para que ser eficientes vamos a utilizar existido en los sistemas a día de hoy se está utilizando un tamaño de páginas grandes, como mínimo, de 4, cuatro kilo va hecho. Entonces, en concreto, el logaritmo, en base de oro de 4, 12 veis dos elevado de serían cuatro kilos y, por tanto, en concreto lo que tenemos es que la dirección virtual y la dirección física ambas se dividen en dos partes. La parte menos significativa sería el desplazamiento de página y el número de vips desde desplazamiento de página melva, el tamaño de la página, que en este caso son 24.000 menos significativos, que serían el desplazamiento de página. Cuando la en un hace la traducción, el desplazamiento de páginas lo copia y sin intacto, sin hacer ningún cambio sobre y luego la enemiga. Por tanto, se queda con la parte más significativa de la dirección virtual? Esa es la que le da el número de página virtual de hace la traducción y obtendrá el número de páginas física, como veremos en el siguiente apartado. La traducción la consigue gracias a una tabla de páginas que le indica la correspondencia donde está el. Para cada página virtual le indica si esa página virtual está tienen correspondencia física. Es decir, esta memoria principal o todavía no está almacenada en memoria principal. Segundo detalle. El tamaño de las direcciones virtuales depende del tamaño de la dirección, de la memoria virtual; en concreto, cuando estamos trabajando con arquitecturas de 32 vips, la memoria virtual va a tener como mucho cuatro llevabais, porque dos elevado 32 son cuatro jugabais y por tanto, el número de bits que tienen la dirección virtual va a ser 32. Esto hace que si, como hemos dicho anteriormente, el desplazamiento de páginas son 12 vips. Debido a los 4, vais que tenemos por página; los 20 bits restantes, 32 menos -12, me compondrían el número de página virtual. Por otro lado, el tamaño de la dirección física, es decir, el número de vips que forman la dirección física, depende de nuevo del tamaño de la memoria principal, en concreto en el ejemplo que vamos a ver en este durante estas transparencias. Durante este tema el tamaño de la memoria vil principal, vamos a considerar que tiene un gin; ama, y en concreto, dos elevado 30. Tiene un, vais por tanto dirección física, 30.000. De esos 30 vips ya hemos dicho que 12, los 12 menos significativos son el desplazamiento de página y, por tanto los 18 más significativos es el número de página física, otro detalle si nos acordamos con respecto a lo que sería las direcciones para acceder a la memoria caché teníamos que esas direcciones, se dimitiría, observa y se palabra, y luego índice y más tarde etiqueta; después el hoxe se va. Yo no sepan habrá perdón, sería el equivalente a lo que sería el desplazamiento de páginas, y el número. Página virtual sería lo que el equivalente a lo que sería el índice. Veamos ahora unas consideraciones de diseño en el sistema de memoria virtual debido a que el los dispositivos de almacenamiento secundarios son muchísimo más lentos que lo que sería la memoria principal. La diferencia de acceso a dichos discos duros pueden llegar a ser 10 veces más lenta que lo que sería la memoria principal, los costes. El coste de gestionar un fallo de página es enorme. Esto hace que nos podamos permitir ciertas ciertos detalles, por ejemplo, que tengamos que tener no solo que nos podamos permitir, sino que además tengamos que considerar determinadas cosas para intentar amortizar ese ese tiempo. Primer detalle, lo interesante sería que las páginas sean grandes para amortizar el tiempo de acceso y, por tanto, para que poder utilizarlo el mayor número de veces posible, en concreto a día de hoy y los sistemas operativos y la, lo que serían los los. El sistema de memoria virtual está trabajando con páginas de cuatro caballos hasta 64 caballos. Como hemos dicho, la memoria principal es como una especie de memoria caché del que serían disco duro y el esquema que se utiliza es un esquema totalmente asociativo. La idea es reducir la tasa de fallos e incrementar la tasa de aciertos. Recordamos que el esquema totalmente asociativo lo que hace es que cualquier página virtual pueda ir a cualquier página física, y esto nos ha permitido, incluso, como veremos, más tarde, reubicaciones de lo que serían las páginas en lo que sería la memoria principal. Cuando nos quedemos sin memoria principal los fallos de páginas se van a gestionar por software, facilitando en cierta medida es lo que sería el componente hardware va a ser mucho más sentido por son. Cuarto suprimen, atañe, porque la sobrecarga sobrecargadas, de usar el software debido al a lo que sería el tratamiento del fallo de página es, es poca comparado con lo que es el tiempo de acceso al disco duro, que, por tanto, nos podemos permitir. Esa gestión por son buenos lugar dejar bueno, y, al hacerlo por software, los algoritmos de reemplazo, por ejemplo, pueden ser más más inteligentes y, por tanto, conseguir reducir la tasa de fallos como el tiempo de acceso al disco duro. Volvemos a destacar que es muchísimo mayor que el tiempo de acceso a la memoria principal. La política para la escritura va a ser una política de escritura, es decir, se va a escribir solo en la memoria principal y cuando haya que hacer un reemplazo de esa página, se escribirá en lo que sería el almacenamiento secundario en el disco duro. Una política de escritura directa implicaría escribir, tanto la memoria principal como en el disco duro, y sería una política muy lenta; por tanto, se opta por una escritura

Propietarios

Maria Pilar Gonzalez Ferez

Comentarios

Nuevo comentario

Serie: Tema 5 - ETC (+información)

Jerarquía de Memoria: Memoria Virtual