Существует два основных типа технических требований, с которыми сталкиваются разработчики систем ввода-вывода; ограничения по латентности и ограничения по пропускной способности. В обоих случаях на конструкцию и оценки влияют знания о модели трафика.
Ограничения по латентности включают гарантии, что латентность завершения операции ввода-вывода ограничена определенным показателем. В простом случае система может быть не нагружена, и конструктор должен гарантировать выполнение некоторых границ латентности либо из-за их критичности для приложения, либо из-за того, что приложение должно получить определенное гарантированное обслуживание, чтобы предупредить появление ошибок. Кроме того, определение латентности на ненагруженной системе дается относительно легко, поскольку оно включает отслеживание путей операции ввода-вывода и суммирование отдельных показателей латентности.
Определение средней латентности (или распределения латентности) под нагрузкой дается намного сложнее. Такие задачи решаются либо с помощью теории массового обслуживания (когда поведение запросов рабочей нагрузки и показатели времени обслуживания ввода-вывода могут быть приблизительно оценены с помощью простых распределений), либо путем имитационного моделирования (при сложном стечении обстоятельств ввода-вывода). Обе эти темы не вписываются в рамки данного текста.
Еще одной типичной проблемой, с которой сталкиваются разработчики, является конструирование системы ввода-вывода, отвечающей набору ограничений пропускной способности при заданной рабочей нагрузке. Кроме этого разработчику может быть передана частично сконфигурированная система ввода-вывода и поставлена задача по балансированию системы с целью поддержания максимально достижимой полосы пропускания, продиктованной предварительно сконфигурированной частью системы. Эта последняя задача конструирования является упрощенной версией первой задачи.
При разработке таких систем используются следующие общие подходы:
1. Поиск в системе ввода вывода самого слабого звена, представляющего собой компонент пути ввода-вывода, который накладывает ограничения на конструкцию. В зависимости от рабочей нагрузки, этот компонент может находиться в любом месте, включая процессоры, систему памяти, контроллеры ввода-вывода или устройства. Место самого слабого звена может быть продиктовано как рабочей нагрузкой, так и ограничениями конфигурации.
2. Настройка этого компонента для поддержки требуемой пропускной способности.
3. Определение требований для всей остальной системы и настройка ее на поддержку этой пропускной способности.