На разных курсах постоянно говорят о том, как работать с системами — как писать код, как писать его оптимально, засчет каких математических моделей он работает, как он преобразуется в машинный код и так далее. Но куда более редко поднимается вопрос о том, на чем запускается наш код? Почему в один момент кратно возросли цены на видеокарты, а на обычные процессоры практически не изменились; почему иногда стоит выбрать более медленное хранилище(HDD) вместо высокоскоростного(SSD).
На эту тему достаточно много говорили разве что на курсе АКОС и будут говорить на нескольких курсах специализации Распределенных Систем.
Сегодня же мы с вами погрузимся в краткий экскурс по Hardware-ной части окружения нашей работы.
Железо на самом деле одна из самых сложных и наукоемких областей всех компьютерных наук. Проектирование любого компонента серверной установки(или вашего личного ПК) включает в себя труд десятков(а обычно и более) инженеров. Сегодня мы не будем говорить про многие важнейшие части, без которых компьютер не смог бы существовать, поэтому давайте вкратце перечислим то из чего обычно состоит компьютер
И, конечно даже это далеко не все. Если вы много работаете со звуком, то вам потребуется дискретная аудиокарта; если компьютер взаимодействует с сетью(маршрутизирует, распределяет траффик, раздает файлы), то потребуется сетевая карта.
По каждому из этих компонентов проводят не просто одиночные лекции, а целые курсы. Поэтому здесь мы опустим многие из них и перейдем только к основным, с которыми вы можете и будете сталкиваться очень часто.
Но сперва немного о важных терминах, без которых будет тяжело оценивать те или иные компоненты.
При оценке скорости работы тех или иных частей(будь то части компьютера или программные компоненты сервера) стоит учитывать две возможные характеристики — Latency и Throughput.
Throughput показывает пропускную способность того или иного процесса