Sistemas operativos modernos
Unidad de disco 1. La CPU programa la Controladora Rontroladora DMA Memoria principal Bus Figura 5-4. Funcionamiento de una transferencia por DMA. Cuando se usa DMA, el procedimiento es distinto. Primero la CPU programa la conü’ola- dora DMA, colocando valores en sus registros para que sepa qué debe transferir y a dónde (pa so 1en la figura 5-4). La CPU también envía un comando a la controladora de disco indicándole que lea datos del disco, los coloque en su búfer interno y coteje la suma de verificación. Cuan do haya datos válidos en el búfer de la controladora de disco, el DMA podrá iniciar. La controladora DMA inicia la transferencia, enviando a la controladora de disco una solici tud de lectura por el bus (paso 2). Esta solicitud de lectura tiene el mismo formato que cualquier otra, y la controladora de disco no sabe, ni le importa, si provino de la CPU o de una controla dora DMA. Por lo regular, la dirección de memoria en la que se escribirá está en las líneas de di rección del bus, <tóí que cuando la controladora de disco toma la siguiente palabra de su búfer interno, sabe dónde colocarla. La escritura en memoria es otro ciclo de bus estándar (paso 3). Cuando termina la escritura, la controladora de disco envía una señal de acuse a la controladora DMA, también por el bus (paso 4). Después, la controladora DMA incrementa la dirección de memoria que se usará y disminuye la cuenta de bytes. Si ésta sigue siendo mayor que O, se repi ten los pasos 2 a 4 hasta que la cuenta llega a 0. En ese momento, la controladora DMA interrum pe a la CPU para avisarle que ya terminó la transferencia. Cuando el sistema operativo inicie, no tendrá que copiar el bloque de disco en la memoria; ya está ahí. Las controladoras DMA varían considerablemente en cuanto a complejidad. Las más sen cillas realizan una transferencia a la vez, como acabamos de describir. Otras, más complejas, pueden programarse para manejar varias transferencias a la vez. Tales controladoras tienen múltiples conjuntos de registros internos, uno para cada bus. Lo primero que hace la CPU es cargar cada conjunto de registros con los parámetros pertinentes para su transferencia. Cada transferencia debe utilizar una controladora de dispositivo distinta. Después de transferir cada palabra (pasos 2 a 4 de la figura 5-4), la controladora DMA decide a cuál dispositivo atenderá a continuación. Se podría usar un algoritmo de tumo circular (round-robin) o un esquema de prioridades para dar preferencia a algunos dispositivos. Es posible tener pendientes al mismo
RkJQdWJsaXNoZXIy MjI4NDcx