02.10.26
deploy / Pull and Restart (push) Successful in 16s

This commit is contained in:
roma-dxunvrs
2026-10-02 22:58:53 +03:00
parent 4886625dac
commit fec7f50b3e
9 changed files with 180 additions and 3 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+3
View File
@@ -10,8 +10,11 @@
- [Понятие системы](Системная%20инженерия/Понятие%20системы.md)
- [Компьютерные системы](Вычислительные%20системы/Компьютерные%20системы.md)
- [Особенности производства аппаратуры](Системная%20инженерия/Особенности%20производства%20аппаратуры.md)
- [Hardware and Software](Системная%20инженерия/Hardware%20and%20Software.md)
## Схемотехника
- [Цифровая схемотехника](Цифровая%20схемотехника/Цифровая%20схемотехника.md)
## Теория вычислений
- [Модель вычислений](Вычислительные%20системы/Модель%20вычислений.md)
## Вычислительные архитектуры
- [Вычислительные архитектуры](Архитектуры/Вычислительные%20архитектуры.md)
## Инструменты low-level
@@ -12,4 +12,4 @@
3. Desktops - компьютеры на рабочем месте, почти у всех
4. Сервисы - решения прикладных задач, чтобы не делать их локально
5. Мобильные вычисления - повсеместно
6. Вычисления окружают нас уже повсеместно
6. Вычисления окружают нас уже повсеместно
@@ -0,0 +1,82 @@
MoC - Model of Computation
1. MoC предоставляет язык для описания моделей процессов/программ/структур
2. MoC определяет возможности вычислительной машины
3. MoC характеризует, как исполняется модель (программа): возможные состояния вычислителя, их последовательность, правила переходов (детерменированные или нет)
4. MoC, обычно, минималистичны относительно реальных вычислителей
## Последовательные модели
Sequential models
Относительно просто реализуются в виде аппаратных схем
### Конечные автоматы
![](../../Attachments/FSM.png)
Несколько наборов состояний системы и условия переходов между ними
#### Автомат с магазинной памятью
![](../../Attachments/Автомат%20с%20магазинной%20памятью.png)
Например, парсеры
#### Достоинства
- Таблица состояний
- Верифицируемость переходов
- Простая реализация в схемотехнике и ПО
### Машина Тьюринга
Включает:
- Неограниченную двустороннюю ленту, разделенную на ячейки
- Устройство управления (головка записи-чтения), которое может находиться в конечном числе состояний
Управляющее устройство может:
- Перемещаться по ленте влево и вправо
- Читать и записывать в ячейки символы конечного алфавита
Машина Тьюринга
1. Не может быть реализована на практике (нет бесконечной ленты)
2. Обладает полнотой по Тьюрингу (можно реализовать любой известный алгоритм)
3. Проблема остановки
4. Данные и управление отделены
5. Ориентирована на реализацию
### Random Access Machine
![](../../Attachments/RAM.png)
## Функциональные модели
Functional models
Представление вычислительного процесса как совокупности символов и правил их преобразований
1. Арифметика
2. Лямбда исчисление (полнота по Тьюрингу)
3. Combinatory logic
4. General recursive functions
5. Abstract rewriting systems
Программа/данные - математический объект
Возможна Тьюринг неполнота
### Лямбда исчисление
#### 4 вида выражений
1. Переменная: $x, y\ \text{и} \ z$
2. Константа: $a,b,c$
3. Коминация (вызов): $s\ t$
4. Абстракция: $\lambda x.s$
#### 3 вида редукций/подстановки
1. Переименование переменных: $\lambda u.u\ v \xrightarrow{\alpha} \lambda w.w\ v$
2. Применение функции (подстановка аргумента): $(\lambda x.s)\ t \xrightarrow{\beta} s[t/x]$
3. Сокращение аргумента: $\lambda u.v\ u \xrightarrow{\eta} v$
## Параллельные модели
Системы, включающие несколько взаимодействующих процессов
- Kahn process networks - однонаправленные каналы с неограниченными буферами (+- как в гошке)
- Actor model - отправка сообщений в "почтовые ящики" (как в Erlang)
- Discrete Event - события в заданные моменты времени (цифровые схемы)
- Multi-Thread Model - общая память (как в джаве)
- Synchronous Data Flow - синхронизированные потоки данных
## Близкие понятия
### Парадигмы программирования
Способ классификации языков программирования на основе их функций. Языки могут относиться к нескольким парадигмам
### Стиль программирования
Это набор правил или рекомендации, используемых при написании исходного кода компьютерной программы
## Применение на практике
1. Computer Science. Формальные модели
2. Дизайн ЯПов
3. Ограничение творческого порыва, контроль сложности
4. Модель-ориентированная инженерия
## Model-Driven Engineering
1. Разработка через моделирование предметной области
2. Автоматическая генерация кода из моделей
3. Повышение уровня абстракции при разработке
4. Сокращение разрыва между требованиями и реализацией
5. Улучшение коммуникации между заинтересованными сторонами
6. Снижение сложности разработки масштабных систем
@@ -0,0 +1,82 @@
- **Hardware** производится один раз и дальше не меняется, не корректируется
- **Software** адаптируется под задачу, легко изменяется
- Разделены по времени/специальности: разные дисциплины и разные индустрии
## Как разделить HW/SW
1. Определяем возможности "конфигурирования":
- Заложенные при проектировании - интерфейс задокументирован и стабилен (ISA, API)
- Незадокументированные (нецелевое использование, дыра в безопасности) - используется то, что интерфейсом не гарантировано но работает
2. Фиксируем интерфейс "конфигурирования"
- Набор механизмов
- Модель вычислений
- Интструментальные средства
## Конфигурирование [РЭА](Особенности%20производства%20аппаратуры.md#Монтаж%20радиоэлектронной%20аппаратуры%20(РЭА))
1. Макетные платы
2. Печатные платы: перерезать, навесить дорожку
3. Джамперы
4. Платы расширения
- Вычислительные платы
- Порты ввода/вывода
- Dendy (память программ и графическая память)
## Реконфигурация. Коммутация
### Реконфигурируемые архитектуры
Архитектуры, где задача отображается в структуру вычислителя (пространственно, spatial), а не выполняется потоком инструкций. В отличие от ASIC, это структура может быть перенастроена после изготовления
1. Программируемые логические интеграционные схемы
2. Крупногранулярные реконфигурируемые массивы (CGRA)
3. Выстраивание людей для расчета таблиц
## Программное управление
1. Данные (программы) определяют то, какой прикладной процесс будет разворачиваться
2. Количество уровней исполнения/интерпретации данных ограничено только целесообразностью
**Временные вычисления** - одна и та же схема последовательно проходит через разные состояния во времени
## Аппаратное обеспечение
Электронные и механические части вычислительного устройства, входящие в состав системы. Включает: компьютеры и логические устройства, внешние устройства и диагностическую аппаратуру, энергетическое оборудование
## Программное обеспечение (ПО)
Совокупность программ и программных документов необходимых для эксплуатации. Позволяет аппаратному обеспечению выполнять функции
## Аппаратура и ПО != Hardware и Software
1. Программная/аппаратная составляющая слабо связаны с SW/HW:
- Minix - ОС встроена в Intel ME/CSME
- Микропрограммное обеспечение
2. Часто аппаратурой называют то, что работает как аппаратное обеспечение
- Virutal-Computer, Virtual-Network, Virtual-Volume, etc
- Реконфигурируемые архитектуры (ПЛИС, CGRA)
3. Разделение на SW/HW зависит в большей степени от способа использования
- Hardware - тяжело/долго/дорого поменять
- Software - легко/быстро/дешево поменять
## Плюсы и минусы ПО/SW
### Часть плюсов
1. Быстрый цикл разработки, CI/CD и тд
2. Меняем у пользователя
3. Пользователь - Beta-тестер
### Часть минусов
1. Высокая сложность программ
2. Безопасность
3. Культура разработки. Верификация
## Типовое HW/SW проектирование
### Проектируем аппаратуру
- Система команд и вычислительные механизмы
- Интерфейсы управления аппаратурой
- Цифровая схематехника, система команд
### Пишем программу
- Прикладная задача
- Язык и библиотеки
- Система команд и вычислительные механизмы (виртуальная память, прерывания)
- Интерфейсы управления аппаратурой
### Проблемы
1. Излишне шаблонное проектирование
2. Высокие интеграционные риски
3. Последовательная разработка (сроки)
## Hardware/Software CoDesign
Мы проектируем систему
1. Разработка интерфейса HW/SW (системы команд)
2. Разработка моделей HW/SW, для получения обратной связи
3. Разработка HW/SW, верификация моделей
4. Заменая моделей на HW/SW
![](../../Attachments/CoDesign%20HW-SW.png)
В итоге: сокращение цикла разработки
## Как выбирать инструменты для разработки Software
1. От доступного Hardware и инструментальных средств
2. От доступной команды разработки
3. От прикладной задачи
- От области (библиотеки)
- От модели вычислений (принципов организации вычислительного процесса: параллелизм, конвейризация, оптимизации и тд)
@@ -23,7 +23,7 @@
Различают:
- одно- и двухслойные платы
- многослойные платы
## Виды монтажа компонентоы
## Виды монтажа компонентов
- Выводной (в отверстие)
- Поверхностный
- Встроенный
@@ -94,6 +94,7 @@
1. Разные частоты процессоров -> разные SKU из одного wafer
2. Core Single / Core Duo / Core Quad -> одинаковый кристалл, разное число активных ядер
3. Intel Pentium / Celeron -> урезанные Core с отключенными кэшем и функциями
## Реальный мир
### Производство
1. Логистика
2. Склады
@@ -108,3 +109,12 @@
2. Необходимость физического доступа
3. Особенности среды эксплуатации
4. Долгосрочные эффекты
### Сложность изменений
1. Чем совершеннее технология, тем сложнее внести изменения
2. Физический контакт
### Варианты замены устаревшей аппаратуры
1. Перепроектирование на новой элементной базе
2. Модульная организация. Стандартные интерфейсы. Имитация старых систем
3. Виртуализация
Как решаем проблемы аппаратуры - [Hardware and Software](Hardware%20and%20Software.md)