Sistemas operativos modernos
Figura 10-22. El sistema de E/S de UNIX en BSD. Si el bloque no está en el caché de búfer, se lee del disco, se coloca en el caché y de allí se copia a donde se necesita. Puesto que el caché de búfer sólo tiene espacio para un número fijo de bloques, se requiere un algoritmo para administrarlo. Por lo regular, los bloques del ca ché se encadenan en una lista enlazada. Cada vez que se tiene acceso a un bloque, se le pasa a la cabeza de la lista. Cuando es preciso quitar un bloque del caché para colocar en él un nue vo bloque, se escoge el que está al final de la cadena, pues es el que se ha utilizado de modo menos reciente. El caché de búfer opera tanto para lecturas como para escrituras. Cuando un programa es cribe un bloque, se pone en el caché, no en el disco. Sólo cuando el caché se llena y es necesa rio recuperar el búfer, el bloque se escribe en el disco. Para evitar que los bloques modificados permanezcan demasiado tiempo en el caché antes de escribirse en el disco, todos ellos se escri ben en el disco cada 30 segundos. Durante décadas, los controladores de dispositivos UNIX se han enlazado de manera está tica con el kemel para que todos estén presentes en la memoria cada vez que se arranca el sis tema. Dado el entorno en el que creció UNIX, formado en su mayor parte por minicomputadoras departamentales y luego estaciones de trabajo de alto nivel, con sus pequeños e inmutables con juntos de dispositivos de E/S, este esquema funcionaba bien. En esencia, un centro de cómpu
RkJQdWJsaXNoZXIy MjI4NDcx