usa independientemente del diseño diseño de hardware y software, la memoria caché es un medio común de lograr un alto rendimiento. Linux y utilizan una variedad de cachés relacionadas con la gestión de memoria.
1.
búfer de caché
:
caché del búfer contiene el buffer de datos utilizado por el dispositivo de bloque. El tampón contiene los bloques de datos se lee o escribe en el dispositivo desde el dispositivo. Buffer caché por el número de identificación del dispositivo y el índice de número de bloque, es posible identificar rápidamente los bloques de datos. Si los datos se pueden encontrar en la caché del búfer, el sistema sería sin necesidad de una operación de lectura real en el dispositivo de bloque físico.
para cada búfer del núcleo para mantener una gran cantidad de información para ayudar a facilitar la operación de escritura, la información incluye a " sucia (sucia) y ", indica que la memoria intermedia se ha modificado, debe escrito en el disco; también incluye una marca de tiempo que indica antes de que la memoria intermedia se vacía en el disco ha estado mucho tiempo en la memoria. Debido a que la información se almacena en la memoria intermedia de encabezado de búfer, por lo que estas estructuras de datos junto con los datos de usuario búfer en sí necesita ser mantenido.
búfer de tamaño de caché puede variar. Cuando se necesita un nuevo buffer y ahora no tiene buffer disponible la página a la carta. Cuando no hay suficiente memoria libre se convierte, por ejemplo, el caso de la que se ve en la liberación de la memoria intermedia y repetidamente utilizar la página correspondiente. Página 2.
caché de páginas
caché de página es una página de E /S a las operaciones de la caché de disco se utiliza para acceder a los datos. Veremos en el sistema de archivos, leer (), el acceso de escritura llamada al sistema () y mmap () para archivos normales son por caché de páginas para completar. Debido a que la operación de la página I /O para transferir toda la página de datos, la información en la unidad de memoria caché se retiene una página entera. Contiene una página de datos pueden no ser físicamente contiguos bloques de disco, y por lo tanto no se puede utilizar el número de dispositivo y el bloque de números para identificar la página. En cambio, la caché de la página es una página identificada por el archivo i-nodo y el offset alcanzado. Francia El caché de páginas relacionadas con la operación hay tres: aumentar una parte de la página cuando el acceso a los archivos no en la memoria caché, borrar una página cuando la caché se vuelve demasiado grande, y buscar un determinado cantidad de desplazamiento del archivo de página se encuentra.
página 3. caché de intercambio
única modificado (sucio) páginas no se guardan en el archivo de intercambio. Después de la página modificada por escrito para el archivo de intercambio, si la página se cambia de nuevo pero sin modificar, no es necesario escribir archivo de intercambio, por el contrario, simplemente tire la hoja. caché de intercambio en realidad contiene una tabla de página para cada página física collar de mesa, una correspondiente de la entrada de la tabla de páginas del sistema. En la página el canje de la entrada de tabla de página contiene un archivo de página de intercambio para guardar la información y el archivo de intercambio de información de la página ubicación. Si una tabla de páginas de intercambio de entrada no es cero, indica que la página física correspondiente almacenada en el archivo de intercambio no se modifica. Si la página se modifica en una operación posterior, la entrada de tabla de página en la memoria caché se borra de cambio. Cuando Linux necesaria para el intercambio de una página de memoria física, primero se analiza la caché intercambio de información si la caché contiene una entrada diferente de cero para esta página página física, entonces la página se intercambia de la memoria no se ha modificado en este caso, el sistema simplemente desechar la página.
dado aquí sobre algunas de las funciones y las funciones de conmutación caché: situado /Linux /mm /swap_state.c en.
inicialización tampón de intercambio
, el ajuste del tamaño, función de la posición:
extern largo init_swap_cache sin signo (unsigned long, unsigned long);
búfer función de visualización de intercambio de información:
extern show_swap_cache_info (void);
función de conmutación al tampón:
int add_to_swap_cache (índice de largo sin signo, la entrada de largo sin signo)
parámetro de índice es el índice en la memoria intermedia (índice es el índice de la tabla un elemento), la entrada es y lsquo; entrada de tabla de páginas y rsquo; (es decir, la posición de esta página se registra en el archivo de intercambio, el registro es similar a la entrada de la tabla de página, consulte CHM)
cuando
cuando copy_page_tables () llamada, el proceso hijo para lograr el tenedor () :;
copia a intercambiarse fuera de la página: :
extern swap_duplicate vacío (largo sin signo) la herencia se intercambia la página, se puede ver un mecanismo de intercambio.
eliminar una página de la memoria intermedia
delete_from_swap_cache (page_nr);
página 4 caché de hardware
caché de hardware común es una caché de las entradas de la tabla de páginas, este trabajo realmente realizado por el procesador, su funcionamiento y hardware del procesador específicos relacionados (pero hasta la gestión software completado), y luego a una descripción más detallada de la caché.