Sistemas operativos modernos

del dispositivo que interrumpió) se pone en marcha, saca el contador de programa y la PSW de la pila, los guarda y pregunta al dispositivo cuál es su estado. Cuando termina el manejador, de­ vuelve el control al programa de usuario que se estaba ejecutando, en la primera instrucción que todavía no se ejecutaba. Estos pasos se muestran en la figura 1-lOb. [ / El tercer método para efectuar E/S utiliza un chip especial de acceso directo a memoria (DMA; direct memory access) que puede controlar el flujo de bits entre la memoria y alguna controladora sin que la CPU tenga que intervenir en forma continua. La CPU prepara el chip DMA, indicándole cuántos bytes hay que transferir, el dispositivo, las direcciones de memoria en cuestión y el sentido, y se desentiende de él. Cuando el chip DMA termina, causa una inte­ rrupción, que se maneja como acabamos de describir. El hardware de DMA y de E/S, en gene­ ral, se tratarán con mayor detalle en el capítulo 5. Las interrupciones con frecuencia se presentan en momentos muy poco convenientes; por ejemplo, mientras se está ejecutando otro manejador de interrupciones. Por este motivo, la CPU tiene un mecanismo para inhabilitar las interrupciones y volver a habilitarlas después. Mientras las interrupciones están inhabilitadas, cualquier dispositivo que termine seguirá aplicando su se­ ñal de interrupción, pero la CPU no se interrumpirá en tanto no se habiliten otra vez las inte­ rrupciones. Si varios dispositivos terminan mientras las interrupciones están inhabilitadas, la controladora de interrupciones decidirá a cuál atender primero, por lo regular basándose en prio­ ridades estáticas asignadas a cada dispositivo. El dispositivo de más alta prioridad gana. 1.4.4 Buses La organización de la figura 1-5 se utilizó en las minicomputadoras durante años, y también en la PC de IBM original. Sin embargo, a medida que aumentó la rapidez de los procesadores y las memorias, la capacidad de un solo bus (y ciertamente la del bus de la PC de IBM) para mane­ jar todo el tráfico se sometió a una demanda excesiva. Algo tenía que ceder. Por ello, se añadie­ ron más buses, tanto para los dispositivos de E/S más rápidos como para el tráfico entre la CPU y la memoria. Como consecuencia de esta evolución, en la actualidad un sistema Pentium gran­ de tiene un aspecto parecido al que se muestra en la figura 1-lL Este sistema tiene ocho buses (caché, local, memoria, PCI, SCSI, USB, IDE e ISA), todos con diferente tasa de transferencia y función. El sistema operativo debe estar al tanto de todos ellos pa­ ra configurarlos y manejarlos. Los dos principales son el bus ISA (Arquitectura Estándar de la Industria; Industry StandardArchitecture) original de la PC de IBM y su sucesor, el bus PCI (In­ terconexión de Componentes Periféricos; Peripheral Component Interconnect). El bus ISA, que originalmente fue el de la PC/AT de IBM , opera a 8.33 MHz y puede transferir dos bytes a la vez, para dar una velocidad máxima de 16.67 MB/s. Se incluyó para mantener la compatibilidad con tarjetas de E/S viejas y lentas. Ei bus PCI fue inventado por Intel como sucesor del bus ISA; pue­ de operar a 66 MHz y transferir ocho bytes a la vez, para una tasa de datos de 528 MB/s. Casi to­ dos los dispositivos de E/S de alta velocidad emplean ahora el bus PCI. Incluso algunas computadoras con procesadores distintos a los de Intel utilizan el bus PCI, en vista del gran núme­ ro de tarjetas de E/S que pueden conseguirse para él. En esta configuración, la CPU se comunica con el chip puente PCI por e! bus local, y ese chip se comunica con la memoria por un bus de memoria dedicado, que normalmente opera a

RkJQdWJsaXNoZXIy MjI4NDcx