Раздел 4 / 5

Техническое обеспечение вычислительных систем

Тема 4.1

ЭВМ и периферийные устройства

Организация процессора и памяти, выполнение команд, прерывания, ввод-вывод, параллельные системы.

Функциональная и структурная организация процессора

Классическая архитектура фон Неймана: единая память команд и данных, программа хранится в памяти, команды выполняются последовательно. Состав процессора:

  • Устройство управления (УУ) — выбирает команды, дешифрует их и вырабатывает управляющие сигналы для всех блоков;
  • Арифметико-логическое устройство (АЛУ) — выполняет арифметические и логические операции;
  • Регистры — сверхбыстрая память внутри процессора: аккумулятор/регистры общего назначения, счётчик команд PC, регистр команды IR, указатель стека SP, регистр флагов;
  • Кэш-память, блок вычислений с плавающей точкой, устройство сопряжения с шиной.
Функциональная организация процессора — то, что он умеет: система команд, форматы данных, способы адресации, программно доступные регистры — всё, что видит программист (иначе — архитектура). Структурная организация — то, как это реализовано аппаратно: состав блоков, связи между ними, конвейер, кэши. Одна архитектура (например, x86) реализуется десятками разных структур — программы при этом совместимы.

Назначение основных регистров:

РегистрНазначение
PC — счётчик командадрес следующей команды; автоматически увеличивается, переходы записывают в него новый адрес
IR — регистр командыхранит текущую команду на время декодирования и выполнения
Аккумулятор / РОНоперанды и результаты АЛУ; в аккумуляторных архитектурах (MCS-51) — один выделенный, в регистровых — набор регистров общего назначения
SP — указатель стекавершина стека: адреса возврата из подпрограмм, сохранённые контексты, локальные данные
Регистр флаговпризнаки результата: нуль (Z), знак (S), перенос (C), переполнение (OV) — по ним работают условные переходы
Регистр адреса памятиадрес текущего обращения к памяти (программно недоступен)

Устройство управления реализуется двумя способами. Аппаратное (жёсткая логика) — управляющие сигналы вырабатывает комбинационная схема: максимально быстро, но менять систему команд нельзя (типично для RISC). Микропрограммное — каждая команда исполняется как последовательность микрокоманд из специальной памяти микропрограмм: гибко, легко реализовать сложные команды и даже исправлять ошибки обновлением микрокода, но медленнее (типично для CISC). Это и есть материальная основа деления CISC/RISC: сложные многотактные команды с микропрограммным УУ против компактного набора простых однотактных команд с жёсткой логикой (подробнее — в теме 4.3).

Представление информации в ЭВМ

Всё в памяти — двоичные коды; интерпретация (число, команда, символ, пиксел) задаётся программой.

Перевод между системами счисления. 25₁₀ в двоичную — деление на 2 с остатками:

25 → 12 (ост. 1) → 6 (0) → 3 (0) → 1 (1) → 0 (1)  ⇒  25₁₀ = 11001₂ обратно: 1·16 + 1·8 + 0·4 + 0·2 + 1·1 = 25 ✓

Шестнадцатеричная — стенография двоичной: каждые 4 бита — одна цифра: 1101 1010₂ = DA₁₆ = 218₁₀. Адреса и дампы памяти пишут в hex именно поэтому.

Отрицательные числа — дополнительный код: −x = инверсия битов x + 1. Для 8 бит:

+5 = 0000 0101  ⇒  −5 = 1111 1010 + 1 = 1111 1011 проверка: 7 − 5 = 7 + (−5): 0000 0111 + 1111 1011 = 1 0000 0010 → отбросить перенос → 2 ✓

Вычитание сводится к сложению — АЛУ не нужна отдельная схема вычитателя; ноль представлен единственным образом; старший бит — знак. Диапазон 8 бит: −128…+127 — выход за него даёт переполнение (флаг OV).

демоОдин байт со всех сторон

Двигайте слайдер — или кликайте прямо по битам, чтобы переключать их. Байт показывает двоичный вид, шестнадцатеричный и вес каждого бита. Перейдите через ноль в минус: включается старший (знаковый) бит и все веса «переворачиваются» — это и есть дополнительный код. Обратите внимание на скачок −128 → +127: переполнение по кругу.

Вещественные числа — формат IEEE 754: число = знак · мантисса · 2порядок. Одинарная точность (32 бита): 1 бит знака, 8 бит смещённого порядка, 23 бита мантиссы (~7 значащих цифр); двойная (64 бита) — 11 и 52 (~16 цифр).

6,5 = 110,1₂ = 1,101₂ · 2² порядок 2 + смещение 127 = 129 = 1000 0001₂ 0 | 10000001 | 101 0000 0000 0000 0000 0000

Важное следствие: 0,1 в двоичной — бесконечная дробь, хранится приближённо, поэтому в любом языке 0,1 + 0,2 ≠ 0,3 в точности. Отсюда правило вычислительной практики: вещественные числа не сравнивают на строгое равенство, а деньги считают в целых копейках.

Организация внутренней памяти

Память строится иерархией «быстрее — меньше — дороже»:

УровеньТехнологияОбъёмВремя доступа
Регистрытриггеры в ЦПсотни байттакт
Кэш L1/L2/L3SRAMКБ – десятки МБединицы–десятки тактов
Оперативная памятьDRAM (нуждается в регенерации)ГБ~100 тактов
ПЗУ/флеш (BIOS)ROM, FlashМБмедленно, энергонезависимо

Кэш хранит копии активно используемых блоков ОЗУ; работает благодаря локальности обращений (временно́й и пространственной). При промахе блок подгружается из следующего уровня.

Иерархия памяти — рабочее место мастера: инструменты в руках (регистры), на верстаке (кэш), в шкафу (ОЗУ), на складе (диск). Класть всё в руки невозможно, ходить за каждым винтиком на склад — разорительно. Секрет в том, что мастер подолгу работает одним и тем же (временна́я локальность) и берёт соседние детали (пространственная) — поэтому маленький верстак «прячет» медленный склад.

SRAM против DRAM. Ячейка статической памяти (SRAM) — триггер из шести транзисторов: хранит бит, пока есть питание, читается за единицы тактов, но дорога и объёмна — из неё строят кэш. Ячейка динамической (DRAM) — один транзистор и конденсатор: в разы плотнее и дешевле, но заряд стекает, поэтому каждые несколько миллисекунд контроллер обязан перезаписывать (регенерировать) все строки, а чтение разрушает заряд и требует восстановления — отсюда и бо́льшее время доступа. ПЗУ хранит неизменяемые данные (начальный загрузчик), флеш-память — энергонезависимая перезаписываемая (BIOS/UEFI, SSD).

Организация кэша. Обмен с кэшем идёт блоками (строками) по 32–64 байта. Куда класть блок ОЗУ — три схемы отображения:

  • прямое отображение — каждому адресу соответствует ровно одна строка кэша (по младшим битам номера блока): простое и быстрое сравнение одного тега, но два «конфликтующих» адреса вытесняют друг друга;
  • полностью ассоциативное — блок может лечь в любую строку: конфликтов нет, но нужно параллельно сравнивать все теги — дорого;
  • наборно-ассоциативное — компромисс и практический стандарт: адрес указывает на набор из 4–16 строк, внутри набора — ассоциативный поиск.

При заполненном наборе строку выбирает политика замещения (обычно LRU — вытесняется дольше всех не использовавшаяся). Политика записи: сквозная (write-through) — запись сразу и в кэш, и в ОЗУ (просто, но каждый раз занята шина); обратная (write-back) — запись только в кэш с пометкой строки «грязной», в ОЗУ — лишь при вытеснении (быстрее, так работают современные ЦП). Эффективность характеризует доля попаданий: среднее время доступа t = tкэш + (1 − p)·tОЗУ — уже при p = 95 % медленная память почти «исчезает».

Среднее время доступа в числах. Пусть кэш отвечает за 2 такта, ОЗУ — за 100:

p = 95 %: t = 2 + 0,05·100 = 7 тактов p = 90 %: t = 2 + 0,10·100 = 12 тактов — потеря всего 5 % попаданий почти удвоила время

Практический вывод: важна доля попаданий именно вашей нагрузки, а не «размер кэша вообще». Программы с хаотичным доступом к памяти (связные списки, случайные обходы) медленны даже на «быстром» процессоре — они бьют мимо кэша.

демоКэш: попадания и промахи
Кэш на 4 блока (внизу), память из 16 блоков (вверху). Программа с локальными обращениями почти всегда попадает в кэш (зелёные вспышки); случайные обращения дают сплошные промахи (красные) — и каждый промах стоит ~100 тактов похода в ОЗУ. Одна и та же машина, разница только в порядке обращений.
демоОтображение блока на строку: прямое против наборно-ассоциативного

Программа по кругу обращается к блокам 0, 4, 0, 4, 1, 5, 1, 5 (ОЗУ из 16 блоков, кэш из 4 строк). При прямом отображении строка = номер блока mod 4: блоки 0 и 4 претендуют на одну и ту же строку и вечно вытесняют друг друга — сплошные промахи, хотя половина кэша пустует. Переключите режим: те же 4 строки собраны в 2 набора по 2 канала — «конфликтующие» блоки уживаются в одном наборе, и после прогрева все обращения попадают. Видно и разбиение адреса: тег + индекс строки/набора.

Стадии выполнения команды. Конвейер

Основные стадии цикла: выборка команды (по адресу из счётчика команд) → декодирование → выборка операндов → выполнение в АЛУ → запись результата. Конвейеризация совмещает стадии разных команд: пока одна выполняется, следующая декодируется, а третья выбирается — в идеале одна команда завершается каждый такт. Конвейер тормозят конфликты: структурные, по данным, по управлению (переходы — отсюда предсказание ветвлений).

Три вида конвейерных конфликтов (хазардов) и способы борьбы:

  • Структурные — двум стадиям одновременно нужен один ресурс (например, память для выборки команды и чтения данных). Решение — дублирование ресурсов: раздельные кэши команд и данных (гарвардская организация на уровне L1), многопортовые регистровые файлы.
  • По данным — команда использует результат предыдущей, который ещё не записан. Решения: обходной тракт (форвардинг) — результат передаётся с выхода АЛУ прямо на вход следующей команды, минуя запись в регистр; переупорядочивание команд компилятором или самим процессором (внеочередное исполнение); в крайнем случае — «пузырь» (такт простоя).
  • По управлению — до вычисления условного перехода неизвестно, какие команды выбирать дальше. Решение — предсказание переходов: аппаратура запоминает историю каждого перехода и заранее выбирает наиболее вероятную ветвь; при ошибке конвейер сбрасывается (десятки потерянных тактов — потому точность предсказателей доведена до 95–99 %).

Развитие идеи — суперскалярность: несколько параллельных конвейеров запускают за такт две и более команды; вместе с внеочередным исполнением и предсказанием это основной источник производительности современных ЦП на одном ядре.

демоКонвейер команд
Пять команд проходят пять стадий (В — выборка, Д — декодирование, О — операнды, И — исполнение, З — запись). Без конвейера потребовалось бы 25 тактов, с конвейером — 9. Включите «конфликт по данным»: команда 2* использует результат команды 1, которого ещё нет, — конвейер вставляет пузырь (✕✕), и все последующие команды сдвигаются: 11 тактов. С такими пузырями борются обходные тракты и переупорядочивание команд.

Прерывания

Прерывание — механизм приостановки текущей программы для обработки события с последующим возвратом. Виды: аппаратные (внешние — от устройств ввода-вывода, таймера), программные (команда INT — системные вызовы), исключения (внутренние — деление на нуль, страничный отказ).

Цикл обработки: устройство выставляет запрос → контроллер прерываний определяет приоритет → процессор завершает текущую команду, сохраняет контекст (счётчик команд, флаги) в стеке → по номеру прерывания из таблицы векторов берётся адрес обработчика → выполняется обработчик → команда возврата восстанавливает контекст. Приоритеты и маскирование позволяют упорядочивать одновременные запросы.

Дополнительные различения, которые спрашивают отдельно:

  • Маскируемые и немаскируемые. Маскируемые прерывания можно временно запретить сбросом флага разрешения (на время критических участков); немаскируемое (NMI) игнорировать нельзя — оно зарезервировано за катастрофами: сбой питания, ошибка памяти.
  • Векторные и опросные. В векторной системе источник (или контроллер) сам сообщает номер — адрес обработчика берётся из таблицы векторов за одно обращение. В опросной процессор, получив общий сигнал, программно опрашивает устройства «ты просил?» — проще аппаратура, дольше реакция.
  • Вложенные прерывания. Если во время обработчика приходит запрос с бо́льшим приоритетом, он прерывает и обработчик (контексты складываются в стек как матрёшка); запросы с меньшим приоритетом ждут. Так гарантируется реакция на срочное событие даже «внутри» несрочного.
  • Контроллер прерываний (классический пример — каскад двух микросхем 8259 в IBM PC, сегодня — APIC) собирает запросы линий IRQ, маскирует, выстраивает по приоритетам и передаёт процессору один запрос с номером вектора.

Прерывание — звонок в дверь, когда вы готовите: выключаете конфорку и запоминаете, на чём остановились (сохранение контекста), открываете дверь и разбираетесь (обработчик), возвращаетесь и продолжаете точно с того же места (восстановление контекста). Альтернатива — каждые 10 секунд бегать проверять дверь (программный опрос): дверь-то откроете быстро, но суп не сварится.

демоОбработка прерывания по шагам
Лента времени процессора: основная программа (синяя) прерывается запросом от клавиатуры. Проследите все фазы: завершение текущей команды → сохранение контекста в стек → выборка вектора → обработчик (красный) → восстановление контекста → продолжение программы с прерванного места.

Шина адреса и объём памяти — прямая связь:

16 бит адреса → 2¹⁶ = 65 536 ячеек (64 КБ) — 8-битные машины 32 бита → 2³² = 4 ГБ — предел 32-разрядных ОС 48 бит (реально в x86-64) → 256 ТБ

Отсюда же ответ, почему 32-битная Windows «не видела» больше 4 ГБ ОЗУ: адресов физически не хватало.

Организация ввода-вывода

  • Программный опрос — процессор циклически проверяет готовность устройства: просто, но процессорное время тратится на ожидание;
  • По прерываниям — устройство само сигнализирует о готовности: процессор свободен между событиями;
  • Прямой доступ к памяти (ПДП/DMA) — контроллер ПДП пересылает блоки данных между устройством и памятью без участия процессора; процессор лишь запускает обмен и получает прерывание по завершении. Применяется для дисков, сети, видео.

Два способа адресации устройств: изолированный ввод-вывод — отдельное адресное пространство портов и специальные команды IN/OUT (x86); отображённый на память — регистры устройств встроены в общее адресное пространство, обращение обычными командами чтения/записи (ARM, микроконтроллеры) — проще система команд, но часть адресов памяти занята устройствами.

Логическое развитие ПДП в больших машинах — каналы (процессоры) ввода-вывода: специализированные процессоры со своей системой команд, которые самостоятельно исполняют целые канальные программы обмена (цепочки пересылок с преобразованием), полностью разгружая центральный процессор; идея пришла из мейнфреймов IBM и живёт в современных контроллерах-«умных» адаптерах (сетевые карты с разгрузкой TCP, NVMe-контроллеры с очередями команд).

Видеосистема ЭВМ

Видеоадаптер = видеопамять + графический процессор. В видеопамяти живёт кадровый буфер — по ячейке на каждый пиксел экрана; RAMDAC/цифровой интерфейс (HDMI, DisplayPort) выводит его на монитор с частотой обновления. GPU — массово-параллельная архитектура (тысячи простых ядер): задачи растеризации однотипны и независимы по пикселам, поэтому идеально параллелятся — по классификации Флинна это SIMD. Тот же параллелизм сделал GPU главным вычислителем для нейросетей.

Развёртка и вывод изображения. Растровый принцип: изображение — прямоугольная матрица пикселов, контроллер видеовывода построчно «сканирует» кадровый буфер с частотой обновления (60–144 Гц) и формирует поток пикселов для монитора. Характеристики режима: разрешение, глубина цвета (8 бит на канал × RGB = 24/32 бита — 16,7 млн оттенков), частота кадров. Для аналоговых мониторов цифро-аналоговое преобразование выполнял RAMDAC (VGA); цифровые интерфейсы передают пикселы без преобразования: DVI → HDMI (плюс звук) → DisplayPort (пакетная передача, несколько мониторов). Исторический контраст — векторные дисплеи, где луч рисовал линии по координатам: сегодня победил растр, а «векторность» осталась в описании графики (шрифты, SVG), растеризуемой перед выводом.

Сколько нужно видеопамяти на кадр? Экран 1920×1080, глубина цвета 32 бита (4 байта):

V = 1920 · 1080 · 4 байта ≈ 8,3 МБ;  при 60 Гц поток вывода ≈ 0,5 ГБ/с

Почему же на видеокартах гигабайты? Кадровых буферов минимум два (двойная буферизация: пока один показывается, во втором рисуется следующий кадр — без мерцания), плюс буфер глубины (z-буфер из раздела 2!), текстуры и геометрия сцены.

Внешние запоминающие устройства

HDD: пакет магнитных пластин, головки на общем приводе; данные лежат на концентрических дорожках, разбитых на секторы (512 Б / 4 КБ); дорожки одного радиуса на всех пластинах — цилиндр. Время доступа складывается из подвода головки (seek), ожидания поворота диска и передачи.

Время доступа HDD 7200 об/мин: среднее позиционирование 8 мс; среднее ожидание поворота — полоборота:

Tоборота = 60/7200 = 8,33 мс  ⇒  Tожид ≈ 4,17 мс Tдоступа ≈ 8 + 4,17 ≈ 12 мс  → ~80 случайных чтений в секунду

SSD без механики делает сотни тысяч случайных чтений в секунду — на три-четыре порядка больше. Поэтому случайный доступ (базы данных!) — стихия SSD, а HDD остаётся выгоден для больших последовательных архивов: при линейном чтении механика подводится один раз.

SSD: флеш-память NAND, контроллер с трансляцией адресов; особенности — ограниченный ресурс перезаписи ячеек (контроллер выравнивает износ), запись только в стёртые блоки (команда TRIM сообщает, что блоки свободны). Ленты — архивное хранение с минимальной ценой за терабайт, последовательный доступ. Надёжность массивов повышают RAID:

УровеньИдеяЁмкость из n дисковПереживает отказЗачем
RAID 0чередование блоков (striping)nнет — любой отказ губит всёскорость
RAID 1зеркалоn/21 диска (из пары)надёжность, быстрое чтение
RAID 5чередование + распределённая чётностьn−11 любого дискабаланс ёмкости и надёжности
RAID 10зеркалированные пары в страйпеn/2по 1 в каждой парескорость + надёжность (СУБД)

Существует и RAID 6 — двойная распределённая чётность: ёмкость n−2, но массив переживает отказ двух любых дисков. Он вытесняет RAID 5 на больших дисках: восстановление многотерабайтного диска идёт часами, и вероятность второго отказа (или ошибки чтения) за это время уже нельзя игнорировать. В серьёзных массивах держат диск горячего резерва (hot spare) — перестроение начинается автоматически, без ожидания замены.

Чётность в RAID 5 — это XOR: блок чётности = A ⊕ B ⊕ C. Потеряли диск с B? Восстанавливаем: B = чётность ⊕ A ⊕ C — тот же приём, что бит чётности в передаче данных, только на уровне дисков. И важное правило из практики: RAID защищает от отказа диска, но не от «rm -rf» и не от пожара — резервная копия всё равно нужна.

Параллельные и многопроцессорные системы

Классификация Флинна по потокам команд/данных: SISD (классическая ЭВМ), SIMD (одна команда над многими данными — векторные машины, GPU), MISD (практически не используется), MIMD (независимые процессоры — многопроцессорные и многомашинные системы).

  • Многопроцессорные — несколько процессоров с общей памятью (SMP, многоядерные ЦП); взаимодействие через общую память, проблема когерентности кэшей.
  • Многомашинные — узлы со своей памятью, связанные сетью (кластеры, MPP-суперкомпьютеры); взаимодействие передачей сообщений (MPI).

Внутри систем с общей памятью различают UMA (единое время доступа к любой ячейке — классический SMP) и NUMA (память распределена по процессорным узлам: «своя» быстрее «чужой» — все современные многосокетные серверы). Проблема когерентности кэшей: одна переменная скопирована в кэши разных ядер — запись в одном должна стать видимой остальным; решается аппаратными протоколами слежения (например, MESI: каждая строка кэша находится в состоянии Modified/Exclusive/Shared/Invalid, и записи рассылают уведомления-инвалидации).

Закон Амдала — предел ускорения от параллелизма. Если доля α времени программы принципиально последовательна, то на n процессорах ускорение S = 1 / (α + (1 − α)/n), и даже при n → ∞ оно не превысит 1/α.

Пусть 10 % алгоритма последовательны (α = 0,1):

n = 10: S = 1/(0,1 + 0,9/10) ≈ 5,3 n = 100: S = 1/(0,1 + 0,9/100) ≈ 9,2 n → ∞: S → 1/0,1 = 10 — больше десятикратного ускорения не получить никогда

Вывод для практики: прежде чем наращивать процессоры, нужно сокращать последовательную долю (ввод-вывод, синхронизации, несбалансированность нагрузки) — иначе дорогие ядра простаивают.

демоЗакон Амдала: потолок ускорения
Кривая — ускорение S(n) = 1/(α + (1−α)/n); ось X логарифмическая: n = 1…1024 процессоров. Пунктир — предел 1/α, к которому кривая прижимается. Двигайте ползунок: при α = 10 % даже тысяча процессоров даёт лишь десятикратное ускорение, а при α = 50 % параллелить почти бессмысленно.
демоКогерентность кэшей: протокол MESI на двух ядрах

Одна переменная X и её копии в кэшах двух ядер. Каждая строка кэша — в одном из состояний: Modified (изменена, память устарела), Exclusive (единственная чистая копия), Shared (общая чистая), Invalid (недействительна). Нажимайте кнопки и следите за журналом шины: запись в одном ядре рассылает инвалидацию другому, чтение «чужой» изменённой строки заставляет её владельца сначала выгрузить данные в память.

Вопросы к собеседованию

Из каких блоков состоит процессор и что делает каждый?

Устройство управления — выборка и дешифрация команд, выработка управляющих сигналов; АЛУ — арифметические и логические операции; регистры — сверхбыстрая память (счётчик команд PC, регистр команды IR, регистры общего назначения, указатель стека, флаги); кэш; блок плавающей точки; интерфейс шины. Архитектура фон Неймана: программа и данные в общей памяти.

Опишите иерархию памяти ЭВМ. Почему работает кэш?

Регистры → кэш L1/L2/L3 (SRAM) → оперативная память (DRAM с регенерацией) → внешняя память. Вверх по иерархии — быстрее и дороже, вниз — больше и дешевле. Кэш эффективен из-за локальности обращений: временно́й (повторное использование тех же данных) и пространственной (соседние адреса) — поэтому большинство обращений попадает в быстрый уровень.

Назовите стадии выполнения команды. Что даёт конвейер?

Выборка команды по счётчику команд → декодирование → выборка операндов → выполнение в АЛУ → запись результата. Конвейер совмещает стадии соседних команд: в идеале команда завершается каждый такт (ускорение ≈ числу стадий). Мешают конфликты: структурные (общий ресурс), по данным (результат ещё не готов), по управлению (ветвления — предсказание переходов).

Как организована обработка прерываний в ЭВМ?

Запрос от источника (аппаратный, программный или исключение) → контроллер прерываний выбирает по приоритету → процессор завершает текущую команду и сохраняет контекст (PC, флаги) в стеке → из таблицы векторов по номеру берётся адрес обработчика → обработчик выполняется → возврат с восстановлением контекста. Маскирование позволяет запрещать менее важные прерывания.

Сравните программный опрос, ввод-вывод по прерываниям и ПДП.

Опрос: процессор циклически проверяет флаг готовности — просто, но жжёт процессорное время. По прерываниям: устройство само извещает о готовности — процессор занят только обработкой. ПДП (DMA): контроллер сам пересылает блоки «устройство ↔ память» без процессора, который получает одно прерывание в конце, — способ для быстрых блочных устройств (диск, сеть).

Из чего складывается время доступа HDD и почему SSD быстрее на случайном доступе?

HDD: подвод головки к дорожке (seek, единицы-десяток мс) + ожидание поворота диска (в среднем полоборота: при 7200 об/мин ≈ 4,2 мс) + передача. Итого ~10–12 мс — около сотни случайных операций в секунду. SSD не имеет механики: доступ к любой ячейке флеш-памяти за десятки микросекунд, сотни тысяч операций в секунду. На последовательном чтении разрыв меньше — механика HDD подводится один раз.

Что такое RAID? Сравните уровни 0, 1 и 5.

RAID — объединение дисков в массив ради скорости и/или отказоустойчивости. RAID 0 — чередование блоков: ёмкость и скорость n дисков, но отказ любого губит всё. RAID 1 — зеркало: половина ёмкости, переживает отказ диска. RAID 5 — чередование с распределённой чётностью (XOR): ёмкость n−1, переживает отказ одного любого диска — данные восстанавливаются как XOR остальных. RAID не заменяет резервное копирование: от ошибочного удаления он не защищает.

Как устроена видеосистема ЭВМ? Что такое кадровый буфер и двойная буферизация?

Видеоадаптер = видеопамять + GPU. Кадровый буфер — область видеопамяти с ячейкой на каждый пиксел (1920×1080×4 Б ≈ 8,3 МБ); интерфейс HDMI/DisplayPort выводит его на монитор с частотой обновления. Двойная буферизация: пока один буфер отображается, следующий кадр рисуется во втором, затем они меняются — без мерцания и «разрывов». GPU — массово-параллельная SIMD-архитектура: тысячи ядер обрабатывают независимые пикселы одновременно.

Приведите классификацию Флинна. Чем многопроцессорные системы отличаются от многомашинных?

По потокам команд и данных: SISD — обычная ЭВМ; SIMD — одна команда над множеством данных (векторные, GPU); MISD — экзотика; MIMD — независимые потоки (многопроцессорные и многомашинные). Многопроцессорные — общая память (SMP, многоядерность), связь через память, проблема когерентности кэшей. Многомашинные — у каждого узла своя память, связь сообщениями по сети (кластеры, MPP).

Тема 4.2

Сети и телекоммуникации

Каналы, методы доступа, топологии, протоколы, беспроводные сети, сервисы, проектирование.

Каналы передачи данных

  • Проводные: витая пара (Ethernet до 10 Гбит/с, ~100 м), коаксиальный кабель (исторически), волоконно-оптические линии — свет в кварцевом волокне: огромная полоса, километры без регенерации, нечувствительность к помехам (магистрали);
  • Беспроводные: радиоканалы (Wi-Fi, сотовые сети), спутниковые.
  • Характеристики канала: пропускная способность (бит/с), задержка, достоверность (вероятность ошибки), помехозащищённость.

Подробнее о средах: витая пара — скрутка двух проводов компенсирует наводки (помеха наводится на оба провода одинаково и вычитается приёмником), категории 5e/6/6A определяют полосу и скорость (1–10 Гбит/с до 100 м); экранированные варианты (STP/FTP) — для цехов. Оптоволокно: многомодовое (толстая сердцевина ~50 мкм, светодиодные передатчики, сотни метров — внутри зданий) и одномодовое (сердцевина ~9 мкм, лазер, один луч без межмодовой дисперсии — десятки километров, магистрали). Затухание сигнала измеряют в децибелах на километр; у одномодового волокна оно минимально.

Теоретические пределы скорости канала связывают полосу пропускания F (Гц) и скорость C (бит/с):

Найквист (канал без шума):  C = 2F·log₂M M — число различимых уровней сигнала Шеннон (канал с шумом):  C = F·log₂(1 + S/N) S/N — отношение сигнал/шум

Телефонный канал: полоса F = 3,1 кГц, отношение сигнал/шум 30 дБ (S/N = 1000):

C = 3100 · log₂(1001) ≈ 3100 · 9,97 ≈ 31 кбит/с

Отсюда видно, почему модемы упёрлись в ~33,6 кбит/с — это шенноновский предел телефонной «трубы», и никакая изобретательность его не обходит. Увеличить скорость можно только расширив полосу (DSL использует частоты выше голосовых) или улучшив S/N. Формула Найквиста объясняет другой приём: больше уровней сигнала на символ (M) — больше бит, но уровни сближаются и становятся уязвимее к шуму — компромисс всей техники связи.

демоПределы Найквиста и Шеннона

Реальная скорость канала ограничена меньшим из двух пределов (он подсвечен). Крутите ползунки: рост числа уровней M поднимает предел Найквиста, но в шумном канале выше шенноновского предела всё равно не прыгнуть — сближенные уровни сигнала неразличимы на фоне шума. Именно поэтому у техники связи всегда два рычага: расширять полосу и улучшать отношение сигнал/шум.

Пропускная способность против задержки. Скачиваем файл 100 МБ по каналу 100 Мбит/с, задержка до сервера 50 мс:

100 МБ = 800 Мбит;   t = 800 Мбит100 Мбит/с + 0,05 с ≈ 8 секунд

Для большого файла всё решает полоса, задержка незаметна. Теперь наоборот — онлайн-игра шлёт крошечные пакеты: полоса не важна вовсе, а 50 мс задержки игрок чувствует каждым нажатием. Поэтому «скорость интернета» — два независимых числа; спутниковый канал может иметь огромную полосу и безнадёжную для игр задержку (геостационарная орбита — ~600 мс туда-обратно).

Способы коммутации

Как соединить абонентов через сеть узлов — три принципа:

  • Коммутация каналов — на время сеанса выделяется сквозной физический путь (классическая телефония): гарантированная полоса и постоянная задержка, но канал простаивает в паузах, а установление соединения занимает время.
  • Коммутация сообщений — сообщение целиком передаётся от узла к узлу с промежуточным хранением (телеграф, электронная почта): не нужен сквозной канал, но большие задержки и требования к памяти узлов.
  • Коммутация пакетов — сообщение режется на небольшие пакеты, каждый маршрутизируется независимо и узлы пересылают их «на лету»: канал делится между всеми потоками статистически, отказы обходятся перемаршрутизацией — принцип, на котором построены все современные сети, включая Интернет. Плата — переменная задержка (джиттер) и возможная потеря/переупорядочение пакетов, которые исправляет транспортный уровень.

Коммутация каналов — заказанное такси от двери до двери: дорого, зато едете без остановок. Коммутация пакетов — метро: вагоны общие, каждый пассажир со своим «адресом назначения», в час пик потеснее и подольше, зато инфраструктура используется на полную. Телефония в итоге сама переехала «в метро» — IP-телефония работает поверх пакетной сети.

Топологии локальных сетей

демоТопологии и путь кадра
Шина — общая среда, кадр слышат все (нужен метод доступа); звезда — через центральный коммутатор, отказ узла не рушит сеть (стандарт для Ethernet); кольцо — кадр передаётся по кругу от узла к узлу (маркерные сети).

Сводное сравнение (включая топологии без демо):

ТопологияКабель/портыОтказоустойчивостьГде применяется
Шинаминимум кабеляобрыв магистрали делит/рушит сегмент; коллизииисторический Ethernet, полевые шины (RS-485)
Звездакабель к каждому узлуотказ узла локален; критичен центрсовременные ЛВС на коммутаторах
Кольцоумереннообрыв критичен → двойное встречное кольцо (FDDI)маркерные и магистральные сети
Дерево (иерархическая звезда)ярусы коммутаторовнаследует свойства звезды по ярусамсети зданий: доступ → распределение → ядро
Ячеистая (mesh)много избыточных связеймаксимальная: обходные маршрутымагистрали операторов, беспроводные mesh
Полносвязнаяn(n−1)/2 линий — дорогоидеальнаятолько малые критичные фрагменты

Методы доступа к среде

  • CSMA/CD (классический Ethernet): слушай перед передачей; при столкновении (коллизии) — прекратить, выждать случайную паузу. В современных коммутируемых сетях коллизий нет.
  • CSMA/CA (Wi-Fi): предотвращение коллизий — случайная отсрочка до передачи, подтверждения кадров.
  • Маркерный доступ (Token Ring): передаёт только владелец циркулирующего маркера — детерминированное время доступа.

Алгоритм CSMA/CD по шагам: 1) слушать канал (carrier sense); 2) тишина — передавать, продолжая слушать; 3) обнаружена коллизия — прекратить, послать короткий сигнал «затор» (jam), чтобы её заметили все; 4) выждать случайную паузу по алгоритму двоичной экспоненциальной отсрочки — интервал выбора паузы удваивается после каждой повторной коллизии (окно 0–1, 0–3, 0–7… слотов); 5) повторить попытку. Ограничение метода: коллизия должна успеть добежать до передатчика, пока тот ещё передаёт, — отсюда минимальная длина кадра (64 байта) и предел диаметра коллизионного домена.

В радиоэфире передатчик «глушит» собственный приёмник и коллизию не услышит — поэтому Wi-Fi применяет CSMA/CA (предотвращение): случайная отсрочка до передачи даже при свободном канале, обязательное подтверждение ACK каждого кадра (нет ACK — считаем, что была коллизия), опционально обмен RTS/CTS для борьбы с проблемой «скрытого узла» (две станции не слышат друг друга, но обе слышны точке доступа).

Случайные против детерминированных: случайные методы (CSMA) просты и эффективны при низкой загрузке, но время доступа — величина вероятностная и при перегрузке растёт лавинообразно; детерминированные (маркер, циклический опрос) гарантируют максимальное время ожидания, что критично для промышленных сетей и систем реального времени, ценой накладных расходов при простое.

Экспоненциальная отсрочка в числах. Слот Ethernet 10 Мбит/с — 51,2 мкс (время передачи 512 бит). После первой коллизии станция ждёт случайное число слотов из окна 0–1, после второй — 0–3, после третьей — 0–7…, после десятой окно замирает на 0–1023; после 16 неудач кадр отбрасывается с ошибкой. Вероятность повторного столкновения двух станций падает с каждой попыткой: 1/2 → 1/4 → 1/8 — сеть «расталкивается» сама, без центрального арбитра.

Кадр Ethernet по полям — что именно бежит по проводу:

ПолеРазмерНазначение
Преамбула + SFD8 Бсинхронизация приёмника (10101010…)
MAC получателя6 Бкому кадр (FF:FF:FF:FF:FF:FF — всем в сегменте)
MAC отправителя6 Бот кого
Тип (EtherType)2 Бчто внутри: 0x0800 — IP, 0x0806 — ARP
Данные46–1500 Бпакет верхнего уровня (короче 46 — дополняется нулями)
FCS (CRC-32)4 Бконтрольная сумма кадра

Минимальная длина 64 байта (без преамбулы) — ровно чтобы коллизия успела вернуться к передатчику до конца передачи; максимум полезной нагрузки 1500 байт — то самое MTU, в которое IP режет большие пакеты.

демоCSMA/CD: коллизия на общей шине
Один передатчик — кадр спокойно расходится по шине. Двое начали одновременно (оба «слышали тишину») — сигналы сталкиваются: коллизия! Оба замолкают, выжидают случайные паузы разной длины и повторяют — теперь по очереди. Случайность пауз — ключ: одинаковые паузы означали бы вечные повторные столкновения.

Сетевые протоколы: модель OSI и TCP/IP

Протокол — формальные правила обмена: форматы сообщений, порядок и реакции на ошибки. Модель OSI разбивает сетевое взаимодействие на 7 уровней: каждый пользуется услугами нижнего и обслуживает верхний, а «общается» логически с одноимённым уровнем партнёра. При передаче вниз данные инкапсулируются — каждый уровень добавляет свой заголовок (а канальный — и концевик с контрольной суммой); при приёме заголовки снимаются в обратном порядке.
№УровеньФункцияЕдиница данных (PDU)Примеры
7Прикладнойсервисы для приложенийданныеHTTP, SMTP, FTP, DNS
6Представленияформаты, кодировки, шифрованиеданныеTLS, JPEG, кодировки
5Сеансовыйустановление и ведение сеансовданныеRPC, NetBIOS
4Транспортныйдоставка «процесс–процесс», надёжностьсегмент / дейтаграммаTCP, UDP
3Сетевойлогическая адресация, маршрутизация между сетямипакетIP, ICMP; маршрутизатор
2Канальныйкадры, физические адреса, доступ к средекадрEthernet, Wi-Fi; коммутатор
1Физическийбиты как сигналы в средебиты1000BASE-T, оптика; концентратор

В стеке TCP/IP уровней четыре: канальный (OSI 1–2) → межсетевой IP (OSI 3) → транспортный (OSI 4) → прикладной (OSI 5–7). Адресация по уровням: MAC-адрес (48 бит, «зашит» в адаптер, действует в пределах сегмента) → IP-адрес (логический, глобальная маршрутизация) → порт (16 бит, идентифицирует процесс на узле: 80 — HTTP, 25 — SMTP, 53 — DNS).

демоМодель OSI и инкапсуляция

Стек TCP/IP: канальный уровень (Ethernet, Wi-Fi) → сетевой IP (адресация и маршрутизация, негарантированная доставка) → транспортный: TCP (соединение, гарантия доставки и порядка, управление потоком) и UDP (без гарантий, минимальные накладные расходы — потоковое видео, DNS) → прикладной (HTTP, SMTP, FTP, DNS).

Как TCP обеспечивает надёжность. Каждый байт потока нумеруется; приёмник подтверждает полученное (ACK-номер — «жду байт с этого номера»), потерянные сегменты передатчик повторяет по тайм-ауту или по трём повторным подтверждениям. Скользящее окно решает две задачи сразу: управление потоком (приёмник объявляет, сколько ещё готов принять, — передатчик не заваливает медленного) и эффективность (не ждать подтверждения каждого сегмента, а держать «в полёте» целое окно). Управление перегрузкой — отдельный механизм: окно перегрузки растёт, пока сеть доставляет (медленный старт, затем линейный рост), и резко сокращается при потерях — так миллионы TCP-потоков самобалансируются, не зная друг о друге.

Что происходит, когда вы открываете сайт — весь стек за один клик:

  1. DNS (прикладной, поверх UDP): «tstu.ru → 82.179.…» — имя превращается в IP-адрес;
  2. TCP устанавливает соединение тройным рукопожатием: SYN → SYN-ACK → ACK;
  3. HTTP-запрос «GET /» упаковывается в TCP-сегмент → IP-пакет → Ethernet-кадр (инкапсуляция);
  4. маршрутизаторы по пути читают только IP-заголовок и передают пакет от сети к сети;
  5. сервер отвечает страницей, TCP собирает сегменты по порядку и досылает потерянные.
демоОткрываем сайт: ARP → DNS → TCP → HTTP по шагам

Тот же сценарий «кликнули по ссылке», но каждое сообщение — отдельной строкой: слева реплики ноутбука, справа — ответы сети. Обратите внимание на порядок: сначала канальный ARP (без MAC шлюза кадр некому вручить), затем DNS по UDP, только потом тройное рукопожатие TCP и лишь девятым сообщением — собственно HTTP-запрос страницы.

демоIP-адрес и маска подсети

Маска делит 32 бита адреса на сетевую часть (синие ячейки) и хостовую (красные); черта — граница между ними, её двигает ползунок. Маршрутизатор смотрит только на синюю часть: «в мою сеть или наружу?». Кликайте по битам адреса — адрес сети и широковещательный пересчитываются: видно, что они получаются обнулением и заполнением именно хостовых битов.

Разбиение сети на подсети. Дана сеть 192.168.4.0/24 (254 хоста), нужно 4 отдела. Занимаем 2 бита у хостовой части (2² = 4 подсети), маска становится /26 (255.255.255.192), в каждой 2⁶ − 2 = 62 хоста:

ПодсетьАдрес сетиДиапазон хостовШироковещательный
1192.168.4.0/26.1 – .62.63
2192.168.4.64/26.65 – .126.127
3192.168.4.128/26.129 – .190.191
4192.168.4.192/26.193 – .254.255

«−2» в числе хостов — адрес самой сети (все нули в хостовой части) и широковещательный (все единицы). Проверка принадлежности: 192.168.4.130 и маска /26 → AND даёт 192.168.4.128 — третья подсеть.

Классы и специальные адреса. Исторически IPv4-адреса делились по первым битам на классы: A (0…127, маска /8 — 16,7 млн хостов), B (128…191, /16 — 65 534 хоста), C (192…223, /24 — 254 хоста), D — групповая рассылка, E — резерв. Классовая схема расточительна (организации нужен «средний» размер — а классов всего три), поэтому её сменила бесклассовая адресация CIDR с маской произвольной длины — она и показана в примере выше. Зарезервированы частные диапазоны, не маршрутизируемые в Интернете: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16; loopback 127.0.0.1.

Служебные протоколы вокруг IP:

  • ARP — узнаёт MAC-адрес по IP внутри сегмента: широковещательный вопрос «у кого адрес 192.168.4.7?» — владелец отвечает своим MAC; результат кэшируется. Без ARP кадр просто некому адресовать.
  • ICMP — служебные сообщения IP: «узел недостижим», «время жизни истекло». На нём построены ping (эхо-запрос/ответ) и traceroute (пакеты с растущим TTL: каждый маршрутизатор по пути «выдаёт себя» ICMP-ответом).
  • DHCP — автоматическая выдача узлу адреса, маски, шлюза и DNS при подключении (аренда на срок с продлением).
  • NAT — трансляция адресов на границе частной сети: множество внутренних адресов выходит в Интернет через один публичный, маршрутизатор подменяет адреса/порты и ведёт таблицу соответствий. Побочно скрывает внутреннюю структуру сети; именно NAT позволил IPv4 дожить до массового IPv6 (128-битные адреса, автоконфигурация, отказ от NAT).

NAT в работе. Ноутбук 192.168.4.10 открывает сайт с локального порта 51000; публичный адрес маршрутизатора — 203.0.113.5. В таблице трансляций появляется строка:

ВнутриСнаружиНазначение
192.168.4.10:51000203.0.113.5:6200182.179.36.10:443

Исходящий пакет уходит с подменёнными адресом и портом; ответ сервера приходит на 203.0.113.5:62001, маршрутизатор находит строку в таблице и возвращает пакет ноутбуку. Сосед по сети получит другой внешний порт — так один публичный адрес обслуживает всех. Обратная сторона: снаружи «постучаться» внутрь без записи в таблице нельзя — для домашних серверов настраивают проброс портов.

Обнаружение ошибок передачи. Бит чётности — к байту добавляется бит, делающий число единиц чётным: ловит одиночную ошибку, двойную — нет. Контрольная сумма CRC (в кадре Ethernet — CRC-32): блок данных делится по модулю 2 на порождающий полином, остаток передаётся вместе с данными; приёмник повторяет деление — ненулевой остаток означает повреждение кадра, он отбрасывается (повторную передачу организует TCP выше). CRC ловит все одиночные, двойные и пакетные ошибки короче своей длины — потому и стал стандартом канального уровня. Коды Хэмминга умеют не только обнаруживать, но и исправлять одиночные ошибки — применяются в ECC-памяти серверов.

Межсетевое взаимодействие — объединение сетей разных технологий: повторитель/концентратор (физический уровень), мост/коммутатор (канальный, по MAC-адресам), маршрутизатор (сетевой, по IP-адресам, выбор маршрута), шлюз (согласование разных стеков протоколов, верхние уровни).

Беспроводные сети и телекоммуникации

  • Wi-Fi (IEEE 802.11) — локальные сети: точки доступа, диапазоны 2,4/5/6 ГГц, защита WPA2/WPA3;
  • Bluetooth — персональные сети малого радиуса (профили: гарнитура, передача файлов, BLE для датчиков); сотовые 4G/5G — глобальная мобильная связь;
  • Телекоммуникационные системы — первичные сети (волоконно-оптические магистрали SDH/DWDM), сети доступа, коммутация каналов и пакетов.

Поколения Wi-Fi, которые полезно знать по именам:

СтандартМаркетинговое имяДиапазонТипичная скоростьКлючевая идея
802.11b/g—2,4 ГГц11/54 Мбит/смассовое начало Wi-Fi
802.11nWi-Fi 42,4/5 ГГцдо 600 Мбит/сMIMO — несколько антенн и потоков
802.11acWi-Fi 55 ГГцгигабитыширокие каналы, MU-MIMO
802.11axWi-Fi 6/6E2,4/5/6 ГГцгигабитыOFDMA — эффективность при множестве клиентов

Диапазон 2,4 ГГц дальше «пробивает» стены, но зашумлён (микроволновки, Bluetooth, соседи) и содержит лишь три непересекающихся канала; 5/6 ГГц — быстрее и чище, но радиус меньше. Bluetooth использует те же 2,4 ГГц со скачкообразной сменой частот (устойчивость к помехам); версия BLE жертвует скоростью ради лет работы датчика от батарейки. Сотовые поколения: 2G — цифровой голос и SMS, 3G — мобильные данные, 4G/LTE — полностью пакетная IP-сеть (десятки–сотни Мбит/с), 5G — гигабиты, миллисекундные задержки и массовый Интернет вещей.

Безопасность беспроводных сетей — критична: радиоэфир «слышат» все в радиусе действия, подключиться можно не заходя в здание. Эволюция защиты Wi-Fi: открытые сети (трафик виден любому) → WEP (первый стандарт, взламывается за минуты — не использовать) → WPA/WPA2 (шифрование AES-CCMP, общий пароль PSK для дома) → WPA3 (защита от офлайн-подбора пароля). На предприятиях — режим WPA2/WPA3-Enterprise: каждый пользователь аутентифицируется индивидуально по стандарту 802.1X/EAP через сервер RADIUS — украденный пароль одного сотрудника отзывается, не трогая остальных. Дополнительно: гостевые сети в отдельном VLAN, скрытие и сегментация SSID.

Программные платформы беспроводных решений: стек протоколов 802.11 в ОС и прошивках точек доступа, контроллеры беспроводных сетей (централизованное управление сотнями точек), Bluetooth-стеки с профилями, платформы Интернета вещей — лёгкий протокол обмена MQTT (издатель–подписчик через брокера) поверх Wi-Fi/сотовой связи, энергоэффективные mesh-сети датчиков (ZigBee, Thread).

Сетевые сервисы: DNS (имена → адреса), DHCP (автоконфигурация адресов), электронная почта (SMTP/POP3/IMAP), WWW (HTTP/HTTPS), передача файлов (FTP), удалённый доступ (SSH), каталоги (LDAP).

Проектирование вычислительных сетей

Этапы: анализ требований (число узлов, трафик, сервисы, рост) → выбор топологии и технологий → структурированная кабельная система (СКС) → логическое проектирование: план IP-адресации (подсети, маски), сегментация VLAN → выбор активного оборудования (коммутаторы, маршрутизаторы) → защита (межсетевые экраны, резервирование каналов) → документирование.

Структурированная кабельная система (СКС) — универсальная кабельная инфраструктура здания, проектируемая один раз «под всё» (данные, телефония, видео) независимо от конкретных технологий. Подсистемы: горизонтальная — от розетки рабочего места до этажного кросса (витая пара, лимит 90 м + 10 м на шнуры); магистраль здания — между этажными и главным кроссом (оптика); магистраль комплекса — между зданиями. Правила: избыточность розеток (порты закладываются с запасом), документирование и маркировка каждой линии, сертификационные измерения после монтажа.

Типовая логическая структура сети предприятия — три яруса: доступ (коммутаторы рабочих мест) → распределение (агрегация этажей, политика, VLAN-маршрутизация) → ядро (быстрая коммутация магистралей, резервирование). VLAN делит один физический коммутатор на изолированные логические сети (бухгалтерия отдельно от гостевого Wi-Fi); связь между VLAN — только через маршрутизатор/L3-коммутатор, где и применяются правила доступа.

Распределённая обработка информации

Распределённая обработка — выполнение единой прикладной задачи несколькими взаимодействующими по сети ЭВМ: данные и вычисления разносятся между узлами, а для пользователя система выглядит единым целым (прозрачность размещения).

Архитектуры распределённой среды — от простого к сложному:

  • Файл-сервер — сервер хранит только файлы, вся обработка на клиентах; сеть забивается передачей целых файлов.
  • Клиент–сервер (двухзвенная) — сервер БД выполняет запросы, клиент шлёт SQL и получает только результат; логика делится между «толстым» клиентом и сервером.
  • Трёхзвенная / многозвенная — между клиентом и БД появляется сервер приложений с бизнес-логикой: тонкие клиенты (браузер), централизованное обновление логики, масштабирование среднего звена. Развитие — микросервисы: приложение как набор независимых сетевых служб.
  • Кластер — группа машин, работающих как один узел (высокая доступность, балансировка нагрузки); грид — объединение разнородных удалённых ресурсов под общую вычислительную задачу; облачные технологии — ресурсы как услуга по требованию: IaaS (виртуальные машины), PaaS (платформа), SaaS (готовое приложение), с оплатой по потреблению и эластичным масштабированием.

Ключевые механизмы: сетевое взаимодействие через RPC/веб-сервисы (HTTP/REST), репликация данных между узлами, балансировка нагрузки; плата за распределённость — задержки сети, частичные отказы и сложность согласованности данных.

Примеры использования в промышленности — вертикаль автоматизации предприятия:

  • нижний уровень: датчики и ПЛК на полевых шинах — первичный сбор данных и локальное управление;
  • SCADA — диспетчерские системы: серверы опроса собирают данные с сотен контроллеров по сети, операторские станции отображают мнемосхемы, ведутся архивы и аварийная сигнализация; сама SCADA — распределённая система (резервированные пары серверов, много клиентов);
  • РСУ (DCS) — распределённые системы управления непрерывными производствами (химия, энергетика): управление физически распределено по станциям у технологических установок, объединённым резервированной сетью;
  • обмен между уровнями — стандарт OPC UA: единый способ для разнородных систем читать теги контроллеров;
  • верхний уровень: MES (управление производством) и ERP (управление предприятием) — серверные многозвенные системы над общими БД; промышленный интернет вещей и цифровые двойники — облачная аналитика потоков данных с оборудования (предиктивное обслуживание).

Вопросы к собеседованию

Сравните основные топологии локальных сетей.

Шина — общая среда: дёшево, но обрыв рушит сегмент, нужны методы разрешения коллизий. Звезда — узлы через центральный коммутатор: отказ узла локален, лёгкое расширение — стандарт современных ЛВС; уязвимость — центральный узел. Кольцо — передача по кругу, маркерный доступ, детерминированность; обрыв кольца критичен (двойное кольцо). Ячеистая — избыточные связи, надёжность магистралей.

Назовите уровни модели OSI и их функции.

1 Физический — биты в среде (сигналы, разъёмы); 2 Канальный — кадры, MAC-адреса, доступ к среде; 3 Сетевой — пакеты, логическая адресация и маршрутизация (IP); 4 Транспортный — сегменты, доставка «процесс–процесс» (TCP/UDP); 5 Сеансовый — установление и ведение сеансов; 6 Представления — форматы, кодировки, шифрование; 7 Прикладной — сервисы для приложений (HTTP, SMTP). При передаче данные инкапсулируются: каждый уровень добавляет свой заголовок.

Чем TCP отличается от UDP?

TCP — с установлением соединения: гарантирует доставку, порядок и целостность (подтверждения, повторные передачи), управляет потоком и перегрузкой; накладные расходы выше (веб, почта, файлы). UDP — без соединения и гарантий: минимальная задержка и заголовок; потери допустимы или обрабатываются приложением (потоковое видео, VoIP, DNS-запросы).

Какие устройства обеспечивают межсетевое взаимодействие и на каких уровнях они работают?

Повторитель/концентратор — физический уровень, усиление сигнала. Мост и коммутатор — канальный: пересылка кадров по таблице MAC-адресов, деление на сегменты. Маршрутизатор — сетевой: выбор маршрута пакетов между сетями по IP-адресам и таблицам маршрутизации. Шлюз — согласование различных стеков протоколов вплоть до прикладного уровня.

Опишите методы доступа к среде передачи.

CSMA/CD (Ethernet): станция слушает канал, передаёт при тишине; обнаружив коллизию, прекращает и повторяет через случайную паузу. CSMA/CA (Wi-Fi): коллизии предотвращаются случайной отсрочкой и подтверждениями (обнаружить коллизию в радиоэфире нельзя). Маркерный (Token Ring): право передачи у владельца циркулирующего маркера — гарантированное время доступа, важно для промышленных сетей.

В чём преимущества волоконно-оптических каналов связи?

Огромная пропускная способность (терабиты с DWDM-уплотнением), большие расстояния без регенерации, полная нечувствительность к электромагнитным помехам, отсутствие излучения (сложно перехватить), малые габариты. Недостатки: цена оборудования, сложность монтажа и сварки волокна. Основа магистральных и провайдерских сетей.

Перечислите основные сетевые сервисы.

DNS — преобразование доменных имён в IP-адреса; DHCP — автоматическая выдача адресов и параметров; WWW — HTTP/HTTPS; электронная почта — SMTP (отправка), POP3/IMAP (получение); FTP — передача файлов; SSH — защищённый удалённый доступ; службы каталогов и аутентификации (LDAP, Kerberos).

Что включает проектирование вычислительной сети?

Анализ требований (узлы, трафик, сервисы, масштабирование) → выбор топологии и технологий → структурированная кабельная система → план IP-адресации и сегментация (подсети, VLAN) → подбор активного оборудования → обеспечение надёжности (резервирование) и безопасности (межсетевые экраны, разграничение) → документирование проекта.

Что такое распределённая обработка информации? Какие архитектуры распределённой среды существуют?

Выполнение единой задачи несколькими взаимодействующими по сети ЭВМ с прозрачностью для пользователя. Архитектуры: файл-сервер (обработка на клиентах), клиент–сервер (сервер БД выполняет запросы), трёхзвенная/многозвенная (сервер приложений с бизнес-логикой, тонкие клиенты) и микросервисы; кластеры (машины как один узел), грид, облачные технологии (IaaS/PaaS/SaaS — ресурсы как услуга). Механизмы: RPC/веб-сервисы, репликация, балансировка нагрузки.

Приведите примеры распределённой обработки в промышленности.

Вертикаль автоматизации: датчики и ПЛК на полевых шинах → SCADA (серверы опроса, операторские станции, архивы — сама распределена и резервирована) → РСУ/DCS для непрерывных производств → MES и ERP над общими базами данных. Обмен между уровнями стандартизует OPC UA; облачный уровень — промышленный IoT и цифровые двойники (предиктивная аналитика данных с оборудования).

Как обеспечивается безопасность беспроводных сетей?

Радиоэфир доступен всем в радиусе действия, поэтому обязательны шифрование и аутентификация: WEP устарел и взламывается, стандарт — WPA2/WPA3 (AES); дома — общий пароль (PSK), на предприятии — WPA-Enterprise с индивидуальной аутентификацией каждого пользователя по 802.1X/EAP через сервер RADIUS. Дополнительно: гостевые сети в отдельном VLAN, сегментация, контроллеры точек доступа.

Тема 4.3

Микропроцессорные средства и системы

Классификация, архитектура микропроцессорной системы, интеллектуальные реле, промышленные контроллеры — по методичке Васильева и Милованова «Промышленные контроллеры Twido».

Классификация микропроцессорных средств

  • Микропроцессоры общего назначения — максимальная производительность, внешняя память (ЦП компьютеров);
  • Микроконтроллеры — процессор + память + периферия (порты, таймеры, АЦП) на одном кристалле — встраиваемые системы управления (классика — семейство MCS-51);
  • Сигнальные процессоры (DSP) — обработка сигналов в реальном времени (умножение с накоплением за такт);
  • ПЛИС — программируемая логика, аппаратная реализация алгоритмов;
  • Секционные (разрядно-модульные) процессоры — исторически, для построения спецЭВМ.

Современное пополнение классификации — система на кристалле (SoC): на одном чипе процессорные ядра общего назначения, графика, память, контроллеры связи и специализированные ускорители (процессоры смартфонов, одноплатники вроде Raspberry Pi). Выбор средства — инженерный компромисс: микроконтроллер — когда нужны цена, энергоэффективность и жёсткое реальное время; DSP — потоковая математика над сигналом; ПЛИС — параллельная логика с наносекундной реакцией и нестандартные интерфейсы; SoC/микропроцессор — когда нужна полноценная ОС и богатое ПО.

MCS-51 (Intel 8051) — учебная классика (по методичке Бояринова и Дьякова): 8-разрядный микроконтроллер гарвардской архитектуры — раздельные память программ (4 КБ ПЗУ) и память данных (128 байт ОЗУ); четыре 8-битных порта ввода-вывода P0–P3, два 16-битных таймера-счётчика, последовательный порт UART, пять источников прерываний с двумя уровнями приоритета; аккумуляторная система команд с битовыми операциями (удобно «дёргать» отдельные линии портов). Несмотря на возраст, ядро 8051 до сих пор встраивают в чипы — на нём удобно объяснять весь минимум встраиваемой системы.

Архитектура микропроцессорной системы

Микро-процессор ПЗУпрограмма ОЗУданные Портыввод-вывод Системная магистраль: шина адреса · шина данных · шина управления датчики и исполнительные механизмы подключаются к портам ввода-вывода
Магистрально-модульная архитектура микропроцессорной системы.
  • Шина адреса задаёт ячейку/устройство (ширина определяет объём адресуемой памяти), шина данных переносит данные, шина управления — сигналы чтения/записи, запросы прерываний, ПДП.
  • Архитектура фон Неймана — общая память программ и данных; гарвардская — раздельные памяти и шины (типична для микроконтроллеров: программа во флеш, данные в ОЗУ).
  • CISC — сложная система команд; RISC — сокращённый набор простых команд, выполняемых за такт (микроконтроллеры, ARM).

Цикл обращения к магистрали — элементарная транзакция «процессор ↔ память/устройство». Цикл чтения: процессор выставляет адрес на шину адреса → активирует сигнал чтения (RD) на шине управления → адресуемое устройство выставляет данные на шину данных → процессор фиксирует их и снимает сигналы. Цикл записи симметричен: адрес и данные выставляет процессор, устройство фиксирует по сигналу записи (WR). В синхронной шине всё привязано к тактам общего генератора; в асинхронной обмен квитируется парой сигналов «готов/принял» — работает с устройствами любой скорости. Медленное устройство может растягивать цикл сигналом готовности (wait states). Поскольку магистраль общая, одновременно ей владеет один задатчик: споры процессора и контроллера ПДП решает арбитр шины.

Интеллектуальное реле

Интеллектуальное (программируемое) реле — простейший программируемый логический модуль на несколько входов/выходов для замены релейных схем автоматики (управление освещением, насосами, воротами). Программируется прямо с лицевой панели или с ПК на языках лестничных диаграмм (LD) или функциональных блоков (FBD). Примеры: Schneider Zelio Logic, Siemens LOGO!.

Отличие от ПЛК: меньше точек ввода-вывода, нет развитых коммуникаций и модульного расширения, ниже цена.

Промышленные программируемые контроллеры (ПЛК)

ПЛК — специализированная микропроцессорная система для автоматизации технологических процессов: работает в реальном времени, в промышленном исполнении (температура, вибрации, помехи), программируется на технологических языках.

Устройство (на примере Schneider Twido из методички): процессорный модуль (компактный или модульный), блок питания, модули дискретного и аналогового ввода-вывода, коммуникационные интерфейсы (Modbus, Ethernet); среда программирования TwidoSuite.

Цикл сканирования ПЛК повторяется непрерывно:

Опрос входов→ образ входов Выполнениепрограммы Обновлениевыходов время цикла — единицы миллисекунд; сторожевой таймер контролирует зависание
Входы читаются один раз в начале цикла в область памяти («образ процесса») — программа работает с копией.
демоПЛК в работе: кнопка, задержка, лампа
Лестничная диаграмма (LD): контакт кнопки → таймер задержки 2 с → катушка лампы. Индикатор цикла показывает бесконечное сканирование: входы → программа → выходы. Нажмите кнопку — контакт замкнётся, таймер начнёт отсчёт, после выдержки включится лампа. Так «думает» любой ПЛК — от лифта до конвейера.

Время реакции ПЛК. Цикл сканирования — например, 5 мс. Худший случай: вход изменился сразу после опроса входов — сигнал будет замечен только в следующем цикле, а выход обновится в конце него: задержка до 2 циклов = 10 мс. Поэтому для станка с ЧПУ или защиты по току (реакция за микросекунды) логику выносят в аппаратные модули, а ПЛК оставляют технологическую логику: пуск/стоп, блокировки, рецепты.

Память и режимы работы ПЛК. Программа хранится в энергонезависимой памяти (флеш/EEPROM), рабочие данные — в ОЗУ; отмеченные области данных (счётчики наработки, рецепты) сохраняются при отключении питания батарейкой или переносом во флеш. Режимы: RUN — циклическое исполнение, STOP — программа остановлена, выходы в безопасном состоянии (загрузка программы, наладка); онлайн-мониторинг позволяет наблюдать значения переменных прямо в исполняющейся лестничной диаграмме. Критерии выбора ПЛК в проекте: число и типы точек ввода-вывода (с запасом на развитие), время цикла, поддерживаемые сети, условия эксплуатации (температура, вибрации), необходимость резервирования, инструментальная среда.

Языки программирования ПЛК по стандарту МЭК 61131-3:

  • графические: LD — лестничные (релейные) диаграммы, FBD — функциональные блоки, SFC — последовательные функциональные схемы (этапы и переходы);
  • текстовые: IL — список инструкций (ассемблероподобный, используется в Twido), ST — структурированный текст (паскалеподобный).

Одна задача на трёх языках МЭК 61131-3 — «лампа %Q0.0 загорается через 2 с после нажатия кнопки %I0.0» (та же логика, что в демо выше).

LD (лестничная диаграмма) — читается как релейная схема:

|--[ %I0.0 ]----( TON %TM0, 2s )--|
|--[ %TM0.Q ]----(  %Q0.0  )-----|

IL (список инструкций — так пишут в Twido):

LD  %I0.0       (загрузить состояние кнопки)
IN  %TM0        (запустить таймер задержки)
LD  %TM0.Q      (выход таймера)
ST  %Q0.0       (записать в выход-лампу)

ST (структурированный текст):

timer(IN := I0_0, PT := T#2s);
Q0_0 := timer.Q;

Электрику ближе LD, программисту — ST; исполняются они одинаково, внутри цикла сканирования. В Twido языки LD и IL обратимы: программу можно в любой момент преобразовать из лестничной диаграммы в список инструкций и обратно — это фирменная особенность, отмеченная в методичке. На собеседовании достаточно назвать пять языков стандарта и показать, что понимаете хотя бы LD.

Адресация переменных Twido/M221 (встречается в билетах): %I0.x — дискретные входы, %Q0.x — дискретные выходы, %Mi — внутренние (маркерные) биты, %MWi — внутренние слова памяти (16 бит), %TMi — таймеры (выход таймера — бит %TMi.Q, уставка — %TMi.P), %Ci — счётчики; %IWi/%QWi — аналоговые (словные) входы/выходы. Пример из билета: «показать на выходах %Q0.0–%Q0.7 состояние первых 8 бит слова %MW3» — в цикле копируются биты слова в выходы (в LD — восемь ступеней с контактом бита %MW3:Xi и катушкой %Q0.i).

Промышленные сети

Назначение: связать контроллеры, датчики, исполнительные механизмы и операторские станции в единую систему управления. Требования, отличающие их от офисного Ethernet: детерминизм — гарантированное время доставки (команда клапану не может «подождать, пока сеть освободится»), помехозащищённость в цеху (двигатели, сварка, частотные приводы), работа на длинных линиях, промышленное исполнение разъёмов.

Физическая организация. Классическая полевая шина строится на RS-485: экранированная витая пара, дифференциальный сигнал (передаётся разность напряжений двух проводов — синфазная помеха наводится на оба и вычитается), шинная топология с терминаторами на концах, до 32 устройств на сегменте, сотни метров без повторителей; часто добавляется гальваническая развязка узлов. Уровнем ниже датчики подключают токовой петлёй 4–20 мА (ток не искажается длиной линии, обрыв виден как 0 мА).

Основные протоколы:

  • Modbus RTU — ведущий/ведомый (master–slave) поверх RS-485: мастер по очереди опрашивает ведомых по адресам, данные — «регистры» и «катушки»; предельно прост, поддерживается всем (в том числе Twido и M221). Modbus TCP — те же регистры поверх Ethernet.
  • Profibus DP — быстрая полевая шина (до 12 Мбит/с) для децентрализованной периферии; циклический детерминированный обмен.
  • CAN — шина с арбитражем по приоритету: все слышат всех, при одновременной передаче побеждает кадр с меньшим идентификатором без потери времени; помехоустойчива, родом из автомобилей, в промышленности — CANopen.
  • Промышленный Ethernet — PROFINET, EtherCAT, Ethernet/IP: привычная среда, но с механизмами реального времени (выделенные такты, обработка кадра «на лету» в EtherCAT); вытесняет классические шины, стирая границу с офисной сетью.

Офисная сеть отвечает «когда-нибудь, но быстро в среднем»; промышленная — «ровно раз в 10 мс, и никак иначе». Поэтому в цеху главным становится не пропускная способность, а гарантия времени цикла: лучше медленно и предсказуемо, чем быстро и «как получится».

Место МПС в иерархии автоматизации. Снизу вверх: полевой уровень — датчики и исполнительные механизмы (токовая петля, полевые шины) → уровень управления — ПЛК и интеллектуальные реле (циклы миллисекунды) → диспетчерский уровень — SCADA-серверы и операторские станции (секунды, архивы, тревоги) → уровни MES и ERP (производственное и корпоративное планирование). Чем выше уровень, тем больше данных и слабее требования реального времени — поэтому внизу царят детерминированные полевые шины, а наверху обычный Ethernet и базы данных; стыкует их OPC UA (подробнее — в теме 4.2 о распределённой обработке).

Вопросы к собеседованию

Классифицируйте микропроцессорные средства.

Микропроцессоры общего назначения (ЦП ЭВМ, максимум производительности); микроконтроллеры — процессор, память и периферия на кристалле для встраиваемых систем (MCS-51 и наследники); сигнальные процессоры DSP — обработка сигналов в реальном времени; ПЛИС — программируемая аппаратная логика; секционные процессоры — исторические разрядно-модульные комплекты.

Из чего состоит микропроцессорная система? Назначение трёх шин?

Микропроцессор, ПЗУ (программа), ОЗУ (данные), порты ввода-вывода, связанные системной магистралью. Шина адреса выбирает ячейку или устройство (её разрядность определяет адресное пространство), шина данных переносит информацию, шина управления передаёт сигналы чтения/записи, запросы прерываний и ПДП.

Чем гарвардская архитектура отличается от фон-неймановской? CISC от RISC?

Фон Нейман — общая память и шина для команд и данных; Гарвард — раздельные памяти программ и данных с независимыми шинами (одновременная выборка команды и данных — типично для микроконтроллеров). CISC — большой набор сложных многотактных команд; RISC — компактный набор простых команд по такту, ставка на регистры и конвейер.

Что такое интеллектуальное реле и чем оно отличается от ПЛК?

Программируемый логический модуль на единицы–десятки входов/выходов для замены простых релейных схем (освещение, насосы); программируется с панели или ПК на LD/FBD (Zelio Logic, LOGO!). От ПЛК отличается малым числом точек ввода-вывода, отсутствием модульного расширения и развитых коммуникаций, простотой и ценой.

Опишите цикл сканирования ПЛК. Зачем нужен «образ процесса»?

Циклически: опрос всех входов и запись в область памяти (образ входов) → выполнение прикладной программы над образом → одновременное обновление физических выходов из образа выходов; плюс системное обслуживание и обмен по сети. Образ обеспечивает согласованность: в течение цикла программа видит неизменное состояние входов. Сторожевой таймер перезапускает ПЛК при зависании цикла.

Назовите языки программирования ПЛК по МЭК 61131-3.

Графические: LD — лестничные (релейные) диаграммы, FBD — диаграммы функциональных блоков, SFC — последовательные функциональные схемы (этапы–переходы). Текстовые: IL — список инструкций (ассемблероподобный; применяется в Twido), ST — структурированный текст (паскалеподобный). Выбор зависит от задачи и традиций предприятия.

Каково назначение промышленных сетей и их основные характеристики?

Связь контроллеров, датчиков, исполнительных механизмов и операторских станций в систему управления. Ключевые требования: детерминизм (гарантированное время доставки, а не «быстро в среднем»), помехозащищённость в условиях цеха, длинные линии, надёжные разъёмы. Протоколы: Modbus RTU/TCP (master–slave, регистры), Profibus DP, CAN (арбитраж по приоритету), промышленный Ethernet — PROFINET, EtherCAT.

Как физически организована полевая шина?

Классика — RS-485: экранированная витая пара с дифференциальным сигналом (помеха наводится на оба провода и вычитается), шинная топология с терминаторами, до 32 устройств на сегменте, сотни метров; узлы часто гальванически развязаны. Аналоговые датчики — токовая петля 4–20 мА (нечувствительна к длине линии, обрыв диагностируется как 0 мА). Modbus RTU поверх RS-485: мастер циклически опрашивает ведомых по адресам.

Как адресуются переменные в контроллерах Twido/M221?

%I0.x — дискретные входы, %Q0.x — дискретные выходы, %Mi — внутренние биты, %MWi — внутренние 16-битные слова, %TMi — таймеры (выход %TMi.Q, уставка %TMi.P), %Ci — счётчики, %IWi/%QWi — аналоговые входы/выходы. Языки LD и IL в Twido обратимы — программа преобразуется между ними в обе стороны. Пример: вывести биты слова %MW3 на выходы %Q0.0–%Q0.7 — восемь ступеней «контакт %MW3:Xi → катушка %Q0.i».