Раздел описывает фундаментальные механизмы, благодаря которым компьютер представляет данные, выполняет инструкции, управляет памятью и взаимодействует с устройствами.
Материалы раздела формируют основу для понимания операционных систем, программирования, баз данных, виртуализации, контейнеров и производительности приложений.
Основные направления
- Представление данных — биты, байты, системы счисления, целые числа, числа с плавающей точкой, кодировки, порядок байтов и способы сериализации информации.
- Архитектура компьютера — основные компоненты вычислительной системы и взаимодействие процессора, памяти, накопителей, шин и периферийных устройств.
- Процессор — машинные инструкции, регистры, такты, конвейер выполнения, режимы работы процессора, прерывания и переключение контекста.
- Иерархия памяти — регистры, процессорный кеш, оперативная память, виртуальная память, накопители и причины различий в скорости доступа к данным.
- Управление памятью — адресное пространство, страницы памяти, stack, heap, выделение памяти, отображение файлов в память и ошибки доступа.
- Выполнение программ — компиляция, интерпретация, загрузка исполняемого файла, связывание библиотек и переход от исходного кода к выполняемому процессу.
- Процессы и потоки — изоляция процессов, потоки выполнения, планирование, состояния выполнения, межпроцессное взаимодействие и совместное использование ресурсов.
- Конкурентность и параллелизм — одновременное выполнение операций, синхронизация, атомарность, блокировки, состояния гонки и взаимные блокировки.
- Системные вызовы — переход между пользовательским кодом и ядром операционной системы при работе с файлами, памятью, процессами, сетью и устройствами.
- Ввод и вывод — файловые дескрипторы, буферизация, блочный и символьный ввод-вывод, синхронные и асинхронные операции.
- Устройства хранения — принципы работы накопителей, блоки данных, задержки, пропускная способность, кеширование и надёжность хранения.
- Время и производительность — измерение времени выполнения, latency, throughput, загрузка процессора, пропускная способность памяти и поиск вычислительных ограничений.
- Аппаратная виртуализация — механизмы, позволяющие нескольким виртуальным машинам использовать ресурсы одного физического компьютера.
Основные вопросы раздела
Материалы раздела должны помогать отвечать на следующие вопросы:
- Как информация представляется внутри компьютера?
- Как процессор выполняет машинные инструкции?
- Чем физическая память отличается от виртуальной?
- Где находятся данные выполняющейся программы?
- Чем процесс отличается от потока?
- Как программа обращается к операционной системе?
- Что происходит при чтении файла или передаче данных устройству?
- Почему возникают состояния гонки и взаимные блокировки?
- Как аппаратные ограничения влияют на производительность программ?
- Какие механизмы лежат в основе виртуальных машин и контейнеров?
Границы раздела
Раздел посвящён общим принципам работы вычислительных систем.
Практическое управление процессами, файловыми системами, пользователями и службами рассматривается в разделе операционных систем. Сетевое взаимодействие рассматривается в разделе сетей и протоколов. Особенности конкретных языков и сред выполнения относятся к разделу программирования.