Зарегистрируйтесь, чтобы продолжить обучение

Как всё вместе работает Основы ЭВМ

Компьютер не работает как набор изолированных деталей — процессор, память, шины, накопители и другие компоненты объединены в единую систему. Чтобы увидеть, как это взаимодействие проявляется на практике, разберём конкретную задачу: пользователь открывает фотографию.

Щелкаем по файлу photo.jpg.

Если мышь проводная (USB): Контроллер мыши фиксирует клик и отправляет цифровой код по USB-кабелю. USB-контроллер на материнской плате принимает данные и передаёт их в систему по шине PCI Express.

Если мышь беспроводная (Bluetooth): Контроллер мыши упаковывает событие в Bluetooth-пакет и передаёт по радиоканалу. Модуль Bluetooth на компьютере принимает сигнал, декодирует его и передаёт дальше по PCI Express.

В обоих случаях событие обрабатывается контроллером прерываний (APIC), который сообщает процессору, что произошло новое событие. CPU прерывает текущую задачу и запускает драйвер мыши. Управление передаётся операционной системе.

Теперь ОС знает, какой файл нужно открыть. Она вызывает системный вызов open(). Системные вызовы (syscalls) — это механизм, через который программы обращаются к ядру ОС, чтобы получить доступ к файлам, памяти и устройствам.

Ядро обращается к драйверу файловой системы, который знает структуру диска и где находятся блоки файла photo.jpg. Драйвер вычисляет список логических блоков и передаёт запрос в драйвер контроллера накопителя.

Если это жёсткий диск (HDD): Контроллер диска управляет мотором и головкой. Пластины вращаются, головка перемещается к нужной дорожке и ждёт, пока сектор пройдёт под ней. Данные считываются магнитной головкой, преобразуются в цифровой поток и передаются по интерфейсу SATA.

Если это SSD: Контроллер SSD сразу обращается к NAND-памяти, выбирает страницы (pages) и возвращает их. Чтобы ускорить работу, он может использовать SLC-кэш. В современных системах SSD часто подключён по NVMe, что работает прямо поверх PCI Express и даёт минимальные задержки.

Данные из накопителя поступают через шину в контроллер памяти (Memory Controller). Он размещает байты в оперативной памяти (RAM).

Теперь файл «живёт» в RAM. Доступ к RAM занимает десятки наносекунд, тогда как чтение с диска — миллисекунды. Для процессора разница — сотни тысяч раз.

При обращении к памяти процессор работает не с физическими адресами, а с логическими. Таблица страниц (page table) сопоставляет логические страницы с физическими блоками. Чтобы ускорить этот процесс, используется TLB (Translation Lookaside Buffer) — кэш адресов.

В RAM лежит photo.jpg, но это пока закодированные байты. ОС запускает программу-просмотрщик, которая вызывает инструкции для работы с JPEG. CPU загружает данные из RAM в регистры, передаёт их в арифметико-логическое устройство (ALU) и выполняет декодирование.

Алгоритмы JPEG включают дискретное косинусное преобразование (DCT), квантование, распаковку коэффициентов и восстановление цветности. Каждая операция разбита на машинные команды, проходящие по циклу Fetch → Decode → Execute → Writeback. Тактовый генератор задаёт ритм — миллиарды тактов в секунду. Чтобы CPU не простаивал, кэш L1/L2 хранит ближайшие данные.

На выходе CPU формирует массив пикселей — уже не JPEG, а готовое растровое изображение в формате RGB.

Дальше управление переходит к графической подсистеме. Просмотрщик вызывает системные функции (X11 или Wayland в Linux, GDI+ в Windows). Вызовы уходят в драйвер видеокарты.

Драйвер копирует массив пикселей в видеопамять (VRAM). GPU начинает работу: его тысячи ядер параллельно формируют кадр, накладывают интерфейс окна и саму фотографию.

Когда кадр готов, он сохраняется во фреймбуфере (framebuffer) — области VRAM, где хранится итоговое изображение для вывода. Контроллер дисплея считывает данные построчно и отправляет их по HDMI или DisplayPort.

На мониторе электрический сигнал преобразуется в световые импульсы, подсвечивающие пиксели матрицы. Каждый пиксель получает своё значение яркости и цвета.

Через доли секунды после клика мышью пользователь видит фотографию. Для него это мгновение, но внутри компьютера прошла цепочка сотен тысяч операций: от прерывания USB и чтения с диска до декодирования JPEG, копирования в VRAM и подсветки пикселей на экране.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff