Resumen: Jerarquía de la memoria, almacenamiento en caché. Estructura de memoria jerárquica de las computadoras ¿Cuál es la función principal de la estructura de memoria jerárquica?

💖 ¿Te gusta? Comparte el enlace con tus amigos

ORGANIZACIÓN DE LA MEMORIA DE LA COMPUTADORA

La jerarquía de memoria de las computadoras modernas se basa en dos principios:

El principio de localidad de las llamadas;

Relación costo/rendimiento.

La localidad de llamadas se subdivide en localidad espacial y temporal. localidad espacial significa que después de una llamada a una determinada celda de memoria, lo más probable es que la próxima llamada se produzca en una de las celdas adyacentes (o cercanas). localidad temporal significa que en el tiempo más cercano después de acceder a la celda de memoria, con un alto grado de probabilidad, se requerirá nuevamente el contenido de esta celda.

La jerarquía de memoria de las computadoras modernas, que se muestra en la Figura 5.1, se construye en varios niveles, siendo el nivel superior más pequeño, más rápido y con un costo por byte más alto que el nivel inferior. Este enfoque optimiza la relación costo/rendimiento.

Los niveles de una jerarquía están interconectados: todos los datos de un nivel también se pueden encontrar en un nivel inferior, y todos los datos de ese nivel inferior se pueden encontrar en el siguiente nivel inferior, y así sucesivamente hasta llegar al final de la jerarquía. La información mínima que se puede recuperar o mover entre niveles se denomina bloquear. El tamaño del bloque puede ser fijo o variable. Si este tamaño es fijo, entonces la cantidad de memoria es un múltiplo del tamaño del bloque.

Los niveles de memoria ubicados entre el registro y la memoria principal se denominan memoria caché. El bloque de caché se llama cuerda(línea).

Aunque la jerarquía de la memoria consta de muchos niveles, en un momento dado estamos tratando con solo dos niveles cercanos. Se llama una llamada exitosa o fallida a un nivel superior, respectivamente. pegar o señorita. Un acierto significa que el bloque de memoria se encontró en un nivel superior, mientras que un error significa que no se encontró en ese nivel. Si falla, el bloque requerido se mueve a un nivel superior.

tasa de éxito(índice de aciertos) o índice de aciertos (índice de aciertos) es la proporción de aciertos encontrados en un nivel superior (a menudo representado como un porcentaje). tasa de fallas(tasa de fallos) es la proporción de aciertos que no se encuentran en un nivel superior.

Dado que la mejora del rendimiento es la razón principal de la aparición de la jerarquía de memoria, la proporción de aciertos y errores es una característica importante. El tiempo de acierto es el tiempo para alcanzar un nivel superior de la jerarquía, que incluye, en particular, el tiempo necesario para determinar si el acierto es un acierto o un error. La penalización por falla es el tiempo para reemplazar un bloque en una capa superior con un bloque en una capa inferior, más el tiempo para enviar ese bloque al dispositivo deseado (generalmente un procesador). Las pérdidas perdidas incluyen dos componentes: tiempo de acceso (tiempo de acceso) - el tiempo para acceder a la primera palabra del bloque en un error, y tiempo de transferencia (tiempo de transferencia) - tiempo adicional para transferir las palabras restantes del bloque. El tiempo de acceso está relacionado con la latencia de la memoria de nivel inferior, mientras que el tiempo de transferencia está relacionado con el ancho de banda del enlace entre los dispositivos de memoria de dos niveles adyacentes.



Para describir un cierto nivel de la jerarquía de la memoria, se deben responder las siguientes cuatro preguntas:

1) ¿Dónde se puede colocar un bloque en el nivel superior de la jerarquía? (colocación de bloques).

2) ¿Cómo encontrar un bloque cuando está en el nivel superior? (identificación de bloque).

3) ¿Qué bloque debe reemplazarse en caso de falla? (sustitución de bloque).

4) ¿Qué sucede durante la grabación? (estrategia de escritura).

) se utilizan diversas soluciones técnicas que presentan excelentes características, tanto técnicas como de precio como de peso y tamaño. El almacenamiento a largo plazo en costosas memorias ultrarrápidas e incluso de acceso aleatorio, por regla general, no es rentable, por lo que este tipo de datos se almacena en unidades: disco, cinta, flash, etc.

Al diseñar computadoras y sistemas de alto rendimiento, se deben hacer muchas concesiones, como el tamaño y la tecnología para cada nivel de la jerarquía. Puede considerar un conjunto de memorias diferentes (m 1 ,m 2 ,…,m n) ubicadas en la jerarquía, es decir, cada nivel m i está, por así decirlo, subordinado al nivel m i-1 de la jerarquía. Para reducir el tiempo de espera en los niveles superiores, los niveles inferiores pueden preparar los datos en fragmentos con almacenamiento en búfer y, cuando el búfer está lleno, indicar al nivel superior que se pueden recibir los datos.

A menudo hay 4 niveles principales (ampliados) de la jerarquía:

  1. La memoria interna del procesador (registros organizados en un archivo de registro y la caché del procesador).
  2. RAM del sistema (RAM) y tarjetas de memoria auxiliares.
  3. Unidades de acceso en caliente (almacenamiento masivo en línea) - o memoria secundaria de la computadora. Discos duros y unidades de estado sólido, que no requieren acciones prolongadas (segundos o más) para comenzar a recibir datos.
  4. Unidades que requieren cambio de medios (almacenamiento masivo sin conexión) o almacenamiento terciario. Esto incluye cintas magnéticas, bibliotecas de cintas y discos que requieren un rebobinado prolongado o un cambio mecánico (o manual) de los medios de almacenamiento.

La mayoría de las PC modernas usan la siguiente jerarquía de memoria:

  1. Registros del procesador organizados en un archivo de registro - la mayoría acceso rápido(del orden de 1 ciclo), pero solo unos pocos cientos o, rara vez, miles de bytes de tamaño.
  2. Caché del procesador de nivel 1 (L1): tiempo de acceso del orden de varios ciclos, decenas de kilobytes de tamaño
  3. Caché de nivel 2 del procesador (L2): tiempo de acceso más largo (de 2 a 10 veces más lento que L1), alrededor de medio megabyte o más
  4. Caché de procesador de nivel 3 (L3): tiempo de acceso de aproximadamente cien ciclos de reloj, varios megabytes de tamaño (utilizado recientemente en procesadores masivos)
  5. RAM del sistema: tiempo de acceso de cientos a posiblemente miles de ciclos, pero tamaños enormes de varios gigabytes, hasta cientos. El tiempo de acceso a la RAM puede variar para diferentes partes de la misma en el caso de complejos de clase NUMA (con acceso a memoria no uniforme)
  6. Almacenamiento en disco: muchos millones de ciclos, si los datos no se almacenaron en caché o se almacenaron en búfer por adelantado, tamaños de hasta varios terabytes
  7. Memoria terciaria: retrasos de hasta varios segundos o minutos, pero volúmenes prácticamente ilimitados (bibliotecas de cintas).

La mayoría de los programadores suelen asumir que la memoria se divide en dos niveles, RAM y unidades de disco, aunque en lenguajes ensambladores y lenguajes compatibles con ensambladores (como ) es posible trabajar directamente con registros. Aprovechar la jerarquía de la memoria requiere una acción concertada del programador, el hardware y los compiladores (así como el soporte básico en el sistema operativo):

  • Los programadores son responsables de organizar las transferencias de datos entre discos y memoria (RAM) mediante E/S de archivos; Los sistemas operativos modernos también implementan esto como paginación.
  • El hardware se encarga de organizar la transferencia de datos entre la memoria y las cachés.
  • Los compiladores de optimización son responsables de generar código que haga un uso eficiente de los registros del procesador y la memoria caché por parte del hardware.

Muchos programadores no tienen en cuenta la memoria multinivel al programar. Este enfoque funciona siempre que la aplicación no experimente una degradación del rendimiento debido al bajo rendimiento del subsistema de memoria. Al corregir el código (refactorización), es necesario tener en cuenta la presencia y las peculiaridades del trabajo de los niveles superiores de la jerarquía de la memoria para lograr el máximo rendimiento.

ver también

Escriba una reseña sobre el artículo "Jerarquía de memoria"

Literatura

  • Mikhail Guk "Hardware de PC de IBM" San Petersburgo 1998
  • John L. Hennessy, 2012

notas

Un extracto que caracteriza la Jerarquía de la Memoria

Sonya, como si no creyera lo que escuchaba, miró con todos sus ojos a Natasha.
- ¿Y Bolkonski? - ella dijo.
“¡Ah, Sonya, oh, si supieras lo feliz que soy! Natasha dijo. No sabes lo que es el amor...
- Pero, Natasha, ¿realmente todo ha terminado?
Natasha miró a Sonya con ojos grandes y abiertos, como si no entendiera su pregunta.
- Bueno, ¿rechazas al Príncipe Andrei? dijo Sonya.
"Ah, no entiendes nada, no digas tonterías, escucha", dijo Natasha con molestia instantánea.
"No, no puedo creerlo", repitió Sonya. - No entiendo. ¿Cómo amaste a una persona durante todo un año y de repente ... Después de todo, solo lo viste tres veces? Natasha, no te creo, estás siendo mala. En tres días, olvídate de todo y así...
“Tres días”, dijo Natasha. “Creo que lo he amado durante cien años. Siento que nunca he amado a nadie antes que él. No puedes entender esto. Sonya, espera, siéntate aquí. Natasha la abrazó y la besó.
“Me dijeron que pasa y escuchaste bien, pero ahora solo he experimentado este amor. No es como antes. Tan pronto como lo vi, sentí que él era mi amo y yo era su esclavo, y que no podía evitar amarlo. ¡Sí, esclavo! Lo que él me diga, lo haré. No entiendes esto. ¿Qué tengo que hacer? ¿Qué debo hacer, Sonia? Natasha dijo con una cara feliz y asustada.
“Pero piensa en lo que estás haciendo”, dijo Sonya, “no puedo dejarlo así. Esas cartas secretas... ¿Cómo pudiste dejarlo hacer eso? dijo con horror y repugnancia, que apenas podía ocultar.
"Te dije", respondió Natasha, "que no tengo voluntad, cómo no puedes entender esto: ¡lo amo!"
“Entonces no dejaré que suceda, te lo diré”, gritó Sonya con lágrimas en los ojos.
- Qué eres, por el amor de Dios ... Si me dices, eres mi enemigo, - habló Natasha. - Quieres mi desgracia, quieres que nos separemos...
Al ver el miedo de Natasha, Sonya se echó a llorar de vergüenza y lástima por su amiga.
"¿Pero qué pasó entre ustedes?" ella preguntó. - ¿Que te dijo el? ¿Por qué no va a la casa?
Natasha no respondió a su pregunta.
“Por el amor de Dios, Sonya, no le digas a nadie, no me tortures”, suplicó Natasha. “Recuerda no interferir en tales asuntos. Te abrí...
Pero, ¿para qué sirven estos secretos? ¿Por qué no va a la casa? preguntó Sonia. "¿Por qué no busca directamente tu mano?" Después de todo, el Príncipe Andrei te dio completa libertad, si es así; pero no lo creo Natasha, ¿has pensado en las razones secretas?
Natasha miró a Sonya con ojos sorprendidos. Al parecer, esta pregunta se le presentó por primera vez y no supo cómo responderla.
Por qué motivo, no lo sé. ¡Pero luego hay razones!
Sonya suspiró y sacudió la cabeza con incredulidad.
“Si hubiera razones…”, comenzó. Pero Natasha, adivinando sus dudas, la interrumpió asustada.
“Sonya, no puedes dudar de él, no puedes, no puedes, ¿entiendes? ella gritó.
- ¿El te ama?
- ¿Él ama? Natasha repitió con una sonrisa de arrepentimiento por el aburrimiento de su amiga. "Leíste la carta, ¿la viste?"
“Pero, ¿y si es una persona innoble?”
"¡Él!... ¿una persona innoble?" ¡Si supieras! Natasha dijo.
- Si es una persona noble, entonces debe declarar su intención o dejar de verte; y si no quieres hacer esto, entonces lo haré, le escribiré, le diré papá ”, dijo Sonya con decisión.
- ¡Sí, no puedo vivir sin él! Natacha gritó.
Natasha, no te entiendo. ¡Y de qué estás hablando! Recuerda a tu padre, Nicolás.
“No necesito a nadie, no amo a nadie más que a él. ¿Cómo te atreves a decir que es innoble? ¿No sabes que lo amo? Natacha gritó. "Sonya, vete, no quiero pelear contigo, vete, por el amor de Dios, vete: ves cómo estoy atormentada", gritó Natasha enojada con voz contenida, irritada y desesperada. Sonya se echó a llorar y salió corriendo de la habitación.
Natasha se acercó a la mesa y, sin pensarlo ni un minuto, escribió esa respuesta a la Princesa María, que no pudo escribir en toda la mañana. En esta carta, le escribió brevemente a la princesa Marya que todos sus malentendidos habían terminado, que, aprovechando la generosidad del príncipe Andrei, quien al irse le dio la libertad, le pide que olvide todo y la perdone si es culpable. ante ella, pero que ella no puede ser su esposa. Todo esto le parecía tan fácil, simple y claro en ese momento.

El viernes, se suponía que los Rostov irían al pueblo, y el miércoles, el conde fue con el comprador a su área suburbana.
El día de la partida del conde, Sonya y Natasha fueron invitadas a una gran cena en Karagins, y Marya Dmitrievna las invitó. En esta cena, Natasha volvió a encontrarse con Anatole, y Sonya notó que Natasha estaba hablando con él, queriendo no ser escuchada, y durante todo el tiempo de la cena estuvo aún más emocionada que antes. Cuando regresaron a casa, Natasha fue la primera en comenzar con Sonya la explicación que su amiga estaba esperando.
“Aquí estás, Sonya, diciendo todo tipo de tonterías sobre él”, comenzó Natasha con voz mansa, esa voz que los niños hablan cuando quieren ser alabados. “Hablamos con él hoy.
- Bueno, ¿qué, qué? Bueno, ¿qué dijo? Natasha, cuánto me alegro de que no estés enojada conmigo. Dime todo, toda la verdad. ¿Que dijo el?
Natasha consideró.
“¡Ah, Sonya, si lo conocieras como yo!” Dijo... Me preguntó cómo le prometí a Bolkonsky. Se alegró de que dependiera de mí rechazarlo.
Sonya suspiró con tristeza.
“Pero no rechazaste a Bolkonsky”, dijo.
“¡Tal vez no lo hice!” Tal vez todo haya terminado con Bolkonsky. ¿Por qué piensas tan mal de mí?
“No creo nada, simplemente no lo entiendo…
- Espera, Sonya, lo entenderás todo. Mira qué clase de persona es. No pienses cosas malas de mí o de él.
“No pienso cosas malas de nadie: amo a todos y siento pena por todos. Pero, ¿qué debo hacer?
Sonya no abandonó el tono amable con el que Natasha se dirigió a ella. Cuanto más suave y escrutadora era la expresión de Natasha, más serio y severo era el rostro de Sonya.
"Natasha", dijo, "me pediste que no te hablara, no lo hice, ahora tú mismo comenzaste". Natasha, no le creo. ¿Por qué este secreto?
- ¡Otra vez otra vez! Natasha interrumpió.
- Natasha, tengo miedo por ti.
- ¿De qué tener miedo?
"Me temo que te arruinarás", dijo Sonya con decisión, ella misma asustada por lo que dijo.
El rostro de Natasha volvió a expresar ira.
“Y destruiré, destruiré, me destruiré a mí mismo lo antes posible. No es asunto tuyo. No para ti, pero para mí será malo. Deja, dejame. Te odio.
- ¡Natacha! Sonya gritó con miedo.
- ¡Lo odio, lo odio! ¡Y tú eres mi enemigo para siempre!
Natasha salió corriendo de la habitación.
Natasha no le habló más a Sonya y la evitó. Con la misma expresión de agitada sorpresa y criminalidad, se paseaba por las habitaciones, tomando primero esta y luego otra ocupación y abandonándolas inmediatamente.
No importaba lo difícil que fuera para Sonya, mantuvo los ojos en su amiga.
La víspera del día en que se suponía que el conde regresaría, Sonya notó que Natasha había estado sentada toda la mañana en la ventana de la sala, como si esperara algo y que le había hecho una especie de señal al militar que pasaba, a quien Sonya confundió con Anatole.

Implementar subsistema memoria de acceso aleatorio en computadoras de propósito general usar una tecnología es imposible. Cada una de las tecnologías consideradas no asegura el cumplimiento de todos los requisitos que se aplican al subsistema RAM. En particular, el uso de la tecnología de semiconductores no puede proporcionar independencia energética y la cantidad necesaria de RAM a un costo suficiente.

Este dilema se puede resolver utilizando diferentes tecnologías de almacenamiento de información en el subsistema de memoria, implementando un cierto jerarquía del subsistema de memoria. Una jerarquía típica del subsistema de memoria se muestra esquemáticamente en la fig. 5.1.


Arroz. 5.1. Jerarquía del subsistema de memoria de la computadora

El principio de jerarquía implica el cumplimiento de las siguientes condiciones:

el número de niveles de jerarquía puede ser arbitrario;

cada nivel de la jerarquía realiza un conjunto estrictamente definido de funciones;

las referencias externas siempre van al nivel superior de la jerarquía;

si el i-ésimo nivel de la jerarquía puede ejecutar la solicitud recibida, entonces la ejecuta y pasa el resultado a la fuente de la solicitud: el (i-1)-ésimo nivel de la jerarquía;

si el i-ésimo nivel de la jerarquía no puede cumplir con la solicitud recibida, entonces forma una solicitud al (i+1)-ésimo nivel de la jerarquía;

a medida que pasa de los niveles superiores de la jerarquía del subsistema de memoria a los niveles inferiores:

aumentar la capacidad;

aumenta el tiempo de acceso;

Por lo tanto, las tecnologías de memoria más lentas pero más rápidas se complementan con tecnologías más lentas pero de mayor capacidad.

Los temas clave, cuya solución asegura el éxito del diseño jerárquico del subsistema de memoria, son:

organización de los flujos de información en la computadora, proporcionando, a medida que se pasa de los dispositivos de memoria de los niveles superiores de la jerarquía a los dispositivos de memoria de los niveles inferiores, una disminución en la intensidad de las llamadas;

el anidamiento de información contenida en la memoria de niveles superiores en la memoria de niveles inferiores (es decir, la información en la memoria de un nivel superior de la jerarquía es un subconjunto de la memoria de un nivel inferior).

Suponga que el procesador del sistema puede acceder a dos niveles de memoria. La memoria de primer nivel contiene N palabras y tiene un tiempo de acceso de 1 ns, mientras que la memoria de segundo nivel contiene 1000 N palabras y un tiempo de acceso de 10 ns. Suponga que si la palabra deseada está en la memoria de 1er nivel, entonces el procesador la recupera directamente, y si está en la memoria de 2do nivel, entonces la palabra solicitada se escribe primero en la memoria de 1er nivel, y desde allí es recuperada por el procesador. Para facilitar el análisis, no tendremos en cuenta el tiempo requerido por el procesador para averiguar exactamente dónde se encuentra la palabra buscada, en la memoria del primer o segundo nivel.


Deje que el parámetro H caracteriza la proporción de solicitudes a la memoria de primer nivel en todo el flujo de solicitudes, el parámetro T 1 - el tiempo de acceso a la memoria de primer nivel, y T 2- tiempo de acceso a la memoria del segundo nivel. No es de extrañar que cuanto mayor sea el valor H, aquellos. la mayor parte de todos los accesos al procesador para datos cae en el nivel más rápido, menor es el tiempo promedio de acceso al subsistema de memoria jerárquica, y más cerca está del valor T 1.

El tiempo promedio de acceso a dicho subsistema de memoria se puede expresar mediante la fórmula:

Suponga que el 95% de todos los accesos están en la memoria de primer nivel (es decir, H=0,95). Entonces, el tiempo promedio de extracción de una palabra del subsistema de memoria jerárquica será igual a:

Entonces, de todo lo que se ha dicho, se deduce que el concepto de la organización jerárquica del subsistema de memoria es, en principio, bastante sólido, pero traerá éxito práctico solo si todos los principios mencionados anteriormente se implementan en el diseño del sistema. .

Entre las tecnologías de memoria que existen hoy en día, no es tan difícil elegir una serie que tenga las siguientes propiedades:

rendimiento de memoria de alto nivel requerido;

reducir el costo relativo del almacenamiento de información;

aumento de capacidad;

aumento del tiempo de acceso;

la independencia energética se proporciona en algún nivel de la jerarquía;

implementación del requisito de anidamiento.

Sin embargo, garantizar la propiedad de reducir la frecuencia de los accesos a medida que se avanza por los niveles de la jerarquía del subsistema de memoria depende en gran medida no del diseñador de la computadora, sino de las propiedades de los programas que se ejecutan.

conclusiones

1. Si la velocidad del procesador y la velocidad de la memoria de semiconductores no volátil son cercanas, entonces el subsistema RAM se puede implementar con un nivel de jerarquía.

2. Si la velocidad del procesador y la velocidad de la memoria de semiconductor no volátil son significativamente diferentes, entonces el subsistema RAM debe ser jerárquico con varios niveles de jerarquía.

3. El número y los parámetros de los niveles de memoria de la jerarquía dependen del área de aplicación de la computadora.

4. En alto rendimiento computadoras modernas hay hasta 6 niveles de jerarquía de subsistemas de memoria.

5. El número de niveles de jerarquía puede ser arbitrario.

6. Cada nivel de la jerarquía realiza un conjunto estrictamente definido de funciones.

7. El acceso al subsistema de memoria jerárquica desde el exterior siempre se produce en el nivel superior de la jerarquía.

8. Si el i-ésimo nivel de la jerarquía puede ejecutar la solicitud recibida, la ejecuta y pasa el resultado a la fuente de la solicitud: el (i-1)-ésimo nivel de la jerarquía.

9. Si el i-ésimo nivel de la jerarquía no puede cumplir con la solicitud recibida, entonces forma una solicitud al (i + 1)-ésimo nivel de la jerarquía.

10. A medida que pasa de los niveles superiores de la jerarquía del subsistema de memoria a los niveles inferiores:

se reduce el costo relativo de almacenar información;

aumentar la capacidad;

aumenta el tiempo de acceso;

la frecuencia de llamadas del nivel anterior de la jerarquía disminuye;

se proporciona el anidamiento de la información contenida en la memoria de niveles superiores en la memoria de niveles inferiores (es decir, la información en la memoria de un nivel superior de la jerarquía es un subconjunto de la memoria de un nivel inferior);

la independencia energética se proporciona en algún nivel de la jerarquía.

Enlace Localidad

La esencia del término localización de enlaces (referencia de localidad) es que los accesos a la RAM durante la ejecución de un fragmento de programa tienden a "acumularse" en un área limitada (cluster) del espacio de direcciones de la RAM. A medida que se ejecuta un programa lo suficientemente complejo, el clúster actual cambia en el espacio de direcciones, pero durante un período de tiempo bastante corto, podemos suponer que las llamadas van a un clúster fijo.

Intuitivamente, la suposición sobre la localización de enlaces parece bastante razonable. Considere los siguientes argumentos a favor de esta suposición.

1. Una parte importante del flujo de control del programa es secuencial
personaje. Las excepciones son los comandos de saltos condicionales e incondicionales, llamadas a procedimientos y retornos de procedimientos, que en términos porcentuales constituyen una fracción insignificante de los comandos del programa. En consecuencia, en la gran mayoría de los casos, el siguiente comando ejecutable se recupera de la celda de RAM que sigue a aquella en la que se encontraba el comando actual.

2. Es muy raro que los comandos de llamada de procedimiento sigan uno
seguido de otro flujo continuo, seguido del mismo flujo de comandos
regreso de trámites. Como regla general, el programa tiene un anidamiento bastante pequeño de llamadas a procedimientos. En consecuencia, durante un período de tiempo determinado, aunque limitado, el programa ejecuta comandos concentrados en un número reducido de procedimientos.

3. La mayoría de los procedimientos computacionales iterativos consisten en un pequeño número de instrucciones repetidas varias veces. De este modo,
durante la ejecución del procedimiento iterativo, el núcleo del procesador en realidad accede a la misma área de RAM donde se encuentran estas instrucciones.

4. En muchos casos, el proceso computacional incluye el procesamiento de datos estructurados: matrices o secuencias de registros de cierta estructura. En este caso, los elementos se procesan secuencialmente.
tales estructuras, que, por regla general, se colocan de forma compacta en la dirección
espacio RAM.

Estas consideraciones intuitivas han sido confirmadas por muchos estudios. Varios trabajos han estudiado la naturaleza de las aplicaciones típicas para diversos propósitos desarrolladas utilizando lenguajes de programación de alto nivel. Algunos de los resultados de estos estudios se muestran en la Tabla 5.1. Presenta la frecuencia relativa del uso de operadores de varios tipos en programas para diversos fines.

Como se puede ver en la tabla anterior, los resultados de los estudios de programas para varios propósitos arrojaron resultados bastante cercanos: de ellos se deduce que los comandos de transición y llamada de procedimiento constituyen una parte muy pequeña de todos los comandos ejecutados durante la operación del programa. Por lo tanto, una investigación rigurosa confirmó la primera de las suposiciones intuitivas.

Tabla 5.1. Frecuencia relativa de ejecución de sentencias de diferente tipo en programas en lenguajes de alto nivel

En la fig. 5.1 es un gráfico que muestra la naturaleza del trabajo con procedimientos en el proceso de ejecución de un programa típico.

Arroz. 5.1. La naturaleza de la llamada a procedimientos durante la ejecución del programa

El eje de ordenadas del gráfico muestra la profundidad de anidamiento actual del procedimiento que se está ejecutando, y el eje de abscisas muestra el tiempo en unidades relativas (ciclos de ejecución de comandos de "llamada/retorno"). Cada llamada de procedimiento está representada en el gráfico por una línea inclinada que baja hacia la derecha (hundiendo el programa "en profundidad"), y el comando de retorno está representado por una línea hacia arriba a la derecha (subiendo el programa "a la superficie") . Las parcelas están marcadas con rectángulos en el gráfico, en los que la profundidad de anidamiento relativa no supera los 5. Tal rectángulo (ventana de anidamiento especificada) se desplaza solo cuando la profundidad de anidamiento desde el momento fijado por su borde izquierdo excede 5. Como se puede ver en el gráfico, el programa permanece en el rango de anidamiento especificado durante bastante tiempo, lo que significa que todo este tiempo el núcleo del procesador accede solo comandos de cinco procedimientos anidados actuales. Un estudio de varios programas escritos en lenguajes de alto nivel mostró que solo el 1% de todas las instrucciones de llamadas a procedimientos tienen una profundidad de anidamiento superior a 8.

La propiedad de localización de enlaces también es confirmada por estudios posteriores de aplicaciones específicas al presente. Por ejemplo, en la fig. La figura 5.2 muestra los resultados de un estudio estadístico del acceso a la página en un solo servidor web.

Arroz. 5.2. Localización de enlaces a páginas web

Hay una diferencia entre espacial y temporal localización. Por debajo localización espacial se refiere a la tendencia a concentrar enlaces en un determinado grupo (volumen) del espacio de direcciones de RAM. En particular, esto ocurre cuando se ejecutan comandos ubicados en celdas RAM vecinas, es decir en el orden natural de ejecución del programa. La localización espacial también tiene lugar cuando se procesan elementos de conjuntos de datos estructurados ubicados en celdas sucesivas de RAM.

Por debajo localización temporal se refiere a la tendencia a acceder a las mismas celdas RAM (un grupo de celdas) durante un tiempo suficientemente largo. Esto ocurre, por ejemplo, cuando se ejecutan bucles repetidos, incluso si el cuerpo del bucle contiene varios procedimientos (la mayoría de las veces anidados unos dentro de otros) ubicados en diferentes segmentos de RAM. Lo principal es que la localización temporal le permite copiar ciertas celdas de RAM en algún búfer y luego trabajar con ellas durante mucho tiempo.

Por lo tanto, es posible distribuir información entre dispositivos de almacenamiento de diferentes niveles de la jerarquía de tal manera que la proporción de accesos a la memoria de los niveles inferiores de la jerarquía sea menor que la proporción de accesos a la memoria de los superiores. niveles

Volvamos de nuevo al ejemplo con memoria de dos niveles. Suponga que todos los comandos y los datos del programa se almacenan en un dispositivo de almacenamiento de nivel 2. Copiemos temporalmente los clústeres actuales al dispositivo de almacenamiento del primer nivel. De vez en cuando, uno de los clústeres copiados (y posiblemente modificados durante la ejecución del programa) deberá devolverse al dispositivo de almacenamiento de segundo nivel, y otro clúster se copiará en la "ventana" resultante. Pero, en promedio, la mayoría de las llamadas durante la ejecución del programa recaerán en aquellos clústeres que ya están presentes en el dispositivo de almacenamiento de primer nivel.

El mismo principio se puede aplicar en un sistema que no tiene dos, sino tres o más dispositivos de almacenamiento de diferentes niveles de la jerarquía.

La más rápida, pero también la más pequeña en volumen, así como la más costosa (en relación con la cantidad de información almacenada) será la memoria, que consta de registros internos del procesador. Por regla general, el número de dichos registros está limitado a unas pocas docenas, aunque existen arquitecturas que incluyen cientos de registros.

Unos niveles más abajo está la memoria RAM de la computadora. Cada celda de RAM tiene un atributo único: Dirección, además, en las instrucciones de máquina, para identificar la gran mayoría de los datos procesados, se utiliza la dirección del elemento correspondiente en la RAM.

En las computadoras modernas, por encima de la RAM en la jerarquía, hay una memoria caché, que tiene una capacidad mucho menor que la RAM (y mucho más que el conjunto de registros internos de los núcleos del procesador), pero tiene varios órdenes decimales de magnitud más rápida. actuación. La memoria caché generalmente está oculta para el programador, es decir, no controla la ubicación de los datos en la memoria caché ni accede a ellos de ninguna manera desde el programa. Este dispositivo de almacenamiento intermedio "mantiene listos" los datos y las instrucciones del programa que, muy probablemente, el núcleo del procesador pueda necesitar en un futuro próximo y, por lo tanto, "suaviza" el flujo de información entre los registros de los núcleos del procesador y memoria principal.

Los dispositivos de memoria que desempeñan el papel de memoria de los primeros niveles de la jerarquía en una computadora, por regla general, son dispositivos volátiles semiconductores estáticos por su diseño. Pero cada uno de ellos generalmente se fabrica utilizando tecnología que brinda el equilibrio óptimo entre capacidad, velocidad y costo para un nivel de memoria determinado. Para el almacenamiento de información a largo plazo, se utilizan dispositivos de memoria externa de gran capacidad (en relación con dichos dispositivos, el término se usa a menudo memoria masiva). Muy a menudo, estos son discos magnéticos duros o dispositivos de estado sólido, que se complementan con dispositivos con medios extraíbles: discos magnéticos, ópticos y magnetoópticos y cintas magnéticas. Los dispositivos de almacenamiento externo almacenan archivos de programas ejecutables y datos procesados ​​y, como regla, el programador se refiere a esta información en términos de archivos o registros individuales, y no en términos de bytes o palabras individuales.

Los niveles jerárquicos se pueden organizar no solo mediante la inclusión de ciertos dispositivos en el hardware de la computadora, sino también mediante el software. El sistema operativo puede utilizar parte de la RAM como un búfer al intercambiar datos entre la RAM del semiconductor y la memoria del disco externo. Esta técnica, para la que se acuñó el término especial "caché de disco", contribuye a mejorar el rendimiento del sistema por dos razones:

1. Las grabaciones en discos tienen una estructura de grupos claramente definida. El almacenamiento en búfer le permite transferir datos en grandes porciones, aproximadamente igual a un clúster, en lugar de enviarlos en pequeñas porciones "tirando" del mecanismo de la unidad de disco cada vez.

2. El programa puede solicitar repetidamente algunos datos destinados a ser escritos en el disco (esto sucede a menudo cuando se trabaja con fragmentos de bases de datos). Por lo tanto, es deseable almacenarlos en una memoria de semiconductores rápida el mayor tiempo posible y no leerlos del disco cada vez.

preguntas de examen

1. ¿Cuáles son las funciones del subsistema de memoria en una computadora?

2. Enumere los requisitos para el subsistema de memoria.

3. ¿Cómo se relacionan entre sí los requisitos básicos para el subsistema de memoria?

4. ¿Qué es la no volatilidad de la memoria?

5. ¿Cuáles son las principales características de la memoria estática de semiconductores?

6. ¿Cuáles son las principales características de la memoria dinámica de semiconductores?

7. Cuáles son las principales características de la memoria magnética.

8. ¿Por qué es imposible implementar un subsistema de memoria en una computadora de propósito general de alta velocidad usando una tecnología?

9. ¿Cuáles son los principios de organización del subsistema de memoria jerárquica?

10. ¿Puede un subsistema RAM tener un nivel de jerarquía?

11. ¿Qué es la localización de enlaces?

12. ¿Qué es la localización temporal?

13. ¿Qué es la localización espacial?

    Obtener el valor que necesita de KIT a un costo menor significa que las empresas invertirán en tecnología más barata

    El papel cada vez mayor del mercado asiático se debe principalmente a los mercados de China e India. Estos dos países representan el 65% del mercado asiático En la actualidad, China lucha por el liderazgo tecnológico, China se está convirtiendo en el segundo mercado más grande para equipos de alta tecnología.

    La unificación de los fabricantes de CIT se produce como resultado de la complicación de las tecnologías de producción, un aumento en el costo de las plantas, que se vuelven "inasequibles" para los fabricantes individuales.

    la creciente importancia de los mercados domésticos se debe a la automatización de los procesos de limpieza.

    El crecimiento del mercado de la tecnología móvil significa un aumento significativo de usuarios de computadoras portátiles y teléfonos móviles.

    El aumento del papel del proveedor de servicios se debe al rápido desarrollo de las redes, tanto locales como de Internet. En este caso, se vuelve más rentable no crear su propio recurso de información, sino solicitarlo al proveedor de servicios.

    Sistema de información (SI)- un conjunto interconectado de medios, métodos y personal utilizado para almacenar, procesar y emitir información con el fin de lograr el objetivo. abierto y cerrado sistemas Hay dos tipos principales de sistemas: cerrados y abiertos. Un sistema cerrado tiene límites fijos rígidos, sus acciones son relativamente independientes del entorno que rodea el sistema. Un sistema abierto se caracteriza por la interacción con el entorno externo. La energía, la información, los materiales son objetos de intercambio con el entorno externo a través de los límites permeables del sistema.De acuerdo con la naturaleza del uso de la información, los sistemas de información se pueden dividir en recuperación de información y decisión de información sistemas Se pueden distinguir dos subclases: gestionar y asesorar, por la naturaleza de los datos que se tratan, se distinguen sistemas de información y referencia (ISS) y sistemas de procesamiento de datos (DDS). ISS busca información sin procesarla. SOD realiza tanto la búsqueda como el procesamiento de la información. estructurado (formalizado), no estructurado (no formalizado), parcialmente estructurado.

    Soporte estructural de SI. Los SI tienen una estructura compleja, usan recursos de varias categorías y constan de partes separadas llamadas subsistemas. Subsistema- es una parte del sistema, distinguida por cualquier signo.La estructura general del sistema de información puede considerarse como un conjunto de subsistemas, independientemente del alcance. En este caso, se habla de característica estructural clasificaciones y subsistemas se denominan provisión. Los subsistemas proporcionan: técnico, matemático, informativo, software, lingüístico, organizacional, legal y ergonométrico.Apoyo técnico - un conjunto de medios técnicos destinados a la operación del sistema de información, así como la documentación relevante para estas herramientas y procesos tecnológicos El conjunto de medios técnicos está compuesto por: computadoras de cualquier modelo; dispositivos para recopilar, acumular y emitir información; dispositivos de red, etc Matemáticas y software - un conjunto de métodos matemáticos, modelos, algoritmos y programas para la implementación de las metas y objetivos del sistema de información, así como el funcionamiento normal del complejo de medios técnicos. Los medios del software matemático incluyen: herramientas para modelar procesos de control; tareas típicas de control; métodos de programación matemática, estadísticas matemáticas, etc.. El software incluye: software de sistema, software de aplicación; Estampación. Soporte de información - un conjunto de un sistema unificado de clasificación y codificación de información, sistemas de documentación unificados, esquemas de flujos de información que circulan en la organización, así como una metodología para construir bases de datos. Al soporte lingüístico de IP incluye lenguajes naturales y artificiales, así como los medios de su soporte lingüístico: diccionarios del vocabulario de los lenguajes naturales, tesauros (diccionarios especiales de los conceptos básicos del lenguaje, denotados por palabras o frases separadas) del área temática, diccionarios de traducción , etc. Apoyo organizativo - un conjunto de métodos y medios que regulan la interacción de los empleados con los medios técnicos y entre ellos en el proceso de desarrollo y operación de un sistema de información. El soporte organizacional implementa las siguientes funciones: análisis del sistema de gestión de la organización existente, dónde se utilizarán los SI, e identificación de las tareas a automatizar, etc. Soporte legal - un conjunto de normas jurídicas que determinan la creación, personalidad jurídica y funcionamiento de los SI, regulando el procedimiento de obtención, transformación y uso de la información. Soporte ergonómico Ergonomía- una disciplina científica y aplicada que se ocupa del estudio y la creación de sistemas efectivos controlados por humanos.

4. Jerarquía de la memoria computadora personal

Jerarquía de la memoria- un término utilizado en tecnología informática en el diseño y programación de computadoras. Significa que diferentes tipos de memoria forman una jerarquía, en diferentes niveles de los cuales hay memorias con diferentes tiempos de acceso, complejidad, costo y volumen. La posibilidad de construir una jerarquía de memoria se debe al hecho de que la mayoría de los algoritmos acceden a un pequeño conjunto de datos en cada intervalo de tiempo, que puede colocarse en una memoria más rápida, pero costosa y, por lo tanto, pequeña. A menudo hay 4 niveles principales de jerarquía: 1) Memoria interna del procesador (registros organizados en un archivo de registro y caché del procesador). 2) RAM del sistema y tarjetas de memoria auxiliares. 3) memoria secundaria de la computadora. Discos duros y unidades de estado sólido. 4) Unidades que requieren conmutación de medios o almacenamiento terciario. Esto incluye cintas magnéticas, bibliotecas de cintas y bibliotecas de discos. En la mayoría de las PC modernas, se considera la siguiente jerarquía de memoria: Registros del procesador; Caché del procesador de nivel 1 (L1); Caché del procesador nivel 2 (L2); Caché del procesador de nivel 3 (L3); RAM del sistema; Almacenamiento de disco; memoria terciaria.

5. Configuración de la computadora personal

Por debajo configuración comprender un determinado conjunto de componentes, en función de su finalidad, número y características principales. La configuración a menudo significa elegir hardware y software, firmware y documentación adjunta. La configuración afecta el funcionamiento y el rendimiento de la computadora. Hay 4 piezas principales de hardware de computadora personal: tarjeta madre actúa como coordinador. conjunto de chips- complejo de microprocesador que administra vnutr. sistemas informáticos El conjunto de chips determina las características principales de la placa base. RAM de la CPU(RAM) es responsable del almacenamiento temporal de datos cuando la computadora está encendida. ROM (memoria de solo lectura) diseñado para el almacenamiento a largo plazo de datos cuando la computadora está apagada. Fuente de alimentación opcional: disco duro- el dispositivo principal para el almacenamiento a largo plazo de grandes cantidades de datos y programas, realiza un dispositivo lógico de hardware especial. Los principales parámetros son la capacidad y el rendimiento. Tablero de sonido.

6. Clasificación general del software.

Software por campo de uso dividido en: 1 ) hardware de computadoras autónomas y redes informáticas; 2 ) tareas funcionales de diversas áreas temáticas; 3 ) tecnología de desarrollo de software. software incluido: 1 ) software del sistema; 2 ) paquetes programas de aplicación; 3 ) herramientas tecnológicas de programación. Software del sistema- un conjunto de programas y sistemas de software diseñados para garantizar el funcionamiento de una computadora personal y redes informáticas. Paquetes de aplicaciones- un complejo de programas y sistemas de software interrelacionados que proporcionan tecnología para el desarrollo, depuración e implementación de los productos de software creados. Software del sistema incluido: 1. software básico: - sistemas operativos (SO); programas de shell del sistema operativo; -red OS 2. software de servicio.

7. Indicadores para evaluar la calidad del software. Indicadores de confiabilidad. fiabilidad- esta es la capacidad del programa en áreas específicas de aplicación. funciones dadas. De acuerdo con los documentos del programa, en el caso de una desviación en el entorno operativo causada por fallas técnicas. medios, errores en los datos de entrada, errores de servicio y otras desviaciones desestabilizadoras. Sostenibilidad operativa es la capacidad de continuar trabajando después de que ocurre una desviación. actuación- esta es la capacidad del programa para funcionar en los modos especificados y volúmenes de información procesada en ausencia de fallas

8. Indicadores para evaluar la calidad del software. Indicadores de mantenibilidad. Indicadores de calidad presentados. una estructura de varios niveles, e ispolz. tanto el desarrollo por parte de los probadores de programas, como los compradores por parte de los clientes. Uno de los indicadores yavl. mantenibilidad- esta es la facilidad de eliminar errores en el programa, mantener la documentación del software al día y actualizarla. una estructuralidad- organizar todas las partes en una única estructura lógica. 2 Sencillez construcciones: programas de construcción de la manera más racional, desde el punto de vista de la percepción y la comprensión. 3 visibilidad. 4 Repetibilidad– grado de uso de soluciones o componentes de diseño estándar. 5 Integridad de la documentación.

9.Indicadores para evaluar la calidad del software. Métricas de usabilidad. Indicadores de calidad presentados. una estructura de varios niveles, e ispolz. tanto el desarrollo por parte de los probadores de programas, como los compradores por parte de los clientes. Uno de los indicadores yavl. Facilidad de uso- estas son las propiedades del programa que contribuyen al rápido desarrollo de la aplicación y operación con costos mínimos de mano de obra y teniendo en cuenta la naturaleza de las tareas a resolver y los requisitos para la calificación del personal de mantenimiento 1 Facilidad de desarrollo. 2 Disponibilidad de documentación del software. 3 Facilidad de uso y mantenimiento.

10. Indicadores de evaluación de la calidad del software. Eficiencia.Eficiencia(Eficiencia) - el grado de satisfacción con las necesidades del usuario en el procesamiento de datos, teniendo en cuenta los recursos económicos, laborales y los recursos del sistema de procesamiento de información; la capacidad del software para proporcionar el nivel requerido de rendimiento de acuerdo con los recursos asignados, el tiempo y otras condiciones especificadas.

Tipos: 1) El nivel de automatización 2) Eficiencia del tiempo: velocidad de procesamiento durante un tiempo determinado 3) Intensidad de los recursos: la cantidad de personal, tecnología. Los medios para llevar a cabo el proceso.

). Significa que diferentes tipos de memoria forman una jerarquía, en diferentes niveles de los cuales hay memorias con diferentes tiempos de acceso, complejidad, costo y volumen. La posibilidad de construir una jerarquía de memoria se debe al hecho de que la mayoría de los algoritmos acceden a un pequeño conjunto de datos en cada intervalo de tiempo, que se puede colocar en una memoria más rápida, pero costosa y, por lo tanto, pequeña (ver en: localidad de referencia). El uso de una memoria más rápida aumenta el rendimiento del complejo informático. La memoria en este caso se refiere a un dispositivo de almacenamiento de datos (dispositivo de memoria) en computación o memoria de computadora.

Al diseñar computadoras y sistemas de alto rendimiento, se deben hacer muchas concesiones, como el tamaño y la tecnología para cada nivel de la jerarquía. Puede considerar un conjunto de memorias diferentes (m 1 ,m 2 ,…,m n) ubicadas en la jerarquía, es decir, cada nivel m i está, por así decirlo, subordinado al nivel m i-1 de la jerarquía. Para reducir el tiempo de espera en los niveles superiores, los niveles inferiores pueden preparar los datos en fragmentos con almacenamiento en búfer y, cuando el búfer está lleno, indicar al nivel superior que se pueden recibir los datos.

A menudo hay 4 niveles principales (ampliados) de la jerarquía:

  1. Memoria interna del procesador (registros organizados en un archivo de registro y caché del procesador).
  2. RAM del sistema (RAM) y tarjetas de memoria auxiliares.
  3. Unidades de acceso en caliente (almacenamiento masivo en línea) - o memoria secundaria de la computadora. Discos duros y unidades de estado sólido que no requieren acciones prolongadas (segundos o más) para comenzar a recibir datos
  4. Unidades que requieren cambio de medios (almacenamiento masivo sin conexión) o almacenamiento terciario. Esto incluye cintas magnéticas, bibliotecas de cintas y discos que requieren un rebobinado prolongado o un cambio mecánico (o manual) de los medios de almacenamiento.

Jerarquía de memoria en las PC modernas

La mayoría de las PC modernas consideran la siguiente jerarquía de memoria:

  1. Los registros del procesador organizados en un archivo de registro son el acceso más rápido (del orden de 1 ciclo), pero solo unos pocos cientos o, rara vez, miles de bytes de tamaño.
  2. Caché del procesador de nivel 1 (L1): tiempo de acceso del orden de varios ciclos, decenas de kilobytes de tamaño
  3. Caché de nivel 2 del procesador (L2): tiempo de acceso más largo (de 2 a 10 veces más lento que L1), alrededor de medio megabyte o más
  4. Caché del procesador de nivel 3 (L3): el tiempo de acceso es de aproximadamente cien ciclos, varios megabytes de tamaño (se ha utilizado recientemente en procesadores masivos)
  5. RAM del sistema: tiempo de acceso de cientos a quizás miles de ciclos, pero tamaños enormes de varios gigabytes, hasta decenas. El tiempo de acceso a la RAM puede variar para diferentes partes de la misma en el caso de complejos de clase NUMA (con acceso a memoria no uniforme)
  6. Almacenamiento en disco: muchos millones de ciclos, si los datos no se almacenaron en caché o se almacenaron en búfer por adelantado, tamaños de hasta varios terabytes
  7. Memoria terciaria: retrasos de hasta varios segundos o minutos, pero volúmenes prácticamente ilimitados (bibliotecas de cintas).

La mayoría de los programadores suelen asumir que la memoria se divide en dos niveles, RAM y unidades de disco, aunque en lenguajes ensambladores y lenguajes compatibles con ensambladores (como ) es posible trabajar directamente con registros. Aprovechar la jerarquía de la memoria requiere una acción concertada del programador, el hardware y los compiladores (así como el soporte básico en el sistema operativo):

  • Los programadores son responsables de organizar las transferencias de datos entre discos y memoria (RAM) mediante E/S de archivos; Los sistemas operativos modernos también implementan esto como paginación.
  • El hardware se encarga de organizar la transferencia de datos entre la memoria y las cachés.
  • Los compiladores de optimización son responsables de generar código que haga un uso eficiente de los registros del procesador y la memoria caché por parte del hardware.

Muchos programadores no tienen en cuenta la memoria multinivel al programar. Este enfoque funciona siempre que la aplicación no experimente una degradación del rendimiento debido a la falta de rendimiento de la pared de memoria. Al corregir el código (Refactorización), es necesario tener en cuenta la presencia y las peculiaridades del trabajo de los niveles superiores de la jerarquía de memoria para lograr el máximo rendimiento.

Literatura

  • Mikhail Guk "Hardware de PC de IBM" San Petersburgo 1998

notas


Fundación Wikimedia. 2010 .

Vea lo que es la "Jerarquía de la Memoria" en otros diccionarios:

    jerarquía de memoria- - Temas de telecomunicaciones, conceptos básicos de jerarquía de memoria EN...

    El concepto de construir una relación entre clases de diferentes niveles de memoria de computadora basada en una estructura jerárquica. La jerarquía de RAM implementada en un sistema informático basado en un procesador ... Wikipedia

    - (dispositivos de memoria) para calcular. Dispositivos de tecnología (ver Computadora electrónica) para registrar, almacenar y reproducir información. Una persona física puede actuar como portador de información. señal que se propaga a través del medio... Enciclopedia Física

    Este término tiene otros significados, véase Gerarchia. Jerarquía (del otro griego ἱεραρχία, de ἱερός "sagrado" y ἀρχή "gobierno") el orden de subordinación de los eslabones inferiores a los superiores, su organización en una estructura de tipo árbol; principio de gestión en ... Wikipedia

    El administrador de memoria es parte de un programa de computadora (tanto de aplicación como sistema operativo), que procesa solicitudes para asignar y liberar RAM o (para algunas arquitecturas informáticas) solicitudes para incluir un área de memoria determinada... Wikipedia

    Un diagrama que ilustra el lugar del nivel microarquitectónico en la estructura multinivel de una computadora. En ingeniería informática... Wikipedia

    arquitectura del controlador Manual del traductor técnico

    arquitectura del controlador- La arquitectura del controlador es un conjunto de sus componentes principales y las conexiones entre ellos. Una composición típica de PLC incluye un procesador central, memoria, interfaces de red y dispositivos de entrada/salida. Típico… … Manual del traductor técnico

    - << Intel 80486 >> Unidad central de procesamiento... Wikipedia

    Se propone suprimir este artículo. Se puede encontrar una explicación de los motivos y una discusión correspondiente en la página de Wikipedia: Para ser eliminado / 24 de diciembre de 2012. Mientras se discute el proceso ... Wikipedia

Libros

  • Conferencias sobre la historia de la Iglesia Antigua. En 4 volúmenes (número de volúmenes: 4), Bolotov Vasily V. V. Profesor V. V. Bolotov (1854-1900), un destacado historiador de la iglesia ortodoxa, un hombre de conocimiento enciclopédico, que hablaba con fluidez el clásico antiguo y varios idiomas europeos; estudió…
  • Informática Introducción a la informática, Korolev L., Mikov A. El libro de texto analiza en detalle el concepto matemático de un algoritmo, algoritmos recursivos y estructuras de datos recursivos, algoritmos de clasificación y búsqueda. Se describen los fundamentos de la teoría de la complejidad...
decirles a los amigos