Sistemas operativos modernos

tema operativo, es fácil para el sistema evitar la paginación de esos búferes. El problema aquí es que el usuario está configurando y manejando el DMA, y el sistema operativo no sabe que el reemplazo de una página podría ser fatal, cosa que sí sabe en el caso de E/S que él mismo inicia. La razón por la cual el uso de búferes de kemel es aceptable en el caso de la E/S de disco pero no en el de la comunicación entre múltiples procesadores, es que un retraso adicional de 20 p.s es tolerable como latencia de disco pero no como latencia de la comunicación entre procesos. El problema del DMA puede evitarse si se hace que el proceso de usuario fije una página en la memoria en el momento de iniciar, e indague su dirección física. Los paquetes que salen se copian primero allí y luego en la interfaz de red, pero este copiado adicional es tan malo co­ mo copiar en el kemel. Por todas estas razones, el proceder más seguro suele ser el uso de E/S programada con la tarjeta de interfaz, pues los fallos de página que se presenten sólo serán fallos ordinarios de CPU y el sistema operativo podrá manejarlos de la forma acostumbrada. Cuando se presenta un fallo de página, el ciclo de copiado se detiene al instante y permanece parado hasta que el sistema operativo lo maneja. Un esquema más avanzado consiste en usar E/S programada si los paquetes son pequeños, y DMA con fijación de páginas si son grandes. Si las tarjetas de interfaz de red tienen su propia CPU (como sucede con las tarjetas Myri- net), esos procesadores en tarjeta pueden servir para acelerar la comunicación. Sin embargo, debe tenerse cuidado para evitar condiciones de competencia entre la CPU principal y la de la tarjeta. Una forma de evitar las competencias se ilustra en la figura 8-19, donde nos concentra­ mos en el envío de paquetes por el nodo 1 y la recepción de paquetes en el nodo 2 , aunque la comunicación no es necesariamente entre ellos. La estructura de datos clave para la sincroni­ zación en el caso de los transmisores es el anillo de envío; en el caso de los receptores es el ani­ llo de recepción. Todos los nodos tienen ambos anillos, pues todos envían y reciben. Cada anillo tiene espacio para n paquetes. También hay un mapa de n bits por cada anillo, que podría estar integrado al anillo o manejarse aparte (como se muestra), para saber cuáles ranuras del anillo son válidas en un momento dado. Anillo de Figura 8-19. Uso de anillos de enviar y recibir para coordinar la CPU principal con la CPU de ia tarjeta de interfaz.

RkJQdWJsaXNoZXIy MjI4NDcx