Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование АСОИУ.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
578 Кб
Скачать
☆

Распределение модулей и подсистем по процессорам и задачам.

Каждый асинхронный, а тем более независимый объект модуль или подсистема должен быть приписан к одному из аппаратных устройств, которое может быть как универсальным процессором так и специализированное функциональное устройство. Разработчик системы должен оценить требуемую производительность и требуемые ресурсы, выбрать способ реализации подсистем аппаратной или программной, распределить программные подсистемы по процессорам. Стремясь удовлетворить требования по производительности и в то же время сократить межпроцессорные коммуникации. Например: какая то информация из сети может непосредственно кидаться в хранилище. Оценка требований ресурсов. Решение использовать несколько процессоров или обоснование применения определенного числа ядер процессора обычно бывает связано с потребностью иметь более высокую производительность по сравнению с производительностью одного процесса. Количество требуемых процессоров или ядер зависит от объема вычислений и производительности одного ядра. Разработчик модет оценить требуемую производительность вычисляя постоянную нагрузку как произведение количества транзакций в секунду на сложность или время выполнения одной транзакции. Это предварительная грубая оценка, которая не учитывает случайных колебаний нагрузки. Ее следует уточнять. Часто имеет смысл ориентироваться не на среднее а на пиковые показатели. При этом может возникнуть проблема рационального использования ресурсов. Например: для того, чтобы соц сеть работала в какие нибудь праздничные дни вроде первого сентября, когда много школьников и студентов возвращаются с каникул может потребоваться 70 серверов, когда в обычные дни хватает примерно 40. Возникает вопрос, чем занять в будние дни простаивающие сервера или каким образом привлечь дополнительные мощности при пиковых нагрузках. Все это может потребовать каких либо дополнительных модулей компонент и тд. Это и диспетчеры нагрузки, и анализаторы трафика и тому подобные вещи.

Замена программ аппаратуры.

Аппаратуру часто следует рассматривать как неизменяемое тщательно оптимизированное программное обеспечение. Тем более что на верхних уровнях реализации системы аппаратура часто бывает представлена некоторыми программными интерфейсами. Каждое устройство может рассматриваться как объект, который работает параллельно с другими объектами. Разработчик может принять решение о замене некоторых объектов подходящими аппаратными устройствами. Обычно это делается по следующим причинам:

  1. Требуемое устройство легко доступно.

  2. Требуется более высокая производительность. Нежели производительность универсального процессора специальной задачи.

Распределение модулей и подсистем по процессорам.

Следует иметь ввиду следующее:

  1. Некоторые задачи нужно выполнять на определенных устройства исключительно в силу постановки самой задачи.

  2. Время ответа или скорость информационного потока может превышать пропускную способность канала между процессором и программами. Тогда по неволе приходиться использовать дублирование процессоров и исполнения разных частей программы на разных процессорах. В простейшем варианте практически на аппаратном уровне использовать на разные моменты контроллеры на чтение и на запись.

  3. Скорость вычислений или требуемые скорости вычислений могут быть слишком высоки для одного процессора. Следовательно, следует размещать компоненты ПО на нескольких процессорах стремясь при этом сократить коммуникационные издержки. То есть например задачи которые между собой часто взаимодействуют по возможность желательно располагать на одном процессоре. Но если много на один процессор возложить можем не уложиться. Такие задачи нужно размещать на максимально близких процессорах. Если мы обратимся к архитектуре современных процессоров, то у них есть несколько ядер и каждое из ядер позволяет запускать два потока вычислений. При этом потоковые под ядра в пределах одного ядра имеют ряд общих ресурсов. В частности может использоваться разделяемый Кэш. Тогда время взаимодействия между ними будет существенно меньше нежели чем для задач исполняемых на разных ядрах. Но снижаются возможности по одновременному выполнению этих задач, если они конфликтуют в борьбе за ресурс. Следующим вариантом по близости – соседнее ядро. Далее процессор находящийся на этой же плате использующий спец шин для взаимодействия. Далее идут сетевые взаимодействия требующие больше ресурсов.