BULMA Bulma amb el projecta Defective by Desing
Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(09/02/2010 12:30:01)
    
Google


En bulma.net
En internet
El sistema de ficheros virtual, page-cache y buffer-cache en Linux 2.4.10+ (16637 lectures)
Por Ricardo Galli Granada
gallir (http://mnm.uib.es/gallir/)
Creado el 05/11/2001 17:11 modificado el 05/11/2001 17:11

Continuando con el tema de page-cache y buffer-cache en Linux, en éste artículo doy una descripción, que aunque simple y general, un poco más detallada del funcionamiento del page-cache y buffer-cache en Linux. Como ya sabréis, a partir del 2.4.10 hubo dos cambios importantes, la nueva gestión de memoria virtual del kernel basado en una nueva implementación de Andrea Arcangeli y la unificación de las técnicas de buffer-cache y page-cache.

Pagina1/4

Introducción

Un fichero es una abstracción muy importante en programación. Los ficheros sirven para almacenar datos de forma permanente y ofrecen un pequeño conjunto de primitivas muy potentes (abrir, leer, avanzar puntero, cerrar, etc.). Los ficheros se organizan normalmente en estructuras de árbol, donde los nodos intermedios son directorios capaces de agrupar otro ficheros.

El sistema de ficheros es la forma en que el sistema operativo organiza, gestiona y mantiene la jerarquía de ficheros en los dispositivos de almacenamiento, normalmente discos duros. Cada sistema operativo soporta diferentes sistemas de ficheros. Para mantener la modularización del sistema operativo y proveer a las aplicaciones con una interfaz de programación (API) uniforme, los diferentes sistemas operativos implementan una capa superior de abstracción denominada Sistema de Ficheros Virtual (VFS: Virtual File System). Esta capa de software implementa las funcionalidades comunes de los diversos sistemas de ficheros implementados en la capa inferior.

Los sistemas de ficheros soportados por Linux se clasifican en tres categorías:

  1. Basados en disco: discos duros, disquetes, CD-ROM. Estos sistemas son Ext2, ReiserFS, XFS, Ext3, UFS, ISO9660, etc.
  2. Sistemas remotos (de red): NFS, Coda, y SMB.
  3. Sistemas especiales: procfs, ramfs y devfs.
El modelo general de ficheros puede ser interpretado como orientado a objetos, donde los objetos son construcciones de software (estructura de datos y funciones y métodos asociados) de los siguientes tipos:

  • Super bloque: mantiene información relacionada a los sistemas de ficheros montados. Está representado por un bloque de control de sistema almacenado en el disco (para sistemas basados en disco).
  • i-nodo: mantiene información relacionada a un fichero individual. Cada i-nodo contiene la meta-información del fichero: propietario, grupo, fecha y hora de creación, modificación y último acceso, más un conjunto de punteros a los bloques del disco que almacenan los datos del fichero.
  • Fichero: mantiene la información relacionada a la interacción de un fichero abierto y un proceso. Este objeto existe sólo cuando un proceso interactúa con el fichero.
  • Dentry: enlaza una entrada de directorio (pathname) con su fichero correspondiente. Los objetos dentry recientemente usados son almacenados en una caché (dentry cache) para acelerar la translación desde un nombre de fichero al i-nodo correspondiente.
Todos los sistemas Unix modernos permiten que los datos del sistema de ficheros sean accedidos de dos formas distintas:

  1. Asociación (mapping) de memoria con mmap: La llamada de sistema mmap() permite a los procesos de usuario acceder de forma directa a los datos del page-cache mediante asociación de memoria. El objetivo de mmap es permitir el acceso a los datos mediante direcciones del sistema de memoria virtual, por lo que los datos de ficheros pueden ser tratados como estructuras de memoria estándares. Los datos del fichero son leídos y copiados a la page-cache bajo demanda (lazily) cuando se generan fallos de página por intentos de acceso a páginas no residentes en RAM.
  2. Llamadas de sistema de acceso directo al sistema de E/S de bloques, tales como read y write: La llamada de sistema read() lee los datos de los dispositivos de bloques a la caché del núcleo (para CDs y DVDs se puede evitar esta copia mediando el parámetro O_DIRECT del ioctl), luego se copian al espacio de direcciones del proceso. La llamada de sistema write() copia los datos en la dirección opuesta, desde la memoria del proceso a la caché del núcleo y eventualmente, en un futuro próximo, a los bloques correspondientes del disco. Estas interfaces son implementadas usando el buffer-cache o el page-cache para almacenar temporalmente en la memoria del núcleo.


Paginas:  1  2  3  4  Abreviatura Siguiente>>

Imprimir
Version para
imprimir

Imprimir
Version
PDF
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 43
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Journal File Systems in Linux
. Sistemas de Ficheros con Journaling en Linux
. Detección de intrusiones en Sistemas Linux.
. Linux vs. FreeBSD, empate controvertido
. SAP: el 2.4.14 es 10 veces más rápido que el 2.4.7
. Habrá un sólo sistema de memoria virtual en Linux
. KDE es un cerdo, pero usable
. Para Linus, el VM de la 2.4.14-pre6 es la definitiva
. ¿Porque hay dos sistemas de memoria virtual compitiendo en el kernel?
. 2.4.11, buffer-cache y page-cache unificados
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 15/12/2009 23:11:53 | Tiempo Total: 0.038 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 09/02/2010 13:27 CET
Powered by Apache    MySQL    PHP    Gimp