2.5 KiB
2.5 KiB
Уровни абстракции для электронно-вычислительной системы:
- Application Software - Программы
- Операционные системы - Драйверы устройств
- Архитектура - Регистры инструкций
- Микро-архитектура - Контроллеры/Каналы передачи данных
- Логика - Сумматоры/Память
- Цифровые схемы - AND вентили, NOT вентили
- Аналоговые схемы - Усилители/Фильтры
- Устройства - Транзисторы/Диоды
- Физика - Электроны
Уровни:
- скрывают детали нижележащего
- навязывают ограничения вышележащему свои
Уровни абстракции можно ломать (например в программе на C делать ассемблерные вставки)
Уровни влияют на индустрию - на каждый/несколько уровней свои специалисты/компании
Формирование уровней
Уровни формируются вычислительными платформами Уровень = Языки + Типы + Экземпляры + Шаблоны
- Языки (Languages) - на чем описываем/пишем
- Типы (Types) - предопределенные платформой абстракции и структуры данных
- Экземпляры (Instances) - готовые, предопределенные платформой объекты и компоненты
- Шаблоны (Patterns) - связывают языки, типы и экземпляры, задают повторяемые решения
Шаблоны
Механизмы повторяются на разных уровнях - одни и те же идеи
- Сторожевые таймеры - микроконтроллеры, OC/гипервизоры, оркестраторы
- Кеши и когерентность - CPU, OC (page cache), диски, CDN, браузер
- Прерывания и события - аппартные IRQ, сигналы OC, event loop, message queue
- Системы команд - ISA процессора, байткод виртуальных машин (JVM, CLR), API/протоколы (свой Language на каждом уровне), DSL