АПС Л18. Синхронизация. Когерентность кэш

Современные высокопроизводительные процессоры объединяют в себе по несколько вычислительных ядер, которые могут исполнять разные программные потоки, что влечёт за собой: необходимость в синхронизации работы таких потоков, и слежение за когерентностью кэш разных ядер при работе с общей памятью. Основные моменты лекции: 2:20 - параллелизм уровня потоков 5:17 - необходимость синхронизации потоков 6:52 - потоково-безопасное программирование 7:50 - пример, на основе которого будет поясняться лекция 11:06 - буфер FIFO для ослабления зависимости между потоками 13:37 - пример реализации буфера FIFO 15:56 - семафоры 19:00 - семафор для установки приоритета 20:24 - семафор для распределения ресурсов 21:57 - буфер FIFO с семафорами 24:44 - пример одновременных транзакций (проблема) 28:50 - семафор для взаимных исключений 29:55 - буфер FIFO с семафорами и несколькими производителями 32:39 - необходимость атомарных инструкций для реализации семафоров 35:31 - взаимоблокировка (deadlock) 38:55 - задача о обедающих философах 42:50 - устранение deadlock в примере с банкоматами 45:09 - общие слова про мультиядерность 47:24 - проблема когерентности кэш-памяти 50:45 - реализация когерентности кэш-памяти 52:59 - snoopy-протокол 56:02 - VI 1:00:30 - MSI и MESI 1:07:23 - когерентность кэш и ложное совместное использование telegram:
github:

Смотрите также