El documento habla sobre la gestión de E/S y la planificación de discos. Explica que el almacenamiento intermedio es una parte clave de la E/S y que mejora el rendimiento del sistema al permitir que otros procesos se ejecuten mientras uno espera la E/S. También describe las diferentes clases de dispositivos de E/S y sus características, y explica conceptos como DMA, drivers de disco y la organización de las funciones de E/S en diferentes niveles.
Gestión de E/S, Planificación de Discos y Acceso Directo a Memoria
1.
2.
3. El siguiente cuadro hace referencia, a las grandes diferencias entre las clases de dispositivos DISPOSITIVO COMPORTAMIENTO CLASIFICACION TASA KB/SEG. TECLADO Entrada Carácter 0,01 MOUSE " " 0,02 SCANNER " " 400 VOS (Salida) Salida " 0,6 IMPRESORA (Línea) " " 1,0 IMPRESORA (Láser) " " 200
4. MODEM Entrada / salida " 2,0-8,0 RED LAN " " 500-6000 FLOPPY Almacenamiento Bloque 100 CD " " 1000 CINTA MAGNETICA " " 2000 DISCO MAGNETICO " " 2000-10000
5.
6. T. POSICIONAMIENTO + T. LATENCIA + T. TRANSFERENCIA (buffer- controlador) + T. CHECKSUM + T. TRANSFERENCIA (controlador-memoria) Normalmente el tiempo de CHECKSUM es despreciable. En algunos casos puede existir tiempos añadidos si la información del disco esta cifrada y el algoritmo de cifrado/descifrado lo incrementa el controlador, después de realizar el CHECKSUM el controlador deberá descifrar los datos. Características genéricas de los driver de disco son: A: MEJORA EL TIEMPO DE ACCESO. B: TRATAMIENTO DE ERRORES. A: MEJORA EL TIEMPO DE ACCESO T. ACCESO = T. POSICIONAMIENTO + T. LATENCIA + T. TRANFERENCIA De estos tres tiempos el más significativo es el de posicionamiento. Cuando el driver permite ir almacenando peticiones pendientes mientras se trata la actual, se intenta reducir el tiempo medio de posicionamiento aplicando un algoritmo que decida que petición de las pendientes atender primero.
7.
8.
9.
10. mediante un bus de E/S. Esto reduce a un numero de interfaces de E/S en el modulo de DMA y proporciona una configuración fácilmente ampliable. En todos los casos el bus del sistema que el modulo del DMA comparte con el procesador y la memoria principal es utilizado por el modulo DMA solo para intercambiar datos con la memoria y para intercambiar señales de control con la CPU. El intercambio de datos entre el modulo de DMA y el modulo de E/S tiene lugar fuera del bus del sistema. Diagrama de bloques de un DMA típico.
11. Aspectos de diseño en los sistemas operativos Objetivos del diseño Hay dos objetivos primordiales en el diseño del servicio de E/S: Eficiencia y Generalidad. La Eficiencia es importante porque las operaciones de E/S constituyen, a menudo, un cuello de botella en los sistemas informáticos. Se pueden comprobar que la mayoría de los dispositivos de E/S son extremadamente lentos en comparación con la memoria principal y el procesador. Una manera de abordar este problema es el uso de la multiprogramación, que, se ha visto, permite que algunos procesos esperen en operaciones de E/S mientras otro proceso se esta ejecutando. El principal esfuerzo en el diseño de E/S ha sido crear esquemas que mejoren la eficiencia de la misma. El área que ha recibido mayor atención, debido a su importancia, ha sido la E/S a discos. El segundo gran objetivo es la Generalidad, será deseable gestionar todos los dispositivos de una manera uniforme. Esta afirmación se aplica tanto a la manera en que los procesos contemplan a los dispositivos de E/S como a la forma debido a la diversidad de característica de los dispositivos, en la practica es difícil conseguir una autentica generalidad. Estructura lógica de las funciones de E/S Una organización del sistema operativo en un conjunto de niveles, cada nivel realiza una parte de un subconjunto de las funciones necesarias del sistema operativo. Cada nivel cuenta con el nivel inferior para realizar funciones más primitivas y para ocultar los detalles de estas funciones. Asimismo, cada nivel ofrece servicios al nivel superior.
12.
13.
14. Hay riesgo de interbloqueo con un solo proceso. Para evitar esta carga e incapacidad, a veces es conveniente llevar a cabo las transferencias de entrada por adelantado a las peticiones y realizar las transferencias de salida de un tiempo después de hacer la petición. Esta técnica se conoce con el nombre de almacenamiento intermedio (buffering). Para el estudio de los distintos métodos de almacenamiento intermedio, a veces es importante hacer una distinción entre dos tipos de dispositivos: los dispositivos orientados a bloque y los dispositivos orientados a flujo. Memoria intermedia sencilla Cuando un proceso de usuario realiza una solicitud de E/S, el sistema operativo le asigna a la operación un espacio en la parte del sistema de la memoria principal. Para los dispositivos orientados a bloque, el esquema de almacenamiento intermedio sencillo puede describirse como sigue. Las transferencias de entrada se realizan en el espacio del sistema. Cuando se ha completado la transferencia, el proceso mueve el bloque al espacio del usuario y solicita otro bloque inmediatamente. Este método proporciona una mayor velocidad en comparación con la ausencia de almacenamiento intermedio en el sistema. La lógica de intercambio se ve afectada: si la operación de E/S implica al mismo disco que se usa para intercambio, apenas importa poner en cola las grabaciones en el disco necesarias para expulsar al proceso. Este intento de expulsar al proceso y liberar memoria principal no comenzara hasta que la operación de E/S finalice, momento en que la expulsión del proceso al disco puede no ser ya apropiada.
15. Para la E/S con dispositivos orientados a flujo, el esquema de memoria intermedia sencilla puede aplicarse por líneas o por bytes. La operación línea a línea es adecuada para terminales simples de desplazamiento, a veces llamados terminales <<tontos>>. La operación por bytes se utiliza en terminales de pantalla completa, donde cada tecla pulsada tiene su significado. Memoria intermedia doble Se puede realizar una mejora sobre la memoria intermedia sencilla asignando a la operación dos almacenes intermedios del sistema. De esta forma, un proceso puede transferir datos hacia (o desde) una memoria intermedia mientras que el sistema operativo vacía (o rellena) el otro. Esta técnica se conoce como memoria intermedia doble o memoria intermedia de intercambio. En la entrada orientada a flujo, se afronta de nuevo el problema de las dos alternativas de operación. Para la E/S de líneas, el proceso de usuario no tiene que ser suspendido para entrada o salida a menos que el proceso se adelante a la memoria intermedia doble. Para la operación con bytes, la memoria intermedia doble no ofrece ninguna ventaja con respecto a una memoria intermedia sencilla de doble tamaño. En ambos casos, se seguirá el modelo del productor/consumidor. Memoria intermedia circular Si preocupa el rendimiento de un proceso determinado, seria deseable que las operaciones de E/S fueran capaces de ir al ritmo del proceso.
16. Si el proceso lleva a cabo rápidas ráfagas de E/S el problema puede mitigarse usando más de dos memorias intermedias. Cuando se emplean más de dos, el conjunto de memorias intermedias se conoce con el nombre de memoria intermedia circular. Cada memoria intermedia individual constituye una unidad de la memoria intermedia circular. Este es el modelo del productor/consumidor con una memoria intermedia limitada.
17. Planificación de discos En los últimos 30 años, el crecimiento en la velocidad de los procesadores y la memoria principal ha dejado muy atrás el de los accesos al disco. La velocidad del procesador y de la memoria se ha incrementado en dos órdenes de magnitud con respecto al disco. El resultado es que, actualmente, los discos son, por lo menos, cuatro veces más lentos que la memoria principal. Los subsistemas de almacenamiento en disco son de una importancia vital. Parámetros de rendimiento del disco Cuando la unidad de disco esta operando, el disco gira a una velocidad constante. Para leer o escribir la cabeza debe ponerse en la pista deseada, al comienzo del sector pertinente.
18. En un sistema de cabezas móviles, el tiempo que se tarda en ubicar la cabeza en la pista se llama tiempo de búsqueda. Una vez que se ha seleccionado la pista, el controlador del disco esperara hasta que el sector apropiado se alinee con la cabeza en su rotación. El tiempo que tarda el comienzo del sector en llegar hasta la cabeza se conoce como retardo de giro, o latencia de giro. La suma de tiempo de búsqueda y el retardo de giro es el tiempo de acceso, es decir, el tiempo que se tarda en llegar a la posición de lectura o escritura. Una vez que la cabeza esta ubicada, se puede llevar a cabo la operación de lectura o escritura a medida que el sector se mueve bajo la cabeza; esta es la parte de transferencia real de datos de operación. Además del tiempo de acceso y del tiempo de transferencia, existen algunos retrasos en las colas que normalmente tienen asociadas una operación de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe esperar en una cola a que el dispositivo este disponible. En ese momento, el dispositivo queda asignado al proceso. Si el dispositivo comparte un único canal de E/S o un conjunto de canales con otras unidades del disco, puede producirse una espera adicional hasta que el canal este disponible. En este punto se realizara la búsqueda con la que comienza el acceso al disco. Tiempo de búsqueda Es el tiempo necesario para mover el brazo del disco hasta la pista solicitada. El tiempo de búsqueda consta de dos componentes clave: el tiempo de arranque inicial y el tiempo que se tarda en recorrer las pistas, una vez que el brazo haya cogido velocidad. El tiempo de búsqueda medio en los discos actuales es de 5 a 10ms.
19. Retardo de giro Los discos magnéticos, excepto los discos flexibles, tienen una velocidad de rotación que esta en el rango de 5400 a 10000 rpm; esta última equivale a una revolución cada 6 ms. Por lo tanto, a 10000 rpm, el retardo medio de giro será de 3 ms. Los discos flexibles giran mucho mas lentamente, generalmente entre 300 y 600 rpm. Por tanto, el retardo medio estará entre 100 y 200 ms. Tiempo de transferencia El tiempo de transferencia con el disco depende de la velocidad de rotación de la forma siguiente: T= b/rN Donde: T tiempo de transferencia b números de bytes a transferir N números de bytes por pista r velocidad de rotación en revoluciones por segundo Por tanto, el tiempo medio de acceso total puede expresarse como Ta = Ts + 1/2r + b/rN Donde T, es el tiempo de búsqueda.
20. Políticas de planificación del disco Considérese una situación normal de un entorno de multiprogramación. Si se eligen los elementos de la cola en un orden aleatorio, se puede esperar que las pistas recorridas sigan también un orden aleatorio, obteniéndose el peor rendimiento posible. Esta planificación aleatoria es útil como medida comparativa para evaluar otras técnicas. La manera más sencilla de planificación seria la de primero en entrar, primero en salir (FIFO), lo que significa que los elementos se procesan de la cola en un orden secuencial. Esta estrategia tiene la ventaja de ser justa porque las solicitudes son servidas en el orden en que llegaron. Con la técnica FIFO, si hay pocos procesos que requieren acceso y si muchas de las solicitudes son a sectores agrupados de un archivo, se puede esperar un buen rendimiento. Sin embargo, el rendimiento de esta técnica se parece a menudo al de la planificación aleatoria si hay muchos procesos compitiendo por el disco. Así, puede ser más beneficioso considerar una política de planificación más sofisticada. Prioridad Los trabajos por lotes que sean cortos y los trabajos interactivos reciben frecuentemente una prioridad más alta que trabajos mayores que realizan largas operaciones. Esta práctica permite que el sistema haga salir más rápidamente a muchos trabajos cortos y pueda proporcionar un buen tiempo de respuesta interactiva.
21. Ultimo en entrar, primero en salir (LIFO) En los sistemas de proceso de transacciones, conceder el dispositivo al último usuario acarrea pocos o nulos movimientos del brazo al recorrer un archivo secuencial. El provecho de esta cercanía mejora la productividad y reduce la longitud de las colas. A medida que un trabajo utiliza de forma activa el sistema de archivos, va procesándose tan rápido como es posible. Una vez que un trabajo haya lanzado una solicitud de E/S a la cola y haya abandonado la cabeza de la línea, no podrá volver a ganar la cabeza de la línea a menos que se vayan todos los que estén por delante. Con la política FIFO, la de prioridades y el esquema LIFO (ultimo en entrar, primero en salir) la planificación se fundamenta únicamente en los atributos de la cola o del proceso demandante. Primero el tiempo de servicio más cortó La política de <<primero el tiempo de servicio mas corto>> (SSTF, Shortest Service Time First) es elegir la solicitud de E/S a disco que requiera el menor movimiento posible del brazo del disco desde su posición actual. Esta elección debe ofrecer un rendimiento mejor que el del FIFO. Ya que el brazo puede moverse en ambos sentidos, se puede usar un algoritmo aleatorio de desempate para resolver los casos de igualdad de distancias. Scan Con la excepción del FIFO, todas las políticas descritas hasta ahora pueden dejar alguna solicitud incumplida hasta que se vacié la cola entera.
22. Con el SCAN, el brazo solo se puede mover en un sentido, resolviendo todas las solicitudes en esa dirección. Esta última mejora se conoce a veces como política de LOOK. Se cambia entonces la dirección de servicio y el rastreo sigue en sentido opuesto, volviendo a recoger todas las solicitudes en orden. C-SCAN La política del C-SCAN (SCAN circular) restringe el rastreo a una sola dirección. Así, cuando se haya visitado la ultima pista en un sentido, el brazo vuelve al extremo opuesto del disco y comienza a recorrerlo de nuevo, lo que reduce el retardo máximo sufrido por las nuevas solicitudes. SCAN de N pasos y FSCAN Con SSTF, SCAN y C-SCAN, es posible que el brazo no se mueva durante un periodo de tiempo considerable. Por ejemplo, si uno o varios procesos tienen altos porcentajes de acceso a una pista, pueden monopolizar el dispositivo entero por medio de solicitudes repetidas a dicha pista. Para evitar esta <<pegajosidad>> del brazo, la cola de solicitudes del disco puede dividirse en segmentos, procesándose un segmento por completo cada vez. Dos ejemplos de este método son el SCAN de N pasos y el FSCAN. La política del SCAN de N pasos divide la cola de solicitudes en subcolas de longitud N. Las subcolas se procesan una a una mediante un SCAN. Mientras se procesa una cola, se añadirán nuevas solicitudes a las otras. Si hay menos de N solicitudes disponibles al final del recorrido, entonces todas serán procesadas en el siguiente recorrido. Para valores grandes de N, el rendimiento del SCAN de N pasos se aproxima al del SCAN; con un valor de N—1, se esta adoptando la política FIFO.
23. La política FSCAN emplea dos subcolas. Cuando comienza un rastreo, todas las solicitudes están en una de las colas y la otra pertenece vacía. Durante el recorrido, todas las solicitudes nuevas se colocan en la cola que inicialmente estaba vacía. De este modo, el servicio de nuevas solicitudes se retrazara hasta que se hayan procesado las viejas NOMBRE DESCRIPCION COMENTARIOS Selección en función del demandante RSS Planificación aleatoria. Para análisis y simulación. FIFO Primero en entrar, primero en salir. El más justo de todos. PRI Prioridad del proceso. El control se lleva fuera de la gestión de la cola del disco. LIFO Último en entrar último en salir. Maximiza uso de recursos y cercanías. Selección en función del elemento solicitado SSTF Primero el más cortó. Gran aprovechamiento y colas pequeñas. SCAN Recorre el disco de un lado a otro. Mejor distribución del servicio. C-SCAN Recorre el disco en un solo sentido. Menor variabilidad en el servicio. SCAN de N-pasos Scan de N registros a la vez. Garantía de servicio. F-SCAN Scan de N pasos, con N = longitud de la cola al comienzo del ciclo del Scan. Sensible a la carga.
24.
25. Esto tiene una notable ventaja sobre el uso de un solo gran disco: si hay pendientes dos solicitudes de E/S distintas de dos bloques de datos diferentes, entonces existe una buena oportunidad para que los bloques solicitados estén en discos diferentes. De este modo, se pueden realizar en paralelo las dos solicitudes, reduciendo el tiempo en la cola de E/S. Todos los usuarios y los datos del sistema se ven como si estuviesen almacenados en un disco lógico. Este disco esta dividido en bandas (strip); estas bandas pueden ser bloques físicos, sectores o alguna otra unidad. Las bandas se asignan, mediante turno rotatorio, a miembros consecutivos del vector. Un conjunto de bandas consecutivas lógicamente que se corresponden exactamente con una banda de cada miembro del vector, se denomina franja (stripe). En un vector de n discos, las primeras n bandas lógicas, están físicamente almacenadas como la primera banda de cada uno de los n discos, y forman la primera franja; las segundas n bandas están distribuidas como las segundas bandas de cada disco; y así sucesivamente. La ventaja de esta disposición es que si una única solicitud de E/S esta formada por múltiples bandas contiguas lógicamente, entonces las n bandas de esa solicitud puede gestionarse en paralelo, reduciendo enormemente el tiempo de transferencia de E/S. RAID 0 para alta capacidad de transferencia de datos Para que las aplicaciones experimenten una alta tasa de transferencia se deben cumplir dos requisitos. Primero, una alta capacidad de transferencia debe existir a lo largo de todo el camino entre la memoria de la maquina central y las unidades de discos individuales. Esto incluye a los buses de control internos, buses de E/S del sistema central, adaptadores de E/S y buses de memoria de la maquina central. El segundo requisito es que la aplicación debe hacer solicitudes de E/S que utilicen eficientemente el vector de discos. Este requisito se cumple si la solicitud típica es de grandes cantidades de datos contiguos lógicamente, comparada con el tamaño de una banda. En este caso, una única solicitud de
26.
27.
28. En RAID 2, se calcula un código de corrección de errores a lo largo de los bits del código se almacenan en las respectivas posiciones de bit sobre discos de paridad múltiple. Normalmente, se utiliza código Hamming, que es capaz de corregir errores de un solo bit y detectar errores de dos bit. Aunque RAID 2 requiere menos discos que RAID 1, el coste es todavía algo alto. El número de discos redundantes es proporcional al logaritmo del número de discos de datos. En una lectura, se accede a todos los discos simultáneamente. Los datos solicitados y el código de corrección de errores asociado se comunican al controlador del vector de discos. Si existe un error de un solo bit, el controlador puede reconocer y corregir el error instantáneamente, por lo que no disminuye el tiempo de acceso. En una escritura, para poder escribir se tiene que acceder a todos los discos de datos y a todos los discos de paridad. RAID 2 solamente seria una elección eficiente en un entorno efectivo en el que se produjeran muchos errores de disco. Dada la alta fiabilidad de los discos y de las unidades de disco, RAID 2 esta superado y no se implementa. NIVEL RAID 3 RAID 3 se organiza de una forma similar a RAID 2. La diferencia es que RAID 3 requiere solo un disco redundante. RAID 3 emplea acceso paralelo, con los datos distribuidos en pequeñas bandas. En lugar de un código de corrección de errores, se calcula un solo bit de paridad para el conjunto de bits en la misma posición de todos los discos de datos. Redundancia En el caso de un fallo de disco, se accede a la unidad de paridad y se reconstruyen los datos desde los dispositivos restantes. Una vez que se reemplaza la unidad fallida, se pueden restaurar sobre una nueva unidad los datos perdidos y continuos el funcionamiento.
29. Rendimiento Teniendo en cuenta que los datos están divididos en pequeñas bandas, RAID 3 puede conseguir una tasa de transferencia de datos muy alta. NIVEL RAID 4 Los niveles RAID 4 a 6 usan una técnica de acceso independiente. En un vector de acceso independiente, cada disco opera independientemente, por lo que se pueden satisfacer en paralelo solicitudes de E/S individuales. Son mas apropiados para aplicaciones que requieran tasas altas de solicitudes de E/S, y son relativamente menos apropiados para aplicaciones que requieren tasas altas de transferencia de datos. En el caso de RAID 4 hasta 6, las bandas son relativamente grandes. Con RAID 4, se calcula una banda dela paridad bit a bit a lo largo de las bandas correspondientes de cada disco de datos, y los bits de paridad se almacenan en la banda correspondiente del disco d paridad. RAID 4 implica una penalización d escritura cuando se realiza una solicitud de E/S para escribir poco. Cada vez que se produce una escritura, el software que gestiona el vector de discos debe actualizar no solo los datos del usuario, sino también los bits de paridad correspondientes. NIVEL RAID 5 RAID 5 esta organizado de forma similar a RAID 4. La diferencia es que RAID 5 distribuye las bandas de paridad a través de todos los discos. Una asignación normal es un esquema de turno rotatorio. Para un
30. vector de n discos, la banda de prioridad esta sobre un disco distinto para las n primeras bandas y, después, se repite el patrón. La distribución de las bandas de paridad a través de todos los discos evita el potencial cuello de botella en la E/S del sistema RAID 4 que tiene solo un disco de paridad. NIVEL RAID 6 En el esquema RAID 6, se realizan dos cálculos distintos de paridad, y se almacenas en bloques independientes de diferentes discos. Así, un vector RAID 6 cuyos datos de usuario requieren N discos esta formado por N + 2 discos. La ventaja de RAID 6 es que ofrece una disponibilidad de datos extremadamente alta. Deberían fallar tres discos en el intervalo MTTR (Mean Time To Repair, Tiempo Medio de Reparación) para hacer que los datos no estuvieran disponibles. Por otro lado, RAID 6 sufre una importante penalización de escritura, porque cada escritura afecta a dos bloques de paridad. CACHE DE DISCO Una cache de disco es una memoria intermedia (buffer) situada en la memoria principal para sectores de disco. La cache contiene una copia de algunos sectores del disco. Se hace una solicitud de E/S para un sector especifico, se comprueba si el sector esta en el cache del disco. Si es así, la solicitud se satisface con la cache. Si no, se lee el sector solicitado del disco y se coloca en la cache. Debido al concepto de cercanía de referencias, cuando se traiga un bloque de datos a la cache para satisfacer una solicitud de E/S, será probable que se produzcan referencias futuras al mismo bloque.
31. CONSIDERACIONES SOBRE EL DISEÑO En primer lugar, cuando una solicitud de E/S se satisface desde la cache de disco, los datos de la misma deben entregarse al proceso que los solicito. La entrega puede hacerse transfiriendo el bloque de datos de la memoria principal, desde la cache del disco a la memoria asignada al proceso de usuario, o simplemente usando la capacidad de la memoria compartida y pasando un puntero a la entrada apropiada de la cache del disco. Una segunda cuestión de diseño tiene que ver con la estrategia de reemplazo. Cuando se trae un nuevo sector a la cache del disco, debe ser reemplazado uno de los bloques existentes. El algoritmo más usado es LRU (Usado Menos Recientemente), en el que se reemplaza el bloque que ha permanecido sin referencias en la cache durante más tiempo. Lógicamente, la cache esta formada por una pila de bloques, con el bloque referenciado mas recientemente en la cima de la pila. Cuando se hace referencia a un bloque de la cache, se le mueve desde su posición actual en la pila de la cima de esta. Cuando se trae un bloque de la memoria secundaria, se elimina el bloque que esta en el fondo de la pila, colocando al recién llegado en la cima de la pila. Otra posibilidad es el algoritmo Usado Menos Frecuentemente (LFU), donde se sustituye el bloque de la cache que ha sufrido un menor número de referencias. El algoritmo LFU podría implementarse asociando un contador a cada bloque. Cuando se trae un bloque, se le asigna el valor de 1; con cada referencia al bloque, se incrementa el contador en una unidad. Cuando hace falta un reemplazo, se selecciona el bloque con menor valor del contador.
32. LFU tiene el siguiente problema. Puede ser que se haga referencia a ciertos bloques con poca frecuencia, pero que cuando se haga se produzcan intervalos cortos de referencias repetidas, debido a la cercanía, obteniéndose así grandes valores del contador de referencias. Tras este intervalo, el valor del contador de referencias puede ser engañoso y no reflejar la probabilidad de que el bloque sea referenciado nuevamente. De este modo, el efecto de la cercanía puede originar que el algoritmo LFU realice malas elecciones en el reemplazo. Para superar esta dificultad del LFU se propone una técnica conocida como reemplazo en función de la frecuencia. Los bloques están organizados lógicamente en una pila, como en el algoritmo LRU. Una parte determinada de la cima de la pila se reserva como una sección nueva. Cuando se acierta en el cache, el bloque referenciado se traslada a la cima de la pila. Si el bloque ya estaba en la sección nueva, su contador de referencias no se incrementara; en otro caso, se incrementa en 1. Con una sección nueva suficientemente grande, el resultado de este procedimiento es que el contador de los bloques referenciados repetidamente en un corto intervalo de tiempo permanece inalterado. Si se produce una falta, se elegirá para reemplazo el bloque con el menor valor del contador de referencias y que no este en la sección nueva; en caso de empate, se elegirá el bloque usado menos recientemente. Los autores comentan que con su estrategia solo se consiguió una leve mejora sobre LRU. Una mejora adicional dirigida a este problema es dividir la pila en tres secciones: nueva, media y antigua. Como antes, las cuentas de referencias no se incrementan en los bloques de la sección nueva. Sin embargo, solo los bloques de la sección antigua serán candidatos para el reemplazo. Disponiendo de una sección media suficientemente grande, a los bloques referenciados más o menos frecuentemente se les da la oportunidad de aumentar sus contadores de referencias antes de ser candidatos al reemplazo. Es significadamente mejor que una simple LRU o LFU.
33. Consideraciones sobre el rendimiento El tema de rendimiento de la cache se ve reducido a la cuestión de si se puede alcanzar una determinada tasa de faltas. Esto dependerá del comportamiento de la cercanía de las referencias al disco, el algoritmo de reemplazo y otros factores de diseño. Sin embargo, la tasa de faltas es principalmente función del tamaño de la cache de disco. Utilizan LRU, uno para un sistema UNIX ejecutando sobre un VAX, grandes maquinas IBM. Cuando se comparan pautas de referencia idénticas que emplean la misma estructura de cache, el algoritmo de reemplazo en función de la frecuencia es superior. E/S EN UNIX SVR4 En UNIX, cada dispositivo particular de E/S tiene asociado un archivo especial, gestionado por el sistema de archivos, del que se lee y se escribe de la misma forma que los archivos de datos del usuario. Así se ofrece una interfaz uniforme y bien definida con los usuarios y los procesos. Para leer o escribir en un dispositivo, se realizaran solicitudes de lectura o escritura al archivo especial asociado con el dispositivo. En UNIX hay dos tipos de E/S: amortiguada y no amortiguada. La E/S amortiguada aprovecha los buffers del sistema, mientras que la no amortiguada utiliza DMA, realizando directamente la transferencia entre el modulo de E/S y la zona de E/S del proceso. Con E/S amortiguada se pueden usar dos clases de memorias intermedias: sistema de memoria cache y colas de caracteres. Cache de buffer La cache de buffer en UNIX es esencialmente una cache de disco. Las operaciones de E/S con el disco se gestionan a través de la cache de buffer. La transferencia de datos entre la cache de buffer y el espacio de usuario del proceso siempre se produce mediante DMA. Como la cache de buffer y la zona de E/S del proceso
34.
35.
36.
37.
38.
39.
40.
41.
42. Esto da lugar a una organización de datos sobre el plato en un conjunto de anillos concéntricos, llamados pistas. Cada pista tiene la misma anchura que la cabeza y existen miles de pistas por superficie. La figura representa este esquema de datos. Las pistas adyacentes son separadas por huecos (gaps). Esto previene, o al menos minimiza, los errores debidos a la perdida de alineamiento de la cabeza o, simplemente, a una interferencia de los campos magnéticos. Para simplificar la electrónica, normalmente se almacena el mismo número de bits en cada pista. Así la densidad, en bits por pulgada, aumenta al moverse de la pista más externa a la más interna. Los datos son transferidos a y desde en disco en bloques. Estos son más pequeños que la capacidad de la pista. Los datos se almacenan en regiones del tamaño de un bloque llamadas sectores y estos pueden ser de longitud fija o variable. La mayoría de las unidades de disco usa un sector fijo de 512 bytes de tamaño. Es necesario algún medio para localizar la posición de los sectores dentro de una pista. Evidentemente debe haber algún punto de comienzo de la pista y una forma de identificar el inicio y el final de cada sector. Estos requisitos están gestionados por medio de los datos de control grabados sobre el disco. Así, se da formato al disco con algunos datos extra usados solamente por el controlador de disco y no accesibles para el usuario. Características físicas Principales características que diferencian los distintos tipos de discos magnéticos: En un disco de cabeza fija, hay una cabeza de lectura/escritura por pista. Todas las cabezas están dispuestas sobre un brazo rígido que se extiende a través de todas las pistas. En un disco de cabeza móvil, hay solamente una cabeza de lectura/escritura que también esta montada sobre un brazo. Puesto que la cabeza debe ser capaz de situarse sobre cualquier pista, el brazo puede extenderse o retraerse para el propósito.
43. Un disco no-extraíble esta permanentemente montado en la unidad de disco. Un disco extraíble puede ser retirado y reemplazado por otro disco. Ese disco puede llevarse de un sistema informático a otro. La mayoría de los discos tienen la cubierta magnética aplicada a ambas superficies del plato, que entonces se denomina doble cara. Algunos sistemas de disco más baratos usan discos de una sola cara. Algunas unidades de disco disponen de platos múltiples apilados verticalmente separados por una pulgada aproximadamente. Estas unidades disponen de múltiples brazos. Los platos se presentan como una unidad denominada paquete de discos. Los múltiples platos del disco emplean una cabeza móvil con una cabeza de lectura/escritura por cada superficie. Todas las cabezas son mecánicamente fijas así que todas están a la misma distancia del centro del disco y se mueven juntas. Así, en cualquier momento, todas las cabezas están situadas sobre pistas en la misma distancia del centro del disco. La combinación de todas las pistas en la misma posición relativa sobre el plato se denomina cilindro. El mecanismo ofrece una clasificación de discos en tres tipos. Tradicionalmente, las cabezas de lectura/escritura están situadas a una distancia fija por encima del plato, permitiendo un hueco de aire. En el otro extremo hay un mecanismo de cabeza que realmente entra en contacto físico con el medio durante una operación de lectura o escritura. Este mecanismo se usa con los discos flexibles, que son un tipo de disco pequeño, flexible y más barato. Para entender el tercer tipo de disco, es necesario comentar la relación entre la densidad de datos y el tamaño del hueco de aire. La cabeza debe generar o sentir un campo electromagnético de suficiente magnitud. Cuanto más estrecha es la cabeza, mas cerca debe estar de la superficie del plato para poder funcionar. Cuanto más cerca esta la cabeza del disco, mayor es el riego de un error por impurezas o imperfecciones. Se desarrollo el disco Winchester, en este disco las cabezas se utilizan en una unidad sellada que esta casi libre de contaminantes. Están diseñadas para operar mas cerca de la superficie del disco que las cabezas de los discos rígidos convencionales, permitiendo así mayor densidad de datos.
44. La cabeza, realmente, esta en una lamina aerodinámica que descansa ligeramente sobre la superficie del plato cuando el disco esta inmóvil. La presión de aire generada por el disco al girar es suficiente para hacer que la lámina se eleve por encima de la superficie. Memorias ópticas En 1983, se introdujo uno de los más exitosos productos comerciales de todos los tiempos: el sistema digital de audio en disco compacto (CD, Compact Disk). El CD es un disco que no se puede borrar y que puede almacenar más de 60 minutos de información audio sobre una cara. El enorme éxito comercial del CD permitió el desarrollo dela tecnología a bajo coste para el almacenamiento en discos ópticos, lo que ha revolucionado el almacenamiento de datos en las computadoras. Se han introducido varios sistemas de disco óptico. CD-ROM Tanto el CD audio como el CD-ROM (Compact Disk Read-Only Memory, Disco Compacto con Memoria de Solo Lectura) comparten una tecnología similar. La principal diferencia es que los reproductores de CD-ROM son más robustos y tienen dispositivos de corrección de errores que aseguran que se transfieren correctamente los datos desde el disco al computador. Ambos discos se fabrican de la misma forma. El disco esta formado de una resina, como el policarbonato, y están forrados de una superficie altamente reflectante, normalmente aluminio. La información grabada digitalmente se imprime en forma de una serie de surcos microscópicos sobre la superficie reflectante. Esto hace, antes de nada, con un láser de alta intensidad y de foco muy fino para crear un disco maestro. El disco maestro se usa, por turnos, para hacer un molde con el que estampar las copias. La superficie surcada de las copias se protege contra el polvo y los roces con una capa de laca transparente.
45.
46.
47.
48. Reproduce películas con una calidad de imagen impresionante, y se dispone de acceso aleatorio como en los CD de audio, que también pueden reproducir las maquinas de DVD. En un disco se pueden apiñar enormes cantidades de datos, en la actualidad siete veces más que un CD-ROM. Con la enorme capacidad de almacenamiento y de alta calidad de los DVD, los juegos de PC. Pueden llegar a ser mucho más realistas y el software educativo incorporara más videos. Estas son algunas de las características destacables de un DVD que le distinguen del CD-ROM: Un DVD estándar contiene 4,7 Gbytes por nivel y con una cara de dos niveles alcanza los 8,5 Gbytes. El DVD utiliza un tipo de comprensión de video conocido como MPEG para imágenes de alta calidad en pantalla completa. Un solo nivel de DVD puede almacenar una película de 2 horas y 13 minutos, mientras dos niveles pueden contener una película de más de 4 horas. Discos magneto-ópticos Una unidad de disco magneto-óptica (MO) usa un láser óptico par enfocar la cabeza magnética de grabación para poder alcanzar capacidades mayores. En este esquema, el disco esta recubierto con un material cuya polaridad se puede alterar solo a altas temperaturas. La información se escribe en el disco usando el láser para calentar un pequeño punto de la superficie y, después, se aplica un campo magnético. Cuando el punto se enfría, el campo adopta una polaridad norte-sur. Puesto que el proceso de polarización no produce un cambio físico de disco, el proceso se puede repetir muchas veces.
49. La operación de lectura es puramente óptica. La dirección del magnetismo se puede detectar por un haz de luz láser polarizado. La luz polarizada reflejada desde un punto concreto cambiara su grado de rotación dependiendo de la orientación de los campos magnéticos. La principal ventaja de la unidad MO sobre un CD óptico puro es la longevidad de los discos. Repetidas grabaciones de datos sobre un disco óptico producen una degradación paulatina del material. La unidad MO no sufre esta degradación, se mantiene útil a lo largo de múltiples operaciones de escritura. Otra ventaja es que tiene un coste por megabyte considerablemente menor que el almacenamiento magnético.