¿Existe un límite para la cantidad de dispositivos de E / S a los que se puede conectar una computadora o un sistema operativo?

Depende de cómo defina un ‘dispositivo’ y de la arquitectura del hardware y del sistema operativo. En un nivel, podría ser un chip periférico mapeado en la memoria o el espacio de direcciones IO soportado por la CPU. Para la IO mapeada en memoria, eso está limitado por el tamaño del espacio de memoria direccionable, efectivamente el número de bits del bus de direcciones. Ese es un número muy grande en las CPU modernas. En la arquitectura Intel x86, hay un espacio de direcciones IO separado que tiene 16 bits de ancho. Por supuesto, la mayoría de los ‘dispositivos’ en este contexto consumirán múltiples direcciones IO, por lo que el número teórico total es mucho menor que el espacio de direcciones IO.

En otro nivel, en el otro extremo del espectro, un dispositivo podría ser un dispositivo complejo de nivel bastante alto como un brazo robótico que tiene numerosos puntos IO controlados y monitoreados. En un sistema como un plano posterior VME con más de 20 módulos IO, es posible que solo pueda controlar una pequeña cantidad de dichos dispositivos. Naturalmente, la cantidad de energía de la CPU y el ancho de banda de los canales a los dispositivos pueden tener un impacto, ya que ‘conectado a’ no es lo mismo que ‘controlado por’.

Un dispositivo puede ser algo así como un periférico o una interfaz definida y compatible con un controlador de dispositivo del sistema operativo o algún controlador de dispositivo en el espacio de usuario. Los núcleos del sistema operativo probablemente tengan algún límite teórico basado en el tamaño de alguna tabla u otra estructura de datos que conecte el controlador al núcleo del sistema operativo.

Por lo general, el límite práctico en cualquier escenario es mucho menor que el límite teórico.

Realmente depende de la arquitectura.

El mayor número de dispositivos que he visto en un registro de arranque de Linux fue de aproximadamente 140. Esto era del grupo de desarrolladores en Alemania que trabajaba en un nodo IBM SP3; en su mayoría discos, pero también múltiples interfaces de red presentes.

El problema para la arquitectura Intel no es el número de dispositivos … sino el número MUY limitado de líneas IRQ y cómo se implementan.

Los sistemas con un diseño más general (incluso volviendo al antiguo PDP-11) podrían manejar más dispositivos que un x86–64, ya que Intel utiliza un manejo en cadena limitado (irq 2 se encadena a otro chip, por lo tanto, es más lento y consume uno) – entonces 16.) Después de eso, tiene que usar una “cadena de omisión” para decidir qué dispositivo está solicitando servicio. Otras arquitecturas hacen que el dispositivo especifique la prioridad y un vector. Por lo tanto, puede tener tantos dispositivos como vectores, y sin desaceleración de la cadena de omisión. Incluso el PDP-11 tenía más (hasta aproximadamente 256 vectores individuales, aunque la mayoría tenía menos de 64), y solo de una a tres líneas de solicitud (frente a la línea única de Intel que se multiplexa)

En teoría, sin límite.

En la práctica, depende de cuánto dinero esté dispuesto a gastar.

Sí. El Chipset tiene un conjunto de controladores io que administra y un conjunto de pines que puede usar. Las placas base se basan en la capacidad del conjunto de chips, por lo que generalmente las limitaciones de conexión de su placa base son los límites de conexión de su PC.