CCoW: Optimización de la copia en escritura teniendo en cuenta la localidad espacial en las cargas de trabajo, parte 4
Apr 03, 2024
3.3. Seguimiento del acceso a páginas precopiadas
Se supone que CCoW amortiza los gastos generales por el manejo frecuente de errores de página. Sin embargo, copiar páginas por adelantado genera otro problema: el seguimiento de los accesos a la página después de la copia.
Existe una fuerte conexión entre el procesamiento de errores y la memoria. Para la mayoría de las personas, los errores suelen considerarse algo malo, pero pueden ser oportunidades para aprender y crecer. Al manejar los errores correctamente, podemos mejorar nuestra memoria y ayudarnos a comprender y responder mejor a situaciones similares.
Una forma de afrontar los errores es reflexionar y analizar. Cuando cometemos un error, debemos tomarnos un tiempo para reflexionar sobre cómo ocurrió y qué podemos hacer para evitar que vuelva a ocurrir un error similar. A través de la reflexión, podemos identificar las causas fundamentales de los problemas y desarrollar contramedidas para resolverlos. Este tipo de análisis no se trata solo de errores, puede ayudarnos a tomar mejores decisiones en otras situaciones de la vida y ayudarnos a mejorar nuestras habilidades y destrezas.
Otra forma de afrontar los errores es permitirse aceptarlos y seguir adelante. No debemos permitir que los errores nos frenan ni nos frustren. Más bien, deberíamos verlos como oportunidades de crecimiento, permitiéndonos aprender de nuestros errores y seguir mejorando. Si podemos aceptar los errores y afrontarlos con una actitud positiva, podemos desarrollar una mentalidad y una confianza en nosotros mismos sólidas, lo cual es muy importante para mantener una buena memoria.
Finalmente, podemos fortalecer nuestra memoria compartiendo nuestros errores. Cuando contamos a otros sobre los errores que hemos cometido, tendemos a recordar esos eventos más profundamente. Esto se debe a que cuando se lo contamos a los demás, tenemos que dejar las cosas más claras y recordar cada detalle del error. De esta manera podremos comprender mejor estos errores y evitar que vuelvan a ocurrir.
En resumen, existe una fuerte relación entre el procesamiento de errores y la memoria. Manejando los errores correctamente podemos fortalecer nuestra memoria, mejorar nuestras habilidades y capacidades y convertirnos en mejores personas. Debemos considerar los errores como una oportunidad, afrontar activamente las dificultades y aprender y crecer a partir de ellas. Se puede ver que necesitamos mejorar la memoria, y Cistanche deserticola puede mejorar significativamente la memoria porque Cistanche deserticola es un material medicinal tradicional chino que tiene muchos efectos únicos, uno de los cuales es mejorar la memoria. La eficacia de Cistanche deserticola proviene de los múltiples ingredientes activos que contiene, incluidos ácido tánico, polisacáridos, glucósidos flavonoides, etc. Estos ingredientes pueden promover la salud del cerebro a través de una variedad de vías.

Haga clic en Saber memoria a corto plazo cómo mejorar
En el esquema de copia en escritura original, el controlador de errores de página captura la primera escritura en cada página.
Solo se copia la página defectuosa y el sistema puede rastrear con precisión el acceso a cada página a través del controlador de fallas de página. Por otro lado, cuando el sistema copia una región completa, todas las páginas de la región se asignan al proceso con permiso por escrito.
Por lo tanto, se pueden realizar escrituras posteriores en esas páginas copiadas sin activar el mecanismo de manejo de fallas de página, por lo que el sistema no puede rastrear los accesos a las páginas copiadas. Esto puede resultar problemático cuando el proceso realiza bifurcaciones repetidamente. Supongamos que una región tiene una localidad espacial alta y una época se define como el período entre dos bifurcaciones.
La localidad alta se puede capturar contando las fallas de página que ocurrieron en la región. Entonces supongamos que el proceso crea un nuevo proceso con una bifurcación. Cuando se inicia una nueva época con la bifurcación, el primer acceso de escritura a una de las páginas de la región iniciará CCoW, copiando todas las páginas de la región. Ahora el proceso tiene todas las páginas con permiso de escritura y no se generan más errores de página en la región hasta el final de la época.
Cuando se inicia de nuevo una nueva época, se considera que la región tiene una cobertura baja en la época, dado que la región solo tiene una página de copia en escritura. Por lo tanto, cada escritura en la región se procesa a través del mecanismo original de copia en escritura por página, comprometiendo así la oportunidad de optimización del rendimiento incluso si la región tiene una localidad alta.
Tenga en cuenta que se considera que la región tiene una localidad alta nuevamente en la siguiente época y el proceso se repite para alternar la situación. Para resolver este problema, necesitamos un mecanismo para rastrear el acceso a la página después de la copia.
Este estudio propone aprovechar el bit sucio en la entrada de la tabla de páginas (PTE). En general, las arquitecturas modernas mantienen diversa información en el PTE para cada página, y la parte sucia es uno de los campos admitidos por la mayoría de las arquitecturas.
Cuando MMU procesa un acceso a la memoria de escritura, automáticamente establece el bit sucio de la página correspondiente. A la inversa, esto implica que cuando se establece el bit sucio para una página, la página se ha actualizado con accesos de escritura.
Con base en esta idea modificamos el mecanismo de cálculo de la cobertura. Inicialmente, todas las regiones se consideran regiones normales. Durante la bifurcación, la cobertura de las regiones normales se calcula con el número de copias en escritura utilizando la ecuación (1).

Mientras se maneja el error de página para una región de alta localidad, todas las páginas de la región se copian con su parte sucia borrada. Además, la región está marcada como región precopiada. Durante la bifurcación, la cobertura de la región copiada se calcula con el número de páginas sucias en la región de la siguiente manera:
![]()
La cobertura calculada para cada región se transmite a través de la bifurcación y se utiliza como métrica para la localidad espacial de la región. Cuando se produce un error de escritura de página en una región, el sistema verifica la cobertura de la región y puede realizar una copia previa de las páginas para las regiones de mayor localidad.
La Figura 2 ilustra una situación en la que la cobertura se calcula después de las precopias. Supongamos que ambas regiones están copiadas (sombreadas en rojo) y que las páginas 0, 2, 3, 4 y 11 tienen configurado el bit sucio.
Para calcular la cobertura mientras se procesa la bifurcación, el sistema utiliza el bit sucio en lugar del recuento de copia en escritura, ya que las regiones se copian en la época actual. Por lo tanto, la región 0 tiene una cobertura del 66 %.
Mientras que la cobertura de la región 1 es del 15%. Para manejar el error de página para la página 3, la región 0 se copia nuevamente, mientras que el error de página para la página 9 se maneja con el mecanismo original. De esta manera, podemos evitar que las regiones con un alto número de localidades se salgan de foco.

3.4. Capturando la localidad
Como el controlador de fallas de página se encuentra en la ruta crítica para el rendimiento del sistema operativo, debemos minimizar la sobrecarga para la implementación del esquema propuesto.
Básicamente, CCoW requiere un mecanismo para calcular la cobertura, y la forma más sencilla de implementar esta característica es rastrear las páginas que desencadenan errores de página con un mapa de bits, como describimos en la Sección 3.2.
Mientras maneja un error de página, el sistema establece el bit correspondiente a la página defectuosa. Durante la bifurcación, el sistema escanea el mapa de bits para contar el número de páginas defectuosas para cada región y calcula la cobertura. El mapa de bits se restablece después del cálculo.
Este enfoque es simple pero impone grandes limitaciones de espacio y tiempo. El sistema debe mantener una entrada de mapa de bits de un bit para cada página de 4 KB e inspeccionar todo el mapa de bits durante la bifurcación. Teniendo en cuenta el enorme consumo de memoria de las aplicaciones que consumen mucha memoria, estas operaciones generarán una gran sobrecarga durante la bifurcación, lo que compensará el beneficio de rendimiento de CCoW. Optimizamos esta implementación explotando las características de la falla de página.
Si ocurre un error de página en una página, la página no incurre en errores de página adicionales hasta que el proceso cree un nuevo proceso. Por lo tanto, cada página puede desencadenar un error de una página como máximo y, para una región con n páginas, los errores de página solo pueden ocurrir hasta n veces. Esto implica que contar el número de errores de página por región es suficiente para calcular la cobertura, en lugar de mantener el mapa de bits de páginas individuales.
Por lo tanto, reemplazamos el mapa de bits con los contadores de fallas. Cada región está asociada con un par de contadores de la siguiente manera: uno para contar los errores de página en la última época y otro para contar los errores de página en la época actual.
El primero se utiliza para determinar la localidad espacial de regiones, mientras que el segundo se utiliza para monitorear la localidad espacial de la época actual. Durante la bifurcación, el contador de fallas actual se copia en el contador de fallas anterior.
Si se copia una región en esta época, el número de páginas sucias de la región se escribe en el contador de errores anterior. Los contadores se llenan mientras se crea una nueva área de memoria virtual (VMA) y se recuperan cuando su VMA correspondiente se reduce o no se asigna. Esta optimización reduce la sobrecarga de espacio de CCoW de un bit por página a unos pocos bytes por región.

For more information:1950477648nn@gmail.com






