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