View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

Архитектура компьютера

Лекция 16

Изоляция задач. Уровневая организация. Disaggregation. Blockchain 任务隔离。 层级组织。 分解。 区块链

Пенской А.В., 2022


План лекции



Сосуществование задач 任务共存

Успешный параллелизм задач требует:
成功的任务并行性需要:

  1. Обеспечить изоляцию между потоками команд.
    在命令流之间提供隔离
  2. Обеспечить взаимодействие между потоками команд.
    提供命令线程之间的交互

Вопрос:

- изоляция инструкций/данных - изоляция инструкций/данных процедур - автоматическая память - heap - изоляция инструкций/данных задач - изоляция программных модулей --- - 指令/数据隔离 - 程序指令/数据的隔离 - 自动记忆 - 堆 - 任务指令/数据隔离 - 软件模块的隔离


Изоляция 绝缘


Банки памяти (Memory Bank) 记忆库

even-odd-memory-banks


Банки памяти. Изоляция 记忆库。 绝缘

_A hypothetical memory map of bank-switched memory for a processor that can only address 64 KB. This scheme shows 200 KB of memory, of which only 64 KB can be accessed at any time by the processor. The operating system must manage the bank-switching operation to ensure that program execution can continue when part of memory is not accessible to the processor._


Сегментная память (Segmentation) 分段内存

paging-and-segmentation


Сегментная память. Назначение 分段记忆。 目的

  1. Независимая адресация внутри задач относительно сегментов.
    任务内相对于段的独立寻址。
  2. Управление правами доступа в сегменте.
    段内访问权限的管理。
  3. Независимая адресация и изоляция программных модулей друг от друга.
    程序模块之间独立寻址和隔离。
  4. Предоставление одного сегмента памяти разным потокам команд для взаимодействия.
    提供一个内存段给不同的命令流交互。

segment_map_table


Виртуальная память 虚拟内存

ПО использует виртуальные адреса, транслируемые на лету в физические.
该软件使用动态转换为物理地址的虚拟地址。


Вопросы:

  1. Как выглядит работа компьютера без виртуальной памяти?
    如果没有虚拟内存,计算机运行会是什么样子?
  2. Что лучше: страничная или сегментная организация памяти?
    页内存组织和段内存组织哪个更好?

Сегментная память. Анализ 分段记忆。 分析

Segmentation Advantages
Segmentation Disadvantages

Виртуальная память. Анализ 虚拟内存。 分析

Paging Advantages
Paging Disadvantages

Взаимодействие между задачами 任务之间的交互

Типы задач в современном компьютере:
现代计算机中的任务类型:

Взаимодействие – передача информации между задачами.
交互是任务之间的信息传递。


Взаимодействие процессов 流程交互

Основная проблема: как обеспечить доступ между данными изолированных процессов:
主要问题:如何提供隔离进程之间的数据访问:

Взаимодействие требует участия ОС.
交互需要操作系统的参与。


Взаимодействие потоков 线程交互

Основная проблема: как проконтролировать доступ к данным неизолированных процессов.
主要问题:如何控制非隔离进程对数据的访问。

Механизмы синхронизации предоставляются ОС / процессором.
同步机制由操作系统/处理器提供。


Green Threads 绿色线程

Проблема: как остановить долгую задачу без прерываний и ОС?
问题:如何在不中断和操作系统的情况下停止长时间运行的任务?


Детерминизм многопоточного программирования 多线程编程的确定性

// Глобальные переменные с
// разделяемым состоянием.
int x, y, a, b;

// Два зеркальных потока.
void* thread1(void* unused) {
    x = 1;
    a = y;
    return NULL;
}

void* thread2(void* unused) {
    y = 1;
    b = x;
    return NULL;
}
while (1) {
    // инициализация начальных значений
    x = 0;
    y = 0;
    a = 0;
    b = 0;
    ...
    // запуск потоков
    pthread_create(&tid1, &attr1, thread1, NULL);
    pthread_create(&tid2, &attr2, thread2, NULL);

    // ожидание остановки потоков
    pthread_join(tid1, NULL);
    pthread_join(tid2, NULL);

    if(a == 0 && b == 0) {
        break;
    }
}

Возможна ли остановка алгоритма? 是否可以停止算法?
(источник: Другой взгляд на многопоточность)


Уровневая организация 层级组织


Architectural specification 架构规范

Architecture 架构
is fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution [ISO 42010].
是系统在其环境中的基本概念或属性,体现在其元素、关系及其设计和演变的原则中[ISO 42010]。
Architectural specification 架构规范
work product used to express an architecture.
用于表达架构的工作产品。

The most popular type of architectural specification describes the selected layer of the system, and we call it “horizontal”.
最流行的架构规范类型描述了系统的选定层,我们称之为“水平”。


Подход к рассмотрению архитектуры 考虑架构的方法

Горизонтальный 水平的

Вертикальный 垂直的


Architectural specification (vertical) 建筑规范(垂直)

  1. Specification of layers and their relationship.
    层的规范及其关系。
  2. In opposite to “horizontal” specification, we offer “vertical” architectural specification.
    与“水平”规范相反,我们提供“垂直”架构规范。
  3. Relationship – evaluation or actualization.
    关系——评价或实现。


Формирование уровней 层次的形成

Уровень компьютерной системы – совокупность процессора, вычислительных процессов и моделей. Уровни определяются вне зависимости от конкретной стадии жизненного цикла вычислительной системы и могут включать в себя как архитектурные представления, так и модели, сформированные в процессе отладки.
计算机系统级是一组处理器、计算过程和模型。 级别的确定与计算系统生命周期的特定阶段无关,并且可以包括在调试过程中形成的体系结构视图和模型。

_Формирование уровней компьютерной системы_


Layered Style



Модифицированный граф актуализации 修改后的更新图


Модель-процесс-вычислитель 模型过程计算机



Законы развития 发展规律
(в том числе и технологий)
(包括技术)

Источник:

Диалектика Гегеля и Закон Седова
как способ верификации IT трендов
с примерами из Автоматизации тестирования


Диалектика Гегеля 黑格尔辩证法


Принцип развития иерархических систем Седова 谢多夫层次系统发展原理

В сложной иерархически организованной системе рост разнообразия на верхнем уровне обеспечивается ограничением разнообразия на предыдущих уровнях, и наоборот, рост разнообразия на нижнем уровне разрушает верхний уровень организации.
在复杂的层级组织系统中,顶层多样性的增长是通过限制前几层的多样性来保证的,反之亦然,下层多样性的增长会破坏组织的顶层。


Примечания 笔记


Таксономия Флинна. 分类学弗林。 [S/M]I[S/M]D

Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором:
该分类基于线程的概念,线程是由处理器处理的元素、命令或数据的序列:

Таксономия Флинна


Таксономия Флинна. Недостатки 弗林的分类法。 缺陷

Источник: Классификация Флинна


SIMT (单指令、多线程)

SIMT (Single instruction, multiple threads) SIMT(单指令、多线程)